【问题标题】:gfortran error : isnan has no implicit typegfortran 错误:isnan 没有隐式类型
【发布时间】:2015-07-17 10:51:32
【问题描述】:

我正在使用内部isnan 来检查NaN,这在某些情况下可能会出现在我的程序中。

它在我早期的机器上完美运行,现在切换到新机器后,我发现以下编译错误消息:

Error: Function 'isnan' at (1) has no IMPLICIT type

但是,代码是使用 Intel Fortran (ifort) 编译器编译的。

本机的gfortran版本如下:

GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)

我该如何继续?

【问题讨论】:

    标签: fortran nan gfortran


    【解决方案1】:

    如果你有一个相当最新的编译器,你可以编写

     USE, INTRINSIC :: IEEE_ARITHMETIC
    

    然后使用内部模块提供的功能,称为IEEE_IS_NAN

    【讨论】:

      【解决方案2】:

      isnan 是一个非标准扩展,4.1 是非常旧的。也许它是后来添加的。只需升级或使用if (x/=x)

      【讨论】:

      • 谢谢。 if imag(z) /= imag(z) 对于复杂的 z 是否会以同样的方式工作?
      • 如果你只想测试虚部,它应该(假设 imag 不崩溃,但它不应该)。
      • 检查是为了测试崩溃;)。到目前为止没有编译错误,我刚刚测试过,:)
      • 出现时看起来像 4.3。
      • 感谢您的澄清。相关:stackoverflow.com/questions/15944614/…
      猜你喜欢
      • 1970-01-01
      • 2019-01-19
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2018-03-04
      • 2014-08-12
      相关资源
      最近更新 更多