我希望能够在 C++ 绑定中捕获终止的 Fortran 运行时错误。我有一个旧的 F90 代码可以绑定并期待各种错误,例如数字、IO 等。
我设法根据以下内容处理 STOP: Intercepting Fortran STOP from C++ and able to throw/catch exception for this case in the C++ code。
我在 https://www.sharcnet.ca/help/images/4/42/Fortran_Signal_Handling.pdf对“Fortran 中的信号处理”有了一些了解
但是,我无法解决这个问题,f90 fortran 的示例将非常有帮助。
例如,尝试在 fortran 子例程中打开一个不存在的文件会产生运行时错误,并且 C++ 代码会终止:
打开 (unit=13,FILE="fnameBAD",status="old",action="read",position="rewind")
Fortran 运行时错误:无法打开文件“fnameBAD”:没有这样的文件或目录
我希望能够使用信号捕获这个和其他运行时错误。