私はgfortranをいくつかのコードに使用しています。しばらくの間、私はgfortranは浮動小数点例外について警告します
-ffpe-trap=zero,overflow,invalid
といくつかのバグを見つけようとしています。これにより、私のプログラムは即座に実行を停止します。 FPEが正常な場合があり、フラグは次のようになります。
-ffpe-warn=zero,overflow,invalid
非常に便利です。 gfortran(または他のコンパイラ)は、このようなものを提供していますか?そうでない場合、回避策はありますか?私の現在の考えは、警告を書き出すためのシグナルハンドラを登録するC関数を作成することですが、どうやってそれを行うのか分かりません。
この推定ランタイム警告メカニズムはどのように機能しますか? –
gfortranは(比較的新しい)ieee_arithmetic組み込みモジュールを提供していますか?そうであれば、Fortranで独自のf-p「エラー」トラッピングを行うために必要なツールが提供されます。 –
@DavidHefferman実行時例外が発生すると、実行が停止し、例外が発生した場所とプログラムが終了した場所に関するメッセージが出力されます。例外が発生した場所(stderrのメッセージかもしれません)と実行が続行されるように通知するのがいいだけです。たぶんそれは可能ではない...私はこれらのことがどう機能するかについてあまり知らない... – mgilson