gpt4 book ai didi

fortran - 在 fortran 名称列表输入文件中格式化二维数组

转载 作者:行者123 更新时间:2023-12-05 00:00:14 25 4
gpt4 key购买 nike

我正在为 Fortran 代码编写名称列表输入文件。我知道如果你有一个一维数组,你可以通过以下方式填充一系列元素,

&namelist
array(10) = 0, 1, 2, ......., n
&END

相当于
&namelist
array(10) = 0
array(11) = 1
array(12) = 2
...
array(10 + n) = n
&END

我现在需要编写一个二维数组。我想做最短的相当于
&namelist
array2d(1,1) = 1
array2d(1,2) = 2
&END

我可以这样写吗
&namelist
array2d(1) = 1, 2
&END

还是我需要把它写成
&namelist
array2d(1,1) = 1, 2
&END

最佳答案

哇,谢谢你的问题——以前从未听说过名单:) 这很有用!! :) 经过一些测试,较旧的 gfortran 版本在这方面存在问题。假设你有

program nltest
implicit none
integer :: a(3,3)
namelist /mylist/ a
a = 0
open(7, file='nlinput.txt')
read(7, nml = mylist)
write(*,*) a
end program nltest
  • 读取整个数组,a=1,2,3,4,5,6,7,8,9 :无论编译器如何,这都可以正常工作并按预期读取 a(1,1), a(2,1), ...。
  • 读取数组切片,例如a(2,:)=1,2,3 :这在 ifort 和 gfortran 4.6.1 中工作正常,但在 gfortran 4.3 中则不然。

  • 所以做你想做的你应该可以写 array2d(1,:) = 1,2如果代码是用最新的编译器编译的。

    关于fortran - 在 fortran 名称列表输入文件中格式化二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10566010/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com