私はすでに同様の投稿をチェックしました。解決策はここでMSBによって与えられます行数はわかっているが各行のエントリ数が不明なFortranのデータファイルの読み取り
だから、私が抱えている問題は、テキストファイルから入力を読み取ろうとしているということです。1 行に 3 つの変数があるはずです。ただし、入力ファイルに 2 つの変数が含まれる場合があります。その場合、最後の変数をゼロにする必要があります。IOSTAT で READ ステートメントを使用しようとしましたが、値が 2 つしかない場合は、次の行に移動し、次に使用可能な値を読み取ります。3番目の値がない場合、2つの値を読み取った後、1行目で停止させる必要があります。
それを行う1つの方法は、IOSTAT> 0になるコメント/読み込もうとしているタイプ以外のタイプ(この場合、コメントがcharであるときにfloatを読んでいる)を持つことであり、それを小切手。しかし、場合によっては、そのコメントがない場合があります。それよりも機能することを確認したい。
コードの一部
read(15,*) x
read(15,*,IOSTAT=ioerr) y,z,w
if (ioerr.gt.0) then
write(*,*)'No value was found'
w=0.0;
goto 409
elseif (ioerr.eq.0) then
write(*,*)'Value found', w
endif
409 read(15,*) a,b
read(15,*) c,d
INPUT FILE の形式は次のとおりです。
-1.000 abcd
12.460 28.000 8.00 efg
5.000 5.000 hijk
20.000 21.000 lmno
「8.00 efg」がない場合でも機能させる必要があります
この場合
-1.000 abcd
12.460 28.000
5.000 5.000 hijk
20.000 21.000 lmno
MSB が提案する文字列メソッドを使用できません。他に方法はありますか?