read direct access
直接探査でデータを読む。
12/27’5
ファイルの構造は次のようであると仮定する。
第1ブロック |
1 |
表紙 |
3072 |
第2ブロック |
3073 |
1日目 |
6144 |
第3ブロック |
6145 |
2日目 |
9216 |
第4ブロック |
12289 |
3日目 |
12288 |
|
|
:: |
|
第nブロック |
|
n日目 |
|
宣言
レコード長
INTEGER,PARAMETER
:: l_data=3072
読込むための変数
character(len = l_data),dimension(:),allocatable :: one_line
日数は別途、入力される(n_day)
ALLOCATE(one_line(nday))
開くとき
open(11,file= pathname, status="old",iostat=io, access="direct",recl=l_data)
reclにデータブロックの長さを指定する。
読むとき
do n = 1, nday !1日目からn日目までのデータを読む
i=n+1 ! set of read line --- one line header part
! nrec = n* l_data +1 !注意!recはバイト数の指定ではなく、ブロック数の指定!
read(11,rec=i) one_line(n) !ブロックごとのデータがone_lineに読込まれる。
end do