ФОРТРАН ПИСАТЬ () - PullRequest
       27

ФОРТРАН ПИСАТЬ ()

5 голосов
/ 14 июля 2009

Прежде чем начать, я должен предисловие, заявив, что я новичок, когда дело доходит до Фортрана. Я поддерживаю устаревший фрагмент кода с 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?

1 Ответ

10 голосов
/ 14 июля 2009

Да, вы правы. Синтаксис (MDS(I,J), J=1,24) представляет собой « подразумеваемую петлю DO » и обычно используется в подобных ситуациях.

...