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

Update CMEPS for postphases, ice sheets and glc->ocn dynamic mapping #28

Merged
merged 251 commits into from
Jan 12, 2021

Conversation

DeniseWorthen
Copy link
Collaborator

@DeniseWorthen DeniseWorthen commented Dec 23, 2020

Description of changes

  • updates CMEPS for recent changes from ESCOMP.
  • implements post phases in the run sequence. This is a performance feature which removes redundant mapping when the coupling includes a component on a very slow coupling frequency. For example, in CESM the land ice was being mapped to the ATM every fast coupling step, even though it was updating at a much slower (eg 1x/day) timestep.
  • adds capability of coupling to multiple ice sheets
  • adds capability of dynamic mapping for of multiple levels of ocean being passed to land ice.

Specific notes

  • Changes have been tested in both ufs-cpld and ufs-datm and are B4B with current baselines: Hera Log

  • Additional run phases need to be added to the run sequences.

This PR is dependent on the merge of the latest changes to ESCOMP/master ESCOMP PR #148

uturuncoglu and others added 30 commits June 26, 2020 16:01
…water_option

Update TFREEZE_SALTWATER_OPTION value for MOM6
cleanup and changes to be consistent with nems
DeniseWorthen and others added 3 commits December 30, 2020 07:53
restore cmake subdir and CMakeLists.txt that were removed from
emc/develop in case they conflicted w/ ufs-weather build; testing
with these files shows they have no impact (all cpld * datm tests
pass)
changes to enable ocn->glc coupling at multiple levels
This PR uses dynamic masking in the prep_phases_glc_mod in order to enable sending ocn data to glc. The ocean data is at multiple levels but with associated differences in the ocn bathymetry.
Are changes expected to change answers?  bit for bit
Any User Interface Changes (namelist or namelist defaults changes)?  Yes - added new nuopc_config variables ocn2glc_coupling and ocn2glc_levels (colon delimited string of ocean levels)
Testing: CESM testlist_drv.xml
machines and compilers: cheyenne/intel
details (e.g. failed tests): compared to cmeps baselines dec06 and created new baseline dec19
CESM:
repository to check out: https://github.com/ESCOMP/CESM.git
branch: nuopc_dev_development
hash: 1c90e71
@DeniseWorthen
Copy link
Collaborator Author

DeniseWorthen commented Jan 6, 2021

I've merged in the latest escomp/master and verified that this PR is b4b w/ all current cpld and datm baselines. It is ready for review and merge. Orion logs here

@DeniseWorthen
Copy link
Collaborator Author

I need to resolve an issue w/ med_io_mod.F90 so I'm going to put this on hold for a day or so.

*this mod was supposed to have been replaced in previous update
to emc/develop but was found to still be the "performance" version
which has caused issues in cesm testing.

skip-ci
* the same issue found in prep_ice for the datm (scalar_id=0) was
found in cesm using the gnu compiler. this commit implements an
alternate fix suggested by escomp for the case when the netsw_cday
is not obtained from the atm, yielding a scalar_id=0

*this commit also produces b4b results against the current baselines
for both the cpld and datm
@DeniseWorthen
Copy link
Collaborator Author

I have resolved two issues (see last two commit notes). I've tested both on cheyenne and no baselines change. I consider this PR now ready for review and merge.

@@ -16,18 +16,26 @@ Any User Interface Changes (namelist or namelist defaults changes)?
- [ ] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to change UFS-s2s to UFS coupled testing in the future since the UFS tests covers both weather and s2s?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point. I'll make a note; she said she has an upcoming PR also so she could do it then.

@@ -0,0 +1,47 @@

if (DEFINED ENV{ESMFMKFILE})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UFS has FindESMF.cmake FindNetCDF.cmake FindPIO.cmake under CMakeModules/Modules, I assume ufs does not use the cmake here from CMEPS. Are these cmake related files used in CIME?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. There has been some confusion on my part for what is required for cime vs our build but I believe this to be good for both sides.

Copy link
Collaborator

@junwang-noaa junwang-noaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to confirm if the code includes the new mapping implementation (rather than mapping each field individually) Mariana mentioned to improve the performance?

@DeniseWorthen
Copy link
Collaborator Author

That was already included in an earlier commit for the packed field bundles. That loads all the fields into the undistributed dimension of a single field. That single field can then be mapped one time and then unpacked back into all the individual fields.

@DeniseWorthen
Copy link
Collaborator Author

@binli2337 can you please review and approve? Thanks.

@DeniseWorthen DeniseWorthen merged commit 1f67571 into NOAA-EMC:emc/develop Jan 12, 2021
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.