diff --git a/src/io/io_read_regotrack.f90 b/src/io/io_read_regotrack.f90 index b00acec0..ac836e10 100644 --- a/src/io/io_read_regotrack.f90 +++ b/src/io/io_read_regotrack.f90 @@ -33,10 +33,16 @@ subroutine io_read_regotrack(user,surf,domain) integer(I4B), parameter :: FREGO = 11 integer(I4B), parameter :: FCOMP = 12 integer(I4B), parameter :: FAGE = 13 - real(DP),dimension(user%gridsize,user%gridsize) :: regotop,melt,comp + integer(I4B), parameter :: FMD = 14 + integer(I4B), parameter :: FEJM = 15 + integer(I4B), parameter :: FEJMF = 16 + integer(I4B), parameter :: FMF = 17 + integer(I4B), parameter :: FDF = 18 + real(DP),dimension(user%gridsize,user%gridsize) :: regotop,melt,comp,ejm,ejmf,meltfrac + real(SP),dimension(user%gridsize,user%gridsize,domain%rcnum) :: meltdist, distfrac real(SP),dimension(user%gridsize,user%gridsize,MAXAGEBINS) :: age integer(I4B),dimension(user%gridsize,user%gridsize) :: stacks_num - real(DP), dimension(:), allocatable :: regotopi,melti,compi,agei + real(DP), dimension(:), allocatable :: regotopi,melti,compi,agei,dfi,ejmi,ejmfi,mdi,mfi type(regodatatype) :: newsurfi integer(I4B) :: ioerr,i,j,k,q,itmp integer(kind=8) :: recsize @@ -74,6 +80,36 @@ subroutine io_read_regotrack(user,surf,domain) stop end if + open(FDF,file=DISTFRACFILE,status='old',form='unformatted',iostat=ioerr) + if (ioerr/=0) then + write(*,*) 'Error! Cannot read file ',trim(adjustl(DISTFRACFILE)) + stop + end if + + open(FEJM,file=EJMFILE,status='old',form='unformatted',iostat=ioerr) + if (ioerr/=0) then + write(*,*) 'Error! Cannot read file ',trim(adjustl(EJMFILE)) + stop + end if + + open(FEJMF,file=EJMFFILE,status='old',form='unformatted',iostat=ioerr) + if (ioerr/=0) then + write(*,*) 'Error! Cannot read file ',trim(adjustl(EJMFFILE)) + stop + end if + + open(FMD,file=MDFILE,status='old',form='unformatted',iostat=ioerr) + if (ioerr/=0) then + write(*,*) 'Error! Cannot read file ',trim(adjustl(MDFILE)) + stop + end if + + open(FMF,file=MELTFRACFILE,status='old',form='unformatted',iostat=ioerr) + if (ioerr/=0) then + write(*,*) 'Error! Cannot read file ',trim(adjustl(MELTFRACFILE)) + stop + end if + open(FAGE,file=AGEFILE,status='old',form='unformatted',iostat=ioerr) if (ioerr/=0) then write(*,*) 'Error! Cannot read file ',trim(adjustl(AGEFILE)) @@ -92,6 +128,11 @@ subroutine io_read_regotrack(user,surf,domain) allocate(compi(stacks_num(i,j))) allocate(melti(stacks_num(i,j))) allocate(agei(MAXAGEBINS * stacks_num(i,j))) + allocate(ejmi(stacks_num(i,j))) + allocate(ejmfi(stacks_num(i,j))) + allocate(mfi(stacks_num(i,j))) + allocate(dfi(domain%rcnum * stacks_num(i,j))) + allocate(mdi(domain%rcnum * stacks_num(i,j))) do k=1,stacks_num(i,j) read(FREGO) regotop(i,j) @@ -100,6 +141,18 @@ subroutine io_read_regotrack(user,surf,domain) compi(k) = comp(i,j) read(FMELT) melt(i,j) melti(k) = melt(i,j) + read(FMF) meltfrac(i,j) + mfi(k) = meltfrac(i,j) + read(FEJM) ejm(i,j) + ejmi(k) = ejm(i,j) + read(FEJMF) ejmf(i,j) + ejmfi(k) = ejmf(i,j) + read(FDF) distfrac(i,j,:) + read(FMD) meltdist(i,j,:) + do q=1,domain%rcnum + dfi(q*k) = distfrac(i,j,q) + mdi(q*k) = meltdist(i,j,q) + end do read(FAGE) age(i,j,:) do q=1,MAXAGEBINS agei(MAXAGEBINS*k - (MAXAGEBINS-q)) = age(i,j,q) @@ -116,7 +169,7 @@ subroutine io_read_regotrack(user,surf,domain) call util_push_array(surf(i,j)%regolayer,newsurfi) end do - deallocate(regotopi,compi,melti,agei) + deallocate(regotopi,compi,melti,agei,dfi,ejmi,ejmfi,mdi,mfi) end do end do @@ -124,5 +177,10 @@ subroutine io_read_regotrack(user,surf,domain) close(FREGO) close(FCOMP) close(FAGE) + close(FDF) + close(FEJM) + close(FEJMF) + close(FMD) + close(FMF) return end subroutine io_read_regotrack