Fortran 数据语句中的语法错误
我在Fortran项目中有以下代码:Fortran 数据语句中的语法错误,fortran,gfortran,fortran77,g77,Fortran,Gfortran,Fortran77,G77,我在Fortran项目中有以下代码: ITEGER IV, IY DIMENSION IV(NTAB,IDEPTH) DIMENSION IY(IDEPTH) DATA IV,IY /(IDEPTH*NTAB)*0,IDEPTH*0)/ 尝试编译项目会生成以下错误: DATA IV,IY /(IDEPTH*NTAB)*0,IDEPTH*0)/ 1 Syntax error in DATA statement at (1). 这在f77/g77(GCC
ITEGER IV, IY
DIMENSION IV(NTAB,IDEPTH)
DIMENSION IY(IDEPTH)
DATA IV,IY /(IDEPTH*NTAB)*0,IDEPTH*0)/
尝试编译项目会生成以下错误:
DATA IV,IY /(IDEPTH*NTAB)*0,IDEPTH*0)/
1
Syntax error in DATA statement at (1).
这在f77/g77(GCC4.1)下工作,但最近的升级将我们转移到GCC4.4和gfortran。现在,这段代码导致了错误,但我看不出问题所在。我的猜测是,这是对标准的扩展,不再受支持。说明重复值应为a 非零、无符号、整型常量或此类变量的符号名 不变的 因此,
IDEPTH*NTAB
不允许作为重复值
您可以通过使用构成乘积的另一个常数来规避此问题:
PROGRAM test
INTEGER IV, IY
INTEGER,PARAMETER :: NTAB=1,IDEPTH=1
INTEGER,PARAMETER :: PROD=NTAB*IDEPTH
DIMENSION IV(NTAB,IDEPTH)
DIMENSION IY(IDEPTH)
DATA IV,IY /PROD*0,IDEPTH*0/
END
或者,要使其严格符合FORTRAN 77,请执行以下操作:
PROGRAM test
INTEGER IV, IY
INTEGER NTAB,IDEPTH
INTEGER PROD
PARAMETER (NTAB=1,IDEPTH=1)
PARAMETER (PROD=NTAB*IDEPTH)
DIMENSION IV(NTAB,IDEPTH)
DIMENSION IY(IDEPTH)
DATA IV,IY /PROD*0,IDEPTH*0/
END
您的代码中有多个输入错误。。。请把它们修好!