From 759b5e2aae929d4ce42314be0201b8bb53e7021f Mon Sep 17 00:00:00 2001 From: Trevor Hillebrand Date: Mon, 6 Apr 2026 12:41:09 -0700 Subject: [PATCH] Move mask update to before setting cellMaskPrev, edgeMaskPrev, vertexMaskPrev Remove inadvertent misalignment between the final mask update before the RK loop and setting the baseline values for the masks. --- .../src/mode_forward/mpas_li_time_integration_fe_rk.F | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/components/mpas-albany-landice/src/mode_forward/mpas_li_time_integration_fe_rk.F b/components/mpas-albany-landice/src/mode_forward/mpas_li_time_integration_fe_rk.F index 6510164eb317..77cf14c5ec8d 100644 --- a/components/mpas-albany-landice/src/mode_forward/mpas_li_time_integration_fe_rk.F +++ b/components/mpas-albany-landice/src/mode_forward/mpas_li_time_integration_fe_rk.F @@ -301,9 +301,13 @@ subroutine li_time_integrator_forwardeuler_rungekutta(domain, err) call mpas_pool_get_array(geometryPool, 'edgeMask', edgeMask) call mpas_pool_get_array(geometryPool, 'vertexMask', vertexMask, timeLevel=1) - call mpas_pool_get_array(thermalPool, 'temperature', temperature) call mpas_pool_get_array(thermalPool, 'waterFrac', waterFrac) + + ! Calculate masks prior to RK loop, but do not update masks within the loop + ! to preserve the accuracy of time integration. + call li_calculate_mask(meshPool, velocityPool, geometryPool, err_tmp) + err = ior(err, err_tmp) ! Save relevant fields before RK loop, to be used in update at the end temperaturePrev(:,:) = temperature(:,:) waterFracPrev(:,:) = waterFrac(:,:) @@ -399,11 +403,6 @@ subroutine li_time_integrator_forwardeuler_rungekutta(domain, err) return endif - ! Calculate masks prior to RK loop, but do not update masks within the loop - ! to preserve the accuracy of time integration. - call li_calculate_mask(meshPool, velocityPool, geometryPool, err_tmp) - err = ior(err, err_tmp) - ! *** Start RK loop *** do rkStage = 1, nRKstages call mpas_log_write('beginning rk stage $i of $i', &