【发布时间】:2017-01-19 20:30:09
【问题描述】:
谁能解释一下 Fortran 如何读取数据,尤其是从文本文件中读取数据。我以为我了解 I/O 的行为和格式选项,但下面的示例让我感到困惑。
我正在尝试从包含如下所示三行的文本文件 Domain.txt 中读取三个值
221
500.0200
500.0000
这个文件然后被我下面的程序读取
program main
implicit none
integer :: N
real :: xmax,xmin
open(unit=1,file='Domain.txt')
read(1,*) N ! Read first line
read(1,*) xmax ! Read second line
read(1,*) xmin ! Read third line
print*, N
print*, xmax
print*, xmin
end program
这个程序的结果是
221
500.019989
500.000000
所以我对xmax 变量的第二个输出产生了困惑。为什么它会在第二行读为500.019989 而不是500.0200?
我尝试在 read 语句中使用 fortran 格式 format(fm.d) 表示只读取小数点后的前两位,但我始终无法解决问题。
我正在使用 gfortran 4.8.5。任何帮助,将不胜感激。我也知道这与此处提出的问题 (Reading REAL's from file in FORTRAN 77 - odd results) 有点重复,但我没有足够的声誉来评论和询问有关解决方案的问题。
【问题讨论】:
-
可能还相关的是this question,它在从文件读取时查看精度。
标签: io floating-point fortran gfortran