Arrays 读取名称列表中的数组部分
考虑一个包含二维数组的名称列表。 例如,以下程序从文件“input.dat”中读取数据 可以将“input.dat”中的数组p提供为 有了这个输入,程序运行正常。尽管如此,我还是更愿意逐行提供数组p。差不多Arrays 读取名称列表中的数组部分,arrays,fortran,fortran-namelist,Arrays,Fortran,Fortran Namelist,考虑一个包含二维数组的名称列表。 例如,以下程序从文件“input.dat”中读取数据 可以将“input.dat”中的数组p提供为 有了这个输入,程序运行正常。尽管如此,我还是更愿意逐行提供数组p。差不多 ! input.dat &VAR_p p(1,:) = (1.2, 3.2) p(2,:) = (1.30, 0.0) / 是否有语法可以实现这一点?确实有语法可以指定名称列表记录中的数组部分。它与请求的表单很接近,但不完全相同 在名称列表记录中,项(1.30,0.0)指定了一个复
! input.dat
&VAR_p
p(1,:) = (1.2, 3.2)
p(2,:) = (1.30, 0.0)
/
是否有语法可以实现这一点?确实有语法可以指定名称列表记录中的数组部分。它与请求的表单很接近,但不完全相同 在名称列表记录中,项
(1.30,0.0)
指定了一个复杂值,而不是数组构造函数(这意味着对(1.3,0.0,1.2)
的泛化不是有效值)。相反,您只需要指定一个值列表:1.3、0.0
:
&VAR_p
p(1,:) = 1.2, 3.2
p(2,:) = 1.30, 0.0
/
有一些值得注意的限制:
- 左侧指示符可以是数组部分,但不能是向量下标李>
- 右侧的值数量不能大于左侧的数组元素数量
! input.dat
&VAR_p
p(1,:) = (1.2, 3.2)
p(2,:) = (1.30, 0.0)
/
&VAR_p
p(1,:) = 1.2, 3.2
p(2,:) = 1.30, 0.0
/