Я новичок в Фортране и хотел бы иметь возможность записывать двумерный массив в текстовый файл по строкам (пробелы между столбцами и каждая строка в собственная линия). Я пробовал следующее, и, похоже, это сработало в следующем простом примере:
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 и так далее.
Но, когда я использую вышеперечисленные идеи (т. Е. Последняя предпоследняя, четвертая, предпоследняя, третья и предпоследняя строки кода выше) в более сложной программе , У меня неприятности; Кажется, каждая строка ограничивается (новой строкой) только периодически. (Я не публиковал и, вероятно, не буду публиковать здесь всю мою сложную программу / сценарий - потому что он довольно длинный.) Отсутствие согласованных разделителей строк в моей сложной программе / сценарии, вероятно, предполагает другую ошибку в моем коде, а не четырехстрочная процедура записи в файл, описанная выше, поскольку приведенный выше простой пример, кажется, работает нормально. Тем не менее, мне интересно, не могли бы вы помочь мне подумать, есть ли лучшая процедура построчной записи в текстовый файл , которую я должен использовать?
Большое спасибо за ваше время. Я очень ценю это.