1

我正在从 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 注释),那么错误就会消失。这不在英特尔编译器中,我想知道为什么会这样。

4

1 回答 1

2

问题在于在给变量赋值NAMELIST 之后a定义。如您所见,删除/注释该行会删除错误,但将声明a移至SUBROUTINE load.

我的猜测是ifort忽略那条线,而gfortran没有。

于 2013-10-11T13:21:13.133 回答