Avant de commencer, je dois commencer par dire que je suis novice en matière de FORTRAN. Je maintiens un morceau de code hérité de 1978. Son but est de lire certaines valeurs de données d'un fichier, de traiter les valeurs, puis de sortir les valeurs traitées dans un autre fichier texte.FORTRAN WRITE()
Vu le code FORTRAN suivant:
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)
Ma question est en ce qui concerne la déclaration WRITE()
.
Je comprends que (2,80)
fait référence au flux de sortie de fichier ouvert et pointant vers le fichier 'out'
et référencé par le chiffre 2. Je comprends que 80 fait référence à la déclaration de format référencé par l'étiquette 80.
STUB
est utilisé pour stocker les valeurs lues à partir de l'entrée de fichier 1. Ces valeurs sont ce qui est traité, et enregistré dans MDS(I,J)
dans la section !-- data processing --!
que j'ai omis.
Ai-je raison de supposer que (MDS(I,J),J=1,24)
va écrire 24 valeurs entières dans le fichier de sortie? En d'autres termes, en boucle de 1 à 24?
@Fortranner Lors de l'ajout des tags, vous devez également résoudre les problèmes de formatage ou autres de la question. –