Fortranのエラー
お世話になります。
Fortran初心者です。
いまFortranでcsvファイルからデータを読みこむといったプログラムを作成しようと思っております。
まず、行いたいことは、複数のcsvファイル(0001.csv→0004.csvなど)のデータをプログラムに読込ませたいのですがうまくいきません。
0001.csvや0002.csvとしたいのに、INNAME.csvとなってしまいます。
なので、次に0001.csvだけを指定してたのですが下のデータを全く読み込んでくれません。
ちなみに0001.csvは、このようなデータです。
0,0,-107.75939 ,-85.57285 ,0.00000 ,0.00000 ,0.00000 ,0.00000
1,0,-105.54305 ,-85.56864 ,0.00000 ,0.00000 ,0.00000 ,0.00000
2,0,-103.32661 ,-85.56443 ,0.00000 ,0.00000 ,0.00000 ,0.00000
3,0,-101.11009 ,-85.56022 ,0.00000 ,0.00000 ,0.00000 ,0.00000
-
7325,0,106.16862 ,80.19408 ,0.00000 ,0.00000 ,0.00000 ,0.00000
エラーの部分としては、
READ(j,*) x,y,xmm,ymm,U,V,W,Length
であり、エラーが出て、ファイルを読んでくれません。
エラーは Invalid character in fieldと出て、readする書式が違うのかと
自分なりに原因を探し変更してみたのですがわかりませんでした。
みなさまお忙しいところ本当にすみません。
初心者なのでどこかつまづいているかもしれないのですが、それがわかりません。
ご教授頂けたら幸いです。
よろしくお願い致します。
プログラム全体だと長いので
以下がプログラムのはじめから途中までの中身です。
PROGRAM MAIN
Implicit None
INTEGER i,j,k,sample,x,y
CHARACTER*4 INNAME
REAL xmm,ymm,U,V,W,Length
DIMENSION x(7326),y(7326),xmm(7326),ymm(7326)
& ,U(7326),V(7326),W(7326),Length(7326)
i=1
j=1
x=0
y=0
WRITE(INNAME,'(I4.4)') j
WRITE(*,*) INNAME !!変数INNAMEに返す値は0001です。
OPEN(j, file='0001.csv') !!'//INNAME//.csv'だとINNAME.csvに。0001.csv,0002.csvにしたい。
c !-- read data
sample=7326
DO k=i,sample
READ(j,*) x,y,xmm,ymm,U,V,W,Length !!READがうまくいかない。Invalid character in fieldのエラー
ENDDO
お礼
ありがとうございました。すごいです。できました。where文を使うとはわからなかったです。色々ネットや本で調べていたのですが、where文の使い方が、命令が「条件の対象となった配列への代入文のみ」であるということ、と書いてあるんですが、よくわかりません。if文との違いが、どう解釈すればよいか。配列の場合はwhere文?というわけでもないですよね? あと、where文を使わず、if文でも、同じように表現できますか? 最後に、等しいの記号は(==)だと思っていたのですが、倫理式だけその仕様なのでしょうか?他は、等しい表すときは(=)で表現できるんですか? すいません、どうか教えていただけませんか。お願いします。