Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added quasimc files to the io_read_regotrack routine for multi-interval runs
  • Loading branch information
Austin Blevins committed Mar 28, 2023
1 parent f2d5551 commit c36e074
Showing 1 changed file with 61 additions and 3 deletions.
64 changes: 61 additions & 3 deletions src/io/io_read_regotrack.f90
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -116,13 +169,18 @@ 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
close(FMELT)
close(FREGO)
close(FCOMP)
close(FAGE)
close(FDF)
close(FEJM)
close(FEJMF)
close(FMD)
close(FMF)
return
end subroutine io_read_regotrack

0 comments on commit c36e074

Please sign in to comment.