我正在编写代码并使用 Fortran 中的输入和输出功能。代码看起来像这样(仅用于简化):
PROGRAM TEST
REAL, DIMENSION(1000):: A
REAL:: B
INTEGER::T
!Defining input and output
OPEN(UNIT=1, FILE='input.dat', STATUS='OLD')
OPEN(UNIT=2, FILE='output.dat', STATUS='NEW')
!Reading from file "input.dat"
READ(1,*) (A(I),I=1,1000)
!Just for initial condition
B=0.0
DO T=1, 10
PRINT *, 'Step =', T
DO I=1, 1000
B=B+1.0
A(I)=A(I)/B
END DO
END DO
!Writing results into file "output.dat"
DO I=1, 1000
WRITE (2,100) I, A(I)
END DO
100 FORMAT (' ',T3, I12, T17, F14.4)
END PROGRAM TEST
我使用的是 Gfortran 5.3,结果并不像我预期的那样。我期望获得变量的结果T
程序运行时屏幕上(或 Ubuntu 操作系统中的终端)上显示的变量I
and A(I)
被写入文件output.dat
。我的变量没有问题I
and A(I)
,因为它们已成功写入文件output.dat
。问题出在变量上T
,它没有出现在终端上,但被写入文件中input.dat
。好吧,即使是文件中的前一个文件input.dat
没有被覆盖。有人能给我建议吗?
仅供参考,我还尝试过其他编译器(使用 Windows 操作系统),例如:
- Microsoft Fortran Powerstation(非常旧的):但它的工作方式正如我预期的那样。
- MinGW-w64(Windows 的 GCC 版本):但无法正常工作。