From 496931bf870ed1641e401b068a62a1db6b3bfa2d 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..c6133d37fc7f 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))