Fortran运行时错误:浮点读取期间的值错误
我试图读取一个标签分隔的文本文件,在Ubuntu-13中使用“gfortran”。我得到以下错误 “Fortran运行时错误:浮点读取期间的值不正确” 程序如下所示Fortran运行时错误:浮点读取期间的值错误,fortran,Fortran,我试图读取一个标签分隔的文本文件,在Ubuntu-13中使用“gfortran”。我得到以下错误 “Fortran运行时错误:浮点读取期间的值不正确” 程序如下所示 CHARACTER*8 STID OPEN (8,FILE='station.txt', STATUS='OLD',FORM='FORMATTED') OPEN (10,FILE='stn.dat',FORM='UNFORMATTED') IFLAG = 0 C Read and
CHARACTER*8 STID
OPEN (8,FILE='station.txt', STATUS='OLD',FORM='FORMATTED')
OPEN (10,FILE='stn.dat',FORM='UNFORMATTED')
IFLAG = 0
C Read and Write
10 READ (8,9000,END=90) IYEAR,IMONTH,STID,RLAT,RLON,RVAL
9000 FORMAT (I4,T1,I2,T1,A8,3F5.1)
IF (IFLAG.EQ.0) THEN
IFLAG = 1
IYROLD = IYEAR
IMNOLD = IMONTH
ENDIF
C If new time group, write time group terminator.
C Assuming no empty time groups.
IF (IYROLD.NE.IYEAR.OR.IMNOLD.NE.IMONTH) THEN
NLEV = 0
WRITE (10) STID,RLAT,RLON,TIM,NLEV,NFLAG
ENDIF
IYROLD = IYEAR
IMNOLD = IMONTH
C Write this report
TIM = 0.0
NLEV = 1
NFLAG = 1
WRITE (10) STID,RLAT,RLON,TIM,NLEV,NFLAG
WRITE (10) RVAL
GO TO 10
C On end of file write last time group terminator.
90 CONTINUE
NLEV = 0
WRITE (10) STID,RLAT,RLON,TIM,NLEV,NFLAG
PRINT *, STID,RLAT,RLON,TIM,NLEV,NFLAG
STOP
END
输入文本文件如下所示
1985 11 AAAA 18.2 42.7 9.2
1985 11 BBBB 25.3 49.5 0.0
1985 11 cccc 21.5 41.6 22.6
1985 11 ddddd 29.8 40.1 3.6
.... .. ..... .... .... ...
欢迎,所有Fortran问题请使用tag。请务必接受欢迎并阅读。您的程序尚未完成。我们缺少许多变量声明。还是他们真的失踪了?您是否使用
隐式无
?你真的,真的,真的应该。学习现代Fortran,你的风格来自不同的世纪,现在不应该这样编程。如果你的ifs也缺少一个结束if
。请阅读并提供一个真实的代码。对于一个简单的结构良好的数据文件(如图所示),使用列表定向读取几乎总是比摆弄精确的格式更容易。非常感谢大家!我已经通过使用您的建议解决了这个问题,即声明变量、使用现代fortran syntex和使用列表定向阅读。欢迎使用,请对所有fortran问题使用tag。请务必接受欢迎并阅读。您的程序尚未完成。我们缺少许多变量声明。还是他们真的失踪了?您是否使用隐式无
?你真的,真的,真的应该。学习现代Fortran,你的风格来自不同的世纪,现在不应该这样编程。如果你的ifs也缺少一个结束if
。请阅读并提供一个真实的代码。对于一个简单的结构良好的数据文件(如图所示),使用列表定向读取几乎总是比摆弄精确的格式更容易。非常感谢大家!通过使用您的建议,即声明变量、使用现代fortran syntex和使用列表定向读取,我已经解决了这个问题。