Fortran中的数组声明

时间:2012-05-21 19:30:37

标签: arrays fortran variable-declaration

考虑

INTEGER,DIMENSION(3) :: NumberVector

INTEGER              :: NumberVector(3)

这两个声明之间是否有任何差异,或者它们是否完全相同? (我的意思是在任何可能的上下文和变体中:例如,在这两个是相同的情况下,如果我声明一个隐式大小的数组作为子程序的输入参数之一怎么办?它仍然是无关紧要的我用过?)

2 个答案:

答案 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

除了减少源代码大小和编译时间(更少解析;现在不相关),这减少了在任何声明中出错的可能性。否则两个表单都是相同的,并且声明的变量在程序中的任何位置都表现得完全相同。