在开始之前,我必须先声明我是 FORTRAN 的新手。我正在维护 1978 年的一段遗留代码。它的目的是从文件中读取一些数据值,处理这些值,然后将处理过的值输出到另一个文本文件。
给定以下 FORTRAN 代码:
INTEGER NM,STUBS,I,J,K
PARAMETER (NM=67,STUBS=43)
INTEGER*4 MDS(STUBS,NM)
CALL OPEN$A(A$RDWR,'/home/test/data.txt', MAXPATHLEN,1)
CALL OPEN$A(A$WRIT,'out',11,2)
DO 90 I=1,2
READ(1,82) STUB
!-- data processing --!
WRITE(2,80) STUB,(MDS(I,J),J=1,24)
90 CONTINUE
80 FORMAT(/1X,A24,25I5)
82 FORMAT(1X,A24,25F5,1)
我的问题是关于
WRITE()
陈述。我明白
(2,80)
指打开的文件输出流,指向文件'out'
并由数字 2 引用。据我所知,80 指的是标签 80 引用的格式声明。STUB
用于存储从文件输入 1 读取的值。这些值是经过处理的,并保存到 MDS(I,J)
中。在 !-- data processing --!
我省略的部分。我是否正确假设
(MDS(I,J),J=1,24)
将 24 个整数值写入输出文件?换句话说,从 1 到 24 循环?
最佳答案
是的,你是对的。语法 (MDS(I,J), J=1,24)
是“implied DO-loop”,通常用于这种情况。
关于io - FORTRAN 写(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126324/