From ee7e0c4dd9d7fdab5aebb998765180d1da44e17e Mon Sep 17 00:00:00 2001 From: Rich Fiorella Date: Tue, 11 Jun 2024 21:45:00 -0600 Subject: [PATCH] Remove melted excess ice and set initiation for subsidence Removes melted excess ice from the profile and also set the initiation for subsidence calculations in 1989 (though this threshold should be replaced for expanding beyond the N Slope of Alaska). Should check melt profiles carefully as the layer structure may be inverted. --- components/elm/src/biogeophys/ActiveLayerMod.F90 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/elm/src/biogeophys/ActiveLayerMod.F90 b/components/elm/src/biogeophys/ActiveLayerMod.F90 index 08f0b64c0968..d0891e9aab54 100644 --- a/components/elm/src/biogeophys/ActiveLayerMod.F90 +++ b/components/elm/src/biogeophys/ActiveLayerMod.F90 @@ -189,15 +189,22 @@ subroutine alt_calc(num_soilc, filter_soilc, & melt_profile(j) = 0.0_r8 else if (j .eq. k_frz) then melt_profile(j) = excess_ice(c,j) + ((z2-alt(c))/(z2-z1))*excess_ice(c,j+1) ! TODO: check indices here!! + ! remove melted excess ice: + excess_ice(c,j) = 0._r8 + excess_ice(c,j+1) = excess_ice(c,j+1)*(1._r8 - min(1._r8,(z2-alt(c))/(z2-z1))) else melt_profile(j) = excess_ice(c,j) + ! remove melted excess ice + excess_ice(c,j) = 0._r8 end if ! calculate subsidence at this layer: melt_profile(j) = melt_profile(j) * dzsoi(j) end do ! subsidence is integral of melt profile: - subsidence(c) = subsidence(c) + sum(melt_profile) + if (year .ge. 1989) .and. (altmax_ever(c) .ge. altmax_1989(c)) then + subsidence(c) = subsidence(c) + sum(melt_profile) + end if ! limit subsidence to 0.4 m subsidence(c) = min(0.4_r8, subsidence(c))