Каков хороший способ записи массива в текстовый файл по строкам в Фортране?

Я новичок в Фортране и хотел бы иметь возможность записывать двумерный массив в текстовый файл по строкам (пробелы между столбцами и каждая строка в собственная линия). Я пробовал следующее, и, похоже, это сработало в следующем простом примере:

PROGRAM test3
  IMPLICIT NONE

  INTEGER :: i, j, k, numrows, numcols
  INTEGER, DIMENSION(:,:), ALLOCATABLE :: a

  numrows=5001
  numcols=762
  ALLOCATE(a(numrows,numcols))
  k=1
  DO i=1,SIZE(a,1)
    DO j=1,SIZE(a,2)
      a(i,j)=k
      k=k+1
    END DO
  END DO

  OPEN(UNIT=12, FILE="aoutput.txt", ACTION="write", STATUS="replace")
  DO i=1,numrows
    WRITE(12,*) (a(i,j), j=1,numcols)
  END DO
END PROGRAM test3

Как я уже сказал, в этом простом примере это работает нормально: полученный текстовый файл, aoutput.txt , содержит числа 1-762 в строке 1, числа 763-1524 в строке 2 и так далее.

Но, когда я использую вышеперечисленные идеи (т. Е. Последняя предпоследняя, ​​четвертая, предпоследняя, ​​третья и предпоследняя строки кода выше) в более сложной программе , У меня неприятности; Кажется, каждая строка ограничивается (новой строкой) только периодически. (Я не публиковал и, вероятно, не буду публиковать здесь всю мою сложную программу / сценарий - потому что он довольно длинный.) Отсутствие согласованных разделителей строк в моей сложной программе / сценарии, вероятно, предполагает другую ошибку в моем коде, а не четырехстрочная процедура записи в файл, описанная выше, поскольку приведенный выше простой пример, кажется, работает нормально. Тем не менее, мне интересно, не могли бы вы помочь мне подумать, есть ли лучшая процедура построчной записи в текстовый файл , которую я должен использовать?

Большое спасибо за ваше время. Я очень ценю это.

12
задан Andrew 13 November 2015 в 16:28
поделиться