有没有办法用fortran读取文件的某些部分?
我想根据出现的内容读取数据文件的一部分。 例如,在下面的示例文件中,我想通读该文件,只要一行上有“OW”,代码就必须转到下一行,并将这三个数字存储在一个数组中。 我如何实现这一点有没有办法用fortran读取文件的某些部分?,fortran,Fortran,我想根据出现的内容读取数据文件的一部分。 例如,在下面的示例文件中,我想通读该文件,只要一行上有“OW”,代码就必须转到下一行,并将这三个数字存储在一个数组中。 我如何实现这一点 amber 0 2 18 timestep 100 18 0 2
amber
0 2 18
timestep 100 18 0 2 0.001000
25.20 0.000 0.000
0.000 25.20 0.000
0.000 0.000 25.20
OW 1 15.999400 -0.847600
-8.3620E+00 1.0724E+01 7.9568E+00
HW 2 1.007900 0.423800
-7.8947E+00 1.0963E+01 8.7573E+00
这只是我在评论中建议的一个草图,“您可以逐行将文件读入字符串,然后根据字符串的内容进行操作。”
当遇到“OW”时,它将
read_numbers
设置为true。然后它将在下一个过程中读取数字。根据需要添加任何错误处理。您需要将其读入哪种数据结构?你有密码吗?您可以逐行将文件读入字符串,然后根据字符串的内容进行操作;x、 这个答案给了我一些关于如何实现它的想法。伟大的
logical :: read_numbers
character(255) :: line
read_numbers = .false.
do
read(unit,'(a)') line
if (read_numbers) then
read(line,*) array
read_numbers = .false.
end if
read_numbers = (line(1:2)=='OW')
end do