【发布时间】:2015-03-19 22:51:59
【问题描述】:
我有一个用 Fortran 编写的库,它使用 Intel 的 MKL(静态链接)。我正在使用 ifort 进行编译和链接。
当我使用 -fpe0 选项将我的库(动态)与一些其他代码链接时,我在 MKL 中得到浮点异常,这似乎是英特尔已知的事情,无需担心。我认为这是由于一些投机性的执行。
但是,当其他人使用我的库时,他们可能会尝试使用 -fpe0 将他们的代码链接到我的库,这可能会导致麻烦。所以我想知道:有没有办法在运行时关闭 FPE 处理程序,当进入我的库并在返回时将其恢复到原始状态?
谢谢!
【问题讨论】:
-
检查
ieee_exceptions内部模块。我自己从来没有用过,所以我只是评论。 -
谢谢你的作品。应该提到的是,使用 gfortran 至少需要 4.10 版本。 ifort 至少从 v12 开始支持它(没有旧版本可以测试...)
-
您可以发布详细信息作为答案吗?它可能对其他人有用。
标签: error-handling fortran libraries intel-mkl sigfpe