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 #51

Merged
merged 82 commits into from
Jul 9, 2021
Merged

Conversation

DeniseWorthen
Copy link
Collaborator

Updates CMEPS to latest escomp/master

Issue #50

Mariana Vertenstein and others added 30 commits March 25, 2021 17:19
cesm: bug fix for C1850ECO co2 and additional cesm tests
### Description of changes
bug fix for co2 in config_components_cesm.xml and addition of tests to testlist_drv.xml for cesm testing

### Specific notes
This PR only effects the CESM cime_config directory. 

Contributors other than yourself, if any:

CMEPS Issues Fixed: None

Are changes expected to change answers?
 - [x] bit for bit - except for C1850ECO
 - [ ] different at roundoff level
 - [ ] more substantial 

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [x] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
No testing was done - since these are just additions to the automated test suite for cesm
add functionality for ocean precip scaling for CESM
### Description of changes
This change only effects CESM compsets

### Specific notes
This adds the capability currently only activated by CESM C and G compsets (with POP not MOM) to have a precip factor sent by POP to the mediator that is then applied to scale atmosphere rain and snow going back to the ocean and sea-ice (in this case POP and CICE/DICE). In the current testing, the precip factor was only set to 1 by POP - as a result, this PR does not change any baselines.

Contributors other than yourself, if any:

CMEPS Issues Fixed: None

Are changes expected to change answers?
 - [x] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial 

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [x] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- Verified manually that for SMS_Ld1_Vnuopc.T62_g17.G.cheyenne_intel.pop-default, the scaling factor to the mediator and that was set correctly in med_phases_prep_ocn_mod.F90 and that the results were bfb
- Verified that SMS_Vnuopc_Ld5.T62_t061.GMOM.cheyenne_intel was bfb before and after this change.
…to_gcomp

### Description of changes
Fixes the avgdt variable to output in correct units of wallclock seconds per simulation day.

In the CESM driver only, add the nthreads value from nuopc.runconfig to each components attributes. Since the CESM driver is include with CMEPS - this is in fact a CMEPS change but only relevant to the driver.

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers?
 - [X] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial 

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [X] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [X] (required) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [X] (required) CESM testlist_drv.xml
   - machines and compilers: cheyenne intel, baseline is apr05
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-S2S:
- [ ] (required) UFS-S2S testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch: nuopc_dev
  - hash:
- [ ] UFS-S2S, then umbrella repository to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
jedwards4b and others added 22 commits June 1, 2021 09:55
### Description of changes

Bug fixes for CESM 1850 mct/nuopc validation - including memory leak in med_diag_mod.F90.

### Specific notes
These are changes needed to the budgets and run sequence needed that were needed to fix problems in the B1850 mct/nuopc validation.

Contributors other than yourself, if any: @jedwards4b 

CMEPS Issues Fixed: ESCOMP#190 ESCOMP#197 

Are changes expected to change answers?
 - [x] bit for bit

Any User Interface Changes (namelist or namelist defaults changes)?
 - [x] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
5 year B1850 1 year simulation was run

Hashes used for testing:
- [x] CESM: 
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - tag: cesm2_3_alpha03a
With my upcoming fix for ESMCI/cime#3984, I
was getting some failures due to namelist variables that weren't
properly defined.

(1) mediator_read_restart: since this is set in the code rather than via
    the normal mechanism, I think it's appropriate to have
    skip_default_entry="true" here.

(2) ESP's pio_netcdf_format: I'm not positive that the way I've set it
    is correct, but it seems more correct than before.
### Description of changes
Remove the ifdef which assured that the version of ESMF was 8 or greater.   Version 8 or greater is always required so this is just a cleanup.   Also added the CASE_HASH variable which is used by cime to establish provenance. 

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers?
 - [X] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [X] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [X] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines: cheyenne intel
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:
  - hash:
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
### Description of changes

Remove some unused namelist variables: glc_nx, glc_ny, and some glc2lnd and lnd2glc mapping file variables.

In addition to doing some general cleanup, the motivation for removing these is because they will be hard to support with the upcoming capability to have multiple GLC grids.

### Specific notes

Contributors other than yourself, if any: @mvertens provided general input

CMEPS Issues Fixed (include github issue #): none

Are changes expected to change answers?
 - [x] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [x] Yes - just removes some namelist and xml variables
 - [ ] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [x] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines: cheyenne
   - details (e.g. failed tests):
     - Testing run in the context of cesm2_3_beta03
     - Two tests failed; these also fail from out-of-the-box cesm2_3_beta03:
       - test_j_createnewcase_user_compset_vs_alias
       - ERIO_Ln11.f09_g16.X.cheyenne_intel from test_full_system
- [x] (recommended) CESM testlist_drv.xml
   - machines and compilers: cheyenne; all compilers for which tests are defined
   - details (e.g. failed tests):
     - Ran tests in xml category nuopc; did *not* perform baseline comparisons
     - Three tests failed; I'm pretty sure these are due to pre-existing issues:
       - ERR_Vnuopc_Ld5.f09_t061.B1850MOM.cheyenne_intel.allactive-nuopc_cap_io & ERS_Vnuopc_Ld5.f19_g17.B1850.cheyenne_intel.allactive-nuopc_cap_io: can't find nuopc_cap_io testmods dir
       - ERS_Vnuopc_Lm13.f10_f10_mg37.I1850Clm50SpG.cheyenne_intel: Can't do restart run with CISM & NUOPC currently
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [x] (other) please described in detail: CISM's aux_glc test suite
   - machines and compilers: cheyenne intel & gnu
   - details (e.g. failed tests):
     - Tests run in the context of cismwrap_2_1_85
     - All tests pass and are bit-for-bit with baselines; NLCOMP failures as expected

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [x] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:
  - hash: cesm2_3_beta03
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
…ly clause - this is supported in mpi_f08, but that module also changes the type of mpi variables in fortran
Fix namelist variables that weren't being set
### Description of changes

With my upcoming fix for ESMCI/cime#3984, I
was getting some failures due to namelist variables that weren't
properly defined.

(1) mediator_read_restart: since this is set in the code rather than via
    the normal mechanism, I think it's appropriate to have
    skip_default_entry="true" here.

(2) ESP's pio_netcdf_format: I'm not positive that the way I've set it
    is correct, but it seems more correct than before.

### Specific notes

Contributors other than yourself, if any: none

CMEPS Issues Fixed (include github issue #): none

Are changes expected to change answers?
 - [x] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [x] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [ ] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [x] (optional) CESM prealpha test
   - cheyenne & izumi (all compilers)
   - details (e.g. failed tests): only test failures are ones that seem to have failed in the baseline, except for a couple of tests that looked like system issues. NLCOMPs identical except for the expected change in pio_netcdf_format for ESP
- [x] (other) please described in detail: CESM's aux_cime_baselines
   - cheyenne (all compilers for which tests are defined)
   - details (e.g. failed tests): all pass; NLCOMPs identical except for the expected change in pio_netcdf_format for ESP

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [x] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - cesm2_3_alpha03a, with the cime branch in ESMCI/cime#3988
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
remove only clause for use mpi
it turns out that the mpi module does not support functions in the only clause - this is supported in mpi_f08, but that module also changes the type of mpi variables in fortran

### Description of changes

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers?
 - [X] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [X] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [X] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:
  - hash:
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
add support for stop_option date
### Description of changes

Add support to esm_time_mod.F90 for stop option 'date'.  Change some ESMF log info messages to esmf log error. 

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed: ESCOMP#192 

Are changes expected to change answers?
 - [X] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [X] No

Hand tested  SMS_Vnuopc.f19_g17.X with STOP_DATE=00010106 and STOP_OPTION='date'

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [X] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines: cheyenne intel
   - details (e.g. failed tests):
- [X] (recommended) CESM testlist_drv.xml
   - machines and compilers: cheyenne intel
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:master
  - hash: cesm2_3_alpha03a
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
### Description of changes

Adds a second conservative mapping type (consf_aofrac) for use by ufs-weather which normalizes some ATM->OCN fluxes by the open water fraction on the ATM grid.

### Specific notes

- adds a model abort if a user attempts to specify a second normalization type for a given ``n1:n2:maptype``. This enforces the single normalization restriction for the packed field bundles which is noted in the code comments but not otherwise enforced.
- adds a second mapconsf routehandle for the second normalization type for use when coupling mode is ``nems_orig`` or ``nems_frac``. The second RH will be created only if mapconsf does not yet exist; if it exists the second RH will be a copy.
- implements unity normalization for ufs-weather in esmFldsExchange_nems
- fixes a gnu compile error for ufs-weather in ``med_fldList_Document_Mapping``
- removes fd_nems.yaml since it is now required in ufs-weather when CMEPS is not in use (e.g. standalone ATM or JEDI).
- fixes unitialized AccumCnts 

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers?
 - [x] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [ ] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [ ] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [X] (recommended) UFS-coupled testing
   - description: ufs-weather-model [177ea10
](https://github.com/ufs-community/ufs-weather-model)

   - details (e.g. failed tests): This commit contains the current emc/develop branch of CMEPS updated with the latest ESCOMP/master. It breaks current RT baselines for ufs-weather solely because the number of components is now 9 
   
 ```
 Dimension ExpAccumCnt_nx differs            9  /=            8
 Dimension ImpAccumCnt_nx differs            9  /=            8
```
All other fields in all Restarts (ATM, ICE, OCN) are B4B for the current top of ufs-weather except this difference in the CMEPS restart file.

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:
  - hash:
- [X ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out: https://github.com/ufs-community/ufs-weather-model
  - branch:develop
  - hash: 177ea10
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
### Description of changes

The mapping of Faoo_fco2_ocn must have a normalization of 1 and must be mapped with mapconsd NOT mapconsf.

### Specific notes
This was found during the validation of the compset 
`1850_CAM60_CLM50%BGC-CROP_CICE_POP2%ECO_MOSART_SGLC_WW3_BGC%BPRP 
`
at f19_g17 

This also fixes the problem encountered running a B1850 compset with cmeps0.13.10 
Its important to note that current any mapping type for a given source->destination pair can only have one normalization.
The problem was that between ocn->atm the old mapping for Faoo_fco2_ocn was mapconsf and the normalization was 1.
The new error check introduced by @DeniseWorthen found a problem with the So_t between ocn->atm was trying to use a normalization of 'ofrac'.

Contributors other than yourself, if any:

CMEPS Issues Fixed: ESCOMP#204

Are changes expected to change answers?
 - [x] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [x] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [ ] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines:
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [x] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):
   Verified that the following test ran: SMS_Ld1_Vnuopc.f19_g17.B1850.cheyenne_intel

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - hash: cesm2_3_beta03  (updated CIME to 71ddf1ced - current master)
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
### Description of changes
Add code to buildexe script to check that ESMF VERSION is new enough.  ESMF 8.1 is required unless ESMF_AWARE_THREADING is enabled which requires 8.2.0

### Specific notes

Contributors other than yourself, if any:

CMEPS Issues Fixed (include github issue #):

Are changes expected to change answers?
 - [X] bit for bit
 - [ ] different at roundoff level
 - [ ] more substantial

Any User Interface Changes (namelist or namelist defaults changes)?
 - [ ] Yes
 - [X] No

Testing performed if application target is CESM:(either UFS-S2S or CESM testing is required):
- [X] (recommended) CIME_DRIVER=nuopc scripts_regression_tests.py
   - machines: cheyenne intel (all pass)
   - details (e.g. failed tests):
- [ ] (recommended) CESM testlist_drv.xml
   - machines and compilers:
   - details (e.g. failed tests):
- [ ] (optional) CESM prealpha test
   - machines and compilers
   - details (e.g. failed tests):
- [ ] (other) please described in detail
   - machines and compilers
   - details (e.g. failed tests):

Testing performed if application target is UFS-coupled:
- [ ] (recommended) UFS-coupled testing
   - description:
   - details (e.g. failed tests):

Testing performed if application target is UFS-HAFS:
- [ ] (recommended) UFS-HAFS testing
   - description:
   - details (e.g. failed tests):

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch:
  - hash:
- [ ] UFS-coupled, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
- [ ] UFS-HAFS, then umbrella repostiory to check out and associated hash:
  - repository to check out:
  - branch:
  - hash:
@DeniseWorthen DeniseWorthen merged commit d5428cf into NOAA-EMC:emc/develop Jul 9, 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.

6 participants