5

考虑

INTEGER,DIMENSION(3) :: NumberVector

INTEGER              :: NumberVector(3)

这两个声明之间有什么区别还是完全相同?(我的意思是在任何可能的上下文和变化中:例如,在这两个相同的情况下,如果我将具有隐式大小的数组声明为子程序的输入参数之一呢?它仍然无关紧要吗?我用了?)

4

2 回答 2

8

是的,它是相同的。即使是假设的、延迟的和任何可能的形式。

于 2012-05-21T20:52:57.583 回答
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

除了减少源代码大小和编译时间(更少的解析;现在不那么相关)之外,这还减少了在任何声明中出错的可能性。否则,两种形式都是相等的,并且声明的变量在程序中的任何地方都以完全相同的方式表现。

于 2012-05-23T05:40:16.320 回答