我的代码中有一行
real(8)::pi=4*atan(1D0)
我用它编译它ifort /stand:03
并警告我
fortran-learning.f90(3):警告 #6009:Fortran 2003 指定此处的基本内在函数是整数或字符类型,并且每个参数必须是整数或字符类型的初始化 expr。[晒黑]
real(8)::pi=4*atan(1D0) ----------------------^
这是什么意思?
我的代码中有一行
real(8)::pi=4*atan(1D0)
我用它编译它ifort /stand:03
并警告我
fortran-learning.f90(3):警告 #6009:Fortran 2003 指定此处的基本内在函数是整数或字符类型,并且每个参数必须是整数或字符类型的初始化 expr。[晒黑]
real(8)::pi=4*atan(1D0) ----------------------^
这是什么意思?
此编译器错误已在最新版本中修复。有关详细信息,请参见此处。
在 Fortran 95 中,初始化表达式(常量表达式)比现在严格得多。您使用的表达式不受官方支持 - 因此发出警告。当 Fortran 2003 中取消此限制时,英特尔没有立即修复警告 - 请参阅链接文章。以防万一您想跟踪此问题,英特尔问题 ID 为 DPD200253798。
顺便说一句,这只是一个警告。你可以很容易地禁用它
-diag-disable 6009
或在 Windows 上:
/Qdiag-disable:6009
这是 f95 的限制,而不是 f03。因此,ifort 中的一个错误。