Я бы также порекомендовал модуль csv_file из FLIBS . Fortran хорошо оснащен для чтения CSV-файлов, но не так много, чтобы писать их. С модулем csv_file вы ставите
use csv_file
в начале вашей функции / подпрограммы и затем вызовите ее с помощью:
call csv_write(unit, value, advance)
где unit = номер файловой единицы, value = массив или скалярное значение, которое вы хотите записать, и advance = .true. или .false. в зависимости от того, хотите ли вы перейти к следующей строке или нет.
Пример программы:
program write_csv
use csv_file
implicit none
integer :: a(3), b(2)
open(unit=1,file='test.txt',status='unknown')
a = (/1,2,3/)
b = (/4,5/)
call csv_write(1,a,.true.)
call csv_write(1,b,.true.)
end program
выход:
1,2,3
4,5
если вы вместо этого просто хотите использовать команду записи, я думаю, вы должны сделать это так:
write(1,'(I1,A,I1,A,I1)') a(1),',',a(2),',',a(3)
write(1,'(I1,A,I1)') b(1),',',b(2)
, который очень запутан и требует, чтобы вы знали максимальное количество цифр, которые будут иметь ваши значения.
Я бы настоятельно рекомендовал использовать модуль csv_file. Это, безусловно, спасло меня от многих часов разочарования.