Skip to content

Add MCT ice-shelf melt and interface-temperature coupling between MPAS-Ocean and MALI#139

Open
xylar wants to merge 34 commits intoE3SM-Ocean-Discussion:masterfrom
xylar:ocn-glc/modify-ocn-glc-melt-coupling
Open

Add MCT ice-shelf melt and interface-temperature coupling between MPAS-Ocean and MALI#139
xylar wants to merge 34 commits intoE3SM-Ocean-Discussion:masterfrom
xylar:ocn-glc/modify-ocn-glc-melt-coupling

Conversation

@xylar
Copy link
Copy Markdown
Collaborator

@xylar xylar commented Apr 20, 2026

Summary

This PR advances the MPAS-Ocean to MALI ice-shelf coupling path in the MCT driver.

It adds the remaining coupler plumbing needed to pass shelf melt/frazil mass fluxes and ice-ocean interface temperature from MPAS-Ocean to MALI, returns conductive heat flux from MALI back to MPAS-Ocean, and fixes several bugs in the existing implementation.

We're implementing this first in MCT. Some shared coupler field-list changes touch MOAB-related files, but the full set of MOAB have not yet been implemented in this PR.

Main changes

  • add ocean-to-glacier shelf coupling fields for ice-shelf mass and state exchange
  • pass time-averaged ice-ocean interface temperature from MPAS-Ocean to MALI
  • convert avgLandIceInterfaceTemperature to Kelvin before coupling
  • normalize the imported interface temperature by remapped floating fraction
  • remap shelf state fields and shelf flux fields separately in the MCT coupler
  • import shelf melt and frazil mass consistently into MALI
  • apply the correct MALI sign convention for floatingBasalMassBal
  • export MALI conductive basal heat flux through Flgg_hflx
  • import conductive heat flux into MPAS-Ocean forcing
  • use imported iceOceanInterfaceTemperature as the floating basal thermal boundary in MALI, with fallback to the existing depth-based freezing temperature when the imported value is invalid
  • remove obsolete or superseded coupler plumbing associated with the earlier shelf-coupling approach

Bug fixes

This PR also fixes a few bugs in the in-progress implementation:

  • fix So_tfrz_isf and So_liflfrac lookup to use x2g indices in MALI
  • fix Kelvin averaging so interface temperature samples are converted to Kelvin before averaging, not after
  • fix the grounded/floating mask index typo in mpaso_cpl_indices.F

What is still not yet included

The following work is not yet addressed in this PR:

  • final ocean-to-MALI net basal heat-flux application via Fogx_qicehi
  • full implementation of MCT changes in MOAB

cbegeman and others added 30 commits February 6, 2026 15:07
…xToLandIce is now the total flux between ocn and glc
Instead of computing the ice-shelf freshwater flux (Fogx_qicelo and
Fogx_qiceli) in the coupler when we are running with coupled ocn-glc
configurations, pass the flux from ocn through the coupler to glc
(Foxo_ismw).

All references to Fogx_qicelo and Fogx_qiceli have been removed
except in prep_glc_calculate_subshelf_boundary_fluxes(), which
will be removed separately.
This requires adding Foxo_frazil_li to the glc fluxes.
This merge adds `landIceInterfaceTracers` to both diagnostic
variables and time averaging so that they can be passed through
the coupler.  `landIceBoundaryLayerTracers` and
`landIceTransferVelocities` are removed from coupler averaging,
since they are no longer passed to the coupler.
This includes removing the function for computing ice shelf
freshwater and heat fluxes as well as all the associated input
and output coupler variables.
This is no longer supported in MPAS-Ocean so no need to have
a coupler variable for it.
Send average MPAS-Ocean value to the coupler.  We're not yet
sending it on to MALI.
This field gets set from the coupler So_intrt field (converted
from C to K).

This merge also removes the unused OceanDensity local variable.
Fix units for `avgLandIceInterfaceTemperature` and
`avgTemperatureSurfaceValue` in registry.
This merge switches to `So_tfrz_isf` coupled variable name and
adds `So_liflfrac` as a variable used to renormalize the ice-ocean
interface temperature by.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants