-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix ice-sheet grounding based on ocean column thickness #512
Conversation
…Setting GL_couple=.true. will determine the grounding based on ocean column thickness rather than the typical the hydrostatic equilibrium condition. This has the advantage of accounting for changes in sea level, tides, etc. However, it has the disadvantage of not working with the same thoroughly-tested sub-element grounding line parameterization used for the hydrostatic condition. Instead, it accounts for sub-element grounding line movement by, during the SSA solution, using a grounding mask averaged over all ocean (sub)steps that completed since the last SSA solve. Unlike the hydrostatic sub-element parameterization, the dependence of the GL_couple=.true. scheme on grid resolution has not yet been determined. Qualitatively similar grounding line retreat/advance behavior is achieved with both approaches for MISOMIP IceOcean1 on a 2km grid, but GL_couple=.true. results in a rougher grounding line position with less retreat. Note that this commit also fixed a bug in applying the hydrostatic grounding line approach without its sub-element parameterization (though the sub-element parameterization should also be used anyway).
Codecov Report
@@ Coverage Diff @@
## dev/gfdl #512 +/- ##
============================================
- Coverage 37.54% 37.47% -0.07%
============================================
Files 270 270
Lines 79023 79161 +138
Branches 14627 14656 +29
============================================
Hits 29669 29669
- Misses 43884 44022 +138
Partials 5470 5470
... and 1 file with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
S(:,:) = -CS%bed_elev(:,:) + ISS%h_shelf(:,:) | ||
! check whether the ice is floating or grounded | ||
if (CS%GL_couple) then | ||
S(:,:) = -CS%bed_elev(:,:) + OD(:,:) + ISS%h_shelf(:,:) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revise this line to avoid array syntax working on halo regions that might have NaNs, and also please add parentheses to specify the order with which these three arrays should be added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made these changes, and the similar ones we discussed for PR #511
…ntax and added parentheses to specify order of addition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These changes seem sensible.
Gaea regression :https://gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/21216 ✔️ |
This PR finishes implementing the "GL_couple" feature. Setting GL_couple=.true. determines ice-sheet grounding based on ocean column thickness, which is advantageous over the typical hydrostatic equilibrium condition for grounding (GL_couple=.false.) because it accounts for changes in sea level, tides, etc. However, the ocean-thickness approach has not yet been thoroughly tested for dependence of grounding line movement on grid resolution.