ヘッダー行を読み飛ばす
#で始まる行をヘッダー行(コメント)とみなして読み飛ばすためのプログラムです。
プログラム例
!Skip header lines
nh=0
count_header: do
read(10,'(A)')strm
if(strm(1:1) == "#")then
nh=nh+1
else
exit
endif
enddo count_header
rewind(10)
do i=1,nh; read(10,*); enddo
print '(A,i6)','# of header lines= ',nh
上のプログラムは、以下のファイル例で青字の部分を読み飛ばします。
# Date and time: 09/14/2011 at 15:00:53 -09:00
# hostname: aofd30
# cwd: /work2/am/12.Work11/22.Climatology_2/43.SW_penetration
# user: am
# program name: ./sw_penetration
# imcut= 191
# jmcut= 261
# do i=1,imcut
# do j=1,jmcut
# coef= 0.4086E+07
# cr%xlon1(i,j),cr%ylat1(i,j),term%tnd(i,j),rhs(i,j),term%adv(i,j),wtsurf_KS(i,j),swrad_KS(i,j)
117.041664 20.791668 0.547623E-06 -0.999900E+03 -0.999900E+03 0.185913E-05 0.318956E-05
117.125000 20.791668 0.528153E-06 -0.999900E+03 -0.999900E+03 0.180169E-05 0.315518E-05
117.208336 20.791668 0.512024E-06 -0.999900E+03 -0.999900E+03 0.174838E-05 0.311164E-05
117.291664 20.791668 0.500593E-06 -0.999900E+03 -0.999900E+03 0.174222E-05 0.308037E-05
Fortran 77バージョン
character strm*500
nh=0
100 read(10,'(A)')strm
if(strm(1:1) .eq. "#")then
nh=nh+1
goto 100
endif
rewind(10)
do i=1,nh
read(10,*)
enddo
参考にしたWebsite
http://www.nag-j.co.jp/fortran/FI_9.html
http://www.astro.phys.s.chiba-u.ac.jp/~aplab-user/cgi-bin/wiki3_6_0/wiki.cgi?page=fortran%A4%CE%B4%F0%C1%C3%A3%B2#p21