我正在尝试执行Fortran代码,但收到以下错误:
在文件prepmegan4cmaq_grwform.f90的第215行Fortran运行时错误:浮点读取时值错误
这就是我的.f90文件的第215行的样子:
read(shrubfillvalue,"(f7.0)") missing_value
我对Fortran编码没有任何经验,有人能告诉我它的含义以及我如何解决这个问题吗。提前感谢
此错误告诉您,它试图读取的文本不符合数值规则。代码本身很好,错误在输入中(您没有显示(。
F7.0格式将接受七个有效的数字字符,例如:-1234.5、2478bbb、3.15E24等(其中"b"表示空白(。所以,看看输入文件,看看那一行是什么。
程序可能在之前读取了错误数量的行之后,从文件中读取了错误的行。
我也一直在运行最新版本的MEGANv3.2,发现这是在MEGAN团队提供的4个输入文件中的3个文件中读取missing_value属性时出现的问题。
由于四个不同文件(即-128(之间的所有missing_value属性都是相同的,因此一个非常快速的解决方法是简单地更改prepmegan4cmaq_grwform.f90代码,使其仅读取四个数据集中每个数据集的树填充值:
!-----read growth form----------------------------------------------
scale_factor = 1.
inpname = trim(treefilename)
varname = trim(treevarname)
!missing_value = -1.
read(treefillvalue,"(f7.0)") missing_value
CALL megan2_bioemiss
inpname = trim(shrubfilename)
varname = trim(shrubvarname)
! read(shrubfillvalue,"(f7.0)") missing_value
read(treefillvalue,"(f7.0)") missing_value
CALL megan2_bioemiss
inpname = trim(cropfilename)
varname = trim(cropvarname)
! read(cropfillvalue,"(f7.0)") missing_value
read(treefillvalue,"(f7.0)") missing_value
CALL megan2_bioemiss
inpname = trim(grassfilename)
varname = trim(grassvarname)
! read(grassfillvalue,"(f7.0)") missing_value
read(treefillvalue,"(f7.0)") missing_value
CALL megan2_bioemiss
! endif
然后简单地重新编译prepmegan4cmaq_grwform.f90代码。希望这能有所帮助。