gfortran 中的 ieee_arithmetic 内在模块

Posted

技术标签:

【中文标题】gfortran 中的 ieee_arithmetic 内在模块【英文标题】:ieee_arithmetic intrinsic module in gfortran 【发布时间】:2015-06-10 04:17:28 【问题描述】:

我需要使用 gfortran 编译一个依赖于ieee_arithmetic 的库。但是发现gfortran无法识别这个模块。

例如使用代码a.f90

program test
   use,intrinsic :: ieee_arithmetic
   real :: x
   read *, x
   if (ieee_is_nan(x)) then
      print *, "Nan"
   else
   print *, "Not NaN"
end if
end program test

编译时出现如下提示

$ gfortran a.f90
a.f90:2.19:

use,intrinsic :: ieee_arithmetic
               1
Fatal Error: Can't find an intrinsic module named 'ieee_arithmetic' at (1)

如何让 gfortran 知道 ieee_arithmetic 内部模块在哪里?

发现ifort 可以使用ieee_arithmetic 模块。但我希望让 gfortran 适合这种情况。

【问题讨论】:

【参考方案1】:

从 GFortran 版本 5 开始支持 IEEE 模块。请参阅 https://gcc.gnu.org/gcc-5/changes.html 如果您使用的是旧版本,您应该会看到帖子中显示的错误消息。

【讨论】:

以上是关于gfortran 中的 ieee_arithmetic 内在模块的主要内容,如果未能解决你的问题,请参考以下文章

编译使用带有gfortran的英特尔MKL模块的代码

在gfortran中使用“pragma GCC优化”

gfortran编译错误错误:[关闭]的不可分类声明

即使使用 `-dec-math`,gfortran 也会对 `dacosd_` 给出未定义的引用

配置编译器(GCC和GFortran)

浮点错误 gfortran