Итак, есть несколько вещей, которые не совсем ясны в вашем коде, но я думаю, что здесь наиболее важными битами являются то, что вы хотите указать имя файла с file =
в операторе open
, а не форматирование и циклическое выполнение единицы с iout проблематичны, потому что вы в конечном итоге попадете в системные единицы для stdin и stdout. Кроме того, с этой строкой формата создается впечатление, что вы готовитесь создать имя файла, но на самом деле вы его никогда не используете.
Я не уверен, где ты; продолжаем тестирование мода и т. д., но ниже приведена урезанная версия выше, которая просто создает файлы в цикле:
program manyfiles
implicit none
character(len=70) :: fn
integer, parameter :: numfiles=40
integer, parameter :: outunit=44
integer :: filenum, j
do filenum=1,numfiles
! build filename -- i.dat
write(fn,fmt='(i0,a)') filenum, '.dat'
! open it with a fixed unit number
open(unit=outunit,file=fn, form='formatted')
! write something
write(outunit, *) filenum
! close it
close(outunit)
enddo
end program manyfiles