SX実行時エラーメッセージに表示されるELN 情報の見方が分からない
ELN情報には、サブルーチン内の問題箇所の行番号が出力されます。
プリプロセッサを動作させている場合は、中間ファイルの行番号がELNとして出力されますのでご注意下さい。
行番号のずれについて
SXのハードウェアは高度な先行処理を行っており、
プログラムの実行時に例外が発生してから実際に検出されるまでの
ごくわずかな時間にも先行して命令を処理しています。
これが原因で、プログラム例外を発生した命令と実際に検出した命令がずれ、行番号の対応が取れないことがあります。このずれはコンパイラが命令の並び替えなどの最適化を行っていると、さらに大きくずれ実際のソースでは何十行とずれた行になることもあります。
このため、例外が発生した行番号を正確に表示するには、ハードウェアの
先行制御を抑止してプログラムを実行する必要があります。
FORTRAN90/SX では -adv詳細オプションを用意しており、このオプションを
指定することでハードウェアの先行制御をコントロールすることができます。
-adv
演算プロセッサ(AP)における先行制御の状態を変更することを指定する。
すなわち、先行制御機能をプログラム単位の入口で設定し、出口で回復することを指定する。-adv on プログラム単位の入口で動作状態にし、出口で回復することを指定する。
-adv off プログラム単位の入口で停止状態にし、出口で回復することを指定する。
例えば、ある手続きに対してハードウェアの先行制御を抑止したい場合は
-adv off を指定してください。
ただし、本オプションを指定した場合、著しくプログラムの実行性能が
低下します(実行時間が10倍あるいはそれ以上にもなることがあります)。
このため、ご使用される場合は、むやみに指定するのではなく、先行制御を
抑止して実行する区間が可能な限り短くなるようにしてください。
また、コンパイラの行う最適化によって発生しないはずの例外が発生したり、
あるいは発生する例外の位置や回数が変わったりもしますので、この点にも
ご注意ください。「FORTRAN90/SX プログラミングの手引」
「4.4 最適化機能を使用する場合の注意」を参照ください。
SXのエラーメッセージについては、下記にマニュアルをご用意しておりますので、まずご確認いただけますと幸いです。
閲覧には利用者番号での認証が必要となりますので、ご注意ください。
FORTRAN90/SX プログラミングの手引
こちらの「付録D 実行時のメッセージ」「D.1.1 エラーメッセージの形式」という個所をご確認ください。