警告 "an elemental intrinsic function here be of type integer or character"

warning "an elemental intrinsic function here be of type integer or character"

我的代码中有一行

real(8)::pi=4*atan(1D0)

我用 ifort /stand:03 编译它,它警告我

fortran-learning.f90(3): warning #6009: Fortran 2003 specifies that an elemental intrinsic function here be of type integer or character and each argument must be an initialization expr of type integer or character. [ATAN]

        real(8)::pi=4*atan(1D0)
----------------------^

这是什么意思?

那是f95的限制,不是f03。因此 ifort 中的错误。

此编译器错误已在最新版本中修复。有关详细信息,请参阅 here

在 Fortran 95 中,初始化表达式(常量表达式)比现在严格得多。您使用的表达方式不受官方支持 - 因此出现警告。 当此限制在 Fortran 2003 中取消时,英特尔并未立即修复警告 - 请参阅链接文章。 以防万一你想跟踪这个,英特尔问题 ID 是 DPD200253798。

顺便说一句,这只是一个警告。您可以使用

轻松禁用它
-diag-disable 6009

或 Windows:

/Qdiag-disable:6009