在我开始之前,我必须先说明我是一个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用于存储从文件input 1读取的值。这些值将被处理,并保存到我已经省略的!-- data processing --!部分中的MDS(I,J)中。
假设(MDS(I,J),J=1,24)将向输出文件写入24个整数值,我的假设正确吗?换句话说,从1到24循环?
发布于 2009-07-14 15:53:12
是的,你是对的。语法(MDS(I,J), J=1,24)是一个"implied DO-loop“,通常用于这样的情况。
https://stackoverflow.com/questions/1126324
复制相似问题