代码之家  ›  专栏  ›  技术社区  ›  DaPhil

gfortran:名称列表和变量初始化

  •  1
  • DaPhil  · 技术社区  · 11 年前

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

    1 回复  |  直到 10 年前
        1
  •  2
  •   Kyle Kanos    11 年前

    问题在于定义 NAMELIST 之后 给出变量 a 一个值。正如您所看到的,删除/注释该行可以删除错误,但移动的声明也是如此 进入 SUBROUTINE load .

    我的猜测是 ifort 忽略该行,同时 gfortran 没有。