-
Notifications
You must be signed in to change notification settings - Fork 371
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
Update global ocean init mode for meshes with ice-shelf cavities #6375
Update global ocean init mode for meshes with ice-shelf cavities #6375
Conversation
This has been moved from E3SM-Ocean-Discussion#90, which includes relevant discussion. |
@mark-petersen, you are the best person I could think of to sanity check changes to init mode. Let me know if you can do that. |
@mark-petersen, this is a high priority for the FAnSSIE project. Can you review when you can? |
Sorry, I forgot I already pinged you... |
cb9ca7e
to
f17151a
Compare
@sbrus89, @mark-petersen is away and I need someone to review this that knows about MPAS-Ocean's global ocean init mode. You're the best candidate. Would you be up for reviewing this? If not, remove yourself as a reviewer and I'll find someone else. |
@xylar, sure I will take a look. |
@sbrus89 please review. |
@mark-petersen, @cbegeman and @sbrus89, a reminder that I would appreciate a review of this PR. This would allow me to make important changes to how meshes with ice-shelf cavities are initialized in MPAS-Dev/compass#813. This, in turn, is needed for me to make progress on coupling to MALI. |
We do not use this mode anymore and it is too difficult to maintain.
This merge uses the `landIceDraftObserved`, `landIcePressureObserved` and `landIceFloatingFracObserved` to initialize the corresponding MPAS-Ocean variables. Previously, the `landIcePressure` was being computed in a subroutine and the `landIceFloatingFraction` was required to be identical to `landIceFraction`. This merge also removes the unused variable `landIceGroundedFracObserved`
Instead, it will be read in from the topography file directly, meaning it can be updated (e.g. from ssh adjustment).
this is a more accurate description for how it is uses, since it can determine where we modify either ssh or landIcePressure, depending on the approach.
f17151a
to
2389f6f
Compare
This could allow us to choose to have melting bleed into cells that are partly open ocean (e.g. for conservation when coupling to MALI).
! don't mask these because we may want to include melt that bleeds | ||
! into the open ocean | ||
landIceFraction(iCell) = landIceFracObserved(iCell) | ||
landIceFloatingFraction(iCell) = landIceFloatingFracObserved(iCell) |
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.
In case anyone has been reviewing this already, I just added the commit to change this. I think we don't want to hard-code this masking here because we want some flexibility about how to allow fluxes to bleed into cells that are partly open ocean and partly ice. This will be important for conservation when coupling with MALI (without requiring rerouting to cells the ocean decides are under land ice, which I think we want to avoid). I don't see an clear harm in at least supporting this possibility.
This is needed because otherwise locations with nonzero ice draft get missed and the Haney number may be too high for model stability.
Can you explain when this arose? Were these locations where landIceDraft > 0 and landIceMask = 0 ones where landIceFraction was less than the threshold? |
@xylar I tested this PR@e0c0c0755b with MPAS-Dev/compass#813 against compass/main@1588d78416 and E3SM/master@470a42bdcb. I'm not sure whether this would change with your latest commit but I was seeing maxDeltaSSH of 0.3m with this PR and maxDeltaSSH of 0.02m with the baseline (landIcePressure is the adjusted variable) for the IcoswISC240 test at the last ssh adjustment iteration. Is this similar to what you've been seeing? |
Yes, there are many such locations around the peninsula. They may have been avoided or the topography was different when grounded ice being masked out of the interpolation process but now that I am including it (as we will be doing with MALI), I am seeing places where not only is the For the new SORRM mesh (MPAS-Dev/compass#807): Here is the Here is the Here is the smoothing mask before (seeded from Here is the resulting Haney Number: Here is the smoothing mask after the change (seeded from And the resulting Haney Number (now capped at 20, as required): |
I haven't looked at that. My plan is to bring this in in conjunction with MPAS-Dev/compass#813 so I wasn't trying to compare with the current compass |
@cbegeman, thanks very much for looking at this and for your testing. |
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.
Thanks for the additional explanation and figures in response to my comments. I think the changes here look good. Thanks for all your work on this!
Agreed. It's hard to tell what changes are related to this PR and the new topography file. Since it doesn't crash, it seems to have been adjusted enough. |
@cbegeman, thanks so much for reviewing! |
@sbrus89 and @mark-petersen need your reviews. |
I compiled this with gnu (debug and optimized) on chicoma and intel on chrysalis and tested with the nightly test suite. There are machine-level diffs on the QU240 init, which are negligible.
Tested QUwISC240 using this branch and MPAS-Dev/compass#813 together, with gnu debug, and it is successful. Next I will test IcoswISC240 and rerun the Arctic 3km mesh initialization I set up for the Aerosi project. |
Results using this branch and MPAS-Dev/compass#813 together, with gnu debug. output:
|
Thanks very much @mark-petersen for reviewing! |
@mark-petersen, could you approve the PR if you're happy? |
@sbrus89, will you have time to review this very soon? If not, I'll probably just go forward with the reviews I have. |
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've looked this over and the changes look good to me. I'm approving based on testing from @mark-petersen and @cbegeman.
Thank you, @sbrus89! |
I'm testing with the new Arctic mesh for the Aerosi project, which is the RRS6to18 with a 3km Arctic. I'm having trouble with the If these steps already ran:
is it possible to just run the |
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 was able to run the IcoswISC240
through mesh generation, init, and performance test on chicoma with gnu. I set up and started running RRS6to18 and my new Arctic 3km mesh. I had some problems with that last one, but it is just my flag settings, which I can adjust myself.
Thanks for your work on this! I approve.
#6375) Update global ocean init mode for meshes with ice-shelf cavities This merge updates MPAS-Ocean init mode for global_ocean in several ways that are critical for initialization that is compatible with planned coupling to MALI: * The fields landIcePressure, landIceDraft and ssh are now read from a topography file. This means that landIcePressure is no longer computed based on the density at the ocean surface in init mode. Similarly, ssh is not required to be the same as landIceDraft. * Support is removed for reading land-ice topography fields from a dataset on a lat-lon grid. We no longer use this capability and maintaining it is not worth the effort. * The land-ice topography data set is now required to have landIceFloatingFracObserved as a field, and this is used to set landIceFloatingFraction. Previously, landIceFracObserved was being used to compute both landIceFraction and landIceFloatingFraction (assuming no grounded ice in the domain). * We no longer set landIceFraction and landIceFloatingFraction to zero when landIceMask and landIceFloatingMask, respectively, are zero. This is in order to allow melting in cells that are less than 50% land ice in order to better support conservation between ice sheet and ocean. * In addition, we use sshAdjustmentMask instead of landIceMask as the starting point for smoothing mask used to produce the Haney-number vertical coordinate. This is needed because otherwise locations with nonzero ice draft get missed and the Haney number may be too high for model stability. [BFB] mpas-ocean standalone feature
Passes:
merged to next |
@mark-petersen, yes, you can run that step on its own by going into its directory ( |
merged to master |
Thank you so much @jonbob! And also thank you @cbegeman, @sbrus89 and @mark-petersen for the reviews! |
This merge updates MPAS-Ocean init mode for
global_ocean
in several ways that are critical for initialization that is compatible with planned coupling to MALI.The fields
landIcePressure
,landIceDraft
andssh
are now read from a topography file. This means thatlandIcePressure
is no longer computed based on the density at the ocean surface in init mode. Similarly,ssh
is not required to be the same aslandIceDraft
.Support is removed for reading land-ice topography fields from a dataset on a lat-lon grid. We no longer use this capability and maintaining it is not worth the effort.
The land-ice topography data set is now required to have
landIceFloatingFracObserved
as a field, and this is used to setlandIceFloatingFraction
. Previously,landIceFracObserved
was being used to compute bothlandIceFraction
andlandIceFloatingFraction
(assuming no grounded ice in the domain).We no longer set
landIceFraction
andlandIceFloatingFraction
to zero whenlandIceMask
andlandIceFloatingMask
, respectively, are zero. This is in order to allow melting in cells that are less than 50% land ice in order to better support conservation between ice sheet and ocean.In addition, we use
sshAdjustmentMask
instead oflandIceMask
as the starting point for smoothing mask used to produce the Haney-number vertical coordinate. This is needed because otherwise locations with nonzero ice draft get missed and the Haney number may be too high for model stability.