次に、Fortran ランタイムメッセージの書式を示します。
forrtl: severity (number): message-text
説明:
forrtl
ソースがインテル® Fortran ランタイムシステム (ランタイム・ライブラリーまたは RTL) であることを示します。
severity
重要度レベルは、severe (致命的なエラー)、error (エラー)、warning (警告)、info (情報) です。
number
メッセージ番号です。I/O 文の IOSTAT 値でもあります。
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 (エラー)] |
問題を修正する必要があります。プログラムの実行を続けることはできても、出力に誤りがある可能性があります。 重要度レベルが「エラー」のエラーでは、環境変数 FOR_DISABLE_STACK_TRACE が設定されていない限り、スタックトレース情報がデフォルトで表示されます。-traceback コマンドライン・オプション (Linux および Mac OS X) または /traceback コマンドライン・オプション (Windows) が指定されると、スタックトレース情報にはシンボリック情報に対して設定されたプログラムカウンターが含まれます。それ以外の場合、スタックトレース情報には単に 16 進数のプログラムカウンター情報が含まれます。 場合によっては、スタックトレース情報はコンパイルされたコードによってランタイム時に生成され、配列の一時変数の作成に関する詳細を提供します。 FOR_DISABLE_STACK_TRACE が設定されている場合、スタックトレース情報は生成されません。 |
[warning (警告)] |
問題を調査する必要があります。プログラムの実行は続行しますが、出力に誤りがある可能性があります。 |
[info (情報)] |
情報提供のみを目的とし、プログラムの実行は続行されます。 |
インテル® 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: エラー (72): 浮動小数点オーバーフロー 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 |