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. https://github.com/NOAA-GFDL/SIS2/pull/193/files |
|
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). |
Hallberg-NOAA
left a comment
There was a problem hiding this comment.
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.
The default is to append the date, unless otherwise specified in the NUOPC runconfig
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.