使用Fortran从ASCII文件读取数字时获取错误的值

时间:2017-04-17 17:55:39

标签: fortran

我正在尝试将值的文本文件读入Fortran。值本身由空格分隔:

2.606981379902478 .3902892116613899 24.99728028637431
2.38197636218735 .3006054545842558 24.23058044177526
2.321277032042287 .3050883909675102 23.19812552848228

我正在尝试打开文件并将每行中的值读入双精度浮点数组,然后再将其写回屏幕。

IMPLICIT NONE
PARAMETER, INTEGER       :: DP=KIND(1.0D0)
REAL(DP), DIMENSION(3)   :: vector

OPEN(UNIT=11, FILE="results.txt",  FORM="FORMATTED")
DO
      READ(11, IOSTAT=k) vector
      IF (k .LT. 0) THEN
             EXIT
      END IF

      WRITE(*,*) vector
END DO

但是,它写出的值与我正在读取的值不匹配。例如,对于第一行,它会打印

1.4821969375237396E-323   6.9022845013543139E-310   2.0735816580202116E-317

对于我正在阅读的值与其打印出来的值之间的差异有什么解释?我已经在网上看了很多,我找不到解释或解决方案。如果它有帮助,我正在使用fortran 90并使用gfortran进行编译。

0 个答案:

没有答案