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

Merged
merged 322 commits into from
Oct 29, 2021
Merged

Conversation

DeniseWorthen
Copy link
Collaborator

@DeniseWorthen DeniseWorthen commented Aug 27, 2021

Description of changes

Update CMEPS from ESCOMP/master. Issue #57

Specific notes

Adds X-grid capabilty for CESM; Refactor Accumulation field bundles; clean up and clarify med.F90 for transferred grids/meshs; refactor coupler history writing.

jedwards4b and others added 30 commits April 6, 2021 12:12
…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:
Sync support/HAFS branch with the emc/develop branch as of 04/16/2021
### Description of changes
Fix setting of scol_spval for single column functionality 

### Specific notes
This is a simple fix for CESM single column functionality. This ONLY effects the CESM NUOPC driver code.

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):
    validated that SMS_D_Ln9_Vnuopc.T42_T42.FSCAM.cheyenne_intel.cam-scam_mpace_outfrq9s now works using cesm2_3_alpah02d hash

Hashes used for testing:
- [ ] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - hash: tag for cesm2_3_alpah02d
### Description of changes

Correct the accumulation of budget diagnostics

### 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):
- [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:
- [X] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch: master
  - hash: 9426f3a0
- [ ] 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

Create a diags.log file with the budget calculation results, this is moved from med.log


### 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: master
  - hash:6ad08bd464
- [ ] 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:
fixes to land ice runoff in budget table

### Specific notes
This PR does not affect any UFS configuration, since the UFS does not use the budget tables at this point.

CMEPS Issues Fixed:
Fixes ESCOMP#179 

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

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):
Ran a B1850 f19_g17 case for 3 months and verified that the budget table looked correct with this term

Hashes used for testing:
- [x] CESM:
  - repository to check out: https://github.com/ESCOMP/CESM.git
  - branch: master
  - tag: cesm2_3_beta02
update to use annotated tags and cmeps prefix
Committing to test versioning.  dryrun is true so this should not actually create a tag.
actionfix:minor:
Mariana Vertenstein and others added 22 commits September 22, 2021 14:27
Pass tributary water depth and channel bankfull depth from rof to lnd
This  is should be a bfb enhancement that only matters if the new field is actually used.
The lnd->rof accumulation fields are not being written to or read from the restarts with PR cmeps0.13.27 and this PR fixes that. This will only effect CESM configurations. 
This PR is bfb.
### Description of changes
check_input_data needs this flag to properly download mesh files. 

### Specific notes
Change was tested by running the aux_cmeps test suite with flag  --input-dir /glade/scratch/jedwards/inputdata/  to force a new download of inputdata. 

Contributors other than yourself, if any:

CMEPS Issues : Fixes ESCOMP#196 

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):
- [ ] (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:
refactor mediator history to permit new functionality
### Description of changes
refactor mediator history to permit new functionality

### Specific notes
This PR is a large refactor of CMEPS history function capability. There are 3 categories where this capability is now extended or added: instantaneous, average and auxiliary output.
- Each component post phase (i.e. `med_phases_post_xxx_mod.F90`) now calls `med_phases_history_write_comp` and passes it its component id.
- In turn med_phases_write_comp calls instantaneous, average and auxiliary output for that component. 

- **med_phases_history_write_inst_comp**
    - writes the import and export state for that component based on the new input attribute settings 
      `history_n_xxx_inst` and  `history_option_xxx_inst` - where xxx = [atm,ice,glc,lnd,ocn,rof,wav and med]
     - output files will have the form `<casename>.cpl.hi.atm.yyyy-mm-dd-sssss.nc`
    
- **med_phases_history_write_avg_comp**
    - writes the import and export state for that component based on the new input attribute settings 
      `history_n_xxx_avg` and  `history_option_xxx_avg` - where xxx = [atm,ice,glc,lnd,ocn,rof,wav]
     - output files will have the form `<casename>.cpl.ha.atm.yyyy-mm-dd-sssss.nc`
 
- **med_phases_history_write_aux_comp**
    - writes auxiliary history files that are normally high frequency mediator output files that contain more than one time sample on a file and that are used to spin up a prognostic component (e.g. the ocn or lnd carbon cycle)
    -  the following auxiliary files are now supported and to enable them simply set the histaux_*_enabled flage to .true.
     ```histaux_atm2med_file1_enabled = .true.
     histaux_atm2med_file1_auxname = atm.1h.inst
     histaux_atm2med_file1_doavg = .false.
     histaux_atm2med_file1_flds = Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf
     histaux_atm2med_file1_history_n = 1
     histaux_atm2med_file1_history_option = nhours

     histaux_atm2med_file2_enabled = .false.
     histaux_atm2med_file1_ntperfile = 24
     histaux_atm2med_file2_auxname = atm.1h.avrg
     histaux_atm2med_file2_doavg = .true.
     histaux_atm2med_file2_flds = Sa_u:Sa_v
     histaux_atm2med_file2_history_n = 1
     histaux_atm2med_file2_history_option = nhours
     histaux_atm2med_file2_ntperfile = 24

     histaux_atm2med_file3_enabled = .false.
     histaux_atm2med_file3_auxname = atm.3hprec.avrg
     histaux_atm2med_file3_doavg = .true.
     histaux_atm2med_file3_flds = Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl
     histaux_atm2med_file3_history_n = 3
     histaux_atm2med_file3_history_option = nhours
     histaux_atm2med_file3_ntperfile = 8

     histaux_atm2med_file4_enabled = .false.
     histaux_atm2med_file4_auxname = atm.3h.avrg
     histaux_atm2med_file4_doavg = .true.
     histaux_atm2med_file4_flds = Sa_z:Sa_topo:Sa_u:Sa_v:Sa_tbot:Sa_ptem:Sa_shum:Sa_dens:Sa_pbot:Sa_pslv:Faxa_lwdn:Faxa_rainc:Faxa_rainl:Faxa_snowc:Faxa_snowl:Faxa_swndr:Faxa_swvdr:Faxa_swndf:Faxa_swvdf:Sa_co2diag:Sa_co2prog
     histaux_atm2med_file4_history_n = 3
     histaux_atm2med_file4_history_option = nhours
     histaux_atm2med_file4_ntperfile = 8

     histaux_atm2med_file5_auxname = atm.24h.avrg
     histaux_atm2med_file5_doavg = .true.
     histaux_atm2med_file5_enabled = .false.
     histaux_atm2med_file5_flds = Faxa_bcph:Faxa_ocph:Faxa_dstwet:Faxa_dstdry:Sa_co2prog:Sa_co2diag
     histaux_atm2med_file5_history_n = 1
     histaux_atm2med_file5_history_option = ndays
     histaux_atm2med_file5_ntperfile = 1

     histaux_lnd2med_file1_auxname = lnd.ncpl.inst
     histaux_lnd2med_file1_doavg = .false.
     histaux_lnd2med_file1_enabled = .false.
     histaux_lnd2med_file1_flds = all
     histaux_lnd2med_file1_history_n = 1
     histaux_lnd2med_file1_history_option = nsteps
     histaux_lnd2med_file1_ntperfile = 1
     ```
     - for file 1 history output is of the form <casename>.cpl.hx.atm.1h.inst.yyyy-mm-dd-sssss.nc - and the <atm.1h.inst>
        is specified by <histaux_atm2med_file1_auxname>
Contributors other than yourself, if any: None
CMEPS Issues Fixed: None
Are changes expected to change answers?
 - [x] bit for bit
Any User Interface Changes (namelist or namelist defaults changes)? (see above summary)
 - [x] Yes
@MinsukJi-NOAA
Copy link

@DeniseWorthen Is there a related UFS weather model Issue/PR number?

@DeniseWorthen
Copy link
Collaborator Author

Yes, PR #775

@DeniseWorthen DeniseWorthen merged commit 5beead0 into NOAA-EMC:emc/develop Oct 29, 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.

10 participants