-
Notifications
You must be signed in to change notification settings - Fork 63
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
Removal of FMS1 I/O from FMS2 I/O infra #343
Removal of FMS1 I/O from FMS2 I/O infra #343
Conversation
Codecov Report
@@ Coverage Diff @@
## dev/gfdl #343 +/- ##
============================================
+ Coverage 38.12% 38.14% +0.01%
============================================
Files 269 269
Lines 75622 75635 +13
Branches 13911 13915 +4
============================================
+ Hits 28832 28849 +17
+ Misses 41588 41584 -4
Partials 5202 5202
... and 4 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
37f2e02
to
331d5ac
Compare
I've tested this in our regression suite, but there's lots of potential points of I/O failure. @MJHarrison-GFDL @kshedstrom If either of you could test this on any OBC experiments, or point me to them, that would be very helpful. |
I see no problems except that some of my cases generated a Vertical_coordinate file instead of a Vertical_coordinate.nc file. The contents appear to match, though. |
Thanks, that is reassuring. As for |
I don't think so. One example case is here: https://github.com/ESMG/ESMG-configs/tree/dev/esmg/ocean_only/seamount/z |
There's an occurrence of the string Lines 1457 to 1461 in 1bb66a4
Could that be the cause of what @kshedstrom is seeing? |
Also, that's ocean_only behaving. Is there a SIS2 patch coming?
|
@klindsay28 That certainly looks like it would drop the @kshedstrom The plan to is to get MOM6 updated while supporting the legacy API for SIS2, and then flip the SIS2 API. Not always possible, but I think that one might work. (I guess none of our tests are calling |
That patch took care of the one problem. |
|
Hopefully this patch to SIS2 will fix the ASCII I/O issue. |
Yes, good to go! |
This patch removes the calls to FMS1 I/O (fms_io_mod, mpp_io_mod) from the FMS2 infra layer, and now exclusively uses FMS2 for those operations. FMS2 I/O is currently restricted to files which use domains; files which do not use them are delegated to the native netCDF layer. The reasoning for this is that FMS is required to define the formatting of domain-decomposed I/O; for single-file I/O, this is not necessary. This does not remove all references to FMS1 I/O from MOM6, only those in the I/O layer. Several minor changes are included to accommodate the change: * MOM restart I/O now always reports its MOM domain. Previously, the domian was omitted when PARALLEL_RESTARTFILES was false, in order to trick FMS into handling this as a single file. We now generate a new domain with an IO layout of [1,1] when single-file restarts are requested. * The interface acceleration (g') was incorrectly set to the layer grid (Nk) rather than the interface grid (Nk+1). This did not appear to change any answers, but when Vertical_coordinate.nc was moved to the netCDF layer, it detected this error. This is fixed in this patch.
The `Vertical_coordinate.nc` files has two points of creation, MOM_coord_initialization and MOM_ALE. Having moved the file from the infra to netCDF I/O layer, the .nc extension is no longer automatically applied. The extension was explicitly added to `Vertical_coordinate` in MOM_coord_initialization, but not to MOM_ALE. This patch adds the extension. Thanks to Kate Hedstrom for detecting this and Keith Lindsay for the proposed fix.
4c7a691
to
411dde5
Compare
I've pushed the requested cleanups here (mainly refactor + resolving conflicts). |
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.
All of my concerns with this PR have been addressed, and this PR is passing the pipeline testing at
gitlab.gfdl.noaa.gov/ogrp/MOM6/-/pipelines/18922.
This patch removes the calls to FMS1 I/O (fms_io_mod, mpp_io_mod) from the FMS2 infra layer, and now exclusively uses FMS2 for those operations.
FMS2 I/O is currently restricted to files which use domains; files which do not use them are delegated to the native netCDF layer. The reasoning for this is that FMS is required to define the formatting of domain-decomposed I/O; for single-file I/O, this is not necessary.
This does not remove all references to FMS1 I/O from MOM6, only those in the I/O layer.
Several minor changes are included to accommodate the change:
MOM restart I/O now always reports its MOM domain. Previously, the domian was omitted when PARALLEL_RESTARTFILES was false, in order to trick FMS into handling this as a single file. We now generate a new domain with an IO layout of [1,1] when single-file restarts are requested.
The interface acceleration (g') was incorrectly set to the layer grid (Nk) rather than the interface grid (Nk+1). This did not appear to change any answers, but when Vertical_coordinate.nc was moved to the netCDF layer, it detected this error. This is fixed in this patch.