Fortran 用LAPACK捕获浮点异常

Fortran 用LAPACK捕获浮点异常,fortran,lapack,Fortran,Lapack,我有一个使用LAPACK的程序,或者可以选择编译LAPACK的子集。我想启用gfortran的-ffpe trap=…(或与其他编译器类似的)来捕获浮点异常,并帮助我捕获bug和错误。但是,LAPACK不喜欢这样(): 我想我可以尝试编译没有标志的LAPACK,然后我的程序使用它,但似乎是主程序使用的标志起了作用,我从LAPACK代码中得到了异常。我尝试过静态和动态链接 有什么方法可以在我的程序中使用-ffpe trap=…,但对LAPACK链中的代码“禁用”它吗?对此需要更精细的处理,一个简单

我有一个使用LAPACK的程序,或者可以选择编译LAPACK的子集。我想启用gfortran的
-ffpe trap=…
(或与其他编译器类似的)来捕获浮点异常,并帮助我捕获bug和错误。但是,LAPACK不喜欢这样():

我想我可以尝试编译没有标志的LAPACK,然后我的程序使用它,但似乎是主程序使用的标志起了作用,我从LAPACK代码中得到了异常。我尝试过静态和动态链接


有什么方法可以在我的程序中使用
-ffpe trap=…
,但对LAPACK链中的代码“禁用”它吗?

对此需要更精细的处理,一个简单的编译器标志是不够的。请看Fortran 2003中的ieee_uuu模块。@VladimirF感谢您提供的指针。正在尝试使用ieee_异常模块。。。是否有可能以某种方式在子程序中设置停止模式,并使其在主程序的其余部分继续存在?我有许多程序使用相同的“启动”子例程。我宁愿修改这个而不是每个主程序…你需要更好的处理,一个简单的编译器标志是不够的。请看Fortran 2003中的ieee_uuu模块。@VladimirF感谢您提供的指针。正在尝试使用ieee_异常模块。。。是否有可能以某种方式在子程序中设置停止模式,并使其在主程序的其余部分继续存在?我有许多程序使用相同的“启动”子例程。我宁愿修改这个而不是每个主程序。。。
#  Note: During a regular execution, LAPACK might create NaN and Inf
#  and handle these quantities appropriately. As a consequence, one
#  should not compile LAPACK with flags such as -ffpe-trap=overflow.