Skip to content

Calve icebergs from ice-shelf flux#147

Open
alex-huth wants to merge 16 commits intoNOAA-GFDL:mainfrom
alex-huth:iOM4_with_bergs_rebase
Open

Calve icebergs from ice-shelf flux#147
alex-huth wants to merge 16 commits intoNOAA-GFDL:mainfrom
alex-huth:iOM4_with_bergs_rebase

Conversation

@alex-huth
Copy link
Copy Markdown

This PR adds the capability to calve point-particle icebergs from ice shelves:

If calve_ice_shelf_bergs=.true. in the coupler namelist, then the mass and heat flux through the static ice-shelf front is accumulated at the coastal grid cells in Ocean_Ice_Boundary%calving and Ocean_Ice_Boundary%calving_hflx, respectively.

Calling unpack_ocean_ice_boundary_calved_shelf_bergs(Ice, Ocean_ice_boundary) converts these fields to the SIS2 FIA type. These FIA fields are then passed to the icebergs module to initialize the iceberg particles. This is analogous to the approach for initializing icebergs without an active ice-sheet component, where the coupler calls unpack_land_ice_boundary(Ice, Land_ice_boundary) to convert the frozen freshwater flux from river discharge into the required FIA%calving and FIA%calving_hflx fields.

See also NOAA-GFDL/MOM6@b610226 and NOAA-GFDL/SIS2@2c49005

alex-huth added 11 commits May 6, 2024 16:47
-This commit is the coupler contribution to calving of icebergs based
on the ice-shelf flux through a static ice-shelf front. This flux is
passed from MOM6 --> coupler --> SIS2 --> icebergs.
-To use, simply add calve_ice_shelf_bergs=True to the coupler nml (and
use the SIS2 and MOM6 commits that include ice-shelf calving).
-"Calving" based on frozen discharge from the land model can also be
used simultaneously, as long no cell has both nonzero
frozen-discharge-based and ice-shelf calving. For example,
land-discharge-based calving can be used for Greenland (without an
ice-sheet component) and ice-shelf calving for Antarctica
(with an ice-sheet component).
-Note that the data_override variable for ice-shelf calving is
Ocean_Ice_boundary%IS_calving to differentiate from the land-model
discharge-calving override Land_Ice_Boundary%calving.
…rgs code to from coupler_main.F90 to full_coupler_mod.F90
@thomas-robinson
Copy link
Copy Markdown
Member

@alex-huth are you still trying to have this merged in?

@alex-huth
Copy link
Copy Markdown
Author

@thomas-robinson Yes

@thomas-robinson
Copy link
Copy Markdown
Member

@alex-huth can you merge the current main branch in to your branch?

Comment on lines +93 to +94
allocate( ocean_ice_boundary%calving(is:ie,js:je) )
allocate( ocean_ice_boundary%calving_hflx(is:ie,js:je) )
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uramirez8707 I submitted PRs to add these fields and the null subroutine unpack_ocean_ice_boundary_calved_shelf_bergs to all 3 repositories. I do not have appropriate scripts to compile and test, but the changes are straightforward.

@nikizadehgfdl Tagging you as requested to help get these PRs approved.

@wfcooke
Copy link
Copy Markdown
Contributor

wfcooke commented Mar 11, 2026

In the review meeting, there was a comment about the length of names (I don't recall if it was variable or function) and someone mentioned 120.
Googling "fortran standard length of variable name" or "fortran standard length of function name" shows that the standard limit is now 63.
So "unpack_ocean_ice_boundary_calved_shelf_bergs" is standard compliant.

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.

4 participants