Чтение 4D-массивов из двух двоичных файлов и запись в один - PullRequest
0 голосов
/ 22 марта 2020

Кто-нибудь знает, как читать и записывать два неформатированных двоичных файла (каждый из которых имеет 4-мерную переменную) в один .bin-файл с одинаковыми размерами?

Я пытаюсь это сделать, но безуспешно ( Я новичок в Фортране):

program teste
implicit none
real, dimension(144,73,12,4) :: air,hgt
integer :: l,k,reclen
real :: irec

inquire(iolength=reclen)air
open(1,file='air.bin',status='old',form='unformatted',access='direct',action='read',recl=reclen)
open(2,file='hgt.bin',status='old',form='unformatted',access='direct',action='read',recl=reclen)
open(3,file='air_hgt.bin',form='unformatted',access='direct',action='write',recl=reclen)

read(1,rec=1)air
read(2,rec=1)hgt
close(1)
close(2)

irec=0

do l=1,4
  do k=1,12
    irec=irec+1
    write(3,rec=irec)air(:,:,k,l)
  end do
  do k=1,12
    irec=irec+1
    write(3,rec=irec)hgt(:,:,k,l)
  end do
end do
close(3)
end program teste

Когда я запускаю код, компилятор никогда не останавливается, даже если файлы .bin очень малы (по 2 МБ каждый). Итак, через несколько минут я заставляю его перестать работать, и созданный файл очень большой (сотни гигабайт). Кажется, не имеет особого смысла.

...