ランタイムメッセージの表示と書式

次に、Fortran ランタイムメッセージの書式を示します。

forrtl: severity (number): message-text

説明:

次の表は、ランタイムメッセージの重要度レベルを、重要度の高い順に説明します。ランタイム・エラー・メッセージの重要度は、プログラムの実行を続けるかどうかを決定します。

重要度 説明

severe

問題を修正する必要があります。プログラムの I/O 文で END、EOR、または ERR 分岐指定子を使用して、IOSTAT 指定子を使用するルーチンなどに制御を渡さない限り、プログラムの実行はエラー検出時に終了します (「END、EOR、および ERR 分岐指定子の使用」「IOSTAT 指定子と Fortran 終了コードの使用」、および「エラーの処理方法」を参照してください)。

重要度レベルが severe のエラーでは、環境変数 FOR_DISABLE_STACK_TRACE が設定されていない限り、スタックトレース情報がデフォルトで表示されます。-traceback コマンドライン・オプション (Linux* および Mac OS* X) または /traceback コマンドライン・オプション (Windows) が指定されると、スタックトレース情報にはシンボリック情報に対して設定されたプログラムカウンターが含まれます。それ以外の場合、スタックトレース情報には単に 16 進数のプログラムカウンター情報が含まれます。

場合によっては、スタックトレース情報はコンパイルされたコードによってランタイム時に生成され、配列の一時変数の作成に関する詳細を提供します。

FOR_DISABLE_STACK_TRACE が設定されている場合、スタックトレース情報は生成されません。

error

問題を修正する必要があります。プログラムの実行を続けることはできても、出力に誤りがある可能性があります。

重要度レベルが errors のエラーでは、環境変数 FOR_DISABLE_STACK_TRACE が設定されていない限り、スタックトレース情報がデフォルトで表示されます。-traceback コマンドライン・オプション (Linux および Mac OS X) または /traceback コマンドライン・オプション (Windows) が指定されると、スタックトレース情報にはシンボリック情報に対して設定されたプログラムカウンターが含まれます。それ以外の場合、スタックトレース情報には単に 16 進数のプログラムカウンター情報が含まれます。

場合によっては、スタックトレース情報はコンパイルされたコードによってランタイム時に生成され、配列の一時変数の作成に関する詳細を提供します。

FOR_DISABLE_STACK_TRACE が設定されている場合、スタックトレース情報は生成されません。

warning

問題を調査する必要があります。プログラムの実行は続行しますが、出力に誤りがある可能性があります。

info

情報提供のみを目的とし、プログラムの実行は続行されます。

 

インテル(R) Fortran の各ランタイム・エラー・メッセージに関する説明は、「ランタイムのデフォルトのエラー処理」および関連トピックを参照してください。

Linux および Mac OS X システムの例:

場合によっては、スタックトレース情報はコンパイルされたコードによってランタイム時に生成され、配列の一時変数の作成に関する詳細を提供します。

FOR_DISABLE_STACK_TRACE が設定されている場合、スタックトレース情報は生成されません。

次のプログラムは、12 行目でエラーを表示します。

program ovf                     
real*4 x(5),y(5)
integer*4 i

x(1) = -1e32
x(2) = 1e38
x(3) = 1e38
x(4) = 1e38
x(5) = -36.0

do i=1,5
y(i) = 100.0*(x(i))
print *, 'x = ', x(i), ' x*100.0 = ',y(i)
end do
end

次のコマンドは、プログラムの実行ファイルに対するスタックトレース情報を生成します。
>
ifort -O0 -fpe0 -traceback ovf.f90 -o ovf.exe
>
ovf.exe

x =  -1.0000000E+32  x*100.0 =  -1.0000000E+34  
forrtl: error (72): floating overflow
Image        PC         Routine       Line      Source
ovf.exe      08049E4A   MAIN__             14   ovf.f90
ovf.exe      08049F08   Unknown       Unknown   Unknown
ovf.exe      400B3507   Unknown       Unknown   Unknown
ovf.exe      08049C51   Unknown       Unknown   Unknown
Abort

次のコマンドでは FOR_DISABLE_STACK_TRACE 環境変数が設定されているため、スタックトレース情報は生成されません。
>
setenv FOR_DISABLE_STACK_TRACE true
>
ovf.exe

x =  -1.0000000E+32  x*100.0 =  -1.0000000E+34
forrtl: error (72): floating overflow              
Abort

ランタイム・ライブラリーのメッセージ・カタログ・ファイルの場所

libifcore、libirc、および libm ランタイム・ライブラリーには、それぞれ付属のメッセージカタログがあります。これらのライブラリーのメッセージを表示する場合、ライブラリーは NLSPATH 環境変数 (Linux および Mac OS X) または %PATH% 環境変数 (Windows) で指定されたディレクトリーにあるメッセージカタログを検索します。メッセージカタログが見つからない場合、メッセージは英語で表示されます。

メッセージカタログの名前は次のとおりです。

libifcore メッセージカタログと関連するテキスト・メッセージ・ファイル Linux および Mac OS X ifcore_msg.cat
ifcore_msg.msg
Windows ifcore_msg.dll
ifcore_msg.mc

libirc メッセージカタログと関連するテキスト・メッセージ・ファイル

Linux および Mac OS X irc_msg.cat
irc_msg.msg
Windows irc_msg.dll
irc_msg.mc

libm メッセージカタログと関連するテキスト・メッセージ・ファイル

Linux および Mac OS X libm.cat
libm.msg
Windows libmUI.dll
libmUI.mc