在Fortran数组声明(Array declaration in Fortran)

2019-06-24 15:40发布

考虑

INTEGER,DIMENSION(3) :: NumberVector

INTEGER              :: NumberVector(3)

有没有任何区别这两个声明之间或者他们完全一样? (我的意思是在任何可能的情况下,变异:例如,在这两个是相同的情况下,如果我声明什么与一个隐含尺寸作为子程序的输入参数中的一个的阵列将它仍然是不相关的,其中一个我用了?)

Answer 1:

是的,这是相同的。 即使假定,延期和任何可能的形状。



Answer 2:

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

除了减少源代码的大小和编译时间(较少的解析,并不是时下有关),这样可以减少任何声明犯错误的可能性。 否则,这两种形式都是平等的,声明的变量处处表现得完全在节目中以同样的方式。



文章来源: Array declaration in Fortran