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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
有没有办法用fortran读取文件的某些部分?_Fortran - Fatal编程技术网

有没有办法用fortran读取文件的某些部分?

有没有办法用fortran读取文件的某些部分?,fortran,Fortran,我想根据出现的内容读取数据文件的一部分。 例如,在下面的示例文件中,我想通读该文件,只要一行上有“OW”,代码就必须转到下一行,并将这三个数字存储在一个数组中。 我如何实现这一点 amber 0 2 18 timestep 100 18 0 2

我想根据出现的内容读取数据文件的一部分。 例如,在下面的示例文件中,我想通读该文件,只要一行上有“OW”,代码就必须转到下一行,并将这三个数字存储在一个数组中。 我如何实现这一点

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