我试图理解包含在以下内容中的Fortran代码: http://heath.cs.illinois.edu/courses/cs598mh/george_liu.pdf
具体来说,是子程序中的数组变量声明。这是一个例子:
SUBROUTINE ROOTLS (ROOT, XADJ, ADJNCY, MASK, NLVL, XLS, LS)
C
INTEGER ADJNCY(1), LS(1), MASK(1), XLS(1)
INTEGER XADJ(1), I, J, JSTOP, JSTRT, LBEGIN
我对数组名称之后的(1)
感到困惑,例如ADJNCY(1)
和XADJ(1)
。这些数组肯定大于一个。 (1)
在这些声明中做了什么?
答案 0 :(得分:3)
事实上,这不是FORTRAN 77,而是FORTRAN 66; - )
(1)
是dirty hack in FORTRAN 66,用于构建类似假定大小的数组的内容。在FORTRAN 77中,这被标准化为(*)
。
假定大小意味着数组的实际值取决于传递给子例程的实际数组的长度。但请注意,阵列的形状不一定保留! Se here对此有一个很好的解释。