Skip to content

Ice shelf edits from October 2026 on top of origin/dev/gfdl@3d479de+access+isf - #111

Draft
claireyung wants to merge 12 commits into
ACCESS-NRI:dev/gfdl@3d479de+access+isffrom
claireyung:origin/dev/gfdl@3d479de+access+isf+edits
Draft

claireyung wants to merge 12 commits into
ACCESS-NRI:dev/gfdl@3d479de+access+isffrom
claireyung:origin/dev/gfdl@3d479de+access+isf+edits

Conversation

@claireyung

Copy link
Copy Markdown
Collaborator

@dougiesquire @angus-g thought this might be helpful for reference later

I think these are all the recent MOM6 changes we've added in the recent ice shelf config development, since Dougie made the origin/dev/gfdl@3d479de+access+isf version for us. They're also in this branch, which I was using for a test OM3 exe, but I was doing a bit of adding stuff and reverting so it's not as clean.

Changes on top of previous desired ice shelf changes (#38) are:

  • add frazil_refreeze diagnostic and move mass_flux diagnostic for consistency
  • move ice shelf initialisation out of NUOPC cap
  • always initialise static ice shelf thickness (cherry picked from Always initialise static ice shelf thickness #110)
  • add different surface forcing sampling and distribution in cavity vs open ocean (cherry picked from Ice shelf-specific forcing depths #78)
  • modify defaults of above parameters so as not to change answers (NOTE I may have stuffed up the unit conversion parameter here)

claireyung and others added 11 commits October 23, 2026 12:00
The ice shelf state (mass, area, thickness) were being saved and
restored to a restart file, even in the case of static ice shelves
where these fields don't change. However, the thickness mask field
ISS%hmask was only being saved to the restart file for dynamic shelves.
However, because the rest of the state was being restarted, there was
no call to initialize_ice_thickness().

This meant that when using static shelves, ISS%hmask is only correct
for the first run segment (a "new run"). Restarted segments would leave
this field as 0, leading to incorrect dynamics.
The boundary layer used for the melt parameterisation must match the
depth over which the forcing is applied. The only controls for these
are global: HMIX_SFC_PROP/HMIX_UV_SFC_PROP control the boundary layer
for computing the parameterisation, and MINIMUM_FORCING_DEPTH controls
the depth over which the melt is applied.

We introduce new optional parameters to applyBoundaryFluxesInOut() to
modify IforcingDepthScale to use a different `shelf_forcing_depth`
according to the fraction of the cell covered by ice shelf.
This is the analogue to MINIMUM_FORCING_DEPTH, applied under ice
shelves. It is only read when an ice shelf coverage field is provided
to the diabatic driver initialisation routine.
This only affects the path when using the non-legacy ALE diabatic
driver. In this case, the frac_shelf_h array is passed through, and
used to apply a different forcing depth as required.
This adds HMIX_SHELF_PROP and HMIX_UV_SHELF_PROP, which are analogues
to the `SFC` parameters. These determine the boundary layer depth for
near-shelf temperature, salinity and velocities, which are used for
calculation of melt parameterisation.
This now takes frac_shelf_h into account when computing depth_ml
used for calculating the surface state.
@claireyung

claireyung commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator Author

Edit: had a typo in the HMIX SHELF parameter setting defaults commit, have updated with another commit e7ecd85 (sorry)

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