From 0988b1745f79cf6ae9efd37bffad3511dbada0df Mon Sep 17 00:00:00 2001 From: Austin Blevins Date: Wed, 8 Feb 2023 16:10:09 -0500 Subject: [PATCH] CTEM now writes ejected melt volume and fraction for debugging and comparing --- src/globals/module_globals.f90 | 2 ++ src/io/io_write_regotrack.f90 | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/globals/module_globals.f90 b/src/globals/module_globals.f90 index 9cb934a1..3260127a 100644 --- a/src/globals/module_globals.f90 +++ b/src/globals/module_globals.f90 @@ -309,6 +309,8 @@ module module_globals character(*),parameter :: MASSFILE = 'impactmass.dat' character(*),parameter :: RCFILE = 'craterlist.dat' character(*),parameter :: MDFILE = 'surface_meltdist.dat' +character(*),parameter :: EJMFILE = 'surface_ejm.dat' +character(*),parameter :: EJMFFILE = 'surface_ejmf.dat' ! Global variables integer(I4B),parameter :: PBCLIM = 1 ! periodic boundary condition limit diff --git a/src/io/io_write_regotrack.f90 b/src/io/io_write_regotrack.f90 index 3f520156..16a50e8f 100644 --- a/src/io/io_write_regotrack.f90 +++ b/src/io/io_write_regotrack.f90 @@ -34,10 +34,12 @@ subroutine io_write_regotrack(user,surf,domain) integer(I4B), parameter :: FCOMP = 12 integer(I4B), parameter :: FAGE = 13 integer(I4B), parameter :: FMD = 14 + integer(I4B), parameter :: FEJM = 15 + integer(I4B), parameter :: FEJMF = 16 !type(regolisttype),pointer :: current => null() type(regodatatype),dimension(:),allocatable :: current integer(I4B),dimension(user%gridsize,user%gridsize) :: stacks_num - real(DP),dimension(:),allocatable :: meltfrac, thickness, comp + real(DP),dimension(:),allocatable :: meltfrac, thickness, comp, ejm, ejmf real(SP),dimension(:,:),allocatable :: age, meltdist integer(kind=8) :: recsize real(DP) :: dtmp @@ -52,6 +54,8 @@ subroutine io_write_regotrack(user,surf,domain) open(FCOMP,file=COMPFILE,status='replace',form='unformatted') open(FAGE,file=AGEFILE,status='replace',form='unformatted') open(FMD,file=MDFILE,status='replace',form='unformatted') + open(FEJM,file=EJMFILE,status='replace',form='unformatted') + open(FEJMF,file=EJMFFILE,status='replace',form='unformatted') ! First pass to get stack numbers stacks_num(:,:) = 0 @@ -74,7 +78,7 @@ subroutine io_write_regotrack(user,surf,domain) do i=1,user%gridsize !current => surf(i,j)%regolayer N = stacks_num(i,j) - allocate(meltfrac(N),thickness(N),comp(N),age(MAXAGEBINS,N),meltdist(domain%rcnum,N)) + allocate(meltfrac(N),thickness(N),comp(N),age(MAXAGEBINS,N),meltdist(domain%rcnum,N),ejm(N),ejmf(N)) allocate(current,source=surf(i,j)%regolayer) do k=1,N ! meltfrac(k) = current%regodata%meltfrac @@ -88,6 +92,8 @@ subroutine io_write_regotrack(user,surf,domain) age(:,k) = current(k)%age(:) !write(*,*) i, j meltdist(:,k) = current(k)%meltdist(:) + ejm(k) = current(k)%ejm + ejmf(k) = current(k)%ejmf end do deallocate(current) @@ -96,7 +102,9 @@ subroutine io_write_regotrack(user,surf,domain) write(FCOMP) comp(:) write(FAGE) age(:,:) write(FMD) meltdist(:,:) - deallocate(meltfrac,thickness,comp,age,meltdist) + write(FEJM) ejm(:) + write(FEJMF) ejmf(:) + deallocate(meltfrac,thickness,comp,age,meltdist,ejm,ejmf) end do end do close(FMELT) @@ -104,6 +112,8 @@ subroutine io_write_regotrack(user,surf,domain) close(FCOMP) close(FAGE) close(FMD) + close(FEJM) + close(FEJMF) recsize = sizeof(itmp) * user%gridsize * user%gridsize open(LUN,file=STACKNUMFILE,status='replace',form='unformatted',recl=recsize,access='direct')