如何在fortran中跳过数据行

如何在fortran中跳过数据行,fortran,line,Fortran,Line,我有这个数据文件 并且要在没有第1,2,3,4,5行的情况下读取这些数据 program example real data(15,9) OPEN ( unit=10, file='filename' ) do i = 1, 15 READ (10, *) (data(i,j), j=1,10) enddo print *, data(4,1), data(4,2), data(4,3) stop end 这是我的fortran

我有这个数据文件

并且要在没有第1,2,3,4,5行的情况下读取这些数据

   program example

   real data(15,9)
   OPEN ( unit=10, file='filename'  )
   do i = 1, 15
     READ (10, *) (data(i,j), j=1,10)
   enddo

   print *, data(4,1), data(4,2), data(4,3)

   stop
   end
这是我的fortran代码


如何更改此代码?一种方法是为要“跳过”的每一行输入READ语句。每次遇到READ语句时,它都会读入数据,然后将文件中的“指针”下移到下一行。例如,要跳过3行标题信息:

   DO 50 ilines = 1,3
     READ(1,*)
  50  continue

这实际上不会读取和存储任何内容,但会将文件中的指针向前移动3行

看起来像这样

输入文件:数据

line1
line2 
line3
line4 
line5
line6
line7 
line8
line9 
line10
fortran代码:

implicit none
integer:: lskip,lread
character(len=20)::line
open(20, file = "data")
!skip first 5 line
do lskip = 1,5
  read(20,*)
End do
! First 5 lines skiped
! Now read actual lines
do lread = 1,5
  read(20,*)LINE
  write(*,*)line
End do
close(20)
end
结果

$gfortran so.f90
$./a.out 
 line6               
 line7               
 line8               
 line9               
 line10 
NB:这是一个最小的示例,仅用于显示跳过。您将更改读取内部
lread
循环,以根据数据格式实际读取文件