考虑
INTEGER,DIMENSION(3) :: NumberVector
和
INTEGER :: NumberVector(3)
这两个声明之间是否有任何差异,或者它们是否完全相同? (我的意思是在任何可能的上下文和变体中:例如,在这两个是相同的情况下,如果我声明一个隐式大小的数组作为子程序的输入参数之一怎么办?它仍然是无关紧要的我用过?)
答案 0 :(得分:8)
是的,它是完全相同的。即使是假定的,延迟的和任何可能的形状。
答案 1 :(得分:3)
为了提高代码清晰度并在声明相同类型的多个阵列(在科学计算中并不罕见)时,DIMENSION
属性被添加到Fortran 90中以提高代码清晰度并实现代码节省,例如:而不是
REAL :: mat1(10,20), mat2(10,20), mat3(10,20), mat4(10,20), mat5(10,20)
可以写
REAL, DIMENSION(10,20) :: mat1, mat2, mat3, mat4, mat5
除了减少源代码大小和编译时间(更少解析;现在不相关),这减少了在任何声明中出错的可能性。否则两个表单都是相同的,并且声明的变量在程序中的任何位置都表现得完全相同。