1

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

4

1 回答 1

0

正如 Vladimir 指出的那样,请求的功能由 ieee_exceptions 内部模块提供:请参见此处

英特尔的 ifort 至少从第 12 版(已测试)开始支持这一点,并且可能由 4.10 版(未测试)的 gfortran 支持。

于 2015-03-19T14:51:59.593 回答