Fortran,在初始化带有参数属性的数组时最好使用维

Fortran,在初始化带有参数属性的数组时最好使用维,fortran,Fortran,在Fortran中,初始化参数数组的这两种方法相同吗?如果不是,则维度(*)的含义是什么 整数、参数、维度(2)::x=[1,2] vs integer,parameter,dimension(*):x=[1,2]这两个声明的效果是相同的:一个名为1的常量数组,其形状[2]具有明显的值 使用dimension(*)使数组成为隐含形状而不是显式形状:命名常量的形状由常量表达式隐含 哪个更好?嗯,并非所有编译器都支持隐式形状(Fortran 2008的一项功能),但它省去了编写两次形状的麻烦。GCC

在Fortran中,初始化参数数组的这两种方法相同吗?如果不是,则
维度(*)
的含义是什么

整数、参数、维度(2)::x=[1,2]

vs


integer,parameter,dimension(*):x=[1,2]

这两个声明的效果是相同的:一个名为1的常量数组,其形状
[2]
具有明显的值

使用
dimension(*)
使数组成为隐含形状而不是显式形状:命名常量的形状由常量表达式隐含


哪个更好?嗯,并非所有编译器都支持隐式形状(Fortran 2008的一项功能),但它省去了编写两次形状的麻烦。

GCC>v7.1.1和Intel ifort>2018似乎都支持隐式形状。