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