Prima di iniziare, devo prefigurare affermando che sono un principiante quando si tratta di FORTRAN. Sto mantenendo un pezzo di codice legacy del 1978. Lo scopo è leggere alcuni valori di dati da un file, elaborare i valori e quindi inviare i valori elaborati a un altro file di testo.FORTRAN WRITE()
Dato il seguente codice 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)
La mia domanda è per quanto riguarda la dichiarazione WRITE()
.
Sono consapevole che (2,80)
riferisce al flusso di output file aperto e punta al file 'out'
e fatto riferimento con il numero 2. comprendo che 80 si riferisce alla comunicazione formato di riferimento per etichetta 80.
STUB
è utilizzato per memorizza i valori letti dall'input del file 1. Questi valori sono ciò che viene elaborato e salvati in MDS(I,J)
nella sezione !-- data processing --!
che ho omesso.
Sono corretto nel presupporre che (MDS(I,J),J=1,24)
scriverà 24 valori interi nel file di output? In altre parole, looping da 1 a 24?
@Fortranner Quando si aggiungono i tag, è necessario pulire anche la formattazione o altri problemi nella domanda. –