Skip to content
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

NUOPC Cap for MOM6 #899

Merged
merged 88 commits into from
Apr 12, 2019
Merged

Conversation

JessicaMeixner-NOAA
Copy link
Contributor

This is the NUOPC cap for MOM6. This is the unified version that resolved the differences from EMC and NCAR. (It's redoing PR#898 because I needed to make it from a different branch).

mvertens and others added 30 commits July 26, 2018 15:17
@Hallberg-NOAA
Copy link
Collaborator

This looks like a valuable new addition to MOM6. Thanks for to all who contributed to this new capability.

There are a few code-style issues that I would like to raise concerning this commit.

  1. All MOM6 module use statements are supposed to have the "only" attribute and then list the specific elements of the module that are being used. Taking the lazy approach of just having a module use statement is dangerous (if two modules have the same procedure, you might accidentally get the wrong one) and uninformative for people trying to read the code. (I hear that the MOM6 debugger's guild has it in their union work rules that they will not debug any code that does not use "only" in its module use statements!)

  2. All MOM6 subroutine arguments and defined-type elements are supposed to have doxygen comments describing the argument or element along with units and any sign-conventions. Some of the new code modules have these throughout, others have comments with the right information but not doxygen syntax, and some have no comments at all describing the arguments to some routines.

  3. All MOM6 subroutines and defined types are supposed to have doxygen that briefly describe them and what they do. When you generate doxygen documentation of code, there is a log file that lists all elements and modules that are not documented, which can be very helpful for ensuring that nothing is missed. (Please see https://github.com/NOAA-GFDL/MOM6/wiki/Doxygen for a discussion of the use of doxygen with MOM6.

  4. It is preferred that the "implicit none" and "private" statements for MOM6 modules be on the same line separated by a semi-colon ("implicit none ; private") to facilitate searches to detect modules that do not have both statements.

These may seem like are relatively minor things, but they do make a difference for the readability and automatically generated code documentation. We will be adding automated tests to the code used at GFDL to ensure that these code-standards are adhered to (with recent updates it now does), and even though we at GFDL do not yet have a way to test the new NUOPC driver code, we think that it would be strongly advisable to follow the same standards.

@adcroft
Copy link
Collaborator

adcroft commented Apr 11, 2019

@adcroft
Copy link
Collaborator

adcroft commented Apr 11, 2019

@gustavo-marques This PR is onto dev/master so should be evaluated by NCAR. Since it only affects files in config_src/nuopc_driver/ I believe you alone acutally run tests that might be affected. In this case I think we do not need @awallcraft or @kshedstrom to test this PR.

Although we don't exercise the code this PR is now passing the tests on Travis when I merge into dev/gfdl and dev/master.

@gustavo-marques
Copy link
Collaborator

We approve this PR.

@adcroft adcroft merged commit e9a067f into mom-ocean:dev/master Apr 12, 2019
adcroft referenced this pull request in NOAA-GFDL/MOM6-examples Apr 12, 2019
Update from EMC to MOM6 dev/master

MOM6 commits:
- NOAA-GFDL/MOM6@e9a067f Merge pull request NOAA-GFDL/MOM6#899 from EMC-MOM6/feature/nuopccapPR
- NOAA-GFDL/MOM6@e4ff419 remove tabs
- NOAA-GFDL/MOM6@2eeac36 update from Rocky so that NEMS can run with later ESMF beta snapshot
- NOAA-GFDL/MOM6@d3d7ce9 Merge pull request EMC-MOM6/MOM6#1 from gustavo-marques/nuopccapPR_fixes
- NOAA-GFDL/MOM6@63514ab Repalces end if > endif and end do > enddo
- NOAA-GFDL/MOM6@306bcfb Updates doxumentation
- NOAA-GFDL/MOM6@d89b4b5 Updates doxumentation
- NOAA-GFDL/MOM6@e73c579 Removes unecessary comments
- NOAA-GFDL/MOM6@7ceda76 Add more doxumentation
- NOAA-GFDL/MOM6@c7042b4 Add more doxumentation and TODOs
- NOAA-GFDL/MOM6@c2900ac Loads missing modules
- NOAA-GFDL/MOM6@a5b8842 Add doxumentation
- NOAA-GFDL/MOM6@4b64355 Replaced error handler with return code
- NOAA-GFDL/MOM6@aa4a2c0 Add documentation
- NOAA-GFDL/MOM6@7572801 Clean code
- NOAA-GFDL/MOM6@f19bbd4 Adding "use, only: to import ESMF modules
- NOAA-GFDL/MOM6@acf99c8 Doxygenize
- NOAA-GFDL/MOM6@aefb2e3 Remove space, doxygenize and add "use, only"
- NOAA-GFDL/MOM6@ea32f96 Clean and Doxygenize
- NOAA-GFDL/MOM6@347eb0b Remove left spaces and add implicit none; private
- NOAA-GFDL/MOM6@6e5e587 removing trailing white space and fixing lines longer than 120
- NOAA-GFDL/MOM6@cec6245 reverting files that were not meant to be changed
- NOAA-GFDL/MOM6@c68c463 Merge branch 'dev/master' into unifyMOA2019
- NOAA-GFDL/MOM6@b43284b updated documentation
- NOAA-GFDL/MOM6@7c5cd13 Merge branch 'dev/nuopc_cmeps_fv3' of https://github.com/NCAR/MOM6 into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@9f9466a Merge remote-tracking branch 'emc/unifyMOA2019' into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@7a392f7 Final changes for unified cap. Removed t_surf initialization since not required. A few textural changes.
- NOAA-GFDL/MOM6@69dcdea Merge commit '319bf81' into unifyMOA2019 updates for sign changes on latent and fixing sign on salt_flux. adds potential to hook up meltw and melth from CICE
- NOAA-GFDL/MOM6@76b0f4d add code for dataPtr_area when creating the grid and attaching area to grid
- NOAA-GFDL/MOM6@319bf81 fixed minus signs
- NOAA-GFDL/MOM6@8447a7d Simplify creation of ESMF grid using halo values available from ocean_grid. Remove ocean_model_data_get from cap since no longer required
- NOAA-GFDL/MOM6@a8c5699 fixed IOB%salt_flux sign in MOM_surface_forcing and added hooks for seaice_melt_heat and seaice_melt_water
- NOAA-GFDL/MOM6@f7cfc94 Remove code relating to dump internal. This has been moved to separate branch unifyMOA2019withDump
- NOAA-GFDL/MOM6@1cf399b dumpMOMinternal is added behind ifdef flag
- NOAA-GFDL/MOM6@794a632 Commenting out unused fields not in the Nems field dictionary.
- NOAA-GFDL/MOM6@c309fcc Merge commit '769b581d22bcce0522d0f68f60ceb232e0ff2c05' into unifyMOA2019 Marianna's 02/19/19 changes to unified cap
- NOAA-GFDL/MOM6@769b581 Merge branch 'dev/nuopc_cmeps_fv3' of https://github.com/NCAR/MOM6 into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@7a6ff0b changes for restart
- NOAA-GFDL/MOM6@b1bdecf major cleanup of mom_cap_methods.F90 and mom_cap.F90 to unify cap further - this will NOT be bfb
- NOAA-GFDL/MOM6@3c4624d Two typo fixes; next round will contain resolution of rotations, removal of unneeded EMC code, fixed comments regarding local/global indices
- NOAA-GFDL/MOM6@e95bbe3 Fixes of typos/bugs for unifyMOM2019 cap
- NOAA-GFDL/MOM6@eea4ba1 Merge branch 'dev/nuopc_cmeps' into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@dc54281 Workaround for scalar field tranfer error - requires changes in CIME and CICE
- NOAA-GFDL/MOM6@e750485 Merge commit 'd8c525192d47ee746d4b1082826210596c0ff3c4' into unifyMOA2019 pulling Mariana's latest changes (remove mom_cap_share) into unifyMOM62019
- NOAA-GFDL/MOM6@d8c5251 Merge branch 'dev/nuopc_cmeps_fv3' of https://github.com/NCAR/MOM6 into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@501b90b removed mom_cap_share.F90
- NOAA-GFDL/MOM6@416ce3d Merge remote-tracking branch 'NCAR/dev/nuopc_cmeps_fv3' into unifyMOA2019
- NOAA-GFDL/MOM6@5a5fc42 Added check to allow running MOM with debug flags on
- NOAA-GFDL/MOM6@43d43a2 Merge branch 'dev/nuopc_cmeps_fv3' of https://github.com/NCAR/MOM6 into dev/nuopc_cmeps_fv3
- NOAA-GFDL/MOM6@91933c1 Revert "Do not end diag manager. This seems to be needed in order for the coupled system with FV3 and MOM to finalize."
- NOAA-GFDL/MOM6@c1f804b Move statement that should be inside an if block
- NOAA-GFDL/MOM6@e472d93 Do not end diag manager. This seems to be needed in order for the coupled system with FV3 and MOM to finalize.
- NOAA-GFDL/MOM6@888ad0d Merge commit 'fe0aedb' into dev/nuopc_cmeps
- NOAA-GFDL/MOM6@fe0aedb removed separate receive of lwup and lwdn to compute lwnet for cesm_coupled mode
- NOAA-GFDL/MOM6@a22a7ef added required allocatable
- NOAA-GFDL/MOM6@93a6a8f Merge branch 'mvertens/nuopc_cmeps_dev' into dev/nuopc_cmeps
- NOAA-GFDL/MOM6@a3ab66e turned on rotations of stress, current and slope deriv in cesm mode
- NOAA-GFDL/MOM6@1d61f0a rename import swnet fluxes for cesm
- NOAA-GFDL/MOM6@9deec5d removed trailing whitespace
- NOAA-GFDL/MOM6@5a2dd8b more unification
- NOAA-GFDL/MOM6@c9faeac removed trailing whitespace
- NOAA-GFDL/MOM6@8af6c8c updates to set grid or mesh only in one place
- NOAA-GFDL/MOM6@38751dd updates to unify nems and cesm caps without separate import/export routines
- NOAA-GFDL/MOM6@b308b2a new unified import method for grids or meshes
- NOAA-GFDL/MOM6@4bdd6a4 fixed problem for netsw from mediator
- NOAA-GFDL/MOM6@c720658 first step in putting in correct fields for swnet to ocean
- NOAA-GFDL/MOM6@02b4ae5 changes for adding in fv3
- NOAA-GFDL/MOM6@893254f removed trailing whitespace
- NOAA-GFDL/MOM6@c41cdb3 for cesm use mesh rather than grid - huge cost savings for initialization with CMEPS
- NOAA-GFDL/MOM6@cdb274b Merge branch 'mvertens/nuopc_cmeps' into dev/nuopc_cmeps
- NOAA-GFDL/MOM6@e0d604c bug fixes and removal of trailing white space
- NOAA-GFDL/MOM6@79cf0d0 more updates to get mom6 working correctly
- NOAA-GFDL/MOM6@f0d557f more updates to get the nuopc and mct changes consistent
- NOAA-GFDL/MOM6@cef6178 rewrote unified cap to have nems import and export routines now in mom_cap_methods.F90
- NOAA-GFDL/MOM6@0bc248c identified source of restart problem - still needs to be resolved
- NOAA-GFDL/MOM6@e23b468 Merge branch 'mvertens/nuopc_cmeps' into dev/nuopc_cmeps
- NOAA-GFDL/MOM6@eefd4dc removed trailing whitespace
- NOAA-GFDL/MOM6@0229d1d modifications to have nuopc cap working with latest dev/ncar code base
- NOAA-GFDL/MOM6@f9a3a81 latest updates to get cap up to date with dev/ncar and working
- NOAA-GFDL/MOM6@893a297 updates to be at the head of dev/ncar
- NOAA-GFDL/MOM6@0d49331 modifications to nuopc cap that are up to date with moa cap
- NOAA-GFDL/MOM6@4a5a5d8 Merge pull request NCAR/MOM6#83 from NCAR/rsdunlapiv/unify_cap
- NOAA-GFDL/MOM6@e55e0c2 Remove trailing whitespace in two files
- NOAA-GFDL/MOM6@0b8f544 Move in updates to MOM6 cap to unify with EMC
- NOAA-GFDL/MOM6@9733d7d write hist at end of run
- NOAA-GFDL/MOM6@c37b9da remove shr logging
- NOAA-GFDL/MOM6@64665e0 minor fixes for generalization
- NOAA-GFDL/MOM6@8fd077b steps to unify the ncar and emc nuopc caps
- NOAA-GFDL/MOM6@04b9bba unification with EMC addflds, etc
adcroft added a commit that referenced this pull request Apr 12, 2019
adcroft referenced this pull request in NOAA-GFDL/MOM6-examples Apr 12, 2019
- Following PR NOAA-GFDL/MOM6#899 from EMC
adcroft referenced this pull request in adcroft/Gaea-stats-MOM6-examples Apr 12, 2019
- Following PR NOAA-GFDL/MOM6#899 from EMC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants