我从ifort移植到gfortran并遇到以下代码问题:
MODULE test
IMPLICIT NONE
REAL*8 :: a
CONTAINS
SUBROUTINE load
a = 0.0d0
NAMELIST /materialProperties/ a
END SUBROUTINE load
END MODULE test
我会收到有关名单的编译错误。无论如何,如果禁用变量初始化(a = 0.0d0注释),则错误消失。这不在英特尔编译器中,我想知道为什么会这样。
答案 0 :(得分:2)
问题在于在为变量NAMELIST
提供值后定义a
。如您所见,删除/评论该行会删除错误,但将a
的声明移至SUBROUTINE load
也是如此。
我的猜测是ifort
会忽略该行,而gfortran
则不会。