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
補足
早速のご返答有難うございます。 誠に申し訳ありません。#1様のおっしゃる通り、OSならびにソース等示す必要がありますね。 あまりの不備をお許しください。 ご指摘にお答えしますと、 OS:Windows xp FORTRAN:Compaq Visual Fortran version 6.1 source: --main-- OPEN(UNIT=28,FILE='D:\rslt_face\'//NRFILE//'.dat', & ACCESS='SEQUENTIAL',STATUS='OLD') CALL FLINFACE(IFACE,IEND,MODULUS,JMARK,FRSTR,FREFFST, & FRDFEFFST,FRSTN,FRSUMEPSTN) CLOSE(UNIT=28) --subroutine-- SUBROUTINE FLINFACE(IFACE,IEND,MODULUS,JMARK,FRSTR,FREFFST, & FRDFEFFST,FRSTN,FRSUMEPSTN) IMPLICIT REAL*8(A-H,O-Z) COMMON /D/ MODE COMMON /ELTYPGS/ ICLAS,NODE,NGAUS,IPLAN,ISTR,NSTR CHARACTER*120 D120 DIMENSION JMARK(IFACE,IEND) DIMENSION FRSTR(6,4,IFACE,IEND) DIMENSION FREFFST(4,IFACE,IEND),FRDFEFFST(4,IFACE,IEND) DIMENSION FRSTN(6,4,IFACE,IEND),FRSUMEPSTN(4,IFACE,IEND) c READ(28,'(5X,I5)') MODE READ(28,'(8X,I2)') MODULUS C DO 60 L=1,IEND READ(28,'(A120)') D120 READ(28,'(A120)') D120 * * * 上に示しますオープン文、もしくはその直後のサブルーチンあたりでこけてるようです。 ご指摘に十分添えているか分かりませんが、お願いします。新たなご指摘があれば逐次対応させていただきます。