如何跳过fortran中的数据行

时间:2015-12-16 08:32:38

标签: fortran line

enter image description here

我有这个数据文件

并且想要在没有第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代码。

我该如何更改此代码

2 个答案:

答案 0 :(得分:1)

看起来像这样?

输入文件:数据

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循环内的读取,以根据您的数据格式实际读取您的文件

答案 1 :(得分:0)

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

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

这实际上是READ并且不存储任何内容,而是将文件中的指针向前移动3行。