Error handling 在Fortran中的运行时禁用FPE处理程序

Error handling 在Fortran中的运行时禁用FPE处理程序,error-handling,fortran,libraries,intel-mkl,sigfpe,Error Handling,Fortran,Libraries,Intel Mkl,Sigfpe,我有一个用Fortran编写的库,它使用Intel的MKL(静态链接)。我正在使用ifort进行编译和链接。 当我使用-fpe0选项(动态地)将我的库与其他代码链接时,我在MKL中得到了浮点异常,根据英特尔的说法,这似乎是已知的,不需要担心。我想这是由于一些推测性的执行。 但是,当其他人使用我的库时,他们可能会尝试使用-fpe0将他们的代码链接到我的库,这可能会导致麻烦。所以我想知道:当进入我的库并在返回时将其恢复到原始状态时,有没有办法在运行时关闭FPE处理程序? 谢谢 正如Vladimir所

我有一个用Fortran编写的库,它使用Intel的MKL(静态链接)。我正在使用ifort进行编译和链接。
当我使用-fpe0选项(动态地)将我的库与其他代码链接时,我在MKL中得到了浮点异常,根据英特尔的说法,这似乎是已知的,不需要担心。我想这是由于一些推测性的执行。
但是,当其他人使用我的库时,他们可能会尝试使用-fpe0将他们的代码链接到我的库,这可能会导致麻烦。所以我想知道:当进入我的库并在返回时将其恢复到原始状态时,有没有办法在运行时关闭FPE处理程序?

谢谢

正如Vladimir所指出的,所请求的功能由ieee\u模块提供:


英特尔ifort至少在第12版(已测试)上支持这一点,而gfortran可能在第4.10版(未测试)上支持这一点。

检查
ieee\u异常
内部模块。我自己从来没用过,所以我只是在评论。谢谢,这很有效。应该提到的是,gfortran至少需要4.10版。iPort至少从v12开始支持它(没有旧版本可供测试…),您可以将详细信息作为答案发布吗?它可能对其他人有用。