C++ バインディングで終了する Fortran ランタイム エラーをキャッチできるようにしたいと考えています。バインドするレガシー F90 コードがあり、数値、IO などのあらゆる種類のエラーが予想されます。
Intercepting Fortran STOP from C++ and can throw/catch for this case in the C++ code.に従って STOP を処理する ことができました。
https://www.sharcnet.ca/help/images/4/42/Fortran_Signal_Handling.pdfで「Fortran でのシグナル処理」についてある程度理解しました 。
しかし、私はこれを管理していません.f90 fortranの例は非常に役に立ちます.
たとえば、fortran サブルーチンで存在しないファイルを開こうとすると、実行時エラーが発生し、C++ コードが終了します。
open (unit=13,FILE="fnameBAD",status="old",action="read",position="rewind")
Fortran ランタイム エラー: ファイル 'fnameBAD' を開けません: そのようなファイルまたはディレクトリはありません
シグナルを使用して、このエラーやその他の実行時エラーをキャッチできるようにしたいと考えています。