Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 读取名称列表中的数组部分_Arrays_Fortran_Fortran Namelist - Fatal编程技术网

Arrays 读取名称列表中的数组部分

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”中读取数据

可以将“input.dat”中的数组p提供为

有了这个输入,程序运行正常。尽管如此,我还是更愿意逐行提供数组p。差不多

! 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
/
有一些值得注意的限制:

  • 左侧指示符可以是数组部分,但不能是向量下标
  • 右侧的值数量不能大于左侧的数组元素数量
在第二种情况下,如果右侧的值少于左侧的元素,那么就好像右侧填充了null值

! 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
/