2009-07-14 45 views
5

在開始之前,我必須先說明我是FORTRAN的新手。我正在維護一段1978年的遺留代碼。它的目的是從文件中讀取一些數據值,處理這些值,然後將處理後的值輸出到另一個文本文件。FORTRAN WRITE()

鑑於以下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讀取的值。這些值是處理內容,並保存在我已省略的!-- data processing --!部分中的MDS(I,J)中。

我正確地認爲(MDS(I,J),J=1,24)會將24個整數值寫入輸出文件嗎?換句話說,從1到24循環?

+0

@Fortranner添加標籤時,您應該清除問題中的格式化或其他問題。 – 2014-05-07 14:43:32

回答

10

是的,你是對的。語法(MDS(I,J), J=1,24)是「implied DO-loop」,通常用於這種情況。

+0

不客氣。如果你有興趣,我添加了一個關於這個文檔的鏈接。 – 2009-07-14 16:00:00