Skip to content

Dynamic ice sheet/shelf restart reproducibility bug fix - #1179

Open
OlgaSergienko wants to merge 1 commit into
NOAA-GFDL:dev/gfdlfrom
OlgaSergienko:restart_repro_fixMOM6IS
Open

Dynamic ice sheet/shelf restart reproducibility bug fix#1179
OlgaSergienko wants to merge 1 commit into
NOAA-GFDL:dev/gfdlfrom
OlgaSergienko:restart_repro_fixMOM6IS

Conversation

@OlgaSergienko

Copy link
Copy Markdown

This PR fixes restart reproducibility for the dynamic ice sheet when used with the data_override for shelf_sfc_mass_flux. It updates four files in the FMS cap, MOM core, and ice-shelf components so that state required immediately after a restart is preserved and the current ice-shelf geometry is used by MOM.

Specifically, this PR:

  • Passes the cap forcing structure through initialize_MOM to initialize_ice_shelf, while deferring initialization of state-dependent shelf flux fields until their normal initialization point.
  • Registers and restores the dynamic-ice-shelf surface mass flux accumulation field. This prevents its valid restart value from being overwritten before it is first consumed.
  • Registers and restores the coupled-grounding running totals (OD_rt, ground_frac_rt, and their count), as well as the elapsed interval since the last ice-shelf velocity solve. These fields determine the next coupled-grounding average and velocity update, respectively.
  • Marks the first post-restart frazil adjustment so that the ice-sheet share of frazil is not removed twice from the restored surface state.
  • Synchronizes MOM's shelf-area fraction with the fraction updated during dynamic ice-shelf flux calculations, so ALE remapping uses current geometry after every step.
  • Bounds the shelf-area fraction by one when it is initialized or queried, and uses the current flux-calculation time when overriding shelf surface mass fluxes.

The added restart fields allow a restarted dynamic-ice-shelf calculation to continue from the same internal state as an uninterrupted calculation. They change results only where the previous restart path lost or reused state incorrectly; new runs and restart -free integrations are unchanged.

No runtime parameters or public configuration options are added. The restart file gains fields for dynamic ice-shelf runs; missing fields from older restart files retain the existing fresh-start defaults where applicable.

Restart reproducibility requires SIS2 parameter APPLY_MASKS_AFTER_RESTART = False.

Note that an AI tool was used in making this contribution.

…with the `data_override` for `shelf_sfc_mass_flux`. It updat

es four files in the FMS cap, MOM core, and ice-shelf components so that state required immediately after a restart is preserved
and the current ice-shelf geometry is used by MOM.

Specifically, this PR:

* Passes the cap forcing structure through `initialize_MOM` to
  `initialize_ice_shelf`, while deferring initialization of state-dependent
  shelf flux fields until their normal initialization point.
* Registers and restores the dynamic-ice-shelf surface mass flux
  accumulation field. This prevents its valid restart value from being
  overwritten before it is first consumed.
* Registers and restores the coupled-grounding running totals
  (`OD_rt`, `ground_frac_rt`, and their count), as well as the elapsed
  interval since the last ice-shelf velocity solve. These fields determine
  the next coupled-grounding average and velocity update, respectively.
* Marks the first post-restart frazil adjustment so that the ice-sheet share
  of frazil is not removed twice from the restored surface state.
* Synchronizes MOM's shelf-area fraction with the fraction updated during
  dynamic ice-shelf flux calculations, so ALE remapping uses current
  geometry after every step.
* Bounds the shelf-area fraction by one when it is initialized or queried,
  and uses the current flux-calculation time when overriding shelf surface
  mass fluxes.

The added restart fields allow a restarted dynamic-ice-shelf calculation to continue from the same internal state as an uninterru
pted calculation. They change results only where the previous restart path lost or reused state incorrectly; new runs and restart
-free integrations are unchanged.

No runtime parameters or public configuration options are added. The restart file gains fields for dynamic ice-shelf runs; missin
g fields from older restart files retain the existing fresh-start defaults where applicable.

Restart reproducibility requires SIS2 parameter  `APPLY_MASKS_AFTER_RESTART = False`.

Note that an AI tool was used in making this contribution.
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.

1 participant