Skip to content

Commit c5728b5

Browse files
committed
Merge tag 'cam6_4_149' into frontogenesis-fv-fix
Include chemical heating in mid-top configurations
2 parents 120b172 + 38e4e80 commit c5728b5

139 files changed

Lines changed: 70124 additions & 43859 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
path = src/physics/carma/base
1010
url = https://github.com/ESCOMP/CARMA_base.git
1111
fxrequired = AlwaysRequired
12-
fxtag = carma4_09
12+
fxtag = carma4_10
1313
fxDONOTUSEurl = https://github.com/ESCOMP/CARMA_base.git
1414

1515
[submodule "pumas-frozen"]
@@ -29,7 +29,7 @@
2929
[submodule "atmos_phys"]
3030
path = src/atmos_phys
3131
url = https://github.com/ESCOMP/atmospheric_physics
32-
fxtag = atmos_phys0_20_000
32+
fxtag = atmos_phys0_21_000
3333
fxrequired = AlwaysRequired
3434
fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
3535

@@ -107,6 +107,14 @@
107107
fxtag = clubb_4ncar_20240605_73d60f6_gpufixes_posinf
108108
fxDONOTUSEurl = https://github.com/larson-group/clubb_release
109109

110+
[submodule "ext_co2_cooling"]
111+
path = src/physics/ext_co2_cooling
112+
url = https://github.com/fedef17/CO2_cool_fort.git
113+
fxrequired = AlwaysRequired
114+
fxsparse = ../.ext_co2_cooling_sparse_checkout
115+
fxtag = v1.1
116+
fxDONOTUSEurl = https://github.com/fedef17/CO2_cool_fort.git
117+
110118
[submodule "rtm"]
111119
path = components/rtm
112120
url = https://github.com/ESCOMP/RTM
@@ -131,14 +139,14 @@ fxDONOTUSEurl = https://github.com/ESCOMP/mizuRoute
131139
[submodule "ccs_config"]
132140
path = ccs_config
133141
url = https://github.com/ESMCI/ccs_config_cesm.git
134-
fxtag = ccs_config_cesm1.0.65
142+
fxtag = ccs_config_cesm1.0.72
135143
fxrequired = ToplevelRequired
136144
fxDONOTUSEurl = https://github.com/ESMCI/ccs_config_cesm.git
137145

138146
[submodule "cime"]
139147
path = cime
140148
url = https://github.com/ESMCI/cime
141-
fxtag = cime6.1.145
149+
fxtag = cime6.1.155
142150
fxrequired = ToplevelRequired
143151
fxDONOTUSEurl = https://github.com/ESMCI/cime
144152

bld/build-namelist

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,11 +1937,11 @@ if (($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/)
19371937
'ISOP -> ' => 'isop_emis_file',
19381938
'TOLUENE -> ' => 'toluene_emis_file',
19391939
);
1940-
if (!($chem =~ /_vbs/) and !($chem =~ /_tsmlt/)) {
1940+
if (!($chem =~ /_vbs/) and !($chem =~ /_tsmlt/) and !($chem =~ /_t1s/)) {
19411941
%species = (%species,
19421942
'NH3 -> ' => 'nh3_emis_file');
19431943
}
1944-
if (!($chem =~ /_vbs/) and !($chem =~ /_tsmlt/)) {
1944+
if (!($chem =~ /_vbs/) and !($chem =~ /_tsmlt/) and !($chem =~ /_t1s/)) {
19451945
%species = (%species,
19461946
'C10H16 -> ' => 'c10h16_emis_file', );
19471947
}
@@ -2407,7 +2407,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24072407
%species = (%species,
24082408
'E90_srf_file' => 'E90' );
24092409
}
2410-
if ($chem !~ /_ts4/ and $chem !~ /_t4ma/) {
2410+
if ($chem !~ /_t4s/ and $chem !~ /_t4ma/) {
24112411
%species = (%species,
24122412
'BENZENE_an_srf_file' => 'BENZENE',
24132413
'BENZENE_bb_srf_file' => 'BENZENE',
@@ -2428,10 +2428,10 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24282428
'XYLENES_an_srf_file' => 'XYLENES',
24292429
'XYLENES_bb_srf_file' => 'XYLENES' ) ;
24302430
}
2431-
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_ts2/) {
2431+
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_t2s1/) {
24322432
%species = (%species,
24332433
'MTERP_bb_srf_file' => 'APIN') ;
2434-
} elsif ($chem =~ /_ts4/ or $chem =~ /_t4ma/) {
2434+
} elsif ($chem =~ /_t4s/ or $chem =~ /_t4ma/) {
24352435
%species = (%species,
24362436
'MTERP_bb_srf_file' => 'TERP') ;
24372437
} else {
@@ -2456,7 +2456,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24562456
'IVOC_bb_srf_file' => 'IVOCbb',
24572457
'SVOC_an_srf_file' => 'SVOCff',
24582458
'SVOC_bb_srf_file' => 'SVOCbb' );
2459-
} elsif ($chem !~ /_ts4/ and $chem !~ /_t4ma/) {
2459+
} elsif ($chem !~ /_t4s/ and $chem !~ /_t4ma/) {
24602460
%species = (%species,
24612461
'IVOC_an_srf_file' => 'IVOC',
24622462
'IVOC_bb_srf_file' => 'IVOC',
@@ -2481,7 +2481,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
24812481
$first = 0;
24822482
}
24832483
}
2484-
if ($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4' or $chem eq 'ghg_mam4' or $chem =~ /_ts4/ or $chem =~ /_t4ma/) {
2484+
if ($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4' or $chem eq 'ghg_mam4' or $chem =~ /_t4s/ or $chem =~ /_t4ma/) {
24852485
# SOA yields (used for the interactive emissions) have been calculated based on the VBS yields in CAM-chem.
24862486
# Duseong S. Jo, et al. to be submitted to GMD, 2023 -- see https://github.com/ESCOMP/CAM/pull/727 discussion for additional detail.
24872487
my %soae_fctrs = ('BENZENE_an_srf_file' => '2.5592D0',
@@ -2657,7 +2657,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
26572657
add_default($nl, 'megan_factors_file');
26582658
add_default($nl, 'megan_mapped_emisfctrs', 'val'=>'.false.');
26592659
}
2660-
if ($chem =~ /trop_strat_mam4_vbs/ or $chem =~ /trop_strat_mam5_vbs/) {
2660+
if ($chem =~ /trop_strat_mam4_vbs/ or $chem =~ /trop_strat_mam5_vbsext/ or $chem =~ /trop_strat_mam5_t1s/) {
26612661
my $val = "'ISOP = isoprene',"
26622662
. "'MTERP = carene_3 + pinene_a + thujene_a + bornene + terpineol_4 + terpineol_a + terpinyl_ACT_a "
26632663
. "+ myrtenal + sabinene + pinene_b + camphene + fenchene_a + limonene + phellandrene_a + terpinene_a "
@@ -2696,7 +2696,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
26962696
add_default($nl, 'megan_factors_file');
26972697
add_default($nl, 'megan_mapped_emisfctrs', 'val'=>'.false.');
26982698
}
2699-
if ($chem =~ /trop_strat_mam5_ts4/ or $chem =~ /_t4ma/) {
2699+
if ($chem =~ /trop_strat_mam5_t4s2/ or $chem =~ /_t4ma/) {
27002700
my $val = "'ISOP = isoprene',"
27012701
. "'TERP = carene_3 + pinene_a + thujene_a + bornene + terpineol_4 + terpineol_a + terpinyl_ACT_a +',"
27022702
. "' myrtenal + sabinene + pinene_b + camphene + fenchene_a + limonene + phellandrene_a + terpinene_a +',"
@@ -2728,7 +2728,7 @@ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
27282728
add_default($nl, 'megan_factors_file');
27292729
add_default($nl, 'megan_mapped_emisfctrs', 'val'=>'.false.');
27302730
}
2731-
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_ts2/) {
2731+
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_t2s1/) {
27322732
my $val = "'ISOP = isoprene',"
27332733
. "'APIN = pinene_a + myrtenal',"
27342734
. "'BPIN = carene_3 + thujene_a + bornene + fenchene_a + pinene_b + sabinene + camphene + terpineol_4 + terpineol_a + terpinyl_ACT_a',"
@@ -3703,6 +3703,11 @@ if (!$simple_phys) {
37033703
add_default($nl, 'do_iss');
37043704
}
37053705

3706+
# Sponge layer vertical diffusion
3707+
if (!$simple_phys) {
3708+
add_default($nl, 'diff_sponge_fac');
3709+
}
3710+
37063711
# Convective water in radiation
37073712
if (!$simple_phys) {
37083713
add_default($nl, 'conv_water_in_rad');

bld/config_files/definition.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ Model top specifier - set by compset definition
5656
<entry id="waccmx" valid_values="0,1" value="0">
5757
Option to turn on waccmx thermosphere/ionosphere extension: 0 => no, 1 => yes
5858
</entry>
59+
<entry id="ext_co2_cool" valid_values="0,1" value="0">
60+
Option to turn on extended non-LTE CO2 cooling: 0 => no, 1 => yes
61+
</entry>
5962
<entry id="ionosphere" valid_values="none,wxie" value="none">
6063
Ionosphere model used in WACCMX.
6164
</entry>
@@ -100,8 +103,8 @@ test_radiative (Radiatively Active Dust), test_swelling (Sea Salt), test_tracers
100103
trop_strat_soa1 (Trop Strat Aerosols SOA1),
101104
trop_strat_soa5 (Trop Strat Aerosols SOA5)
102105
</entry>
103-
<entry id="chem" valid_values="none,ghg_mam4,terminator,trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_ts2,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,trop_strat_mam5_ts2,trop_strat_mam5_ts4,trop_strat_mam5_vbs,trop_strat_mam5_vbsext,trop_strat_noaero,waccm_ma,waccm_mad,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_mad_mam4,waccm_ma_mam4,waccm_tsmlt_mam4,waccm_tsmlt_mam4_vbsext,waccm_mad_mam5,waccm_ma_mam5,waccm_tsmlt_mam5,waccm_tsmlt_mam5_vbsext,waccm_t4ma_mam5,waccm_ma_noaero,geoschem_mam4" value="">
104-
Chemistry package: none,ghg_mam4,terminator,trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_ts2,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,trop_strat_mam5_ts2,trop_strat_mam5_ts4,trop_strat_mam5_vbs,trop_strat_mam5_vbsext,trop_strat_noaero,waccm_ma,waccm_mad,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_mad_mam4,waccm_ma_mam4,waccm_tsmlt_mam4,waccm_tsmlt_mam4_vbsext,waccm_mad_mam5,waccm_ma_mam5,waccm_tsmlt_mam5,waccm_tsmlt_mam5_vbsext,waccm_t4ma_mam5,waccm_ma_noaero,geoschem_mam4
106+
<entry id="chem" valid_values="none,ghg_mam4,terminator,trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_ts2,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,trop_strat_mam5_t1s1,trop_strat_mam5_t1s2,trop_strat_mam5_t2s1,trop_strat_mam5_t4s2,trop_strat_mam5_vbsext,trop_strat_noaero,waccm_ma,waccm_mad,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_mad_mam4,waccm_ma_mam4,waccm_tsmlt_mam4,waccm_tsmlt_mam4_vbsext,waccm_mad_mam5,waccm_ma_mam5,waccm_tsmlt_mam5,waccm_tsmlt_mam5_vbsext,waccm_t4ma_mam5,waccm_ma_noaero,geoschem_mam4" value="">
107+
Chemistry package: none,ghg_mam4,terminator,trop_mam3,trop_mam4,trop_mam7,trop_mozart,trop_strat_mam4_ts2,trop_strat_mam4_vbs,trop_strat_mam4_vbsext,trop_strat_mam5_t1s1,trop_strat_mam5_t1s2,trop_strat_mam5_t2s1,trop_strat_mam5_t4s2,trop_strat_mam5_vbsext,trop_strat_noaero,waccm_ma,waccm_mad,waccm_ma_sulfur,waccm_sc,waccm_sc_mam4,waccm_mad_mam4,waccm_ma_mam4,waccm_tsmlt_mam4,waccm_tsmlt_mam4_vbsext,waccm_mad_mam5,waccm_ma_mam5,waccm_tsmlt_mam5,waccm_tsmlt_mam5_vbsext,waccm_t4ma_mam5,waccm_ma_noaero,geoschem_mam4
105108
</entry>
106109
<entry id="prog_species" valid_values="DST,SSLT,SO4,GHG,OC,BC,CARBON16" value="" list="1">
107110
Prognostic mozart species packages: list of any subset of the following: DST,SSLT,SO4,GHG,OC,BC,CARBON16

bld/configure

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ OPTIONS
6464
Default: none.
6565
-chem <name> Build CAM with specified prognostic chemistry package
6666
[ none | ghg_mam4 | terminator | trop_mam3 | trop_mam4 | trop_mam7 | trop_mozart | trop_strat_mam4_ts2 |
67-
trop_strat_mam4_vbs | trop_strat_mam4_vbsext | trop_strat_mam5_ts2 | trop_strat_mam5_ts4 | trop_strat_mam5_vbs | trop_strat_noaero |
68-
trop_strat_mam5_vbsext | waccm_ma | waccm_mad | waccm_ma_sulfur | waccm_sc | waccm_sc_mam4 |
69-
waccm_mad_mam4 | waccm_ma_mam4 | waccm_tsmlt_mam4 | waccm_tsmlt_mam4_vbsext | waccm_mad_mam5 |
70-
waccm_ma_mam5 | waccm_tsmlt_mam5 | waccm_tsmlt_mam5_vbsext | waccm_ma_noaero | geoschem_mam4 ].
67+
trop_strat_mam4_vbs | trop_strat_mam4_vbsext | trop_strat_mam5_t1s1 | trop_strat_mam5_t2s2 |
68+
trop_strat_mam5_t2s1 | trop_strat_mam5_t4s2 | trop_strat_noaero | trop_strat_mam5_vbsext |
69+
waccm_ma | waccm_mad | waccm_ma_sulfur | waccm_sc | waccm_sc_mam4 | waccm_mad_mam4 | waccm_ma_mam4 |
70+
waccm_tsmlt_mam4 | waccm_tsmlt_mam4_vbsext | waccm_mad_mam5 | waccm_ma_mam5 | waccm_tsmlt_mam5 |
71+
waccm_tsmlt_mam5_vbsext | waccm_t4ma_mam5 | waccm_ma_noaero | geoschem_mam4 ].
7172
Default: trop_mam4 for cam6 and trop_mam3 for cam5.
7273
-[no]clubb_sgs Switch on [off] CLUBB_SGS. Default: on for cam6 and cam7, otherwise off.
7374
-clubb_opts <list> Comma separated list of CLUBB options to turn on/off. By default they are all off.
@@ -80,6 +81,7 @@ OPTIONS
8081
-cpl Coupling framework [mct | nuopc]. Default: mct.
8182
-dyn <name> Dynamical core option: [fv | se | fv3 | mpas]. Default: fv.
8283
-edit_chem_mech Invokes CAMCHEM_EDITOR to allow the user to edit the chemistry mechanism file
84+
-ext_co2_cool Switch on extended non-LTE CO2 cooling
8385
-hgrid <name> Specify horizontal grid. Use nlatxnlon for spectral grids;
8486
dlatxdlon for fv grids (dlat and dlon are the grid cell size
8587
in degrees for latitude and longitude respectively); nexnp for
@@ -300,6 +302,7 @@ GetOptions(
300302
"version" => \$opts{'version'},
301303
"waccm_phys" => \$opts{'waccm_phys'},
302304
"waccmx" => \$opts{'waccmx'},
305+
"ext_co2_cool" => \$opts{'ext_co2_cool'},
303306
) or usage();
304307

305308
# Give usage message.
@@ -706,6 +709,12 @@ if (defined $opts{'waccmx'}) {
706709
my $waccmx = $cfg_ref->get('waccmx');
707710
my $ionos = $cfg_ref->get('ionosphere');
708711

712+
# Extended CO2 non-LTE option
713+
if (defined $opts{'ext_co2_cool'}) {
714+
$cfg_ref->set('ext_co2_cool', $opts{'ext_co2_cool'});
715+
}
716+
my $ext_co2_cool = $cfg_ref->get('ext_co2_cool');
717+
709718
#-----------------------------------------------------------------------------------------------
710719

711720
# Prognostic species package(s)
@@ -1768,6 +1777,11 @@ if ($waccmx) {
17681777
$cfg_cppdefs .= ' -DWACCMX_PHYS';
17691778
}
17701779

1780+
# Extended Non-LTE CO2 cooling
1781+
if ($ext_co2_cool) {
1782+
$cfg_cppdefs .= ' -DEXT_CO2_COOL';
1783+
}
1784+
17711785
# PIO
17721786
my $pio2_build = (defined $opts{'pio2'}) ? 1 : 0;
17731787

@@ -1967,6 +1981,7 @@ sub write_filepath
19671981
my $spmd = $cfg_ref->get('spmd');
19681982
my $offline_drv = $cfg_ref->get('offline_drv');
19691983
my $inic_val = $cfg_ref->get('analytic_ic');
1984+
my $ext_co2_cool = $cfg_ref->get('ext_co2_cool');
19701985

19711986
# Root directory
19721987
my $camsrcdir = $cfg_ref->get('cam_dir');
@@ -2058,6 +2073,10 @@ sub write_filepath
20582073
print $fh "$camsrcdir/src/physics/ali_arms/subs\n";
20592074
print $fh "$camsrcdir/src/physics/ali_arms/include\n";
20602075
}
2076+
if ($ext_co2_cool) {
2077+
print $fh "$camsrcdir/src/physics/ext_co2_cooling/source/modules\n";
2078+
}
2079+
20612080
print $fh "$camsrcdir/src/ionosphere\n";
20622081

20632082
print $fh "$camsrcdir/src/chemistry/mozart\n";

0 commit comments

Comments
 (0)