У меня есть несколько файлов входных данных с именами angleFile1.dat,angleFile2.dat,angleFile3.dat и так далее. (у меня более 100 файлов)
Каждый файл содержит 45000 данных углов. Я хочу сгруппировать эти углы, чтобы получить распределение в пределах от 0 до 360 градусов.
Я написал код Fortran, чтобы выполнять работу для одного файла за раз.
Этот код будет читать входной файл «angleFile1.dat» и записывать распределение (в бинах) в файл «angleOut.dat».
program binangle
implicit none
integer :: i, j, k
integer,parameter :: arr=45000
real,dimension(1:arr) :: aangle
integer,dimension(0:360) :: binaangle
do i = 0,360
binaangle(i) = 0.0
end do
!OPEN OUTPUT FILE
open(unit=49,status="unknown",file="angleOut.dat")
!OPEN INPUT FILE
open(unit=50,status="unknown",file="angleFile1.dat")
read(50,'(F8.3)') (aangle(i), i = 1,arr)
! DO THE BINNING
do j = 1, arr
binaangle(int(aangle(j))) = binaangle(int(aangle(j))) + 1
end do
! WRITE INTO OUTPUT FILE
do k = 0,360
write(49,*) k, " ", binaangle(k)
end do
Как заставить этот код рекурсивно принимать входные файлы (angleFile1.dat, angleFile2.dat, angleFile3.dat и, скажем, до angleFile100.dat) и записывать дистрибутив в тот же выходной файл?
Помощь очень ценится.