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