对于 DATA 初始化的变量,SAVE 是否用作单独的语句有什么区别?

Does it make any difference whether SAVE is used as a seperate statement, for a DATA-initialised variable?

这是

INTEGER, DIMENSION(4), SAVE :: foo
DATA foo / 3, 14, 15, 93 /

相当于

INTEGER, DIMENSION(4) :: foo
DATA foo / 3, 14, 15, 93 /
SAVE foo

使用声明语句只是一种指定属性的旧方法。

你也可以做得更短

 INTEGER, SAVE :: foo(4) = [3, 14, 15, 93] 

甚至

 INTEGER :: foo(4) = [3, 14, 15, 93]

因为初始化隐含了 SAVE 属性。

都一样。

在另一个方向,你可以把 DIMENSION 部分放到一个单独的语句中(非常古老的风格)

INTEGER foo
SAVE foo
DIMENSION foo(4)
DATA foo / 3, 14, 15, 93 /

意思还是一样,只是长了点。

parameter不同,它是命名常量,不是变量。