Skip to content

Commit 710d3dd

Browse files
authored
Refactor and enhance CMIP7 namelist process (#287)
Summary: Refactor and enhance CMIP7 namelist process Contributors: gold2718 Reviewers: @Ovewh, @mvertens Purpose of changes: Turn CMIP7 data request into usermods - #286 Github PR URL: #287 Changes made to build system: None Changes made to the namelist: None except for new usermods options Changes to the defaults for the boundary datasets: None Substantial timing or memory changes: None Detailed description of changes - Implement configuration file for usermods sets - Add support for output with COSP and/or Aerocom fields - Add support for separate CAM field request (added to CMIP7 request) - Rewrote README.md file - Add regression test for full output (modify base NHIST test) - Improve extract_master_list.py to allow multiple input logs plus user-defined output file. - Create fixed list for CAM fields that do not have addfld calls. These fields are available but are not added to any fincl as their output is hard coded. - Create set of fields for emission-driven runs - Use chemistry diags for a specific package, not from master list - Parse history handling flags from spreadsheets (e.g., CMIP7 data request) - Update PUMAS tag with NCAL bug fix - Update CMIP7 spreadsheet to 2026-07-02:09:05 - Improve reporting of missing fields (introduce verbose option) - Add script to test output - Add docosp = .true. for COSP usermods runs - Implement configuration file for usermods sets - Add support for output with COSP and/or Aerocom fields - Add support for separate CAM field request (added to CMIP7 request) Testing: - aux_cam_noresm on Olivia: All pass except for namelist and output changes for modified test - aux_cam_noresm on Betzy: All pass except for namelist and output changes for modified test
1 parent d889383 commit 710d3dd

31 files changed

Lines changed: 2417 additions & 1332 deletions

File tree

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
[submodule "pumas"]
9393
path = src/physics/pumas
9494
url = https://github.com/NorESMhub/PUMAS
95-
fxtag = noresm3_0_005_pumas_v1_38
95+
fxtag = noresm3_0_006_pumas_v1_38
9696
fxrequired = AlwaysRequired
9797
fxDONOTUSEurl = https://github.com/NorESMhub/PUMAS
9898

cime_config/testdefs/testlist_cam.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<!-- CAM-Nor test-supported COMPSETS -->
66
<!-- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -->
77

8-
<test compset="NFHIST" grid="ne16pg3_ne16pg3_mtn14" name="ERP_D_Ld3" testmods="cam/outfrq1d">
8+
<test compset="NFHIST" grid="ne16pg3_ne16pg3_mtn14" name="ERP_D_Ld3" testmods="cam/outfrq1d_fulloutput">
99
<machines>
1010
<machine name="betzy" compiler="intel" category="aux_cam_noresm"/>
1111
<machine name="olivia" compiler="intel" category="aux_cam_noresm"/>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../usermods_dirs/CMIP7_HistoryHF
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
write_nstep0 = .true.
2+
inithist = 'ENDOFRUN'
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
!----------------------------------------------------------------------------------
2+
! Users should add all user specific namelist changes below in the form of
3+
! namelist_var = new_namelist_value
4+
!
5+
! Include namelist variables for drv_flds_in ONLY if -megan and/or -drydep options
6+
! are set in the CLM_NAMELIST_OPTS env variable.
7+
!
8+
! EXCEPTIONS:
9+
! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting
10+
! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting
11+
! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting
12+
! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting
13+
! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting
14+
! Set irrigate by the CLM_BLDNML_OPTS -irrig setting
15+
! Set dtime with L_NCPL option
16+
! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options
17+
! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases
18+
! (includes $inst_string for multi-ensemble cases)
19+
! Set glc_grid with CISM_GRID option
20+
! Set glc_smb with GLC_SMB option
21+
! Set maxpatch_glcmec with GLC_NEC option
22+
! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable
23+
!----------------------------------------------------------------------------------
24+
hist_nhtfrq = -24
25+
hist_mfilt = 1
26+
hist_ndens = 1
27+

cime_config/usermods_dirs/CMIP7_COSP/include_user_mods

Lines changed: 0 additions & 1 deletion
This file was deleted.

cime_config/usermods_dirs/CMIP7_COSP/user_nl_cam

Lines changed: 0 additions & 49 deletions
This file was deleted.

cime_config/usermods_dirs/CMIP7_History/user_nl_cam

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
! CAM aerocom diagnostic namelist entries
2+
3+
! Aerocom fields will be output for this run
4+
use_aerocom = .true.
5+
6+
! Only output fields listed in this file
7+
empty_htapes = .true.
8+
9+
! monthly output
10+
nhtfrq(1) = 0
11+
mfilt(1) = 1
12+
fincl1 = 'A550_BC:A', 'A550_DU:A', 'A550_POM:A', 'A550_SO4:A', 'A550_SS:A',
13+
'ABS550AL:A', 'AIRMASSL:A', 'AODVVOLC:A', 'AQSO4_H2O2:A', 'AQSO4_O3:A',
14+
'CCN5:A', 'CCN7:A', 'CCN_B:A', 'CLDHGH:A', 'CLDICE:A', 'CLDLIQ:A', 'CLDLOW:A',
15+
'CLDMED:A', 'CLDTOT:A', 'CONCLD:A', 'D550_DU:A', 'D550_POM:A', 'D550_SS:A',
16+
'DAYFOC:A', 'DF_SO2:A', 'DOD550:A', 'EC550AER:A', 'FCTL_B:A', 'FDL:A',
17+
'FDLC:A', 'FDS:A', 'FLDS:A', 'FLDSC:A', 'FLNS:A', 'FLNT:A', 'FSDSC:A',
18+
'FSNS:A', 'FSNSC:A', 'FSNT:A', 'FSUTOA:A', 'FUL:A', 'FULC:A', 'GS_H2SO4:A',
19+
'HO2_aft:A', 'IntHeatTr:A', 'KinEnerTr:A', 'LWCF:A', 'LatHeatTr:A',
20+
'OD550DRY:A', 'OH_aft:A', 'PBLH:A', 'PRECC:A', 'PRECSC:A', 'PRECSL:A',
21+
'PRECT:A', 'PS:A', 'PotEnerTr:A', 'Q:A', 'QREFHT:A', 'QRL:A', 'RELHUM:A',
22+
'RHW:A', 'SO2:A', 'SO4_A1:A', 'SO4_A2:A', 'SO4_AC:A', 'SO4_NA:A', 'SO4_PR:A',
23+
'SST:A', 'SWCF:A', 'T:A', 'TAUX:A', 'TGCLDIWP:A', 'TREFMNAV:A', 'TROP_P:A',
24+
'TROP_T:A', 'TROP_Z:A', 'TS:A', 'TotEnerTr:A', 'U10:A', 'U:A', 'WD_A_SO2:A',
25+
'Z3:A', 'dry_DUST:A', 'dry_SALT:A', 'dry_SULFATE:A', 'emis_BC:A', 'emis_OM:A',
26+
'emis_SALT:A', 'emis_SO2:A', 'emis_SULFATE:A', 'emis_isoprene:A',
27+
'emis_monoterp:A', 'isoprene:A', 'mmr_BC:A', 'mmr_OM:A', 'mmr_SALT:A',
28+
'ozone:A', 'wet_BC:A', 'wet_DUST:A', 'wet_SALT:A', 'wet_SULFATE:A'
29+
30+
! daily output
31+
nhtfrq(2) = -24
32+
mfilt(2) = 30
33+
fincl2 = 'BC_A:A', 'BC_AC:A', 'BC_AI:A', 'BC_AX:A', 'BC_N:A', 'BC_NI:A',
34+
'CLOUD:A', 'FLDS:A', 'FLNS:A', 'FSDSC:A', 'FSNSC:A', 'FSUTOA:A', 'FULC:A',
35+
'LHFLX:A', 'MMR_AH2O:A', 'PRECC:A', 'PRECSC:A', 'PRECSL:A', 'PRECT:A', 'PS:A',
36+
'PSL:A', 'Q:A', 'QREFHT:A', 'RELHUM:A', 'RHREFHT:A', 'RHW:A', 'SHFLX:A',
37+
'SO2:A', 'SO4_A1:A', 'SO4_A2:A', 'SO4_AC:A', 'SO4_NA:A', 'SO4_PR:A',
38+
'SOA_A1:A', 'SOA_NA:A', 'SST:A', 'T700:A', 'T850:A', 'TAUX:A', 'TREFMNAV:A',
39+
'TS:A', 'U010:A', 'U850:A', 'U:A', 'V850:A', 'cb_ozone_c:A', 'mmr_BC:A',
40+
'mmr_DUST:A', 'mmr_OM:A', 'mmr_SALT:A', 'mmr_SULFATE:A'
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
! CAM aerocom_esm diagnostic namelist entries
2+
3+
! Aerocom fields will be output for this run
4+
use_aerocom = .true.
5+
6+
! Only output fields listed in this file
7+
empty_htapes = .true.
8+
9+
! monthly output
10+
nhtfrq(1) = 0
11+
mfilt(1) = 1
12+
fincl1 = 'A550_BC:A', 'A550_DU:A', 'A550_POM:A', 'A550_SO4:A', 'A550_SS:A',
13+
'ABS550AL:A', 'AIRMASSL:A', 'AODVVOLC:A', 'AQSO4_H2O2:A', 'AQSO4_O3:A',
14+
'CCN5:A', 'CCN7:A', 'CCN_B:A', 'CLDHGH:A', 'CLDICE:A', 'CLDLIQ:A', 'CLDLOW:A',
15+
'CLDMED:A', 'CLDTOT:A', 'CO2:A', 'CONCLD:A', 'D550_DU:A', 'D550_POM:A',
16+
'D550_SS:A', 'DAYFOC:A', 'DF_SO2:A', 'DOD550:A', 'EC550AER:A', 'FCTL_B:A',
17+
'FDL:A', 'FDLC:A', 'FDS:A', 'FLDS:A', 'FLDSC:A', 'FLNS:A', 'FLNT:A',
18+
'FSDSC:A', 'FSNS:A', 'FSNSC:A', 'FSNT:A', 'FSUTOA:A', 'FUL:A', 'FULC:A',
19+
'GS_H2SO4:A', 'HO2_aft:A', 'IntHeatTr:A', 'KinEnerTr:A', 'LWCF:A',
20+
'LatHeatTr:A', 'OD550DRY:A', 'OH_aft:A', 'PBLH:A', 'PRECC:A', 'PRECSC:A',
21+
'PRECSL:A', 'PRECT:A', 'PS:A', 'PotEnerTr:A', 'Q:A', 'QREFHT:A', 'QRL:A',
22+
'RELHUM:A', 'RHW:A', 'SO2:A', 'SO4_A1:A', 'SO4_A2:A', 'SO4_AC:A', 'SO4_NA:A',
23+
'SO4_PR:A', 'SST:A', 'SWCF:A', 'T:A', 'TAUX:A', 'TGCLDIWP:A', 'TREFMNAV:A',
24+
'TROP_P:A', 'TROP_T:A', 'TROP_Z:A', 'TS:A', 'TotEnerTr:A', 'U10:A', 'U:A',
25+
'WD_A_SO2:A', 'Z3:A', 'dry_DUST:A', 'dry_SALT:A', 'dry_SULFATE:A',
26+
'emis_BC:A', 'emis_OM:A', 'emis_SALT:A', 'emis_SO2:A', 'emis_SULFATE:A',
27+
'emis_isoprene:A', 'emis_monoterp:A', 'isoprene:A', 'mmr_BC:A', 'mmr_OM:A',
28+
'mmr_SALT:A', 'ozone:A', 'wet_BC:A', 'wet_DUST:A', 'wet_SALT:A',
29+
'wet_SULFATE:A'
30+
31+
! daily output
32+
nhtfrq(2) = -24
33+
mfilt(2) = 30
34+
fincl2 = 'BC_A:A', 'BC_AC:A', 'BC_AI:A', 'BC_AX:A', 'BC_N:A', 'BC_NI:A',
35+
'CLOUD:A', 'FLDS:A', 'FLNS:A', 'FSDSC:A', 'FSNSC:A', 'FSUTOA:A', 'FULC:A',
36+
'LHFLX:A', 'MMR_AH2O:A', 'PRECC:A', 'PRECSC:A', 'PRECSL:A', 'PRECT:A', 'PS:A',
37+
'PSL:A', 'Q:A', 'QREFHT:A', 'RELHUM:A', 'RHREFHT:A', 'RHW:A', 'SHFLX:A',
38+
'SO2:A', 'SO4_A1:A', 'SO4_A2:A', 'SO4_AC:A', 'SO4_NA:A', 'SO4_PR:A',
39+
'SOA_A1:A', 'SOA_NA:A', 'SST:A', 'T700:A', 'T850:A', 'TAUX:A', 'TREFMNAV:A',
40+
'TS:A', 'U010:A', 'U850:A', 'U:A', 'V850:A', 'cb_ozone_c:A', 'mmr_BC:A',
41+
'mmr_DUST:A', 'mmr_OM:A', 'mmr_SALT:A', 'mmr_SULFATE:A'

0 commit comments

Comments
 (0)