Skip to content

Commit 9a8aa15

Browse files
authored
Merge pull request #235 from gold2718/ZM_mods
Summary: Introduce refactored ZM modifications from THT Contributors: Thomas Toniazzo (@tto061) with editing assistance from @oyvindseland and @gold2718 Reviewers: @oyvindseland Purpose of changes: Improving energy conservation and re-introducing specific NorESM2 ZM settings into NorESM3 (#225) Github PR URL: #235 Changes made to build system: None Changes made to the namelist: - `zmconv_tiedke_lnd`: Parcel temperature perturbation over land in ZM deep convection scheme in units of (K). - Default: a 1K perturbation - `zmconv_use_moist_plume_thermo`: Account for freezing in plume-ensemble buoyancy. When `.true.`, use moist thermodynamics to compute plume-ensemble properties. - Default: `.false.` - `zmconv_retrigger`: Iterate plume-ensemble computation and trigger functions. - Default: `.false.` - `zmconv_entrmn`: Maximum entrainment rate for plume ensemble - Default: 2e-4 m-1 - `zmconv_alfadet`: Convective detrainment/entrainment ratio - Default: 0.1 - `zmconv_plclmin`: Minimum LCL pressure to allow ZM deep convection - Default: 600 hPa - `compute_enthalpy_flux`: Enthalpy flux terms explicitly computed and added in the atmosphere and passed to an active ocean component. - Default: `.false.` Changes to the defaults for the boundary datasets: None Substantial timing or memory changes: None - Added `compute_enthalpy_flux to air_composition` namelist variable but not the code to calculate or send the enthalpy. - Added a regression test of the ZM mods that sets `zmconv_retrigger` and `zmconv_use_moist_plume_thermo` to `.true.` and turned on all ZM output fields. Verified that this test is BFB when `zmconv_retrigger` and `zmconv_use_moist_plume_thermo` are `.false.`. - aux_cam_noresm: Most tests pass except for namelist differences caused by the new namelist items (see above). - ERP_Ln9.ne16pg3_ne16pg3_mtn14.NF1850ghg_fates-nocomp.betzy_intel.cam-outfrq9s is an expected fail due to a CLM restart failure. - #225
2 parents c576fae + 3df751d commit 9a8aa15

12 files changed

Lines changed: 224 additions & 24 deletions

File tree

.gitmodules

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@
3232

3333
[submodule "atmos_phys"]
3434
path = src/atmos_phys
35-
url = https://github.com/ESCOMP/atmospheric_physics
36-
fxtag = atmos_phys0_12_000
35+
url = https://github.com/NorESMhub/atmospheric_physics
36+
fxtag = atmos_phys0_14_001_noresm_v0
3737
fxrequired = AlwaysRequired
38-
fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
38+
fxDONOTUSEurl = https://github.com/NorESMhub/atmospheric_physics
3939

4040
[submodule "carma"]
4141
path = src/physics/carma/base
@@ -238,7 +238,7 @@
238238
[submodule "cmeps"]
239239
path = components/cmeps
240240
url = https://github.com/NorESMhub/CMEPS.git
241-
fxtag = cmeps1.0.39_noresm_v5
241+
fxtag = cmeps1.0.39_noresm_v6
242242
fxrequired = ToplevelRequired
243243
fxDONOTUSEurl = https://github.com/NorESMhub/CMEPS.git
244244

bld/build-namelist

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,8 @@ if ($print>=2) {
455455
# Composition of air
456456
add_default($nl, 'dry_air_species');
457457
add_default($nl, 'water_species_in_air');
458+
# Enthalpy flux
459+
add_default($nl, 'compute_enthalpy_flux');
458460
# Spectral Element dycore
459461
my $dyn = $cfg->get('dyn');
460462

@@ -3891,6 +3893,14 @@ if (!$simple_phys) {
38913893
add_default($nl, 'zmconv_capelmt');
38923894
add_default($nl, 'zmconv_tau');
38933895
add_default($nl, 'zmconv_parcel_hscale');
3896+
# CAMNOR thermo begin
3897+
add_default($nl, 'zmconv_use_moist_plume_thermo');
3898+
add_default($nl, 'zmconv_retrigger' );
3899+
add_default($nl, 'zmconv_tiedke_lnd');
3900+
add_default($nl, 'zmconv_entrmn' );
3901+
add_default($nl, 'zmconv_alfadet' );
3902+
add_default($nl, 'zmconv_plclmin' );
3903+
# CAMNOR thermo end
38943904
}
38953905

38963906
# moist convection rainwater coefficients

bld/namelist_files/namelist_defaults_cam.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2788,6 +2788,15 @@ See https://github.com/NorESMhub/noresm3_dev_simulations/discussions/78
27882788
<zmconv_parcel_pbl > .false. </zmconv_parcel_pbl>
27892789
<zmconv_parcel_hscale > 0.5 </zmconv_parcel_hscale>
27902790

2791+
<!-- CAMNOR thermo begin -->
2792+
<zmconv_tiedke_lnd > 1.0 </zmconv_tiedke_lnd>
2793+
<zmconv_use_moist_plume_thermo > .false. </zmconv_use_moist_plume_thermo>
2794+
<zmconv_retrigger > .false. </zmconv_retrigger>
2795+
<zmconv_entrmn > 2.e-4 </zmconv_entrmn>
2796+
<zmconv_alfadet > 0.1 </zmconv_alfadet>
2797+
<zmconv_plclmin > 6.e2 </zmconv_plclmin>
2798+
<!-- CAMNOR thermo end -->
2799+
27912800
<!-- Cloud sedimentation -->
27922801

27932802
<cldsed_ice_stokes_fac > 1.0D0 </cldsed_ice_stokes_fac>
@@ -3003,6 +3012,9 @@ See https://github.com/NorESMhub/noresm3_dev_simulations/discussions/78
30033012
<water_species_in_air microphys="mg2" >'Q','CLDLIQ','CLDICE','RAINQM','SNOWQM' </water_species_in_air>
30043013
<water_species_in_air microphys="mg3" >'Q','CLDLIQ','CLDICE','RAINQM','SNOWQM','GRAUQM'</water_species_in_air>
30053014

3015+
<!-- Enthalpy flux -->
3016+
<compute_enthalpy_flux> .false. </compute_enthalpy_flux>
3017+
30063018
<!-- ================================================================== -->
30073019
<!-- Defaults for FV3 -->
30083020
<!-- ================================================================== -->

bld/namelist_files/namelist_definition.xml

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3300,6 +3300,14 @@ Tunable parcel temperature perturbation in ZM deep convection scheme in units of
33003300
Default: 0.5K perturbation
33013301
</entry>
33023302

3303+
<!-- CAMNOR thermo begin -->
3304+
<entry id="zmconv_tiedke_lnd" type="real" category="conv"
3305+
group="zmconv_nl" valid_values="" >
3306+
Parcel temp perturbation over land in ZM deep convection scheme in units of (K).
3307+
Default: 1.0K perturbation
3308+
</entry>
3309+
<!-- CAMNOR thermo end -->
3310+
33033311
<entry id="zmconv_capelmt" type="real" category="conv"
33043312
group="zmconv_nl" valid_values="" >
33053313
Tunable triggering threshold for convection in ZM deep scheme in units of (J kg-1).
@@ -3324,6 +3332,38 @@ Convective adjustment timescale in units of (s)
33243332
Default: 3600.0 s
33253333
</entry>
33263334

3335+
<!-- CAMNOR thermo begin -->
3336+
<entry id="zmconv_use_moist_plume_thermo" type="logical" category="conv"
3337+
group="zmconv_nl" valid_values="" >
3338+
Account for freezing in plume-ensemble buoyancy
3339+
Use moist thermodynamics to compute plume-ensemble properties
3340+
Default: .false.
3341+
</entry>
3342+
3343+
<entry id="zmconv_retrigger" type="logical" category="conv"
3344+
group="zmconv_nl" valid_values="" >
3345+
Iterate plume-ensemble computation and trigger functions
3346+
Default: .false.
3347+
</entry>
3348+
3349+
<entry id="zmconv_entrmn" type="real" category="conv"
3350+
group="zmconv_nl" valid_values="" >
3351+
Maximum entrainment rate for plume ensemble
3352+
Default: 2e-4 m-1
3353+
</entry>
3354+
3355+
<entry id="zmconv_alfadet" type="real" category="conv"
3356+
group="zmconv_nl" valid_values="" >
3357+
Convective detrainment/entrainment ratio
3358+
Default: 0.1
3359+
</entry>
3360+
<entry id="zmconv_plclmin" type="real" category="conv"
3361+
group="zmconv_nl" valid_values="" >
3362+
Minimum LCL pressure to allow ZM deep convection
3363+
Default: 600 hPa
3364+
</entry>
3365+
<!-- CAMNOR thermo end -->
3366+
33273367
<!-- Cloud sedimentation -->
33283368

33293369
<entry id="cldsed_ice_stokes_fac" type="real" category="cldsed"
@@ -5736,7 +5776,7 @@ Default: .false.
57365776

57375777
<entry id="history_aerosol_base" type="logical" category="diagnostics"
57385778
group="phys_ctl_nl" valid_values="" >
5739-
Switch to turn on/off output of; mass mixing ratios and column burdens for compounded aerosols (BC, DUST, OM, SALT, SULFATE)
5779+
Switch to turn on/off output of; mass mixing ratios and column burdens for compounded aerosols (BC, DUST, OM, SALT, SULFATE)
57405780
and gas-phase column burdens from OsloAero; summation fields for emission/source, wet and dry deposition.
57415781
Also controls output of other key aerosol-specific output fields.
57425782
Default: .true.
@@ -8242,6 +8282,15 @@ Switch to apply lunar tidal tendencies to neutral winds.
82428282
Default: FALSE
82438283
</entry>
82448284

8285+
<!-- Enthalpy flux -->
8286+
8287+
<entry id="compute_enthalpy_flux" type="logical" category="physconst"
8288+
group="air_composition_nl" valid_values="" >
8289+
Enthalpy flux terms explicitly computed and added in the atmosphere and
8290+
passed to an active ocean component.
8291+
Default: FALSE
8292+
</entry>
8293+
82458294
<!-- Dry air major species -->
82468295

82478296
<entry id="dry_air_species" type="char*6(20)" category="physconst"

cime_config/testdefs/testlist_cam.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,15 @@
8686
<option name="comment">Test of secondary ice microphysics</option>
8787
</options>
8888
</test>
89+
<test compset="NF1850" grid="ne16pg3_ne16pg3_mtn14" name="ERP_D_Ln18_P256" testmods="cam/outfrq9s_zm">
90+
<machines>
91+
<machine name="betzy" compiler="intel" category="aux_cam_noresm"/>
92+
</machines>
93+
<options>
94+
<option name="wallclock">00:20:00</option>
95+
<option name="comment">Test ZM modifications from Tomas Tonazzio</option>
96+
</options>
97+
</test>
8998
<test compset="NF1850ghg_fates-sp" grid="ne16pg3_ne16pg3_mtn14" name="ERP_Ln9" testmods="cam/outfrq9s">
9099
<machines>
91100
<machine name="betzy" compiler="intel" category="aux_cam_noresm"/>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
./xmlchange ROF_NCPL=\$ATM_NCPL
2+
./xmlchange GLC_NCPL=\$ATM_NCPL
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
mfilt = 1,9,1,1,1,1
2+
ndens = 1,1,1,1,1,1
3+
nhtfrq = 9,1,9,9,9,9
4+
write_nstep0 = .true.
5+
inithist = 'ENDOFRUN'
6+
fincl2 = 'CAPE:I', 'FREQZM:I', 'CMFMC_DP:I', 'ZMMU:I', 'ZMMD:I', 'ZMDT:I',
7+
'ZMDQ:I', 'DLFZM:I', 'PCONVT:I', 'PCONVB:I', 'EVAPTZM:I', 'FZSNTZM:I',
8+
'EVSNTZM:I', 'EVAPQZM:I', 'ZMFLXPRC:I', 'ZMFLXSNW:I', 'ZMNTPRPD:I',
9+
'ZMNTSNPD:I', 'ZMEIHEAT:I', 'CMFMC_DP:I', 'PRECCDZM:I', 'PRECZ:I',
10+
'ZMMTU:I', 'ZMMTV:I', 'ZMMTT:I', 'ZMUPGU:I', 'ZMUPGD:I', 'ZMVPGU:I',
11+
'ZMVPGD:I', 'ZMICUU:I', 'ZMICUD:I', 'ZMICVU:I', 'ZMICVD:I',
12+
'ZMDICE :I', 'ZMDLIQ :I', 'EURT:I'
13+
zmconv_use_moist_plume_thermo = .true.
14+
zmconv_retrigger = .true.
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 = 9
25+
hist_mfilt = 1
26+
hist_ndens = 1
27+

components/cmeps

src/atmos_phys

Submodule atmos_phys updated 155 files

0 commit comments

Comments
 (0)