在 Fortran 中读取浮点数期间的错误值

Bad value during floating point read in Fortran

我正在尝试从 .wve 文件中读取数据。但是有一些我找不到的错误。

这是错误信息: "在文件arbitime_T16_parts.for的第84行(单位=30,文件='oji.wve') Fortran 运行时错误:浮点读取期间的错误值

而 óji.wve' 看起来像这样:

29981    .0100 1.0
-5.63983   -5.64221   -5.64460   -5.63959   -5.64150   -5.65437   -5.65652   -5.64579
-5.64102   -5.64150   -5.63983   -5.62433   -5.62695   -5.62934   -5.63649   -5.63363
-5.63625   -5.63673   -5.62958   -5.64341   -5.64984   -5.63601   -5.63601   -5.64436
-5.63721   -5.64436   -5.64245   -5.64412   -5.64650   -5.66176   -5.65294   -5.64054
-5.63888   -5.63578   -5.63721   -5.63959   -5.64531   -5.64460   -5.63911   -5.64007
-5.63840   -5.63816   -5.64174   -5.63411   -5.63053   -5.63578   -5.64269   -5.64293
-5.64770   -5.64698   -5.64078   -5.62362   -5.62982   -5.63578   -5.63649   -5.64388
-5.64221   -5.64150   -5.64460   -5.65008   -5.64698   -5.64555   -5.63864   -5.63458
-5.63673   -5.63888   -5.63482   -5.63649   -5.64221   -5.63792   -5.62672   -5.63172
-5.64531   -5.65080   -5.64388   -5.64174   -5.64007   -5.65032   -5.65533   -5.65747
-5.64817   -5.63244   -5.62910   -5.63554   -5.64364   -5.64603   -5.63530   -5.63530
.....................................................................

和程序:

 C     READ EARTHQUAKE DATA
 C
       READ(30,*) NEND,DT,GAL
       WRITE(6,*) NEND,DT,GAL
       READ(30,2222) (Z(JJ),JJ=1,NEND)
  2222 FORMAT(8F10.5)
       CLOSE(30)

第 84 行是 "READ(30,2222) (Z(JJ),JJ=1,NEND)"

我已尝试对代码进行不同的修改,但没有得到任何结果。任何帮助将不胜感激!

格式(F10.5)表示每次输入10个字符。但是您的文件每个数字有 11 个字符。因此,对于第 5 个数字,它会尝试获取无法解释的 9 -5.641

-5.63983   -5.64221   -5.64460   -5.63959   -5.64150   -5.65437   -5.65652   -5.64579
|--- 1---||--- 2---||--- 3---||--- 4---||--- 5---||--- 6---||--- 7---||--- 8---|

最简单的解决方案是更改

 2222 FORMAT(8F10.5)

进入以下两个选项之一:

 2222 FORMAT(8F11.5)
 2222 FORMAT(8(F10.5,X))

或者您可以完全取出 FORMAT 语句,然后键入

READ(30, *) (Z(JJ),JJ=1,NEND)