From 07cac84cddb577e9eb8f3db4b86798da9f70f3a5 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Tue, 6 Feb 2024 15:53:58 -0800 Subject: [PATCH 01/18] Add basal melt draft dependence subroutine --- .../src/mode_forward/mpas_li_iceshelf_melt.F | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index 5a92ecba377d..9d8f4c63319b 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -582,6 +582,117 @@ end subroutine li_basal_melt_floating_ice !*********************************************************************** +!||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +! +! ! routine basal_melt_draft_dependence +! +!> \brief Calculate ice shelf melt rate from depth param. +!> \author Shivaprakash Muruganandham +!> \date February 2024 +!> \details +!> Melt rate parameterization from: +!> Seroussi, H., Y. Nakayama, E. Larour, D. Menemenlis, M. Morlighem, E. Rignot, and A. Khazendar (2017), +!> Continued retreat of Thwaites Glacier, West Antarctica, controlled by bed topography and ocean circulation, +!> Geophys. Res. Lett., 1-9, doi:10.1002/2017GL072910. +!> for Thwaites Glacier. +!> Specifically, this is similar to the linear fit of melt with shelf draft from the Supplemental Information, Figure S1. +!> The linear relation is modified by a: +!> * depth above which there is no melt (Antarctic Surface Water saturation) +!> * a maximum melt rate (Circumpolar Deep Water saturation) +!> * a depth below which melt stops increasing (minimum sill height) + +!----------------------------------------------------------------------- + + subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, lowerSurface, cellMask, & + config_sea_level, config_ice_density, nCellsSolve, err) + + !----------------------------------------------------------------- + ! input variables + !----------------------------------------------------------------- + !real(kind=RKIND), pointer, intent(in) :: daysSinceStart + !real (kind=RKIND), dimension(:), pointer, intent(in) :: lowerSurface !< lower surface elevation (m) + !integer, dimension(:), pointer, intent(in) :: & + ! cellMask !< bit mask describing whether ice is floating, dynamically active, etc. + !real(kind=RKIND), pointer, intent(in) :: & + ! config_sea_level !< sea level (m) relative to z = 0 + !real (kind=RKIND), pointer, intent(in) :: config_ice_density !< ice density + !integer, pointer :: & + ! nCellsSolve !< number of locally owned cells + + !----------------------------------------------------------------- + ! input/output variables + !----------------------------------------------------------------- + + !----------------------------------------------------------------- + ! output variables + !----------------------------------------------------------------- + !real (kind=RKIND), dimension(:), pointer, intent(out) :: & + ! floatingBasalMassBal !< basal mass balance for floating ice + !integer, intent(out) :: err !< Output: error flag + + !----------------------------------------------------------------- + ! local variables + !----------------------------------------------------------------- + !real (kind=RKIND) :: slopeSer ! slope of relation between depth and melt rate + !real (kind=RKIND) :: interceptSer ! depth at which melting goes to 0 + !real (kind=RKIND) :: maxMeltSer ! maximum allowable melt rate + !real (kind=RKIND) :: sillDepth ! depth below which melt rate no longer increases + !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_amplitude + !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_period + !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_phase + !real(kind=RKIND) :: hCavity ! depth of ice cavity beneath floating ice (m) + !real(kind=RKIND) :: zDraft ! draft of floating ice (m below sea level) + !integer :: iCell + + + !err = 0 + + !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_amplitude', & + ! config_basal_mass_bal_seroussi_amplitude) ! meters + !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_period', & + ! config_basal_mass_bal_seroussi_period) ! years + !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_phase', & + ! config_basal_mass_bal_seroussi_phase) ! cycles + + !slopeSer = 0.088_RKIND ! slope of relation between depth and melt rate (melt (m/yr) per depth (m)) + !interceptSer = -100.0_RKIND ! depth (m) at which melting goes to 0 (negative meaning below sea level) + !maxMeltSer = 50.0_RKIND ! maximum allowable melt rate (m/yr) (positive meaning melting) + !sillDepth = -650.0_RKIND ! depth below which melt stops increasing (m) (negative meaning below sea level) + + !if (config_basal_mass_bal_seroussi_period <= 0.0_RKIND) then + ! call mpas_log_write("Value for config_basal_mass_bal_seroussi_period has to be a positive real value.", MPAS_LOG_ERR) + ! err = ior(err, 1) + !endif + + ! Modify intercept height for variability parameters + !interceptSer = interceptSer + config_basal_mass_bal_seroussi_amplitude * & + ! sin( (2.0_RKIND * pii / config_basal_mass_bal_seroussi_period) * (daysSinceStart/365.0_RKIND) & + ! + 2.0_RKIND * pii * config_basal_mass_bal_seroussi_phase) + + ! Initialize before computing + !floatingBasalMassBal(:) = 0.0_RKIND + + !do iCell = 1, nCellsSolve + + ! Shut off melt at an arbitrary shallow depth to discourage ice from disappearing. + !if ( (li_mask_is_floating_ice(cellMask(iCell))) .and. (lowerSurface(iCell) < -10.0_RKIND) ) then + ! ice is present and floating + + !zDraft = lowerSurface(iCell) - config_sea_level + ! Coefficients for m/yr melt rate (in units of Seroussi figure but without negative meaning melting) + !floatingBasalMassBal(iCell) = max(-1.0_RKIND * maxMeltSer, min(0.0_RKIND, slopeSer * & + ! (max(zDraft, sillDepth) - interceptSer))) + + !endif ! ice is present + !enddo ! iCell + + ! change units from m/yr to kg/m2/s + !floatingBasalMassBal(:) = floatingBasalMassBal(:) * config_ice_density / scyr + + + end subroutine basal_melt_draft_dependence +!----------------------------------------------------------------------- + !||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ! From cfe426416d0ed33042942ea5f11e07ab85349430 Mon Sep 17 00:00:00 2001 From: Matthew Hoffman Date: Wed, 7 Feb 2024 14:50:19 -0800 Subject: [PATCH 02/18] add driver changes for calculate_aislens_melt_variability_adjustment Add Registry and ice shelf melt driver changes to support new calculate_aislens_melt_variability_adjustment subroutine call --- .../mpas-albany-landice/src/Registry.xml | 7 ++ .../src/mode_forward/mpas_li_iceshelf_melt.F | 94 +++++++++++++------ 2 files changed, 73 insertions(+), 28 deletions(-) diff --git a/components/mpas-albany-landice/src/Registry.xml b/components/mpas-albany-landice/src/Registry.xml index 279d7fb3c0a0..212d654d5b9b 100644 --- a/components/mpas-albany-landice/src/Registry.xml +++ b/components/mpas-albany-landice/src/Registry.xml @@ -351,6 +351,10 @@ description="Selection of the method for computing the basal mass balance of floating ice. 'none' sets the basalMassBal field to 0 everywhere. 'file' uses without modification whatever value was read in through an input or forcing file or the value set by an ESM coupler. 'constant', 'mismip', 'seroussi' use hardcoded fields defined in the code applicable to Thwaites Glacier. 'temperature_profile' generates a depth-melt relation based on an ocean temperature profile and sill depth. ISMIP6 is the method prescribed by ISMIP6." possible_values="'none', 'file', 'constant', 'mismip', 'seroussi', 'temperature_profile', 'ismip6'" /> + + diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index 9d8f4c63319b..ffd37e6fe88b 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -239,6 +239,9 @@ subroutine li_basal_melt_floating_ice(domain, err) logical, pointer :: & config_print_thermal_info ! if true, print debug info + logical, pointer :: & + config_bmlt_variability_modifier ! if true, calculate bmlt variability adjustment + character(len=StrKIND), pointer :: & config_basal_mass_bal_float ! option for basal mass balance of floating ice @@ -272,6 +275,7 @@ subroutine li_basal_melt_floating_ice(domain, err) real (kind=RKIND), dimension(:), pointer :: & floatingBasalMassBal, & ! basal mass balance for floating ice + floatingBasalMassBalAdjustment, & ! possible adjustment to basal mass balance for floating ice thickness, & ! ice thickness (m) lowerSurface, & ! lower surface elevation (m) bedTopography ! bed topography (m; negative below sea level) @@ -505,6 +509,45 @@ subroutine li_basal_melt_floating_ice(domain, err) endif + + ! Optionally call method to adjust basal melt to include parameterized climate variability + ! block loop + block => domain % blocklist + do while (associated(block)) + + ! get pools + call mpas_pool_get_subpool(block % structs, 'mesh', meshPool) + call mpas_pool_get_subpool(block % structs, 'geometry', geometryPool) + + ! get dimensions + call mpas_pool_get_dimension(meshPool, 'nCellsSolve', nCellsSolve) + + ! get fields from the mesh pool + call mpas_pool_get_array(meshPool, 'daysSinceStart',daysSinceStart) + + ! get fields from the geometry pool + call mpas_pool_get_array(geometryPool, 'thickness', thickness) + call mpas_pool_get_array(geometryPool, 'lowerSurface', lowerSurface) + call mpas_pool_get_array(geometryPool, 'cellMask', cellMask) + call mpas_pool_get_array(geometryPool, 'floatingBasalMassBal', floatingBasalMassBal) + call mpas_pool_get_array(geometryPool, 'floatingBasalMassBalAdjustment', floatingBasalMassBalAdjustment) + + call mpas_pool_get_config(liConfigs, 'config_bmlt_variability_modifier', config_bmlt_variability_modifier) + if (config_bmlt_variability_modifier) then + call calculate_aislens_melt_variability_adjustment( & + nCellsSolve, & + config_sea_level, config_ice_density, & + daysSinceStart, & + lowerSurface, cellMask, & + floatingBasalMassBalAdjustment, err) + endif + + floatingBasalMassBal(:) = floatingBasalMassBal(:) + floatingBasalMassBalAdjustment(:) + + block => block % next + enddo ! associated(block) + + ! Allocate scratch fields for flood-fill ! Note: This only supports one block per processor call mpas_pool_get_subpool(domain % blocklist % structs, 'scratch', scratchPool) @@ -584,40 +627,35 @@ end subroutine li_basal_melt_floating_ice !||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ! -! ! routine basal_melt_draft_dependence +! ! routine calculate_aislens_melt_variability_adjustment ! !> \brief Calculate ice shelf melt rate from depth param. !> \author Shivaprakash Muruganandham !> \date February 2024 !> \details -!> Melt rate parameterization from: -!> Seroussi, H., Y. Nakayama, E. Larour, D. Menemenlis, M. Morlighem, E. Rignot, and A. Khazendar (2017), -!> Continued retreat of Thwaites Glacier, West Antarctica, controlled by bed topography and ocean circulation, -!> Geophys. Res. Lett., 1-9, doi:10.1002/2017GL072910. -!> for Thwaites Glacier. -!> Specifically, this is similar to the linear fit of melt with shelf draft from the Supplemental Information, Figure S1. -!> The linear relation is modified by a: -!> * depth above which there is no melt (Antarctic Surface Water saturation) -!> * a maximum melt rate (Circumpolar Deep Water saturation) -!> * a depth below which melt stops increasing (minimum sill height) - +!> !----------------------------------------------------------------------- - subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, lowerSurface, cellMask, & - config_sea_level, config_ice_density, nCellsSolve, err) + subroutine calculate_aislens_melt_variability_adjustment( & + nCellsSolve, & + config_sea_level, config_ice_density, & + daysSinceStart, & + lowerSurface, cellMask, & + floatingBasalMassBalAdjustment, & + err) !----------------------------------------------------------------- ! input variables !----------------------------------------------------------------- - !real(kind=RKIND), pointer, intent(in) :: daysSinceStart - !real (kind=RKIND), dimension(:), pointer, intent(in) :: lowerSurface !< lower surface elevation (m) - !integer, dimension(:), pointer, intent(in) :: & - ! cellMask !< bit mask describing whether ice is floating, dynamically active, etc. - !real(kind=RKIND), pointer, intent(in) :: & - ! config_sea_level !< sea level (m) relative to z = 0 - !real (kind=RKIND), pointer, intent(in) :: config_ice_density !< ice density - !integer, pointer :: & - ! nCellsSolve !< number of locally owned cells + real(kind=RKIND), pointer, intent(in) :: daysSinceStart + real (kind=RKIND), dimension(:), pointer, intent(in) :: lowerSurface !< lower surface elevation (m) + integer, dimension(:), pointer, intent(in) :: & + cellMask !< bit mask describing whether ice is floating, dynamically active, etc. + real(kind=RKIND), pointer, intent(in) :: & + config_sea_level !< sea level (m) relative to z = 0 + real (kind=RKIND), pointer, intent(in) :: config_ice_density !< ice density + integer, pointer :: & + nCellsSolve !< number of locally owned cells !----------------------------------------------------------------- ! input/output variables @@ -626,9 +664,9 @@ subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, low !----------------------------------------------------------------- ! output variables !----------------------------------------------------------------- - !real (kind=RKIND), dimension(:), pointer, intent(out) :: & - ! floatingBasalMassBal !< basal mass balance for floating ice - !integer, intent(out) :: err !< Output: error flag + real (kind=RKIND), dimension(:), pointer, intent(out) :: & + floatingBasalMassBalAdjustment !< basal mass balance adjustment + integer, intent(out) :: err !< Output: error flag !----------------------------------------------------------------- ! local variables @@ -645,7 +683,7 @@ subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, low !integer :: iCell - !err = 0 + err = 0 !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_amplitude', & ! config_basal_mass_bal_seroussi_amplitude) ! meters @@ -690,7 +728,7 @@ subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, low !floatingBasalMassBal(:) = floatingBasalMassBal(:) * config_ice_density / scyr - end subroutine basal_melt_draft_dependence + end subroutine calculate_aislens_melt_variability_adjustment !----------------------------------------------------------------------- From 861170745ec1a712ff23d047bc58dfae1c71cf60 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Thu, 15 Feb 2024 08:09:09 -0800 Subject: [PATCH 03/18] Define draft dependence function for basal melt adjustment Add linear draft-dependent (spatial dependence) basal melt adjustment for AISLENS generator. --- .../src/mode_forward/mpas_li_iceshelf_melt.F | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index ffd37e6fe88b..4c769b6f14b7 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -629,10 +629,16 @@ end subroutine li_basal_melt_floating_ice ! ! ! routine calculate_aislens_melt_variability_adjustment ! -!> \brief Calculate ice shelf melt rate from depth param. +!> \brief Calculate the draft dependent ice shelf melt rate component +! from the draft params. !> \author Shivaprakash Muruganandham !> \date February 2024 -!> \details +!> \details A melt rate parameterization with a linear melt rate - draft +! relationship. In the variability ensemble generator workflow, +! this adjustment is the F_d(x_0) term in Eqn 1, from +! Muruganandham, S., Robel, A. A., Hoffman, M. J., & Price, S. (2023). +! Statistical Generation of Ocean Forcing With Spatiotemporal Variability for Ice Sheet Models. +! Computing in Science & Engineering. !> !----------------------------------------------------------------------- @@ -671,20 +677,37 @@ subroutine calculate_aislens_melt_variability_adjustment( & !----------------------------------------------------------------- ! local variables !----------------------------------------------------------------- - !real (kind=RKIND) :: slopeSer ! slope of relation between depth and melt rate - !real (kind=RKIND) :: interceptSer ! depth at which melting goes to 0 + + ! slopeSer and interceptSer variables: should they be defined as + ! input or local variables for this subroutine? + + real (kind=RKIND) :: slopeSer ! slope of relation between depth and melt rate + real (kind=RKIND) :: interceptSer ! depth at which melting goes to 0 !real (kind=RKIND) :: maxMeltSer ! maximum allowable melt rate !real (kind=RKIND) :: sillDepth ! depth below which melt rate no longer increases !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_amplitude !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_period !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_phase !real(kind=RKIND) :: hCavity ! depth of ice cavity beneath floating ice (m) - !real(kind=RKIND) :: zDraft ! draft of floating ice (m below sea level) + real(kind=RKIND) :: zDraft ! draft of floating ice (m below sea level) !integer :: iCell err = 0 + + !Input field values for slopeSer(iCell) and interceptSer(iCell) + !from file + + do iCell = 1, nCellsSolve + zDraft(iCell) = lowerSurface(iCell) - config_sea_level + floatingBasalMassBalAdjustment(iCell) = interceptSer(iCell) + & + zDraft(iCell) * slopeSer(iCell) + enddo ! iCell + + ! Optional if below is required within subroutine: + ! floatingBasalMassBalAdjustment(:) = floatingBasalMassBalAdjustment(:) * config_ice_density / scyr + !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_amplitude', & ! config_basal_mass_bal_seroussi_amplitude) ! meters !call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_seroussi_period', & @@ -702,6 +725,7 @@ subroutine calculate_aislens_melt_variability_adjustment( & ! err = ior(err, 1) !endif + ! Modify intercept height for variability parameters !interceptSer = interceptSer + config_basal_mass_bal_seroussi_amplitude * & ! sin( (2.0_RKIND * pii / config_basal_mass_bal_seroussi_period) * (daysSinceStart/365.0_RKIND) & From b64b61b8374a5358b49e174ba2a5060f0bc28de1 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Thu, 15 Feb 2024 09:06:20 -0800 Subject: [PATCH 04/18] Update draft dependence function for basalMassBalAdjustment Add slopeGen and interceptGen coefficients for the draft dependence --- .../src/mode_forward/mpas_li_iceshelf_melt.F | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index 4c769b6f14b7..0cab6eb3d937 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -681,8 +681,8 @@ subroutine calculate_aislens_melt_variability_adjustment( & ! slopeSer and interceptSer variables: should they be defined as ! input or local variables for this subroutine? - real (kind=RKIND) :: slopeSer ! slope of relation between depth and melt rate - real (kind=RKIND) :: interceptSer ! depth at which melting goes to 0 + real (kind=RKIND), pointer :: config_basal_mass_bal_adj_aislens_slopeGen ! slope of relation between depth and melt rate + real (kind=RKIND), pointer :: config_basal_mass_bal_adj_aislens_interceptGen ! intercept for draft dependence parameterization of basal melt melting !real (kind=RKIND) :: maxMeltSer ! maximum allowable melt rate !real (kind=RKIND) :: sillDepth ! depth below which melt rate no longer increases !real (kind=RKIND), pointer :: config_basal_mass_bal_seroussi_amplitude @@ -698,11 +698,16 @@ subroutine calculate_aislens_melt_variability_adjustment( & !Input field values for slopeSer(iCell) and interceptSer(iCell) !from file + call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_adj_aislens_slopeGen') !, & + !config_basal_mass_bal_seroussi_amplitude) ! meters + call mpas_pool_get_config(liConfigs, 'config_basal_mass_bal_adj_aislens_interceptGen') !, & + ! config_basal_mass_bal_seroussi_period + do iCell = 1, nCellsSolve zDraft(iCell) = lowerSurface(iCell) - config_sea_level - floatingBasalMassBalAdjustment(iCell) = interceptSer(iCell) + & - zDraft(iCell) * slopeSer(iCell) + floatingBasalMassBalAdjustment(iCell) = config_basal_mass_bal_adj_aislens_interceptGen(iCell) + & + zDraft(iCell) * config_basal_mass_bal_adj_aislens_slopeGen(iCell) enddo ! iCell ! Optional if below is required within subroutine: From 8f9f6cb6ebb6a44538c9c755f6759c1cf1ea2b64 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Thu, 15 Feb 2024 16:08:23 -0800 Subject: [PATCH 05/18] Add draft dependent co-efficient variables for the aislens ice shelf melt generator Define draft dependence function variables for calculating floatingBasalMassBalAdjustment in aislens basalMassBal adjustment subroutine --- components/mpas-albany-landice/src/Registry.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/components/mpas-albany-landice/src/Registry.xml b/components/mpas-albany-landice/src/Registry.xml index 212d654d5b9b..9917a2021ae1 100644 --- a/components/mpas-albany-landice/src/Registry.xml +++ b/components/mpas-albany-landice/src/Registry.xml @@ -797,6 +797,9 @@ + + + - - + + + + - + @@ -799,10 +783,9 @@ - - + + - - + From dce872dfdd4dae6b03eb7f5909b29446bb4bcc72 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Fri, 1 Mar 2024 11:53:21 -0500 Subject: [PATCH 11/18] Update config option description for basal mass balance methods Co-authored-by: Matt Hoffman --- components/mpas-albany-landice/src/Registry.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mpas-albany-landice/src/Registry.xml b/components/mpas-albany-landice/src/Registry.xml index 2ebf0f9ebfb2..e943d5a5f83c 100644 --- a/components/mpas-albany-landice/src/Registry.xml +++ b/components/mpas-albany-landice/src/Registry.xml @@ -348,7 +348,7 @@ Date: Fri, 8 Mar 2024 07:44:31 -0800 Subject: [PATCH 12/18] Cleanup comments --- components/mpas-albany-landice/src/Registry.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/components/mpas-albany-landice/src/Registry.xml b/components/mpas-albany-landice/src/Registry.xml index 2ebf0f9ebfb2..d25914f6f5cf 100644 --- a/components/mpas-albany-landice/src/Registry.xml +++ b/components/mpas-albany-landice/src/Registry.xml @@ -785,8 +785,6 @@ - - - - + + + + + + @@ -1218,11 +1223,11 @@ is the value of that variable from the *previous* time level! - - Date: Fri, 8 Mar 2024 10:13:18 -0800 Subject: [PATCH 15/18] Remove package assignment for floatingBasalMassBalAdjustment --- components/mpas-albany-landice/src/Registry.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/mpas-albany-landice/src/Registry.xml b/components/mpas-albany-landice/src/Registry.xml index b735bfaf24cb..9efb68521cc7 100644 --- a/components/mpas-albany-landice/src/Registry.xml +++ b/components/mpas-albany-landice/src/Registry.xml @@ -783,10 +783,10 @@ - + - + - + From b3c1eb0d09ce345436f8990453d6dbd14a36b020 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Mon, 18 Mar 2024 11:49:00 -0400 Subject: [PATCH 16/18] Clean up draft_dependence ice shelf basal melt method Delete stray comments from previously defined seroussi method Co-authored-by: Trevor Hillebrand --- .../mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F | 1 - 1 file changed, 1 deletion(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index c4207ac91cf2..9c49d029cb6f 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -662,7 +662,6 @@ subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, low floatingBasalMassBal(:) = 0.0_RKIND do iCell = 1, nCellsSolve - ! Shut off melt at an arbitrary shallow depth to discourage ice from disappearing. if ( li_mask_is_floating_ice(cellMask(iCell))) then ! ice is present and floating From 50abf8d763ef33fceca92e47603dce1500d48054 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Mon, 18 Mar 2024 11:49:53 -0400 Subject: [PATCH 17/18] Clean up draft_dependence ice shelf basal melt method Co-authored-by: Trevor Hillebrand --- .../src/mode_forward/mpas_li_iceshelf_melt.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index 9c49d029cb6f..a3849065ae2c 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -479,7 +479,7 @@ subroutine li_basal_melt_floating_ice(domain, err) ! change units from m/s to kg/m2/s floatingBasalMassBal(:) = floatingBasalMassBal(:) * config_ice_density - elseif (trim(config_basal_mass_bal_float) =='draft_dependence') then + elseif (trim(config_basal_mass_bal_float) == 'draft_dependence') then call mpas_pool_get_array(geometryPool, 'draftDepenBasalMeltAlpha1', draftDepenBasalMeltAlpha1) call mpas_pool_get_array(geometryPool, 'draftDepenBasalMeltAlpha0', draftDepenBasalMeltAlpha0) From a84cd6a7d8f97d6e26107242f7bca5ab13a3ede4 Mon Sep 17 00:00:00 2001 From: Shivaprakash Muruganandham Date: Tue, 16 Jul 2024 11:01:17 -0400 Subject: [PATCH 18/18] Update floatingBasalMassBal calculation for consistent SI units Update components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F Co-authored-by: Trevor Hillebrand --- .../mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F | 1 - 1 file changed, 1 deletion(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F index a3849065ae2c..ae5060d03d61 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_iceshelf_melt.F @@ -671,7 +671,6 @@ subroutine basal_melt_draft_dependence(floatingBasalMassBal, daysSinceStart, low enddo ! iCell ! change units from m/yr to kg/m2/s - floatingBasalMassBal(:) = floatingBasalMassBal(:) * config_ice_density / scyr end subroutine basal_melt_draft_dependence