考虑
INTEGER,DIMENSION(3) :: NumberVector
和
INTEGER :: NumberVector(3)
这两个声明之间有什么区别还是完全相同?(我的意思是在任何可能的上下文和变化中:例如,在这两个相同的情况下,如果我将具有隐式大小的数组声明为子程序的输入参数之一呢?它仍然无关紧要吗?我用了?)
考虑
INTEGER,DIMENSION(3) :: NumberVector
和
INTEGER :: NumberVector(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
除了减少源代码大小和编译时间(更少的解析;现在不那么相关)之外,这还减少了在任何声明中出错的可能性。否则,两种形式都是相等的,并且声明的变量在程序中的任何地方都以完全相同的方式表现。