インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

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

プログラムの実行時 (ランタイム時) にエラーが発生すると、インテル® Visual Fortran ランタイムシステムは診断メッセージを発行します。

Fortran ランタイムメッセージが表示される場所は、プロジェクトの種類によって異なります。

プロジェクトの種類

メッセージの表示場所

Fortran コンソール・アプリケーション

ランタイム・エラー・メッセージは (リダイレクトされていない限り) 標準エラーデバイスに表示されます。

Fortran QuickWin および Fortran スタンダード・グラフィックス・アプリケーション

ランタイム・エラー・メッセージは独立した QuickWin メッセージボックスに表示されます。

Fortran ウィンドウ・アプリケーション

ランタイム・エラー・メッセージは独立したメッセージボックスに表示されます。

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

forrtl:  severity (number):   message-text

説明:

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

重要度

説明

severe (致命的なエラー)

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

重要度レベルが severe のエラーでは、FOR_DISABLE_STACK_TRACE 環境変数が設定されていない限り、スタックトレース情報がデフォルトで表示されます。この環境変数が設定されている場合、スタックトレース情報は生成されません。

コマンドラインで traceback コマンドライン・オプションが指定されると、スタックトレース情報にはシンボリック情報に対して設定されたプログラムカウンターが含まれます。それ以外の場合、スタックトレース情報には単に 16 進数のプログラムカウンター情報が含まれます。

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

error (エラー)

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

重要度レベルが「エラー」のエラーでは、FOR_DISABLE_STACK_TRACE 環境変数が設定されていない限り、スタックトレース情報がデフォルトで表示されます。この環境変数が設定されている場合、スタックトレース情報は生成されません。

traceback コマンドライン・オプションが指定されると、スタックトレース情報にはシンボリック情報に対して設定されたプログラムカウンターが含まれます。それ以外の場合、スタックトレース情報には単に 16 進数のプログラムカウンター情報が含まれます。

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

warning (警告)

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

info (情報)

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

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

Linux* および macOS* の例:

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

次のプログラムは、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: エラー (72): 浮動小数点オーバーフロー
Abort

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

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

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

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

Linux* および macOS*

ifcore_msg.cat

ifcore_msg.msg

Windows*

ifcore_msg.dll

ifcore_msg.mc

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

Linux* および macOS*

irc_msg.cat

irc_msg.msg

Windows*

irc_msg.dll

irc_msg.mc

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

Linux* および macOS*

libm.cat

libm.msg

Windows*

libmUI.dll

libmUI.mc

関連情報