-
Notifications
You must be signed in to change notification settings - Fork 232
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
+More MOM6 framework code restructuring #1289
Merged
adcroft
merged 10 commits into
mom-ocean:dev/gfdl
from
Hallberg-NOAA:revise_framework_more
Jan 19, 2021
Merged
+More MOM6 framework code restructuring #1289
adcroft
merged 10 commits into
mom-ocean:dev/gfdl
from
Hallberg-NOAA:revise_framework_more
Jan 19, 2021
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Added the new module MOM_coms_wrapper, along with explicit interfaces for the broadcast routine for the cases that might actually be used by MOM6. With these new interfaces, the source PE has been made into an optional argument, and there is a new optional argument to indicate whether the broadcast is blocking. Also the MOM_horizontal_regridding module has been updated to reflect these changes. All answers are bitwise identical, but an existing required argument to broadcast has been made optional and there is a new optional argument.
Added the new module MOM_interpolate to wrap the time_interp_external and horiz_interp modules. The overloaded interface time_interp_external had to be renamed to time_interp_extern in the version offered by MOM_interpolate because of a weird compile time problem with the PGI 19.10.0 compiler. Some large blocks of unused code in MOM_horizontal_regridding were commented out. Also modified 6 files outside of the framework directory to use these new interfaces, but they will all work without these changes. All answers are bitwise identical.
Partially cleaned up MOM_horizontal_regridding.F90, including the elimination of several unused routines, the addition of comments describing variables, and some white space corrections. All answers are bitwise identical.
Moved MOM_diag_manager_wrapper.F90 to MOM_diag_manager.F90 (mostly for brevity) and added use statements and provided interfaces for all of the diag_manager_mod, diag_data_mod and diag_axis_mod routines that are used within the MOM6 code, with some renaming of interfaces to reflect their use within the MOM6 code. All answers are bitwise identical.
Made netcdf module use dependencies explicit in MOM_horizontal_regridding.F90. All answers are bitwise identical.
Codecov Report
@@ Coverage Diff @@
## dev/gfdl #1289 +/- ##
=========================================
Coverage 45.82% 45.83%
=========================================
Files 227 229 +2
Lines 71552 71592 +40
=========================================
+ Hits 32791 32813 +22
- Misses 38761 38779 +18
Continue to review full report at Codecov.
|
adcroft
approved these changes
Jan 14, 2021
adcroft
approved these changes
Jan 19, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR includes three more steps in restructuring the MOM6 framework code to
accommodate the FMS2 related changes, specifically the creation of the new
MOM_coms_wrapper, MOM_interpolate and MOM_diag_manager modules. These changes
include new interfaces that are slightly changed from their predecessors by
adding new optional arguments or changing previously mandatory arguments into
optional arguments. Code outside of the framework directory is not required to
change but in this PR it is changed to exercise the new variants. With this PR
the changes to the framework code that would be required to rearrange the files
into different directories to support FMS2 are nearly complete. All answers and
output files are bitwise identical.
To complete the separation of the framework files into a MOM-specific
directory and an FMS wrapper directory, the files MOM_array_transform.F90,
MOM_coms_wrapper.F90, MOM_constants.F90, MOM_cpu_clock.F90,
MOM_diag_manager.F90, MOM_domains.F90, MOM_error_handler.F90, MOM_io_wrapper.F90
and MOM_time_manager.F90 would be moved to the new infrastructure directory,
with one routine (MOM_domains_init) removed from MOM_domains.F90.
The commits in this PR include: