我不明白为什么
IMPLICIT REAL*8(A-Z)
DIMENSION A(20)
编译好,
REAL*8, DIMENSION A(20)
导致错误
缺少尺寸规格......
答案 0 :(得分:5)
这是dimension
的两个不同含义。第一个是dimension
语句,第二个是在声明中指定dimension
属性。
在指定属性的声明中,必须有::
:
REAL*8, DIMENSION(20) :: A
另请注意,数组规范附加到dimension
,而不附加到变量名。
在::
语句中使用dimension
仅是可选的(Fortran 77除外,不允许使用)。
但是,只允许写
real*8 A(20)
因为dimension
属性也是通过给出数组规范来指定的。
可能还值得注意的是,由于问题中的声明行不正确,因此在固定形式的来源中,错误是不同的。
在固定格式的源代码中,空格不值得注意(超出列布局),所以
real*8, dimension a(20)
是声明
real*8 dimensiona(20)
带有无关的逗号。
答案 1 :(得分:2)
IMPLICIT REAL*8(A-Z)
DIMENSION A(20)
是早期版本的fortran中引入的数组语句声明(参见this link for example),它的工作原理是这样的。
REAL*8, DIMENSION A(20)
不是f77,也不是f90或其他。 Fortran 90及以上版本使用此
REAL*8, DIMENSION(20) :: A