プロが教えるわが家の防犯対策術!

fortran77でプログラムを書いています。
いま以下のような空行を含むデータファイルを読み込んで、プログラム中で計算し、その結果を別のファイルに書き出すものを作りたいと考えています。

1.0 1.1 1.2 1.3
1.0 1.4 1.5 1.6

2.0 2.1 2.2 2.3
2.0 2.4 2.5 2.6

3.0 3.1 3.2 3.3
3.0 3.4 3.5 3.6

*数字はあくまでも例です。
例えば、1列目が2.0で始まる箇所のみ取り出したいのですが、どうもデータの読み込みのところでエラーが起こっているようです。

open(1,file="data.dat")
do i = 1,8
read(1,*) (a(i,j),j=1,4)
enddo

空行や空白の読み飛ばしを行う方法を自分なりに調べてみて、open文にblankを指定するなどの方法があることはわかったんですが、いまいち使いかたがわからず立ち止まってしまいました。

よろしくお願いします。

A 回答 (1件)

ブランク行が無視されるので、例ではi = 6でEOFになってしまいます。


READ文にENDを入れてみてください。

   dimension a(8,4)
   open(1,file="data.dat")
   do 100 i = 1,8
   read(1,*, END=200) (a(i,j),j=1,4)
     write(6, *) (a(i,j),j=1,4)
 100 continue
 200 continue

また、open文にblankを指定できるのは書式付入出力を行う場合だけです。
    • good
    • 0
この回答へのお礼

返事が遅れてしまい、申し訳ありません。
教えていただいた方法でうまく値を取り出すことができました。
ありがとうございました。

お礼日時:2008/10/26 17:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!