From e60cd36988fe2c4bf82ab8708aa4313630093344 Mon Sep 17 00:00:00 2001 From: Austin Blevins Date: Wed, 1 Mar 2023 13:17:39 -0500 Subject: [PATCH] bedrock layers now initalize correctly --- src/init/init_regolith_stack.f90 | 4 ++-- src/io/io_read_regotrack.f90 | 2 +- src/util/module_util.f90 | 3 ++- src/util/util_init_array.f90 | 5 ++++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/init/init_regolith_stack.f90 b/src/init/init_regolith_stack.f90 index dec62ad0..2982261d 100644 --- a/src/init/init_regolith_stack.f90 +++ b/src/init/init_regolith_stack.f90 @@ -50,7 +50,7 @@ subroutine init_regolith_stack(user,surf,domain) bedrock%meltdist(:) = 0.0_SP bedrock%distvol(:) = 0.0_SP bedrock%meltvolume = 0.0_DP - bedrock%totvolume = 0.0_DP + bedrock%totvolume = bedrock%thickness * user%pix * user%pix bedrock%ejm = 0.0_DP bedrock%ejmf = 0.0_DP @@ -58,7 +58,7 @@ subroutine init_regolith_stack(user,surf,domain) do xp = 1, user%gridsize !call util_init_list(surf(xp,yp)%regolayer,initstat) - call util_init_array(surf(xp,yp)%regolayer,domain,initstat) + call util_init_array(user,surf(xp,yp)%regolayer,domain,initstat) if (initstat) then call util_push_array(surf(xp,yp)%regolayer,bedrock) diff --git a/src/io/io_read_regotrack.f90 b/src/io/io_read_regotrack.f90 index 366b0f1b..b00acec0 100644 --- a/src/io/io_read_regotrack.f90 +++ b/src/io/io_read_regotrack.f90 @@ -86,7 +86,7 @@ subroutine io_read_regotrack(user,surf,domain) do i=1,user%gridsize !call util_init_list(surf(i,j)%regolayer,initstat) - call util_init_array(surf(i,j)%regolayer,domain,initstat) + call util_init_array(user,surf(i,j)%regolayer,domain,initstat) allocate(regotopi(stacks_num(i,j))) allocate(compi(stacks_num(i,j))) diff --git a/src/util/module_util.f90 b/src/util/module_util.f90 index c6999ee4..1c90f2be 100644 --- a/src/util/module_util.f90 +++ b/src/util/module_util.f90 @@ -110,9 +110,10 @@ end subroutine util_destroy_list ! end interface interface - subroutine util_init_array(regolayer,domain,initstat) + subroutine util_init_array(user,regolayer,domain,initstat) use module_globals implicit none + type(usertype),intent(in) :: user type(regodatatype),dimension(:),allocatable,intent(inout) :: regolayer type(domaintype),intent(in) :: domain logical, intent(out) :: initstat diff --git a/src/util/util_init_array.f90 b/src/util/util_init_array.f90 index 3ebd87a6..75daf22d 100644 --- a/src/util/util_init_array.f90 +++ b/src/util/util_init_array.f90 @@ -19,12 +19,13 @@ ! Notes : ! !********************************************************************************************************************************** -subroutine util_init_array(regolayer,domain,initstat) +subroutine util_init_array(user,regolayer,domain,initstat) use module_globals use module_util, EXCEPT_THIS_ONE => util_init_array implicit none ! Arguments + type(usertype),intent(in) :: user type(regodatatype),dimension(:),allocatable,intent(inout) :: regolayer type(domaintype),intent(in) :: domain logical, intent(out) :: initstat @@ -59,6 +60,8 @@ subroutine util_init_array(regolayer,domain,initstat) regolayer(1)%meltdist(:) = 0.0_SP allocate(regolayer(1)%distvol(domain%rcnum)) regolayer(1)%distvol(:) = 0.0_SP + regolayer(1)%meltvolume = 0.0_DP + regolayer(1)%totvolume = regolayer(1)%thickness * user%pix * user%pix end if ! else ! write(*,*) 'util_init_list: Initialization failed. Exhausted memory.'