Lev*_* K. 3 arrays fortran declare
我不明白为什么
IMPLICIT REAL*8(A-Z)
DIMENSION A(20)
Run Code Online (Sandbox Code Playgroud)
编译好,并且
REAL*8, DIMENSION A(20)
Run Code Online (Sandbox Code Playgroud)
导致错误
缺少尺寸规格......
这是两个不同的含义dimension.第一个是dimension声明,第二个是指dimension在声明中指定属性.
在指定属性的声明中,必须具有:::
REAL*8, DIMENSION(20) :: A
Run Code Online (Sandbox Code Playgroud)
另请注意,数组规范附加到dimension变量名称,而不是附加到变量名称.
::在dimension声明中使用仅仅是可选的(Fortran 77中除外,不允许使用).
但是,它只是允许写
real*8 A(20)
Run Code Online (Sandbox Code Playgroud)
因为dimension属性也是通过给出数组规范来指定的.
值得注意的是,由于问题中的声明行不正确,因此在固定形式的源中,错误是不同的.
在固定形式的源中,空格不是注意的(超出列布局),所以
real*8, dimension a(20)
Run Code Online (Sandbox Code Playgroud)
是声明
real*8 dimensiona(20)
Run Code Online (Sandbox Code Playgroud)
带有一个无关的逗号.