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

Dust emissions control moved to cmeps #2545

Merged
merged 58 commits into from
Jul 30, 2024
Merged

Conversation

ekluzek
Copy link
Collaborator

@ekluzek ekluzek commented May 15, 2024

Description of changes

Remove the dust emissions namelist items from CTSM and use the namelist in the drv_flds_in for CMEPS.

This updates CTSM to use the namelist control in CMEPS (in ESCOMP/CMEPS#429). So the CMEPS external needs to be updated, and the namelist control in CTSM changed to use CMEPS rather than the internal CTSM control settings and the CTSM ones removed.

The new XML variable:

LND_SETS_DUST_EMIS_DRV_FLDS

controls whether dust emission settings are set by CTSM or by CAM. Only one or the other can set them, and it's required so when CAM and CTSM are running together they need to know which one will select.

Add a unit test for the CMEPS code to make sure it's working correctly.

Fix the cidinahoBR test in the build-namelist unit tester.

  • unit test
  • Add drv_flds_in namelist definition in CMEPS
  • Finalize CMEPS tag point to it here
  • Update drv_flds_in namelist definition in CTSM
  • Add capability to set the dust emissions settings in drv_flds_in
  • Have build-namelist respond to LND_SETS_DUST_EMIS_DRV_FLDS
  • Update build-namelist tester to get the new capability working
  • Remove the old dust namelist items in CTSM
  • Use the new cmeps shared code for namelist in FORTRAN
  • Run standard testing and make sure everything is working

Specific notes

Contributors other than yourself, if any:

CTSM Issues Fixed (include github issue #):
Fixes #2376
Fixes #2150
Fixes #2524
Fixes #2666

Are answers expected to change (and if so in what way)? No

Any User Interface Changes (namelist or namelist defaults changes)?
Namelist items removed from CTSM and into the drv_flds_in namelist in CMEPS

Testing performed, if any: will run standard testing, have run a few singleton tests so far

ekluzek and others added 30 commits April 26, 2024 12:40
FATES default allometry parameter file update

This updates the default FATES parameter file which includes a number
of changes:

   - Default global tree pft allometry update
   - New allometric mode options
   - New scaling coefficients for alternative leaf maintenance respiration
   - New switch to control the use of host land model day length scaling factor

This also incorporates some testing additions and clean up, including:

   - Removes cheyenne expected failure tests that have been converted to derecho
   - Adds a 5x5_amazon test to aux_clm and the expected failures list
   - Temporarilry converts a fates 5x5_amazon test to f10 test
   - Adds namelist check and corresponding unit test to make sure fates hydro
     and fates satellite phenology mode can not be used together

The FATES externals tag is also updated which includes a number of bug fixes
and the addition of new history output.
…, because ESMF is currently needed and not available
…is drv_flds_in settings when CAM is going to set them
Merge b4b-dev into master 2024-05-02
…, because ESMF is currently needed and not available
…is drv_flds_in settings when CAM is going to set them
@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 17, 2024

Testing on Izumi is as expected, with answers identical with the exception of changes in the field list. There are two new fields in the cpl files due to the cmeps update.

Similarily on Derecho 173 tests differ because of the field list. Most tests pass, but I am seeing the following fails right now (but could be because of Derecho problems):

ERI_D.ne30pg3_t232.I1850Clm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningMode
ERP_D_Ld5.f10_f10_mg37.I1850Clm50BgcCropG.derecho_gnu.clm-glcMEC_changeFlags
ERP_D_Ld9.ne30pg3_t232.I1850Clm51BgcCropG.derecho_intel.clm-clm51cam6LndTuningMode
ERP_D_Ld9.ne30pg3_t232.I1850Clm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningMode
ERP_D_Ld9.ne30pg3_t232.IHistClm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningMode
ERP_P256x2_D_Ld5.f19_g17_gris4.I1850Clm50BgcCropG.derecho_intel.clm-glcMEC_increase
ERP_P64x2_D_Ld10.f10_f10_mg37.IHistClm50SpG.derecho_intel.clm-glcMEC_decrease
ERS_D_Ld12.f10_f10_mg37.I1850Clm50BgcCropG.derecho_intel.clm-glcMEC_spunup_inc_dec_bgc
ERS_D_Ld9.ne30pg3_t232.I1850Clm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningMode
ERS_Ly3_P64x2.f10_f10_mg37.IHistClm50BgcCropG.derecho_intel.clm-cropMonthOutput
LILACSMOKE_D_Ld2.f10_f10_mg37.I2000Ctsm50NwpSpAsRs.derecho_intel.clm-lilac
SMS_Lm1.ne30pg3_t232.I1850Clm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningMode
SMS_Lm37.f10_f10_mg37.I1850Clm50SpG.derecho_intel.clm-glcMEC_long

@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 24, 2024

ALL of the above tests with CISM failed because CMEPS expects to receive runoff from CISM. So I needed to update CISM. I was afraid that would change answers, but from one short test it looks like it might be OK.

I also need to look into the LILAC test.

@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 24, 2024

I figured out the fix for LILAC.

The CISM update is identical for the shorter tests, but the 3-year and 37 month test change answers. I could make it identical by having branches of submodules -- but that seems to be too much. So it seems the best way to go is to bring this to master, which should then be b4b since the submodule updates have already come in.

Update submodule tags to pass runoff from cism to rof

- Update MOSART, CMEPS, and CISM so CISM runoff goes to ROF rather than CTSM
- Update RTM with fix needed for Paleo LGM work

Contributors:
@mvertens, @jedwards4b, @billsacks, @Katetc, @ekluzek, @slevis-lmwg

 Fixes ESCOMP#2590 Update CMEPS/MOSART/CISM/RTM tags
 Fixes ESCOMP/RTM#50 Likely wrong RTM river flux to MOM6 within cesm2_3_beta17

 Differences in namelist 'mosart_inparm':
  missing variable: 'do_rtmflood'
  missing variable: 'finidat_rtm'
  missing variable: 'frivinp_rtm'
  missing variable: 'rtmhist_fexcl1'
  missing variable: 'rtmhist_fexcl2'
  missing variable: 'rtmhist_fexcl3'
  missing variable: 'rtmhist_fincl1'
  missing variable: 'rtmhist_fincl2'
  missing variable: 'rtmhist_fincl3'
  missing variable: 'rtmhist_mfilt'
  missing variable: 'rtmhist_ndens'
  missing variable: 'rtmhist_nhtfrq'
  found extra variable: 'budget_frq'
  found extra variable: 'fexcl1'
  found extra variable: 'fexcl2'
  found extra variable: 'fexcl3'
  found extra variable: 'fincl1'
  found extra variable: 'fincl2'
  found extra variable: 'fincl3'
  found extra variable: 'finidat'
  found extra variable: 'frivinp'
  found extra variable: 'mfilt'
  found extra variable: 'mosart_euler_calc'
  found extra variable: 'mosart_tracers'
  found extra variable: 'ndens'
  found extra variable: 'nhtfrq'
  found extra variable: 'use_halo_option'

Changes answers
- what code configurations: mosart and rtm
- what platforms/compilers: all
- nature of change: mosart roundoff; rtm larger than roundoff due to bug fix; the latter also affects bgc variables

 We are ignoring strange diffs from baseline in two tests in variable
 FATES_TRANSITION_MATRIX_LULU as explained in issue ESCOMP#2656.

 Conflicts:
	bld/unit_testers/build-namelist_test.pl
@ekluzek ekluzek changed the base branch from b4b-dev to master July 24, 2024 18:00
@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 25, 2024

Testing on izumi is b4b with ctsm5.2.015 and as expected. On Derecho only the following are unexpected:

These three have a limited number of fields that differ to the baseline:

ERP_P64x2_Lm13.f10_f10_mg37.IHistClm60Bgc.derecho_intel.clm-monthly--clm-matrixcnOn_ignore_warnings
SMS_D.1x1_brazil.I2000Clm60FatesSpCruRsGs.derecho_gnu.clm-FatesColdDryDepSatPhen
SMS_D.1x1_brazil.I2000Clm60FatesSpCruRsGs.derecho_gnu.clm-FatesColdMeganSatPhen

The FATES tests have the field: FATES_TRANSITION_MATRIX_LULU that changes by either infinity or a huge value with a tiny normalized difference.

The matrix test differs as follows...

RMS CWDN_Cap_vr 1.0332E+00 NORMALIZED 3.8222E-01
RMS LIT_LIGN_Cap_vr 8.5467E-02 NORMALIZED 5.4916E-02
RMS LIT_METN_Cap_vr 6.4770E-03 NORMALIZED 1.0094E-02
RMS SOM_ACTN_Cap_vr 2.0940E-18 NORMALIZED 1.9353E-19
RMS SOM_PASN_Cap_vr 1.4331E-15 NORMALIZED 5.7426E-18
RMS SOM_SLON_Cap_vr 3.7006E-16 NORMALIZED 1.8358E-18
RMS LIT_CELC_Cap_vr 4.3858E-01 NORMALIZED 2.5154E-03
RMS LIT_METC_Cap_vr 2.3624E-05 NORMALIZED 8.2933E-07
RMS SOM_ACTC_Cap_vr 1.0132E-19 NORMALIZED 9.5831E-22
RMS SOM_PASC_Cap_vr 1.0204E+00 NORMALIZED 2.9880E-04
RMS SOM_SLOC_Cap_vr 6.2706E-18 NORMALIZED 2.2891E-21

The lilac test is failing to run which then causes the difference to baseline to fail:

LILACSMOKE_D_Ld2.f10_f10_mg37.I2000Ctsm50NwpSpAsRs.derecho_intel.clm-lilac

@ekluzek ekluzek added the next this should get some attention in the next week or two. Normally each Thursday SE meeting. label Jul 25, 2024
@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 25, 2024

Looks like the FATES tests are due to this:

#2656

…settings are required and it's namelist must be read
 Enable new crop calendars for clm60 compsets

This commit switches clm60 compsets (really, any compset other than clm45, clm50, and clm51) to use:
- Per-gridcell and -crop sowing windows derived from the GGCMI phase 3b group II static growing seasons
- Per-gridcell and -crop maturity requirements derived from those same growing seasons, over the 1980-2009 growing seasons
- Code to adjust those prescribed maturity requirements based on recent climate
@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 30, 2024

aux_clm testing is as expected on both Derecho and Izumi. The following tests show differences in answers because of the issues talked about above...

ERP_P64x2_Lm13.f10_f10_mg37.IHistClm60Bgc.derecho_intel.clm-monthly--clm-matrixcnOn_ignore_warnings
SMS.f10_f10_mg37.I2000Clm50BgcCrop.derecho_nvhpc.clm-crop
SMS_D.1x1_brazil.I2000Clm60FatesSpCruRsGs.derecho_gnu.clm-FatesColdDryDepSatPhen
SMS_D.1x1_brazil.I2000Clm60FatesSpCruRsGs.derecho_gnu.clm-FatesColdMeganSatPhen

The "nvhpc" test is because of a missing baseline for ctsm5.2.016.

@ekluzek ekluzek merged commit e7626f8 into ESCOMP:master Jul 30, 2024
2 checks passed
@ekluzek ekluzek deleted the dustcontrolincmeps branch July 30, 2024 14:47
@ekluzek
Copy link
Collaborator Author

ekluzek commented Jul 30, 2024

About a week for sprint 8.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked: dependency Wait to work on this until dependency is resolved enhancement new capability or improved behavior of existing capability next this should get some attention in the next week or two. Normally each Thursday SE meeting. priority: high High priority to fix/merge soon, e.g., because it is a problem in important configurations
Projects
Status: Done (non release/external)
Status: Done
5 participants