2015-03-19 57 views
1

我有一个使用Intel MKL(静态链接)编写的用Fortran编写的库。我正在使用ifort进行编译和链接。
当我使用-fpe0选项将我的库(动态)与其他代码链接起来时,我在MKL中获得了浮点异常,这似乎是英特尔公认的事情,无需担心。我认为这是由于一些投机性的处决。
但是,当其他人使用我的库时,他们可能会尝试使用-fpe0将他们的代码链接到我的库,这可能会导致麻烦。所以我想知道:有没有什么办法可以在运行时关闭FPE处理程序,然后进入我的库并在返回时将其恢复到原始状态?
谢谢!在Fortran运行时禁用FPE处理程序

+0

检查'ieee_exceptions'内在模块。从来没有使用它,所以我只是评论。 – 2015-03-19 09:42:42

+0

谢谢你的作品。应该提到的是,使用gfortran至少需要4.10版本。 ifort支持它至少从v12开始(没有旧版本用于测试...) – fpnick 2015-03-19 14:21:20

+0

你可以发布详细信息作为答案吗?它可能对其他人有用。 – 2015-03-19 14:39:29

回答

0

正如普京指出,所要求的功能由IEEE_EXCEPTIONS提供的内在模块:See here

这是由英特尔的ifort至少版本12(测试),并可能从4.10版本(没有测试gfortran支持)。

相关问题