diff --git a/.gitmodules b/.gitmodules
index 2d1616f6c6..2626856b26 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,96 +1,164 @@
-[submodule "chem_proc"]
- path = chem_proc
- url = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
+# This is a git submodule file with additional support for
+# git-fleximod (https://github.com/ESMCI/git-fleximod)
+#
+# The additional flags supported by git-fleximod are
+# fxtag - the tag associated with the submodule, this tag can be tested for
+# consistancy with the submodule hash using git-fleximod status
+# the hash can be updated to the tag using git-fleximod update
+#
+# fxrequired - indicates if a given submodule should be checked out on install
+# submoudules can be toplevel or internal and required or optional
+# toplevel means that the submodule should only be checked out if the
+# module is the toplevel of the git repo (is not a submodule itself)
+# internal means that the submodule is needed by the component whether
+# the component is toplevel or the submodule of another repo
+# required means that the submodule should always be checked out
+# optional means that the submodule should only be checked out if the
+# optional flag is provided to git-fleximod or the submodule name is
+# explicitly listed on the git-fleximod command line.
+#
+# fxsparse - this is a path to a git sparse checkout file indicating that the
+# submodule should be checked out in sparse mode
+#
+# fxDONOTUSEurl - this field is used by git-fleximod test to insure that the url is pointing
+# to the official url of the repo and not to an unofficial fork.
+# It is intended for use of github workflows to test commits to protected
+# repository branches.
+#
+
+#-----------------------------
+# Required CAM externals
+#-----------------------------
+
+[submodule "atmos_phys"]
+ path = src/atmos_phys
+ url = https://github.com/ESCOMP/atmospheric_physics
+ fxtag = atmos_phys0_06_009
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
+
+[submodule "camnor_phys"]
+ path = src/physics/camnor_phys
+ url = https://github.com/NorESMhub/CAM-Nor-physics
+ fxtag = camnor_noresm_v0.0.5
fxrequired = AlwaysRequired
- fxtag = chem_proc5_0_06
- fxDONOTUSEurl = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
+ fxDONOTUSEurl = https://github.com/CAM-Nor-physics.git
[submodule "carma"]
path = src/physics/carma/base
url = https://github.com/ESCOMP/CARMA_base.git
- fxrequired = AlwaysRequired
- fxtag = carma4_01
- fxDONOTUSEurl = https://github.com/ESCOMP/CARMA_base.git
+ fxtag = carma4_01
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/CARMA_base.git
+
+[submodule "chem_proc"]
+ path = chem_proc
+ url = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
+ fxtag = chem_proc5_0_06
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
+
+[submodule "clubb"]
+ path = src/physics/clubb
+ url = https://github.com/larson-group/clubb_release
+ fxtag = clubb_4ncar_20240605_73d60f6_gpufixes_posinf
+ fxsparse = ../.clubb_sparse_checkout
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/larson-group/clubb_release
+
+[submodule "cosp2"]
+ path = src/physics/cosp2/src
+ url = https://github.com/CFMIP/COSPv2.0
+ fxtag = v2.1.4cesm
+ fxsparse = ../.cosp_sparse_checkout
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/CFMIP/COSPv2.0
+
+[submodule "hemco"]
+ path = src/hemco
+ url = https://github.com/ESCOMP/HEMCO_CESM.git
+ fxtag = hemco-cesm2_0_hemco3_9_0
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/HEMCO_CESM.git
+
+[submodule "oslo_aero"]
+ path = src/chemistry/oslo_aero
+ url = https://github.com/NorESMhub/OSLO_AERO
+ fxtag = noresm_oslo_aero_v3
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/NorESMhub/OSLO_AERO.git
[submodule "pumas"]
path = src/physics/pumas
url = https://github.com/ESCOMP/PUMAS
- fxrequired = AlwaysRequired
- fxtag = pumas_cam-release_v1.36
- fxDONOTUSEurl = https://github.com/ESCOMP/PUMAS
+ fxtag = pumas_cam-release_v1.36
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/PUMAS
[submodule "pumas-frozen"]
path = src/physics/pumas-frozen
url = https://github.com/ESCOMP/PUMAS
- fxrequired = AlwaysRequired
- fxtag = pumas_cam-release_v1.17_rename
- fxDONOTUSEurl = https://github.com/ESCOMP/PUMAS
+ fxtag = pumas_cam-release_v1.17_rename
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/ESCOMP/PUMAS
+
+[submodule "rrtmgp-data"]
+ path = src/physics/rrtmgp/data
+ url = https://github.com/earth-system-radiation/rrtmgp-data.git
+ fxtag = v1.8
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/earth-system-radiation/rrtmgp-data.git
+
+[submodule "rte-rrtmgp"]
+ path = src/physics/rrtmgp/ext
+ url = https://github.com/earth-system-radiation/rte-rrtmgp.git
+ fxtag = v1.7
+ fxrequired = AlwaysRequired
+ fxDONOTUSEurl = https://github.com/earth-system-radiation/rte-rrtmgp.git
+
+#-----------------------------
+# Optional CAM externals
+#-----------------------------
[submodule "ali_arms"]
path = src/physics/ali_arms
url = https://github.com/ESCOMP/ALI-ARMS
- fxrequired = AlwaysOptional
- fxtag = ALI_ARMS_v1.0.1
- fxDONOTUSEurl = https://github.com/ESCOMP/ALI-ARMS
+ fxtag = ALI_ARMS_v1.0.1
+ fxrequired = AlwaysOptional
+ fxDONOTUSEurl = https://github.com/ESCOMP/ALI-ARMS
-[submodule "atmos_phys"]
- path = src/atmos_phys
- url = https://github.com/ESCOMP/atmospheric_physics
- fxtag = atmos_phys0_02_006
- fxrequired = AlwaysRequired
- fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
+[submodule "cloud_j"]
+ path = src/chemistry/cloud_j
+ url = https://github.com/geoschem/cloud-j.git
+ fxtag = 7.7.3
+ fxrequired = AlwaysOptional
+ fxDONOTUSEurl = https://github.com/geoschem/cloud-j.git
[submodule "geoschem"]
path = src/chemistry/geoschem/geoschem_src
url = https://github.com/geoschem/geos-chem.git
- fxrequired = AlwaysOptional
- fxtag = 14.1.2
- fxDONOTUSEurl = https://github.com/geoschem/geos-chem.git
-
-[submodule "hemco"]
- path = src/hemco
- url = https://github.com/ESCOMP/HEMCO_CESM.git
- fxtag = hemco-cesm1_2_1_hemco3_6_3_cesm_rme
- fxrequired = AlwaysRequired
- fxDONOTUSEurl = https://github.com/ESCOMP/HEMCO_CESM.git
-
-[submodule "rte-rrtmgp"]
- path = src/physics/rrtmgp/ext
- url = https://github.com/earth-system-radiation/rte-rrtmgp.git
- fxrequired = AlwaysRequired
- fxtag = v1.7
- fxDONOTUSEurl = https://github.com/earth-system-radiation/rte-rrtmgp.git
+ fxtag = 14.4.3
+ fxrequired = AlwaysOptional
+ fxDONOTUSEurl = https://github.com/geoschem/geos-chem.git
-[submodule "rrtmgp-data"]
- path = src/physics/rrtmgp/data
- url = https://github.com/earth-system-radiation/rrtmgp-data.git
- fxrequired = AlwaysRequired
- fxtag = v1.8
- fxDONOTUSEurl = https://github.com/earth-system-radiation/rrtmgp-data.git
+[submodule "hetp"]
+ path = src/chemistry/hetp
+ url = https://github.com/geoschem/heterogeneous-vectorized-or-parallel.git
+ fxtag = geoschem_hetp_1.0
+ fxrequired = AlwaysOptional
+ fxDONOTUSEurl = https://github.com/geoschem/heterogeneous-vectorized-or-parallel.git
[submodule "mpas"]
path = src/dynamics/mpas/dycore
url = https://github.com/MPAS-Dev/MPAS-Model.git
- fxrequired = AlwaysOptional
- fxsparse = ../.mpas_sparse_checkout
- fxtag = b8c33daa
+ fxtag = v8.2.1
+ fxsparse = ../.mpas_sparse_checkout
+ fxrequired = AlwaysOptional
fxDONOTUSEurl = https://github.com/MPAS-Dev/MPAS-Model.git
-[submodule "cosp2"]
- path = src/physics/cosp2/src
- url = https://github.com/CFMIP/COSPv2.0
- fxrequired = AlwaysRequired
- fxsparse = ../.cosp_sparse_checkout
- fxtag = v2.1.4cesm
- fxDONOTUSEurl = https://github.com/CFMIP/COSPv2.0
-
-[submodule "clubb"]
- path = src/physics/clubb
- url = https://github.com/larson-group/clubb_release
- fxrequired = AlwaysRequired
- fxsparse = ../.clubb_sparse_checkout
- fxtag = clubb_4ncar_20231115_5406350
- fxDONOTUSEurl = https://github.com/larson-group/clubb_release
+#-----------------------------
+# CESM libraries
+#-----------------------------
[submodule "parallelio"]
path = libraries/parallelio
@@ -149,7 +217,7 @@ fxDONOTUSEurl = https://github.com/ESCOMP/CDEPS.git
[submodule "cice6"]
path = components/cice
url = https://github.com/NorESMhub/NorESM_CICE
-fxtag = cesm_cice6_5_0_20240702_noresm_v1
+fxtag = cesm_cice6_5_0_20240702_noresm_v2
fxrequired = ToplevelRequired
fxDONOTUSEurl = https://github.com/NorESMhub/NorESM_CICE
@@ -180,4 +248,3 @@ url = https://github.com/ESCOMP/MOSART
fxtag = mosart1.1.02
fxrequired = ToplevelRequired
fxDONOTUSEurl = https://github.com/ESCOMP/MOSART
-
diff --git a/bld/build-namelist b/bld/build-namelist
index 739e9cab13..f417ad606b 100755
--- a/bld/build-namelist
+++ b/bld/build-namelist
@@ -509,8 +509,17 @@ if ($phys_mode_flags > 1) {
my $simple_phys = 0;
if ($adia_mode or $ideal_mode) { $simple_phys = 1; }
+# If running either a simple physics or an aquaplanet configuration, the
+# nitrogen deposition data is not used. These files are set in buildnml and
+# can't be overridden via user_nl_cam. So provide an override here.
+if ($simple_phys or $aqua_mode) {
+ $nl->set_variable_value('ndep_stream_nl', 'stream_ndep_data_filename', '" "');
+ $nl->set_variable_value('ndep_stream_nl', 'stream_ndep_mesh_filename', '" "');
+}
+
# Single column mode
my $scam = $cfg->get('scam');
+my $scam_iop = $cfg->get('scam_iop');
# Coupling interval
# The default is for CAM to couple to the surface components every CAM timestep.
@@ -574,6 +583,14 @@ if( $chem =~ /_oslo/){
print " ==> Using Oslo aerosols: PRESCRIBED AERO = FALSE (not yet implemented) \n"
}
+# CTSM Dust emissions scheme
+my $soil_erod_atm = $FALSE;
+add_default($nl, 'dust_emis_method');
+if ( $nl->get_value('dust_emis_method') =~ /Zender/ ) {
+ add_default($nl, 'zender_soil_erod_source');
+ if ($nl->get_value('zender_soil_erod_source') =~ /atm/) {$soil_erod_atm = $TRUE;}
+}
+
# Chemistry deposition lists
if ( ($chem ne 'none') or ( $prog_species ) ){
my $chem_proc_src = $cfg->get('chem_proc_src');
@@ -596,8 +613,9 @@ if ( ($chem ne 'none') or ( $prog_species ) ){
($aer_wetdep_list =~ /ncl/i || $aer_wetdep_list =~ /sslt/i)) {
$prescribe_aerosols = $FALSE;
}
-
- add_default($nl, 'aer_wetdep_list', 'val'=>$aer_wetdep_list );
+ if ($chem !~ /_mam/) {
+ add_default($nl, 'aer_wetdep_list', 'val'=>$aer_wetdep_list );
+ }
if (!($chem =~ /_mam/)) {
if (!defined $nl->get_value('aer_sol_facti')) {
@@ -620,11 +638,17 @@ if ( ($chem ne 'none') or ( $prog_species ) ){
}
}
if ($chem) {
- # drydep_srf_file is only needed for prognostic MAM when the grid is unstructured.
- # structured grids can do interpolation on the fly.
- if ($chem =~ /_mam/ and ($dyn =~ /se|fv3|mpas/)) {
- add_default($nl, 'drydep_srf_file');
+
+ # drydep_srf_file is not needed for simple physics or aquaplanet
+ if ( !($simple_phys or $aqua_mode) ) {
+
+ # drydep_srf_file is only needed for prognostic MAM when the grid is unstructured.
+ # structured grids can do interpolation on the fly.
+ if ($chem =~ /_mam/ and ($dyn =~ /se|fv3|mpas/)) {
+ add_default($nl, 'drydep_srf_file');
+ }
}
+
add_default($nl, 'dep_data_file');
}
@@ -746,7 +770,7 @@ if ($rad_pkg =~ /rrtmg/ or $chem =~ /waccm/) {
elsif (!$simple_phys) {
if ($chem eq 'none' and !($prog_species =~ /SO4/) ) { # Spectral solar data is needed for photolysis
- # this preserves the default cam3 and cam4 configurations which do not have chemistry
+ # this preserves the default cam4 configuration which does not have chemistry
unless (defined $nl->get_value('solar_irrad_data_file')) {
add_default($nl, 'solar_const');
}
@@ -825,17 +849,8 @@ if ($test_tracer_num > 0) {
if ($cfg->get('age_of_air_trcs')) { add_default($nl, 'aoa_tracers_flag', 'val'=>'.true.'); }
-# If phys option is "cam3" then turn on the CAM3 prescribed ozone and aerosols
-if ($phys eq 'cam3' and !$aqua_mode) {
- add_default($nl, 'cam3_ozone_data_on', 'val'=>'.true.');
- add_default($nl, 'cam3_aero_data_on', 'val'=>'.true.');
-}
-
# Defaults for radiatively active constituents
-my $cam3_ozone_data = $FALSE;
-my $cam3_aero_data = $FALSE;
-
my $moz_ozone_data = $FALSE;
if (!$rad_prog_ozone) {
$moz_ozone_data = $TRUE;
@@ -846,24 +861,6 @@ if (!($rad_prog_ocarb) or !($rad_prog_bcarb) or !($rad_prog_sulf) or !($rad_prog
$moz_aero_data = $TRUE;
}
-# CAM3 prescribed ozone only by request
-if (defined $nl->get_value('cam3_ozone_data_on') and
- $nl->get_value('cam3_ozone_data_on') =~ /$TRUE/io) {
- add_default($nl, 'bndtvo');
- $cam3_ozone_data = $TRUE;
- $moz_ozone_data = $FALSE;
-}
-
-# CAM3 prescribed aerosols only by request
-if (defined $nl->get_value('cam3_aero_data_on') and
- $nl->get_value('cam3_aero_data_on') =~ /$TRUE/io) {
-
- # CAM3 aerosol mass climatology dataset (horizontal resolution dependent)
- add_default($nl, 'bndtvaer');
- $cam3_aero_data = $TRUE;
- $moz_aero_data = $FALSE;
-}
-
if ($chem_rad_passive or $aqua_mode) {
add_default($nl, 'atm_dep_flux', 'val'=>'.false.');
}
@@ -912,8 +909,6 @@ if ($rad_prog_ozone) {
add_default($nl, 'prescribed_ozone_type');
add_default($nl, 'prescribed_ozone_cycle_yr');
}
-} elsif ($cam3_ozone_data =~ /$TRUE/io) {
- $radval .= ",'N:O3:O3'";
} else {
die "ERROR: can not set ozone rad_climate specification\n";
}
@@ -957,7 +952,9 @@ else {
my $aer_model = 'bam';
if ($prescribed_aero_model eq 'modal' or $chem =~ /_mam/) {$aer_model = 'mam';}
-if ($chem =~ /_mam_oslo/) {$aer_model = 'oslo';}
+if ($chem =~ /_mam_oslo/) {
+ $aer_model = 'oslo';
+}
if ($aer_model eq 'oslo') {
@@ -1106,9 +1103,6 @@ if ($aer_model eq 'oslo') {
} elsif ($moz_aero_data =~ /$TRUE/io) {
push(@aero_names, "sulf");
push(@aerosources, "N:" );
- } elsif ($cam3_aero_data =~ /$TRUE/io) {
- push(@aero_names, "cam3_sul" );
- push(@aerosources, "N:" );
} else {
die "ERROR: can not set sulf rad_climate specification\n";
}
@@ -1119,9 +1113,6 @@ if ($aer_model eq 'oslo') {
} elsif ($moz_aero_data =~ /$TRUE/io) {
push(@aero_names, "dust1", "dust2", "dust3", "dust4");
push(@aerosources, "N:", "N:", "N:", "N:" );
- } elsif ($cam3_aero_data =~ /$TRUE/io) {
- push(@aero_names, "cam3_dust1", "cam3_dust2", "cam3_dust3", "cam3_dust4" );
- push(@aerosources, "N:", "N:", "N:", "N:" );
} else {
die "ERROR: can not set dust rad_climate specification\n";
}
@@ -1132,9 +1123,6 @@ if ($aer_model eq 'oslo') {
} elsif ($moz_aero_data =~ /$TRUE/io) {
push(@aero_names, "bcar1", "bcar2");
push(@aerosources, "N:", "N:" );
- } elsif ($cam3_aero_data =~ /$TRUE/io) {
- push(@aero_names, "cam3_bcpho", "cam3_bcphi");
- push(@aerosources, "N:", "N:" );
} else {
die "ERROR: can not set black carbon rad_climate specification\n";
}
@@ -1145,9 +1133,6 @@ if ($aer_model eq 'oslo') {
} elsif ($moz_aero_data =~ /$TRUE/io) {
push(@aero_names, "ocar1", "ocar2");
push(@aerosources, "N:", "N:" );
- } elsif ($cam3_aero_data =~ /$TRUE/io) {
- push(@aero_names, "cam3_ocpho", "cam3_ocphi");
- push(@aerosources, "N:", "N:" );
} else {
die "ERROR: can not set organic carbon rad_climate specification\n";
}
@@ -1168,9 +1153,6 @@ if ($aer_model eq 'oslo') {
push(@aero_names, "SSLTA", "SSLTC");
push(@aerosources, "N:", "N:");
}
- } elsif ($cam3_aero_data =~ /$TRUE/io ) {
- push(@aero_names, "cam3_ssam", "cam3_sscm");
- push(@aerosources, "N:", "N:" );
} else {
die "ERROR: can not set sslt rad_climate specification\n";
}
@@ -1191,7 +1173,7 @@ if ( $prescribed_aero_model ne 'none' ) {
# Prescribed aerosol deposition fluxes.
# Not needed if in aquaplanet mode.
- if ( (($moz_aero_data =~ /$TRUE/io) or ($cam3_aero_data =~ /$TRUE/io)) and !$aqua_mode ) {
+ if ( $moz_aero_data =~ /$TRUE/io and !$aqua_mode ) {
# If user has not set aerodep_flx_file, then use defaults
unless (defined $nl->get_value('aerodep_flx_file')) {
my @settings = ('aerodep_flx_datapath', 'aerodep_flx_file', 'aerodep_flx_type',
@@ -1577,7 +1559,7 @@ elsif ($carma eq 'tholin') {
# turn on stratospheric aerosol forcings in CAM6 configurations
my $chem_has_ocs = chem_has_species($cfg, 'OCS');
-if (($phys =~ /cam6/ or $phys =~ /cam_dev/) and $chem =~ /_mam/ and $chem ne 'trop_mam_oslo') {
+if (($phys =~ /cam6/ or $phys =~ /cam7/) and $chem =~ /_mam/ and $chem ne 'trop_mam_oslo') {
# turn on volc forcings in cam6 -- prognostic or prescribed
if ( $chem_has_ocs ) {
# turn on prognostic stratospheric aerosols
@@ -1607,9 +1589,9 @@ if (chem_has_species($cfg, 'O3S')) {
# stratospheric aerosols are needed for heterogeneous chemistry as well as radiation feedback
my $het_chem = chem_has_species($cfg, 'N2O5');
-# Default for CAM6, is that prescribed_strataero_3modes is TRUE, but allow user to override
+# Default for cam6 and cam7 is that prescribed_strataero_3modes is TRUE, but allow user to override
my $prescribed_strataero_3modes = $FALSE;
-if ($phys =~ /cam6/ or $phys =~ /cam_dev/) {
+if ($phys =~ /cam6/ or $phys =~ /cam7/) {
$prescribed_strataero_3modes = $TRUE;
}
if (defined $nl->get_value('prescribed_strataero_3modes')) {
@@ -1797,7 +1779,7 @@ if ( $prog_species ) {
add_default($nl, 'ghg_chem', 'val'=>".true.");
add_default($nl, 'bndtvg');
}
- if ( $prog_species =~ /DST/ ) {
+ if ( $prog_species =~ /DST/ and $soil_erod_atm =~ /$TRUE/) {
add_default($nl, 'soil_erod_file' );
}
@@ -1865,7 +1847,7 @@ my $megan_emis = defined $nl->get_value('megan_specifier');
if ( $megan_emis ) { add_default($nl, 'megan_factors_file'); }
# Tropospheric full chemistry options
-if (($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/) and ($phys !~ /cam6/) and ($phys !~ /cam_dev/)) {
+if (($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/) and ($phys !~ /cam6/) and ($phys !~ /cam7/)) {
# Surface emission datasets:
my %verhash;
@@ -2069,10 +2051,13 @@ if (($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/)
if ($chem =~ /geoschem/) {
- my $val;
+ # Input directories
+ add_default($nl, 'geoschem_chem_inputs');
+ add_default($nl, 'geoschem_aeropt_inputs');
+ add_default($nl, 'geoschem_photol_inputs');
# Species with fixed lower boundary
- $val = "'CCL4','CH4','N2O','CO2','CFC11','CFC12','CH3BR','CH3CCL3','CH3CL'"
+ my $val = "'CCL4','CH4','N2O','CO2','CFC11','CFC12','CH3BR','CH3CCL3','CH3CL'"
.",'HCFC22','CFC114','CFC115','HCFC141B','HCFC142B','CH2BR2','CHBR3','H2402'";
if ($chem_has_ocs) {
@@ -2087,9 +2072,11 @@ if ($chem =~ /geoschem/) {
add_default($nl, 'flbc_cycle_yr', 'val'=>'2000');
}
- my @files;
# Datasets
- @files = ( 'soil_erod_file', 'flbc_file' );
+ my @files = ( 'flbc_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
@@ -2128,12 +2115,15 @@ if ($chem =~ /trop_mozart/ or $chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/) {
my @files;
# Datasets
if ($chem =~ /trop_strat/ or $chem =~ /waccm_tsmlt/) {
- @files = ( 'soil_erod_file', 'flbc_file',
+ @files = ( 'flbc_file',
'xs_coef_file','xs_short_file','xs_long_file', 'rsf_file' );
} else {
- @files = ( 'soil_erod_file', 'flbc_file',
+ @files = ( 'flbc_file',
'xs_coef_file','xs_short_file','xs_long_file', 'rsf_file', 'exo_coldens_file', 'sulf_file' );
}
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
@@ -2231,15 +2221,17 @@ if ($chem eq 'trop_mam3') {
add_default($nl, 'flbc_list', 'val'=>"' '");
# Datasets
- my @files = ('soil_erod_file',
- 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ my @files = ( 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
}
# CMIP6 emissions
-if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam_dev/)) {
+if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam7/)) {
# OASISS (ocean) DMS emissions
if (!$aqua_mode and !$scam) {
@@ -2317,14 +2309,8 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
# for troposphere gas-phase chemistry
if ($chem =~ /trop_strat/ or $chem =~ /_tsmlt/) {
%species = (%species,
- 'BENZENE_an_srf_file' => 'BENZENE',
- 'BENZENE_bb_srf_file' => 'BENZENE',
'BIGALK_an_srf_file' => 'BIGALK',
'BIGALK_bb_srf_file' => 'BIGALK',
- 'BIGENE_an_srf_file' => 'BIGENE',
- 'BIGENE_bb_srf_file' => 'BIGENE',
- 'C2H2_an_srf_file' => 'C2H2',
- 'C2H2_bb_srf_file' => 'C2H2',
'C2H4_an_srf_file' => 'C2H4',
'C2H4_bb_srf_file' => 'C2H4',
'C2H4_ot_srf_file' => 'C2H4',
@@ -2341,8 +2327,6 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
'C3H8_ot_srf_file' => 'C3H8',
'CH3CHO_an_srf_file' => 'CH3CHO',
'CH3CHO_bb_srf_file' => 'CH3CHO',
- 'CH3CN_an_srf_file' => 'CH3CN',
- 'CH3CN_bb_srf_file' => 'CH3CN',
'CH3COCH3_an_srf_file' => 'CH3COCH3',
'CH3COCH3_bb_srf_file' => 'CH3COCH3',
'CH3COCHO_bb_srf_file' => 'CH3COCHO',
@@ -2351,25 +2335,39 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
'CH3OH_an_srf_file' => 'CH3OH',
'CH3OH_bb_srf_file' => 'CH3OH',
'GLYALD_bb_srf_file' => 'GLYALD',
+ 'ISOP_bb_srf_file' => 'ISOP',
+ 'NH3_an_srf_file' => 'NH3',
+ 'NH3_bb_srf_file' => 'NH3',
+ 'NH3_ot_srf_file' => 'NH3',
+ 'E90_srf_file' => 'E90' );
+ if ($chem !~ /_ts4/) {
+ %species = (%species,
+ 'BENZENE_an_srf_file' => 'BENZENE',
+ 'BENZENE_bb_srf_file' => 'BENZENE',
+ 'BIGENE_an_srf_file' => 'BIGENE',
+ 'BIGENE_bb_srf_file' => 'BIGENE',
+ 'C2H2_an_srf_file' => 'C2H2',
+ 'C2H2_bb_srf_file' => 'C2H2',
+ 'CH3CN_an_srf_file' => 'CH3CN',
+ 'CH3CN_bb_srf_file' => 'CH3CN',
'HCN_an_srf_file' => 'HCN',
'HCN_bb_srf_file' => 'HCN',
'HCOOH_an_srf_file' => 'HCOOH',
'HCOOH_bb_srf_file' => 'HCOOH',
- 'ISOP_bb_srf_file' => 'ISOP',
'MEK_an_srf_file' => 'MEK',
'MEK_bb_srf_file' => 'MEK',
- 'NH3_an_srf_file' => 'NH3',
- 'NH3_bb_srf_file' => 'NH3',
- 'NH3_ot_srf_file' => 'NH3',
'TOLUENE_an_srf_file' => 'TOLUENE',
'TOLUENE_bb_srf_file' => 'TOLUENE',
'XYLENES_an_srf_file' => 'XYLENES',
- 'XYLENES_bb_srf_file' => 'XYLENES',
- 'E90_srf_file' => 'E90' );
+ 'XYLENES_bb_srf_file' => 'XYLENES' ) ;
+ }
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_ts2/) {
%species = (%species,
'MTERP_bb_srf_file' => 'APIN') ;
- } else {
+ } elsif ($chem =~ /_ts4/) {
+ %species = (%species,
+ 'MTERP_bb_srf_file' => 'TERP') ;
+ } else {
%species = (%species,
'MTERP_bb_srf_file' => 'MTERP' );
}
@@ -2391,7 +2389,7 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
'IVOC_bb_srf_file' => 'IVOCbb',
'SVOC_an_srf_file' => 'SVOCff',
'SVOC_bb_srf_file' => 'SVOCbb' );
- } else {
+ } elsif ($chem !~ /_ts4/) {
%species = (%species,
'IVOC_an_srf_file' => 'IVOC',
'IVOC_bb_srf_file' => 'IVOC',
@@ -2400,7 +2398,7 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
}
}
- # Note, this section might need to be modified if cam_dev values
+ # Note, this section might need to be modified if cam7 values
# diverge from cam6 values
my %verhash = ('ver'=>'cam6');
my $first = 1;
@@ -2416,7 +2414,7 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
$first = 0;
}
}
- if ($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4'or $chem eq 'ghg_mam4') {
+ if ($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4' or $chem eq 'ghg_mam4' or $chem =~ /_ts4/) {
# SOA yields (used for the interactive emissions) have been calculated based on the VBS yields in CAM-chem.
# Duseong S. Jo, et al. to be submitted to GMD, 2023 -- see https://github.com/ESCOMP/CAM/pull/727 discussion for additional detail.
my %soae_fctrs = ('BENZENE_an_srf_file' => '2.5592D0',
@@ -2521,7 +2519,7 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
}
# MEGAN emissions
- if (($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4' or $chem eq 'ghg_mam4') and !$aqua_mode and !$scam){
+ if (($chem eq 'trop_mam4' or $chem eq 'waccm_sc_mam4' or $chem eq 'ghg_mam4') and !$aqua_mode){
my $val = "'SOAE = 0.5954*isoprene + 5.1004*(carene_3 + pinene_a + thujene_a + bornene +',"
. "' terpineol_4 + terpineol_a + terpinyl_ACT_a + myrtenal + sabinene + pinene_b + camphene +',"
. "' fenchene_a + limonene + phellandrene_a + terpinene_a + terpinene_g + terpinolene +',"
@@ -2626,6 +2624,38 @@ if (($chem =~ /_mam4/ or $chem =~ /_mam5/) and ($phys =~ /cam6/ or $phys =~ /cam
add_default($nl, 'megan_factors_file');
add_default($nl, 'megan_mapped_emisfctrs', 'val'=>'.false.');
}
+ if ($chem =~ /trop_strat_mam5_ts4/) {
+ my $val = "'ISOP = isoprene',"
+ . "'TERP = carene_3 + pinene_a + thujene_a + bornene + terpineol_4 + terpineol_a + terpinyl_ACT_a +',"
+ . "' myrtenal + sabinene + pinene_b + camphene + fenchene_a + limonene + phellandrene_a + terpinene_a +',"
+ . "' terpinene_g + terpinolene + phellandrene_b + linalool + ionone_b + geranyl_acetone + neryl_acetone +',"
+ . "' jasmone + verbenene + ipsenol + myrcene + ocimene_t_b + ocimene_al + ocimene_c_b + 2met_nonatriene +',"
+ . "' farnescene_a + caryophyllene_b + acoradiene + aromadendrene + bergamotene_a + bergamotene_b +',"
+ . "' bisabolene_a + bisabolene_b + bourbonene_b + cadinene_d + cadinene_g + cedrene_a + copaene_a +',"
+ . "' cubebene_a + cubebene_b + elemene_b + farnescene_b + germacrene_B + germacrene_D + gurjunene_b +',"
+ . "' humulene_a + humulene_g + isolongifolene + longifolene + longipinene + muurolene_a + muurolene_g +',"
+ . "' selinene_b + selinene_d + nerolidol_c + nerolidol_t',"
+ . "'BIGALK = tricyclene + camphor + fenchone + thujone_a + thujone_b + cineole_1_8 + borneol + bornyl_ACT +',"
+ . "' cedrol + decanal + heptanal + heptane + hexane + nonanal + octanal + octanol + oxopentanal + pentane +',"
+ . "' hexanal + hexanol_1 + pentanal + heptanone', 'CH3OH = methanol',"
+ . "'CH3COCH3 = acetone', 'CH3CHO = acetaldehyde', 'C2H5OH = ethanol',"
+ . "'CH2O = formaldehyde', 'CH3COOH = acetic_acid', 'CO = carbon_monoxide',"
+ . "'C2H6 = ethane', 'C2H4 = ethene', 'C3H8 = propane', 'C3H6 = propene',"
+ . "'SOAE = 0.5954*isoprene + 5.1004*(carene_3 + pinene_a + thujene_a + bornene +',"
+ . "' terpineol_4 + terpineol_a + terpinyl_ACT_a + myrtenal + sabinene + pinene_b + camphene +',"
+ . "' fenchene_a + limonene + phellandrene_a + terpinene_a + terpinene_g + terpinolene +',"
+ . "' phellandrene_b + linalool + ionone_b + geranyl_acetone + neryl_acetone + jasmone +',"
+ . "' verbenene + ipsenol + myrcene + ocimene_t_b + ocimene_al + ocimene_c_b + 2met_nonatriene) + ',"
+ . "' 12.3942*(farnescene_a + caryophyllene_b + acoradiene + aromadendrene + bergamotene_a +',"
+ . "' bergamotene_b + bisabolene_a + bisabolene_b + bourbonene_b + cadinene_d + cadinene_g +',"
+ . "' cedrene_a + copaene_a + cubebene_a + cubebene_b + elemene_b + farnescene_b +',"
+ . "' germacrene_B + germacrene_D + gurjunene_b + humulene_a + humulene_g + isolongifolene +',"
+ . "' longifolene + longipinene + muurolene_a + muurolene_g + selinene_b + selinene_d +',"
+ . "' nerolidol_c + nerolidol_t)'";
+ add_default($nl, 'megan_specifier', 'val'=>$val);
+ add_default($nl, 'megan_factors_file');
+ add_default($nl, 'megan_mapped_emisfctrs', 'val'=>'.false.');
+ }
if ($chem =~ /trop_strat_mam4_ts2/ or $chem =~ /trop_strat_mam5_ts2/) {
my $val = "'ISOP = isoprene',"
. "'APIN = pinene_a + myrtenal',"
@@ -2698,8 +2728,10 @@ if (($chem eq 'trop_mam4') or ($chem eq 'waccm_sc_mam4') or ($chem eq 'ghg_mam4'
add_default($nl, 'flbc_list', 'val'=>"' '");
# Datasets
- my @files = ('soil_erod_file',
- 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ my @files = ('xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
@@ -2711,16 +2743,16 @@ if ($chem eq 'trop_mam_oslo' ) {
# Surface emission datasets:
%species = ();
%species = (%species,
- 'DMS -> ' => 'dms_oslo_emis_file',
- 'SO2 -> ' => 'so2_oslo_emis_file',
- 'BC_AX -> ' => 'bc_ax_oslo_emis_file',
- 'BC_N -> ' => 'bc_n_oslo_emis_file',
- 'BC_NI -> ' => 'bc_ni_oslo_emis_file',
- 'SO4_PR -> ' => 'so4_pr_oslo_emis_file',
- 'OM_NI -> ' => 'om_ni_oslo_emis_file',
- 'monoterp -> ' => 'monoterp_oslo_emis_file',
- 'isoprene -> ' => 'isoprene_oslo_emis_file',
- );
+ 'DMS -> ' => 'dms_oslo_emis_file',
+ 'SO2 -> ' => 'so2_oslo_emis_file',
+ 'BC_AX -> ' => 'bc_ax_oslo_emis_file',
+ 'BC_N -> ' => 'bc_n_oslo_emis_file',
+ 'BC_NI -> ' => 'bc_ni_oslo_emis_file',
+ 'SO4_PR -> ' => 'so4_pr_oslo_emis_file',
+ 'OM_NI -> ' => 'om_ni_oslo_emis_file',
+ 'monoterp -> ' => 'monoterp_oslo_emis_file',
+ 'isoprene -> ' => 'isoprene_oslo_emis_file',
+ );
my $first = 1;
my $pre = "";
@@ -2770,8 +2802,8 @@ if ($chem eq 'trop_mam_oslo' ) {
# Prescribed species
add_default($nl, 'tracer_cnst_specifier', 'val'=>"'O3','OH','NO3','HO2'");
unless (defined $nl->get_value('tracer_cnst_type')) {
- add_default($nl, 'tracer_cnst_type', 'ver'=>'fixed_ox');
- add_default($nl, 'tracer_cnst_cycle_yr','ver'=>'fixed_ox');
+ add_default($nl, 'tracer_cnst_type', 'ver'=>'fixed_ox');
+ add_default($nl, 'tracer_cnst_cycle_yr','ver'=>'fixed_ox');
}
my @files = ('tracer_cnst_datapath', 'tracer_cnst_file', 'tracer_cnst_filelist');
@@ -2783,8 +2815,10 @@ if ($chem eq 'trop_mam_oslo' ) {
add_default($nl, 'flbc_list', 'val'=>"' '");
# Datasets
- my @files = ('soil_erod_file',
- 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ my @files = ('xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
@@ -2872,8 +2906,10 @@ if ($chem eq 'trop_mam7') {
add_default($nl, 'flbc_list', 'val'=>"' '");
# Datasets
- my @files = ('soil_erod_file',
- 'xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ my @files = ('xs_long_file', 'rsf_file', 'exo_coldens_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
foreach my $file (@files) {
add_default($nl, $file);
}
@@ -2932,8 +2968,10 @@ if ($chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/) {
'photon_file', 'electron_file', 'igrf_geomag_coefs_file',
'euvac_file', 'solar_parms_data_file',
'depvel_lnd_file',
- 'xs_coef_file', 'xs_short_file','xs_long_file', 'rsf_file',
- 'soil_erod_file' );
+ 'xs_coef_file', 'xs_short_file','xs_long_file', 'rsf_file' );
+ if ($soil_erod_atm =~ /$TRUE/) {
+ @files = ( @files, 'soil_erod_file' );
+ }
if (!$waccmx) { @files = (@files, 'tgcm_ubc_file', 'snoe_ubc_file' ); }
@@ -3197,6 +3235,7 @@ if ($waccmx) {
add_default($nl,'ionos_xport_nsplit');
add_default($nl,'steady_state_ion_elec_temp', 'val'=>'.false.');
add_default($nl,'oplus_ring_polar_filter');
+ add_default($nl,'rxn_rate_sums');
}
# Chemistry options
@@ -3263,17 +3302,18 @@ if (($chem ne 'none') and ($chem ne 'terminator') and !($chem =~ /geoschem/)) {
# Deep convection scheme
add_default($nl, 'deep_scheme');
+my $deep_scheme = $nl->get_value('deep_scheme');
# Aerosol convective processes
-if (($phys =~ /cam6/ or $phys =~ /cam_dev/) and $nl->get_value('deep_scheme') =~ /ZM/) {
+if (($phys =~ /cam6/ or $phys =~ /cam7/) and $deep_scheme =~ /ZM/) {
add_default($nl, 'convproc_do_aer', 'val'=>'.true.');
add_default($nl, 'convproc_do_evaprain_atonce', 'val'=>'.true.');
add_default($nl, 'convproc_pom_spechygro', 'val'=>'0.2D0');
add_default($nl, 'convproc_wup_max', 'val'=>'4.0D0');
}
-# cam_dev specific namelists
-if ($phys =~ /cam_dev/ and $nl->get_value('deep_scheme') =~ /ZM/) {
+# cam7 specific namelists
+if ($phys =~ /cam7/ and $deep_scheme =~ /ZM/) {
add_default($nl, 'zmconv_parcel_pbl', 'val'=>'.true.');
} else {
add_default($nl, 'zmconv_parcel_pbl', 'val'=>'.false.');
@@ -3326,8 +3366,8 @@ if ($cfg->get('microphys') =~ /^mg/) {
# namelist options for pumas tag release_v1.22 or later
- # (currently only in the cam_dev physics package)
- if ($phys =~ /cam_dev/) {
+ # (currently only in the cam7 physics package)
+ if ($phys =~ /cam7/) {
add_default($nl, 'micro_mg_warm_rain');
add_default($nl, 'micro_mg_accre_sees_auto');
add_default($nl, 'micro_mg_vtrms_factor');
@@ -3344,7 +3384,7 @@ if ($cfg->get('microphys') =~ /^mg/) {
}else {
# For CESM2, the decision was made to set micro_do_sb_physics to false
- # This variable is replaced with micro_mg_warm_rain in cam_dev runs
+ # This variable is replaced with micro_mg_warm_rain in cam7 runs
add_default($nl, 'micro_do_sb_physics', 'val'=>'.false.');
}
@@ -3360,13 +3400,13 @@ if ($cfg->get('microphys') =~ /^mg/) {
$micro_mg_dcs = '390.D-6'; # default for SIHLS
}
elsif ($hgrid =~ /1.9x2.5/ and $phys eq 'cam6') {
- $micro_mg_dcs = '200.D-6'; # default for FV 2-deg
+ $micro_mg_dcs = '200.D-6';
}
elsif ($phys eq 'cam6') {
- $micro_mg_dcs = '500.D-6'; # default for cam6
+ $micro_mg_dcs = '500.D-6';
}
- elsif ($phys eq 'cam_dev') {
- $micro_mg_dcs = '500.D-6'; # default for cam_dev
+ elsif ($phys eq 'cam7') {
+ $micro_mg_dcs = '500.D-6';
}
}
@@ -3472,6 +3512,12 @@ if ($use_subcol_microp =~ /$TRUE/io) {
}
# CLUBB_SGS
+my $do_clubb_sgs = $nl->get_value('do_clubb_sgs');
+if (defined $do_clubb_sgs) {
+ die "CAM Namelist ERROR: User may not specify the value of do_clubb_sgs.\n".
+ "This variable is set by build-namelist based on information\n".
+ "from the configure cache file.\n";
+}
add_default($nl, 'do_clubb_sgs');
my $clubb_sgs = $nl->get_value('do_clubb_sgs');
if ($clubb_sgs =~ /$TRUE/io) {
@@ -3640,13 +3686,6 @@ if ($clubb_sgs =~ /$TRUE/io) {
add_default($nl, 'do_hb_above_clubb');
}
-# Force exit if running cam_dev and CLUBB is off
-if ($phys eq 'cam_dev') {
- if ($clubb_sgs =~ /$FALSE/io) {
- die "$ProgName - ERROR: If running cam_dev physics, do_clubb_sgs must be .true.\n";
- }
-}
-
# Tuning for wet scavenging of modal aerosols
if ($chem =~ /_mam/) {
add_default($nl, 'sol_facti_cloud_borne');
@@ -3790,19 +3829,15 @@ if ($cfg->get('microphys') eq 'rk') {
}
# Dust emissions tuning factor
-# If dust is prognostic ==> supply the tuning factor
-if ( length($nl->get_value('soil_erod_file'))>0 ) {
- # check whether turbulent mountain stress parameterization is on
- if ($nl->get_value('do_tms') =~ /$TRUE/io) {
- add_default($nl, 'dust_emis_fact', 'tms'=>'1');
+# check whether turbulent mountain stress parameterization is on
+if ($nl->get_value('do_tms') =~ /$TRUE/io) {
+ add_default($nl, 'dust_emis_fact', 'tms'=>'1');
+} else {
+ if ($chem =~ /trop_strat/ or $chem =~ /geoschem/ or $chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/ or $chem =~ /trop_mozart/) {
+ add_default($nl, 'dust_emis_fact', 'ver'=>'chem');
}
else {
- if ($chem =~ /trop_strat/ or $chem =~ /geoschem/ or $chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/ or $chem =~ /trop_mozart/) {
- add_default($nl, 'dust_emis_fact', 'ver'=>'chem');
- }
- else {
- add_default($nl, 'dust_emis_fact');
- }
+ add_default($nl, 'dust_emis_fact');
}
}
if (chem_has_species($cfg, 'NO')) {
@@ -3834,7 +3869,7 @@ if ($chem =~ /_mam(\d)/) {
# By default, orographic waves are always on
if (!$simple_phys) {
- if ($phys =~ /cam6/ or $phys =~ /cam_dev/) {
+ if ($phys =~ /cam6/ or $phys =~ /cam7/) {
add_default($nl, 'use_gw_oro', 'val'=>'.false.');
@@ -3851,6 +3886,10 @@ if (!$simple_phys) {
add_default($nl, 'use_gw_rdg_beta', 'val'=>'.false.');
}
+ if ($phys =~ /cam7/) {
+ add_default($nl, 'use_gw_movmtn_pbl', 'val'=>'.true.');
+ }
+
add_default($nl, 'use_gw_rdg_gamma' , 'val'=>'.false.');
add_default($nl, 'use_gw_front_igw' , 'val'=>'.false.');
add_default($nl, 'use_gw_convect_sh', 'val'=>'.false.');
@@ -3864,12 +3903,13 @@ if (!$simple_phys) {
add_default($nl, 'gw_rdg_do_divstream' , 'val'=>'.true.');
}
+my $use_gw_convect_dp = '.false.';
if ($waccm_phys or
- (!$simple_phys and $cfg->get('nlev') >= 60)) {
+ (!$simple_phys and $cfg->get('model_top') eq 'mt')) {
# Spectral gravity waves are part of WACCM physics, and also drive the
# QBO in the high vertical resolution configuration.
add_default($nl, 'use_gw_front' , 'val'=>'.true.');
- add_default($nl, 'use_gw_convect_dp', 'val'=>'.true.');
+ $use_gw_convect_dp = '.true.';
my $hdepth_scaling = '0.25D0' ;
my $qbo_forcing = '.false.';
if ($dyn eq 'fv') {
@@ -3888,15 +3928,19 @@ if ($waccm_phys or
}
add_default($nl, 'gw_qbo_hdepth_scaling', 'val'=>$hdepth_scaling);
add_default($nl, 'gw_top_taper');
-} elsif ($phys =~ /cam_dev/) {
- # cam_dev settings for nlev<60 (Other cam_dev set above)
+} elsif ($phys =~ /cam7/) {
+ # cam7 settings for model_top = 'lt'
add_default($nl, 'use_gw_front' , 'val'=>'.true.');
- add_default($nl, 'use_gw_convect_dp', 'val'=>'.true.');
+ $use_gw_convect_dp = '.true.';
add_default($nl, 'gw_qbo_hdepth_scaling', 'val'=>'1.0D0');
} else {
add_default($nl, 'use_gw_front' , 'val'=>'.false.');
- add_default($nl, 'use_gw_convect_dp', 'val'=>'.false.');
}
+# Check if deep convection scheme used. If not set use_gw_convect_dp=.false.
+if ($deep_scheme =~ /off/) {
+ $use_gw_convect_dp = '.false.';
+}
+add_default($nl, 'use_gw_convect_dp', 'val'=>$use_gw_convect_dp);
# We need a lot of logic to use these below, so make flags for them.
my $do_gw_oro = ($nl->get_value('use_gw_oro') =~ /$TRUE/io);
@@ -3904,15 +3948,12 @@ my $do_gw_front = ($nl->get_value('use_gw_front') =~ /$TRUE/io);
my $do_gw_front_igw = ($nl->get_value('use_gw_front_igw') =~ /$TRUE/io);
my $do_gw_convect_dp = ($nl->get_value('use_gw_convect_dp') =~ /$TRUE/io);
my $do_gw_convect_sh = ($nl->get_value('use_gw_convect_sh') =~ /$TRUE/io);
+my $do_gw_movmtn_pbl = ($nl->get_value('use_gw_movmtn_pbl') =~ /$TRUE/io);
my $do_gw_rdg_beta = ($nl->get_value('use_gw_rdg_beta') =~ /$TRUE/io);
my $do_gw_rdg_gamma = ($nl->get_value('use_gw_rdg_gamma') =~ /$TRUE/io);
my $do_divstream = ($nl->get_value('gw_rdg_do_divstream') =~ /$TRUE/io);
-if (!$simple_phys) {
- # GW option used only for backwards compatibility with CAM3.
- add_default($nl, 'fcrit2', 'val'=>'1.0');
-}
# Mid-scale wavelength settings.
if ($do_gw_front or $do_gw_convect_dp or $do_gw_convect_sh) {
add_default($nl, 'pgwv');
@@ -3961,6 +4002,11 @@ if ($do_gw_convect_sh) {
add_default($nl, 'effgw_beres_sh');
}
+if ($do_gw_movmtn_pbl) {
+ add_default($nl, 'gw_drag_file_mm');
+ add_default($nl, 'alpha_gw_movmtn');
+}
+
if ($do_gw_rdg_beta) {
if ($use_topo_file =~ m/$FALSE/io) {
die "$ProgName - ERROR: beta ridge scheme requires data from a topo file.\n";
@@ -4025,7 +4071,7 @@ if ((not $waccm_phys) and
($do_gw_front or $do_gw_front_igw or
$do_gw_convect_dp or $do_gw_convect_sh )) {
add_default($nl, 'tau_0_ubc', 'val'=>'.true.');
-} elsif ($phys =~ /cam_dev/) {
+} elsif ($phys =~ /cam7/) {
add_default($nl, 'tau_0_ubc', 'val'=>'.true.');
} elsif (!$simple_phys) {
add_default($nl, 'tau_0_ubc', 'val'=>'.false.');
@@ -4156,6 +4202,30 @@ if ($dyn eq 'sld') {
# Single column model
if ($cfg->get('scam')) {
add_default($nl, 'iopfile');
+ add_default($nl, 'nhtfrq');
+ add_default($nl, 'mfilt');
+ add_default($nl, 'scm_use_obs_uv');
+ add_default($nl, 'scale_dry_air_mass');
+ add_default($nl, 'scm_relaxation');
+ add_default($nl, 'scm_relax_bot_p');
+ add_default($nl, 'scm_relax_top_p');
+ add_default($nl, 'scm_relax_linear');
+ add_default($nl, 'scm_relax_tau_bot_sec');
+ add_default($nl, 'scm_relax_tau_top_sec');
+ if ($chem =~ /_mam/) {
+ add_default($nl, 'scm_relax_fincl');
+ }
+ if ($scam_iop) {
+ add_default($nl, 'iopfile');
+ }
+ if ($scam_iop eq 'SAS') {
+ add_default($nl, 'use_gw_front');
+ add_default($nl, 'scm_backfill_iop_w_init');
+ }
+ if ($scam_iop eq 'twp06') {
+ add_default($nl, 'iradsw');
+ add_default($nl, 'iradlw');
+ }
}
# CAM generates IOP file for SCAM
@@ -4477,7 +4547,7 @@ my %nl_group = ();
foreach my $name (@nl_groups) { $nl_group{$name} = ''; }
# Dry deposition, MEGAN VOC emis and ozone namelists
-@comp_groups = qw(drydep_inparm megan_emis_nl fire_emis_nl carma_inparm ndep_inparm ozone_coupling_nl lightning_coupling_nl);
+@comp_groups = qw(drydep_inparm megan_emis_nl fire_emis_nl carma_inparm ndep_inparm ozone_coupling_nl lightning_coupling_nl dust_emis_inparm);
$outfile = "$opts{'dir'}/drv_flds_in";
$nl->write($outfile, 'groups'=>\@comp_groups);
@@ -5199,8 +5269,8 @@ sub check_snapshot_settings {
if ($chem ne 'none') {
push (@validList_bc, ("'chem_timestep_tend'"));
}
- } elsif ($phys =~ /cam_dev/) {
- # CAM_DEV physpkg
+ } elsif ($phys =~ /cam7/) {
+ # cam7 physpkg
push(@validList_ac, ("'chem_emissions'",
"'clubb_tend_cam'",
"'microp_section'"));
diff --git a/bld/config_files/definition.xml b/bld/config_files/definition.xml
index 164ac87f92..f146ddec7c 100644
--- a/bld/config_files/definition.xml
+++ b/bld/config_files/definition.xml
@@ -57,8 +57,8 @@ Option to turn on waccmx thermosphere/ionosphere extension: 0 => no, 1 => yes
Ionosphere model used in WACCMX.
-
-Physics package: cam3, cam4, cam5, cam6, cam_dev, held_suarez, adiabatic, kessler, tj2016, grayrad, spcam_sam1mom, spcam_m2005.
+
+Physics package: cam3, cam4, cam5, cam6, cam7, held_suarez, adiabatic, kessler, tj2016, grayrad, spcam_sam1mom, spcam_m2005.
Switch to turn on Harmonized Emissions Component (HEMCO) for chemistry: 0 => no, 1 => yes.
@@ -153,9 +153,13 @@ Modifications that allow perturbation growth testing: 0=off, 1=on.
Configure CAM for single column mode: 0=off, 1=on. This option only
supported for the Eulerian dycore.
+
+Single column IOP
+Supported for Eulerian and SE dycores.
+
Configure CAM to generate an IOP file that can be used to drive SCAM: 0=no, 1=yes.
-This option only supported for the Eulerian dycore.
+This option supported for the Eulerian and SE dycores.
Horizontal grid specifier. The recognized values depend on
diff --git a/bld/configure b/bld/configure
index e084c395cd..661fa036b2 100755
--- a/bld/configure
+++ b/bld/configure
@@ -65,7 +65,7 @@ OPTIONS
Default: none.
-chem Build CAM with specified prognostic chemistry package
[ none | ghg_mam4 | terminator | trop_mam3 | trop_mam4 | trop_mam7 | trop_mam_oslo | trop_mozart | trop_strat_mam4_ts2 |
- trop_strat_mam4_vbs | trop_strat_mam4_vbsext | trop_strat_mam5_ts2 | trop_strat_mam5_vbs |
+ trop_strat_mam4_vbs | trop_strat_mam4_vbsext | trop_strat_mam5_ts2 | trop_strat_mam5_ts4 | trop_strat_mam5_vbs |
trop_strat_mam5_vbsext | 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 | geoschem_mam4 ].
@@ -73,7 +73,7 @@ OPTIONS
Default: trop_mam5 for cam7
Default: trop_mam4 for cam6
Default: trop_mam3 for cam5.
- -[no]clubb_sgs Switch on [off] CLUBB_SGS. Default: on for cam6, otherwise off.
+ -[no]clubb_sgs Switch on [off] CLUBB_SGS. Default: on for cam6 and cam7, otherwise off.
-clubb_opts Comma separated list of CLUBB options to turn on/off. By default they are all off.
Current option is: clubb_do_adv (Advect CLUBB moments)
-co2_cycle This option modifies the CAM configuration by
@@ -82,7 +82,7 @@ OPTIONS
-cppdefs A string of user specified CPP defines. Appended to
Makefile defaults. E.g. -cppdefs '-DVAR1 -DVAR2'
-cpl Coupling framework [mct | nuopc]. Default: mct.
- -dyn Dynamical core option: [eul | fv | se ]. Default: fv.
+ -dyn Dynamical core option: [eul | fv | se ]. Default: se.
-edit_chem_mech Invokes CAMCHEM_EDITOR to allow the user to edit the chemistry mechanism file
-hgrid Specify horizontal grid. Use nlatxnlon for spectral grids;
dlatxdlon for fv grids (dlat and dlon are the grid cell size
@@ -93,7 +93,7 @@ OPTIONS
-max_n_rad_cnst Maximum number of constituents that are either radiatively
active, or in any single diagnostic list for the radiation.
-microphys Specify the microphysics option [mg1 | mg2 | mg3| rk | pumas].
- -model_top Specify the model_top option [ lt | mt ].
+ -model_top Specify the model_top option for cam7 [ lt | mt ].
-nadv Set total number of advected species to .
-nadv_tt Set number of advected test tracers .
-nlev Set number of levels to .
@@ -101,9 +101,9 @@ OPTIONS
-pbl Specify the PBL option [uw | hb | hbr].
-pcols Set maximum number of columns in a chunk to .
-pergro Switch enables building CAM for perturbation growth tests.
- -phys Physics option [cam3 | cam4 | cam5 | cam6 | cam_dev |
+ -phys Physics option [cam4 | cam5 | cam6 | cam7 |
held_suarez | adiabatic | kessler | tj2016 | grayrad |
- spcam_sam1mom | spcam_m2005]. Default: cam6
+ spcam_sam1mom | spcam_m2005]. Default: cam7
-prog_species Comma-separate list of prognostic mozart species packages.
Currently available: DST,SSLT,SO4,GHG,OC,BC,CARBON16
-psubcols Maximum number of sub-columns in a run - set to 1 if not using sub-columns (default)
@@ -128,7 +128,10 @@ OPTIONS
-camiop Configure CAM to generate an IOP file that can be used to drive SCAM.
This switch only works with the Eulerian dycore.
- -scam Compiles model in single column mode. Only works with Eulerian dycore.
+ -scam Compiles model in single column mode and configures for iop
+ [ arm95 | arm97 | atex | bomex | cgilsS11 | cgilsS12 | cgilsS6 | dycomsRF01 |
+ dycomsRF02 | gateIII | mpace | rico | sparticus | togaII | twp06 | SAS | camfrc ].
+ Default: arm97
CAM parallelization:
@@ -175,6 +178,7 @@ OPTIONS
-ldflags A string of user specified load options. Appended to
Makefile defaults.
-linker User specified linker. Overrides Makefile default of \$(FC).
+ -mpas_libdir Directory containing MPAS library.
-mct_libdir Directory containing MCT library. Default: build the library from source
in a subdirectory of \$cam_bld.
-mpi_inc Directory containing MPI include files.
@@ -211,6 +215,7 @@ EOF
# command was issued from the current working directory.
(my $ProgName = $0) =~ s!(.*)/!!; # name of this script
+$ProgName = "CAM $ProgName"; # distinquish from other components configure
my $ProgDir = $1; # name of directory containing this script -- may be a
# relative or absolute path, or null if the script is in
# the user's PATH
@@ -275,6 +280,7 @@ GetOptions(
"mct_libdir=s" => \$opts{'mct_libdir'},
"microphys=s" => \$opts{'microphys'},
"model_top=s" => \$opts{'model_top'},
+ "mpas_libdir=s" => \$opts{'mpas_libdir'},
"mpi_inc=s" => \$opts{'mpi_inc'},
"mpi_lib=s" => \$opts{'mpi_lib'},
"nadv=s" => \$opts{'nadv'},
@@ -297,7 +303,7 @@ GetOptions(
"psubcols=s" => \$opts{'psubcols'},
"rad=s" => \$opts{'rad'},
"offline_drv=s" => \$opts{'offline_drv'},
- "scam" => \$opts{'scam'},
+ "scam=s" => \$opts{'scam'},
"silhs" => \$opts{'silhs'},
"s|silent" => \$opts{'silent'},
"smp!" => \$opts{'smp'},
@@ -535,34 +541,28 @@ if ($print>=2) { print "Coupling framework: $cpl$eol"; }
#-----------------------------------------------------------------------------------------------
# Physics package
-#
-# The default physics package is cam6. Physics packages >=cam5 use chemistry packages
-# that include modal aerosols, i.e., the -chem value matches /_mam/. If the chem_pkg
-# name doesn't match /_mam/ then set the default physics package to cam4.
-my $phys_pkg = 'cam6';
-if (defined $opts{'chem'} and $opts{'chem'} !~ /_mam/) {
- $phys_pkg = 'cam4';
-}
-elsif (defined $opts{'waccmx'}) {
- $phys_pkg = 'cam4';
-}
-# user override
+my $phys_pkg = 'not_set';
+
+# There is no default physics package. It is always specified by the CAM component part
+# of a compset longname. Add check that -phys has been set.
+
if (defined $opts{'phys'}) {
$phys_pkg = lc($opts{'phys'});
+} else {
+ die "$ProgName ERROR: the -phys option must be set";
}
# Special configuration for CAM-Nor options
-# Currently, each CAM-Nor selection only works with the CAM6 or CAM_DEV
-# ESCOMP/CAM physics suites
+# Currently, each CAM-Nor selection only works with CAM7
my $camnor = 0;
# user or compset override is only way to turn on this feature
if (defined $opts{'camnor'}) {
$camnor = $opts{'camnor'};
}
# Check supported physics suite
-if ($camnor && $phys_pkg ne 'cam_dev') {
- die "ERROR: CAM-Nor (-camnor) is only available for CAM6 and cam_dev.$eol";
+if ($camnor && $phys_pkg ne 'cam7') {
+ die "ERROR: CAM-Nor (-camnor) is only available for CAM6 and cam7.$eol";
}
# Add to the config object.
@@ -586,7 +586,7 @@ if ($phys_pkg =~ m/^adiabatic$|^held_suarez$|^kessler$|^tj2016$|^grayrad$/) {
#-----------------------------------------------------------------------------------------------
# Chemistry package
-my $chem_pkg = 'trop_mam4';
+my $chem_pkg = 'not_set';
# defaults based on physics package
if ($simple_phys or $phys_pkg =~ m/^cam[34]$/ or $phys_pkg eq 'spcam_sam1mom') {
@@ -598,6 +598,12 @@ elsif ($camnor) {
elsif ($phys_pkg eq 'cam5' or $phys_pkg eq 'spcam_m2005') {
$chem_pkg = 'trop_mam3';
}
+elsif ($phys_pkg eq 'cam6') {
+ $chem_pkg = 'trop_mam4';
+}
+elsif ($phys_pkg eq 'cam7') {
+ $chem_pkg = 'ghg_mam4';
+}
# some overrides for special configurations
if (defined $opts{'prog_species'}) {
@@ -615,14 +621,13 @@ if (defined $opts{'chem'}) {
# If the user has specified a simple physics package...
if ($simple_phys) {
- # the only valid chemistry options are 'none' and 'terminator'
if (($chem_pkg ne 'none') and ($chem_pkg ne 'terminator')) {
die "configure ERROR: -phys=$phys_pkg -chem=$chem_pkg\n".
" -chem can only be set to 'none' or 'terminator'.\n";
}
}
- elsif ($phys_pkg =~ m/^cam3$|^cam4$|^spcam_sam1mom$/) {
- # The modal aerosols are not valid with cam3 or cam4 physics
+ elsif ($phys_pkg =~ m/^cam4$|^spcam_sam1mom$/) {
+ # The modal aerosols are not valid with cam4 physics
if ($chem_pkg =~ /_mam/) {
die "configure ERROR: -phys=$phys_pkg -chem=$chem_pkg\n".
" -chem cannot be set to a modal aerosol option.\n";
@@ -659,6 +664,11 @@ if (defined $opts{'dyn'}) {
}
my $dyn_pkg = $cfg_ref->get('dyn');
+
+if ($dyn_pkg eq 'se' and $smp eq 'ON') {
+ die "CAM configure: ERROR: The SE dycore does not currently work with threading on. $eol";
+}
+
if ($print>=2) { print "Dynamics package: $dyn_pkg$eol"; }
$cfg_ref->set('analytic_ic', (defined $opts{'analytic_ic'}) ? $opts{'analytic_ic'} : 0);
@@ -695,18 +705,6 @@ my $max_n_rad_cnst = $cfg_ref->get('max_n_rad_cnst');
if ($print>=2) { print "Maximum radiatively active tracers: $max_n_rad_cnst$eol"; }
-#-----------------------------------------------------------------------------------------------
-# model_top - not set by default
-my $model_top = 'none';
-$cfg_ref->set('model_top', $model_top);
-
-# user override
-if (defined $opts{'model_top'}) {
- $cfg_ref->set('model_top', $opts{'model_top'});
-}
-if ($print>=2) { print "model_top: $model_top$eol"; }
-
-
#-----------------------------------------------------------------------------------------------
# waccm physics
my $waccm_phys = 0;
@@ -724,7 +722,7 @@ $waccm_phys = $cfg_ref->get('waccm_phys');
if ($print>=2) { print "WACCM physics: $waccm_phys$eol"; }
-# WACCM physics only runs with FV and SEdycores
+# WACCM physics only runs with FV and SE dycores
if ( ($waccm_phys) and ($dyn_pkg eq 'eul') ) {
die <<"EOF";
** ERROR: WACCM physics does not run with the Eulerian spectral dycore.
@@ -844,7 +842,7 @@ elsif ($phys_pkg eq 'cam5') {
elsif ($phys_pkg eq 'cam6') {
$microphys_pkg = 'mg2';
}
-elsif ($phys_pkg eq 'cam_dev') {
+elsif ($phys_pkg eq 'cam7') {
$microphys_pkg = 'mg3';
}
elsif ($phys_pkg eq 'spcam_sam1mom') {
@@ -893,7 +891,7 @@ if ($print>=2) { print "CARMA microphysical model: $carma_pkg$eol"; }
#-----------------------------------------------------------------------------------------------
# CLUBB
my $clubb_sgs = 0;
-if ($phys_pkg eq 'cam6' or $phys_pkg eq 'cam_dev') {
+if ($phys_pkg eq 'cam6' or $phys_pkg eq 'cam7') {
$clubb_sgs = 1;
}
@@ -904,7 +902,14 @@ if (defined $opts{'clubb_sgs'}) {
# consistency checks...
-# CLUBB_SGS only works with mg or PUMAS microphysics
+# cam7 only works with CLUBB_SGS
+if (($phys_pkg eq 'cam7') and not ($clubb_sgs )) {
+ die <<"EOF";
+** ERROR: CLUBB_SGS must be enabled for cam7 physics.
+EOF
+}
+
+# CLUBB_SGS only works with mg microphysics
if ($clubb_sgs and not ($microphys_pkg =~ m/^mg/ )) {
die <<"EOF";
** ERROR: microphysics package set to: $microphys_pkg
@@ -976,13 +981,15 @@ if ($phys_pkg =~ /cam[34]/) {
elsif ($phys_pkg =~ /cam5/) {
$macrophys_pkg = 'park';
}
-elsif ($phys_pkg =~ /cam6/ and $clubb_sgs) {
- $macrophys_pkg = 'clubb_sgs';
-}
-elsif ($phys_pkg =~ /cam6/ and !$clubb_sgs) {
- $macrophys_pkg = 'park';
+elsif ($phys_pkg =~ /cam6/) {
+ if ($clubb_sgs) {
+ $macrophys_pkg = 'clubb_sgs';
+ }
+ else {
+ $macrophys_pkg = 'park';
+ }
}
-elsif ($phys_pkg =~ /cam_dev/ and $clubb_sgs) {
+elsif ($phys_pkg =~ /cam7/ and $clubb_sgs) {
$macrophys_pkg = 'clubb_sgs';
}
elsif ($phys_pkg eq 'spcam_sam1mom') {
@@ -1017,13 +1024,15 @@ if ($phys_pkg =~ m/^cam[34]$/) {
elsif ($phys_pkg =~ /cam5/) {
$pbl_pkg = 'uw';
}
-elsif ($phys_pkg =~ /cam6/ and $clubb_sgs) {
- $pbl_pkg = 'clubb_sgs';
-}
-elsif ($phys_pkg =~ /cam6/ and !$clubb_sgs) {
- $pbl_pkg = 'uw';
+elsif ($phys_pkg =~ /cam6/) {
+ if ($clubb_sgs) {
+ $pbl_pkg = 'clubb_sgs';
+ }
+ else {
+ $pbl_pkg = 'uw';
+ }
}
-elsif ($phys_pkg =~ /cam_dev/ and $clubb_sgs) {
+elsif ($phys_pkg =~ /cam7/ and $clubb_sgs) {
$pbl_pkg = 'clubb_sgs';
}
elsif ($phys_pkg eq 'spcam_sam1mom') {
@@ -1043,7 +1052,7 @@ if (defined $opts{'pbl'}) {
# consistency checks...
-# UW PBL only works with mg or PUMAS microphysics
+# UW PBL only works with mg microphysics
if ($pbl_pkg =~ m/uw/i) {
unless ($microphys_pkg =~ /^mg/) {
die <<"EOF";
@@ -1083,10 +1092,10 @@ if ($unicon and $print>=2) { print "Using UNICON scheme.$eol"; }
# Set default
my $rad_pkg = 'none';
-if ($phys_pkg =~ m/^cam[34]$|^spcam_sam1mom$/) {
+if ($phys_pkg =~ m/cam4|spcam_sam1mom/) {
$rad_pkg = 'camrt';
}
-elsif ($phys_pkg =~ m/^cam[56]$|^cam_dev$|^spcam_m2005$/) {
+elsif ($phys_pkg =~ m/cam5|cam6|cam7|spcam_m2005/) {
$rad_pkg = 'rrtmg';
}
# Allow the user to override the default via the commandline.
@@ -1114,12 +1123,6 @@ if ($rad_pkg eq 'camrt') {
}
elsif ($rad_pkg =~ m/rrtmg/) {
- # The rrtmg package doesn't work with the CAM3 prescribed aerosols
- if ($phys_pkg eq 'cam3') {
- die "configure ERROR: radiation package: $rad_pkg is not compatible\n".
- " with physics package $phys_pkg\n";
- }
-
# RRTMGP not currently working with CARMA
if ($rad_pkg eq 'rrtmgp' and $carma_pkg ne 'none') {
die "configure ERROR: The CARMA microphysics package does not currently work with RRTMGP\n";
@@ -1137,8 +1140,8 @@ if (defined $opts{'cosp'}) {
}
my $cosp = $cfg_ref->get('cosp');
-# cosp is only implemented with the cam5 and cam6 physics packages
-if ($cosp and ($phys_pkg ne 'cam5' and $phys_pkg ne 'cam6' and $phys_pkg ne 'cam_dev')) {
+# cosp is only implemented with the cam5, cam6, and cam7 physics packages
+if ($cosp and ($phys_pkg ne 'cam5' and $phys_pkg ne 'cam6' and $phys_pkg ne 'cam7')) {
die "configure ERROR: cosp not implemented for the $phys_pkg physics package \n";
}
@@ -1159,7 +1162,7 @@ if ($phys_pkg eq 'spcam_sam1mom') {
}
if ($phys_pkg eq 'spcam_m2005') {
- if ($rad_pkg ne 'rrtmg') {
+ if ($rad_pkg !~ m/rrtmg/) {
die "configure ERROR: radiation package: $rad_pkg is not compatible\n".
" with m2005 -- it should be rrtmg\n";
}
@@ -1222,15 +1225,25 @@ if ($print>=2) { print "Perturbation growth testing: $pergro$eol"; }
#-----------------------------------------------------------------------------------------------
# Single column mode
+
+# Set default iop
+my $scam_iop;
+
+# Allow the user to override the default via the commandline.
+if (defined $opts{'scam'}) {
+ $scam_iop = lc($opts{'scam'});
+ $cfg_ref->set('scam_iop', $scam_iop);
+}
+
if (defined $opts{'scam'}) {
$cfg_ref->set('scam', 1);
}
my $scam = $cfg_ref->get('scam') ? "ON" : "OFF";
-# The only dycore supported in SCAM mode is Eulerian
-if ($scam eq 'ON' and $dyn_pkg ne 'eul') {
+# The only dycores supported in SCAM mode are Eulerian and Spectral Elements
+if ($scam eq 'ON' and !($dyn_pkg eq 'eul' or $dyn_pkg eq 'se')) {
die <<"EOF";
-** ERROR: SCAM mode only works with Eulerian dycore.
+** ERROR: SCAM mode only works with Eulerian or SE dycores.
** Requested dycore is: $dyn_pkg
EOF
}
@@ -1244,10 +1257,10 @@ if (defined $opts{'camiop'}) {
}
my $camiop = $cfg_ref->get('camiop') ? "ON" : "OFF";
-# The only dycore supported in CAMIOP mode is Eulerian
-if ($camiop eq 'ON' and $dyn_pkg ne 'eul') {
+# The only dycores supported in SCAM mode are Eulerian and Spectral Elements
+if ($camiop eq 'ON' and !($dyn_pkg eq 'eul' or $dyn_pkg eq 'se')) {
die <<"EOF";
-** ERROR: CAMIOP mode only works with Eulerian dycore.
+** ERROR: CAMIOP mode only works with the Eulerian or Spectral Element dycores.
** Requested dycore is: $dyn_pkg
EOF
}
@@ -1267,6 +1280,9 @@ elsif ($dyn_pkg eq 'eul') {
elsif ($dyn_pkg eq 'se') {
$hgrid = 'ne16np4';
}
+elsif ($dyn_pkg eq 'mpas') {
+ $hgrid = 'mpasa480';
+}
$cfg_ref->set('hgrid', $hgrid);
# User override.
@@ -1318,6 +1334,24 @@ EOF
if ($print>=2) { print "Maximum number of sub-columns per column: $psubcols$eol"; }
+#-----------------------------------------------------------------------------------------------
+# model_top -- Introduced in cam7 to provide a way to specify the model top
+# independently of the number of model layers.
+
+# Set default
+my $model_top = 'none';
+$cfg_ref->set('model_top', $model_top);
+
+# user override
+if (defined $opts{'model_top'} and $opts{'model_top'} ne 'none') {
+ if ($phys_pkg eq 'cam7') {
+ $cfg_ref->set('model_top', $opts{'model_top'});
+ } else {
+ die "configure ERROR: model_top=$opts{'model_top'} is only implemented for cam7 physics";
+ }
+}
+if ($print>=2) { print "model_top: $model_top$eol"; }
+
#-----------------------------------------------------------------------------------------------
# Number of vertical levels
my $nlev = 0;
@@ -1326,7 +1360,7 @@ my $nlev = 0;
if ($waccmx) {
if ($phys_pkg eq 'cam6') {
$nlev = 130;
- } elsif ($phys_pkg eq 'cam_dev') {
+ } elsif ($phys_pkg eq 'cam7') {
$nlev = 130;
} else {
$nlev = 126;
@@ -1340,7 +1374,7 @@ elsif ($chem_pkg =~ /waccm_/) {
$nlev = 70;
}
}
-elsif ($phys_pkg eq 'cam_dev') {
+elsif ($phys_pkg eq 'cam7') {
$nlev = 32;
}
elsif ($phys_pkg eq 'cam6') {
@@ -1352,9 +1386,6 @@ elsif ($phys_pkg eq 'cam5' or $phys_pkg eq 'spcam_m2005') {
elsif ($phys_pkg eq 'cam4' or $phys_pkg eq 'spcam_sam1mom') {
$nlev = 26;
}
-elsif ($phys_pkg eq 'cam3') {
- $nlev = 26;
-}
else {
# This will be used for Held-Suarez and other 'simple' physics
# We may change this to 32 once IC files are available.
@@ -1437,17 +1468,17 @@ if ($chem_pkg =~ '_mam3') {
} elsif ($chem_pkg =~ '_mam7') {
$chem_cppdefs = ' -DMODAL_AERO -DMODAL_AERO_7MODE ';
} elsif ($chem_pkg =~ '_oslo') {
- $chem_cppdefs = ' -DOSLO_AERO';
+ # Add MODAL_AERO_4MODE so that modal_aero_coag.F90 will compile
+ $chem_cppdefs = ' -DOSLO_AERO -DMODAL_AERO_4MODE';
}
# Customize GEOS-Chem advected species and chemistry CPP definitions
if ($chem_pkg =~ 'geoschem') {
- $chem_cppdefs .= ' -DEXTERNAL_GRID -DEXTERNAL_FORCING ';
+ $chem_cppdefs .= ' -DEXTERNAL_GRID -DEXTERNAL_FORCING -DMODEL_CESM -DMODEL_GEOSCHEM';
if ($chem_pkg =~ '_mam4') {
- $chem_nadv = 267; # includes GC advected species (233), CO2 (1), and MAM aerosols (33)
+ $chem_nadv = 269; # includes all GEOS-Chem advected species, CO2, and MAM aerosols
}
}
-
# CARMA sectional microphysics
#
# New CARMA models need to define the number of advected constituents.
@@ -1599,7 +1630,7 @@ else {
if ($print>=2 and $ttrac_nadv) { print "Advected constituents added by test tracer package: $ttrac_nadv$eol"; }
if ($age_of_air_trcs eq "ON") {
- $nadv += 4;
+ $nadv += 3;
if ($print>=2) { print "Advected constituents added by the age of air tracer package: 4$eol"; }
}
@@ -1717,7 +1748,7 @@ elsif ($fc =~ /nvfor/) { $fc_type = 'nvhpc'; }
# User override for Fortran compiler type
if (defined $opts{'fc_type'}) { $fc_type = $opts{'fc_type'}; }
-if ($fc_type == "intel") {$fc_type = 'intel'; }
+if ($fc_type =~ /intel/) {$fc_type = 'intel'; }
if ($fc_type) {
$cfg_ref->set('fc_type', $fc_type);
if ($print>=2) { print "Fortran compiler type: $fc_type$eol"; }
@@ -2132,7 +2163,7 @@ sub write_filepath
# CAM-Nor-physics has precedence over everything except SourceMods and oslo-aero
# Only active in NF or NB compsets
if ($camnor) {
- if ($phys_pkg eq 'cam_dev') {
+ if ($phys_pkg eq 'cam7') {
print $fh "$camsrcdir/src/physics/camnor_phys/physics\n";
} else {
print $fh "$camsrcdir/src/physics/camnor_phys/physics_cam6\n";
@@ -2147,19 +2178,20 @@ sub write_filepath
print $fh "$camsrcdir/src/unit_drivers\n";
print $fh "$camsrcdir/src/unit_drivers/${offline_drv}\n";
- if ($phys_pkg eq 'cam_dev') {
- print $fh "$camsrcdir/src/physics/cam_dev\n";
+ if ($phys_pkg eq 'cam7') {
+ print $fh "$camsrcdir/src/physics/cam7\n";
}
if ($simple_phys) {
print $fh "$camsrcdir/src/physics/simple\n";
- print $fh "$camsrcdir/src/atmos_phys/kessler\n";
- print $fh "$camsrcdir/src/atmos_phys/held_suarez\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/kessler\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/held_suarez\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/tj2016\n";
}
# Weak scaling fix. This has to come before physics/cam and before dycores
# It also has to come before utils (which is already near the end).
- if ($dyn eq 'se') {
+ if ($dyn eq 'se' or $dyn eq 'mpas') {
print $fh "$camsrcdir/src/infrastructure\n";
}
@@ -2179,22 +2211,23 @@ sub write_filepath
if ($chem_src_dir) {
print $fh "$chem_src_dir\n";
}
- if ($chem !~/_oslo/) {
- # GEOS-Chem must be prior to Mozart
- if ($chem_pkg =~ 'geoschem') {
- print $fh "$chem_src_dir/geoschem_src/GeosCore\n";
- print $fh "$chem_src_dir/geoschem_src/GeosUtil\n";
- print $fh "$chem_src_dir/geoschem_src/Headers\n";
- print $fh "$chem_src_dir/geoschem_src/ISORROPIA\n";
- print $fh "$chem_src_dir/geoschem_src/KPP/fullchem\n";
- print $fh "$camsrcdir/src/chemistry/pp_none\n";
- }
- if ($chem =~ /_mam/) {
- print $fh "$camsrcdir/src/chemistry/modal_aero\n";
- } else {
- print $fh "$camsrcdir/src/chemistry/bulk_aero\n";
- }
+ # GEOS-Chem and dependencies; GEOS-Chem must be prior to Mozart
+ if ($chem_pkg =~ 'geoschem') {
+ print $fh "$camsrcdir/src/chemistry/cloud_j/src/Core\n";
+ print $fh "$camsrcdir/src/chemistry/hetp/src/Core\n";
+ print $fh "$chem_src_dir/geoschem_src/GeosCore\n";
+ print $fh "$chem_src_dir/geoschem_src/GeosUtil\n";
+ print $fh "$chem_src_dir/geoschem_src/Headers\n";
+ print $fh "$chem_src_dir/geoschem_src/ISORROPIA\n";
+ print $fh "$chem_src_dir/geoschem_src/KPP/fullchem\n";
+ print $fh "$camsrcdir/src/chemistry/pp_none\n";
+ }
+
+ if ($chem =~ /_mam/) {
+ print $fh "$camsrcdir/src/chemistry/modal_aero\n";
+ } else {
+ print $fh "$camsrcdir/src/chemistry/bulk_aero\n";
}
print $fh "$camsrcdir/src/chemistry/aerosol\n";
@@ -2206,9 +2239,9 @@ sub write_filepath
}
if ($waccm_phys) {
print $fh "$camsrcdir/src/physics/waccm\n";
- print $fh "$camsrcdir/src/physics/ali_arms\n";
- print $fh "$camsrcdir/src/physics/ali_arms/subs\n";
- print $fh "$camsrcdir/src/physics/ali_arms/include\n";
+ print $fh "$camsrcdir/src/physics/ali_arms\n";
+ print $fh "$camsrcdir/src/physics/ali_arms/subs\n";
+ print $fh "$camsrcdir/src/physics/ali_arms/include\n";
}
print $fh "$camsrcdir/src/ionosphere\n";
@@ -2227,7 +2260,6 @@ sub write_filepath
print $fh "$camsrcdir/src/hemco/HEMCO/src/Extensions\n";
print $fh "$camsrcdir/src/hemco/HEMCO/src/Interfaces/Shared\n";
-
print $fh "$camsrcdir/src/chemistry/utils\n";
if ($rad eq 'rrtmg') {
@@ -2259,7 +2291,7 @@ sub write_filepath
print $fh "$camsrcdir/src/physics/clubb/src/SILHS\n";
}
- if ($phys_pkg eq 'cam_dev') {
+ if ($phys_pkg eq 'cam7') {
print $fh "$camsrcdir/src/physics/pumas\n";
} else {
print $fh "$camsrcdir/src/physics/pumas-frozen\n";
@@ -2295,7 +2327,10 @@ sub write_filepath
print $fh "$camsrcdir/src/physics/cam\n";
#Add the CCPP'ized subdirectories
- print $fh "$camsrcdir/src/atmos_phys/zhang_mcfarlane\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/tropopause_find\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/zhang_mcfarlane\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/dry_adiabatic_adjust\n";
+ print $fh "$camsrcdir/src/atmos_phys/schemes/utilities\n";
# Dynamics package and test utilities
print $fh "$camsrcdir/src/dynamics/$dyn\n";
@@ -2321,8 +2356,6 @@ sub write_filepath
print $fh "$camsrcdir/src/control\n";
print $fh "$camsrcdir/src/utils\n";
print $fh "$camsrcdir/src/utils/cam_ccpp\n";
- print $fh "$camsrcdir/src/atmos_phys/utilities\n";
-
$fh->close;
}
@@ -2363,6 +2396,7 @@ CS_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/actsim
MISR_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/MISR_simulator
MODIS_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/MODIS_simulator
PARASOL_PATH := $cam_dir/src/physics/cosp2/src/src/simulator/parasol
+
EOF
# Copy the "template" makefile to the new makefile.
@@ -2403,6 +2437,7 @@ EOF
$fh_in->close;
}
+
#-------------------------------------------------------------------------------
sub write_config_h
diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index dbe2ff7a9c..42424b9d91 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -44,12 +44,16 @@
atm/cam/inic/cam_vcoords_L32_c180105.nc
-atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c201125.nc
-atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c201216.nc
-atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc
-atm/cam/inic/mpas/mpasa120_L32_topo_coords_c201022.nc
-atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c230707.nc
-atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c230707.nc
+atm/cam/inic/mpas/mpasa480_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa120_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa60_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa30_L32_notopo_coords_c240507.nc
+atm/cam/inic/mpas/mpasa480_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa120_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa60_L58_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa480_L93_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa120_L93_notopo_coords_c240814.nc
+atm/cam/inic/mpas/mpasa60_L93_notopo_coords_c240814.nc
atm/cam/inic/fv/cami_0000-01-01_0.23x0.31_L26_c100513.nc
@@ -125,11 +129,10 @@
atm/cam/inic/se/f.e22.FCnudged.ne0CONUSne30x8_ne0CONUSne30x8_mt12.cam6_2_032.002.cam.i.2013-01-01-00000_c200623.nc
atm/cam/inic/se/f.e22.FCnudged.ne0CONUSne30x8_ne0CONUSne30x8_mt12.cam6_2_032.002.cam.i.2013-01-01-00000_c200623.nc
atm/cam/inic/se/f.e22.FCnudged.ne30_ne30_mg17.release-cesm2.2.0_spinup.2010_2020.001.cam.i.2011-01-01-00000_L58_c220310.nc
-atm/cam/inic/se/FCMTHIST_ne30pg3_1980-01-01_c221214.nc
-atm/cam/inic/se/f.cam6_3_112.FCMTHIST_v0c.ne30.non-ogw-ubcT-effgw0.7.001.cam.i.1998-01-01-00000_c230810.nc
+atm/cam/inic/se/f.cam6_3_160.FCMT_ne30.moving_mtn.001.cam.i.1996-01-01-00000_c240618.nc
atm/cam/inic/se/FLT_L58_ne30pg3_IC_c220623.nc
-atm/cam/inic/se/cam7_FMT_ne30pg3_mg17_L93_c221118.nc
+atm/cam/inic/se/c153_ne30pg3_FMTHIST_x02.cam.i.1990-01-01-00000_c240618.nc
atm/cam/chem/trop_mozart/ic/cami_0000-09-01_4x5_L26_c060217.nc
atm/cam/chem/trop_mozart/ic/cami_0000-09-01_10x15_L26_c060216.nc
@@ -162,17 +165,13 @@
atm/waccm/ic/FC6X2000_f05_spinup01.cam.i.0002-01-01-00000_c190711.nc
atm/waccm/ic/waccmx_mam4_aqua_4x5_L130_c180803.nc
atm/waccm/ic/waccmx_mam4_aqua_1.9x2.5_L130_c180803.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L32_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L58_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L32_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L58_01-01-31_c221214.nc
atm/waccm/ic/waccmx_aqua_ne5np4_126L_c210304.nc
atm/waccm/ic/waccmx_ne16np4_126L_c200108.nc
atm/waccm/ic/fx2000_phys-ionos-cpl_ne16_spinup03.cam.i.0002-01-01-00000_c201005.nc
atm/waccm/ic/waccmx_aqua_ne16np4_126L_c191108.nc
atm/waccm/ic/waccmx4_neutral_aquap_ne16np4_126lev_c200827.nc
atm/waccm/ic/fx2000_phys-ionos-cpl_ne30_spinup01.cam.i.0002-01-01-00000_c201014.nc
-+atm/waccm/ic/waccmx_ne30pg3_c231005.nc
+atm/waccm/ic/waccmx_ne30pg3_c231005.nc
atm/cam/inic/fv3/aqua_0006-01-01_C24_L32_c200625.nc
atm/cam/inic/fv3/aqua_0006-01-01_C48_L32_c200625.nc
@@ -223,13 +222,18 @@
atm/cam/inic/gaus/cami_0000-09-01_8x16_L26_c030918.nc
atm/cam/inic/gaus/cami_0000-01-01_8x16_L30_c090102.nc
+atm/cam/inic/se/FCts4MTHIST_ne3pg3_spinup02.cam.i.1980-01-01_c240702.nc
atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L32_01-01-31_c221214.nc
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-09-01-00000.nc
+atm/cam/inic/se/cami_0000-01-01_ne3np4_L30_c120315.nc
+atm/cam/inic/se/cami_0000-01-01_ne3np4_L30_c120315.nc
+atm/cam/inic/se/cami_0000-01-01_ne3np4_L26_c120525.nc
+atm/cam/inic/se/cami_0000-01-01_ne3np4_L26_c120525.nc
atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L58_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L93_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_FMTHIST_ne3pg3_mg37_L93_79-02-01_c240517.nc
atm/cam/inic/homme/cami-mam3_0000-01_ne5np4_L30.140707.nc
atm/cam/inic/se/F2000climo_ne5pg3_mg37_L32_01-01-31_c230520.nc
atm/cam/inic/se/F2000climo_ne5pg3_mg37_L58_01-01-31_c230520.nc
-
atm/cam/inic/se/ape_topo_cam4_ne16np4_L26_c171020.nc
atm/cam/inic/se/ape_topo_cam4_ne16np4_L30_c171020.nc
atm/cam/inic/se/ape_topo_cam4_ne16np4_L32_c171020.nc
@@ -247,10 +251,7 @@
atm/cam/inic/homme/cami-mam3_0000-01-ne240np4_L30_c111004.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L32_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L58_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L93_01-01-31_c221214.nc
-atm/cam/inic/se/ape_cam4_ne5np4_L26_c170517.nc
+atm/cam/inic/se/ape_cam4_ne5np4_L26_c170517.nc
atm/cam/inic/se/ape_cam4_ne16np4_L26_c170417.nc
atm/cam/inic/se/ape_cam4_ne30np4_L26_c170417.nc
atm/cam/inic/se/ape_cam4_ne60np4_L26_c171023.nc
@@ -262,6 +263,9 @@
atm/cam/inic/se/ape_cam5_ne30np4_L30_c170417.nc
atm/cam/inic/se/ape_cam5_ne120np4_L30_c170419.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L32_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L58_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L93_01_02_01_c240518.nc
atm/cam/inic/se/ape_cam6_ne5np4_L32_c170517.nc
atm/cam/inic/se/ape_cam6_ne16np4_L32_c170509.nc
atm/cam/inic/se/ape_cam6_ne30np4_L32_c170509.nc
@@ -280,10 +284,14 @@
atm/waccm/ic/FW2000_CONUS_30x8_L70_01-01-0001_c200602.nc
-atm/waccm/ic/mpasa120km.waccm_fulltopo_c220818.nc
+atm/waccm/ic/mpasa120_L70.waccm_topography_SC_c240904.nc
-atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c210426.nc
-atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c211013.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L32_CFSR_c240508.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L32_CFSR_c240508.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L58_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L58_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa480_L93_CFSR_c240814.nc
+atm/cam/inic/mpas/cami_01-01-2000_00Z_mpasa120_L93_CFSR_c240814.nc
atm/cam/topo/topo-from-cami_0000-01-01_256x512_L26_c030918.nc
@@ -296,7 +304,7 @@
atm/cam/topo/USGS_gtopo30_0.23x0.31_remap_c061107.nc
atm/cam/topo/USGS_gtopo30_0.47x0.63_remap_c061106.nc
atm/cam/topo/fv_0.47x0.63_nc3000_Co030_Fi001_PF_nullRR_Nsw021_20171023.nc
-atm/cam/topo/fv_0.47x0.63_nc3000_Co030_Fi001_PF_nullRR_Nsw021_20171023.nc
+atm/cam/topo/fv_0.47x0.63_nc3000_Co030_Fi001_PF_nullRR_Nsw021_20171023.nc
atm/cam/topo/topo-from-cami_0000-10-01_0.5x0.625_L26_c031204.nc
atm/cam/topo/fv_0.9x1.25_nc3000_Nsw042_Nrs008_Co060_Fi001_ZR_sgh30_24km_GRNL_c170103.nc
atm/cam/topo/fv_1.9x2.5_nc3000_Nsw084_Nrs016_Co120_Fi001_ZR_GRNL_c190405.nc
@@ -317,13 +325,13 @@
atm/cam/topo/se/ne120np4_nc3000_Co015_Fi001_PF_nullRR_Nsw010_20171011.nc
atm/cam/topo/se/ne240np4_nc3000_Co008_Fi001_PF_nullRR_Nsw005_20171014.nc
-atm/cam/topo/se/ne3pg3_gmted2010_modis_bedmachine_nc0540_Laplace1000_noleak_20230209.nc
atm/cam/topo/se/ne5pg2_nc3000_Co360_Fi001_MulG_PF_nullRR_Nsw060_20170706.nc
atm/cam/topo/se/ne30pg2_nc3000_Co060_Fi001_PF_nullRR_Nsw042_20171014.nc
atm/cam/topo/se/ne60pg2_nc3000_Co030_Fi001_PF_nullRR_Nsw021_20171014.nc
atm/cam/topo/se/ne120pg2_nc3000_Co015_Fi001_PF_nullRR_Nsw010_20171012.nc
atm/cam/topo/se/ne240pg2_nc3000_Co008_Fi001_PF_nullRR_Nsw005_20171014.nc
-
+atm/cam/topo/se/ne3np4_gmted2010_modis_bedmachine_nc0540_Laplace1000_noleak_20230717.nc
+atm/cam/topo/se/ne3pg3_gmted2010_modis_bedmachine_nc0540_Laplace1000_noleak_20230209.nc
atm/cam/topo/se/ne5pg3_nc3000_Co360_Fi001_MulG_PF_nullRR_Nsw064_20170516.nc
atm/cam/topo/se/ne16pg3_nc3000_Co120_Fi001_PF_nullRR_Nsw084_20171012.nc
atm/cam/topo/se/ne30pg3_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240117.nc
@@ -335,8 +343,8 @@
atm/cam/topo/se/ne30x4_ARCTIC_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc
atm/cam/topo/se/ne30x8_ARCTICGRIS_nc3000_Co060_Fi001_MulG_PF_RR_Nsw042_c200428.nc
-atm/cam/topo/mpas/mpas_120_nc3000_Co060_Fi001_MulG_PF_Nsw042_c200921.nc
-atm/cam/topo/mpas_480_nc3000_Co240_Fi001_MulG_PF_Nsw170.nc
+atm/cam/topo/mpas/mpasa480_gmted2010_modis_bedmachine_nc3000_Laplace0400_noleak_20240507.nc
+atm/cam/topo/mpas/mpasa120_gmted2010_modis_bedmachine_nc3000_Laplace0100_noleak_20240507.nc
0.0D0
@@ -345,7 +353,7 @@
98288.0D0
98288.0D0
98288.0D0
- 98288.0D0
+ 98288.0D0
98288.0D0
98288.0D0
@@ -393,19 +401,6 @@
-
-atm/cam/physprops/sul_cam3_c080918.nc
-atm/cam/physprops/dustv1b1_cam3_c080918.nc
-atm/cam/physprops/dustv1b2_cam3_c080918.nc
-atm/cam/physprops/dustv1b3_cam3_c080918.nc
-atm/cam/physprops/dustv1b4_cam3_c080918.nc
-atm/cam/physprops/bcpho_cam3_c080918.nc
-atm/cam/physprops/bcphi_cam3_c080918.nc
-atm/cam/physprops/ocpho_cam3_c080918.nc
-atm/cam/physprops/ocphi_cam3_c080918.nc
-atm/cam/physprops/ssam_cam3_c080918.nc
-atm/cam/physprops/sscm_cam3_c080918.nc
-
atm/cam/physprops/sulfate_camrt_c080918.nc
@@ -570,7 +565,7 @@
atm/cam/physprops/mam4_mode4_rrtmg_c130628.nc
atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_sig1.6_dgnh.48_c140304.nc
-atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_sig1.2_dgnl.40_c150219.nc
+atm/cam/physprops/mam4_mode3_rrtmg_aeronetdust_sig1.2_dgnl.40_c150219.nc
atm/cam/physprops/mam4_mode1_rrtmg_aeronetdust_sig1.6_dgnh.48_c140304.nc
atm/cam/physprops/mam4_mode2_rrtmg_aitkendust_c141106.nc
@@ -590,7 +585,7 @@
.false.
.true.
-.true.
+.true.
slingo
@@ -636,9 +631,9 @@
ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
-ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
+ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
-ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
+ozone_strataero_CAM6chem_2000climo_zm_5day_c171004.nc
waccm_ozone_c121126.nc
0
@@ -848,6 +843,7 @@
atm/waccm/gw/newmfspectra40_dc25.nc
atm/waccm/gw/mfspectra_shallow_c140530.nc
+atm/waccm/gw/mfc0lookup_mm.nc
0.25d0
0.5d0
0.5d0
@@ -877,8 +873,8 @@
.true.
.true.
.true.
-.false.
-.false.
+.false.
+.false.
.false.
.false.
.false.
@@ -898,6 +894,7 @@
1.0d-3
0.002d0
0.1d0
+ 0.01d0
15
@@ -935,6 +932,7 @@
atm/cam/coords/ne5np4_esmf_20191204.nc
atm/cam/coords/ne5np4.pg3_esmf_mesh_c210121.nc
atm/cam/coords/ne16np4_esmf_c210305.nc
+share/meshes/ne16pg3_ESMFmesh_cdf5_c20211018.nc
atm/cam/coords/ne30np4_esmf_c210305.nc
atm/cam/coords/ne30pg3_esmf_20200428.nc
@@ -946,10 +944,10 @@
1.30D0
1.60D0
0.32D0
-1.50D0
-1.30D0
-1.60D0
-0.32D0
+1.50D0
+1.30D0
+1.60D0
+0.32D0
atm/cam/chem/trop_mozart/emis/megan21_emis_factors_78pft_c20161108.nc
@@ -1933,10 +1931,10 @@
1850
oxid_1.9x2.5_L26_1850clim_c091123.nc
1850
-oxid_1.9x2.5_L26_1850clim_c091123.nc
-1850
-oxid_1.9x2.5_L26_1850clim_c091123.nc
-1850
+oxid_1.9x2.5_L26_1850clim_c091123.nc
+1850
+oxid_1.9x2.5_L26_1850clim_c091123.nc
+1850
atm/cam/chem/trop_mozart_aero/oxid
CYCLICAL
@@ -1978,12 +1976,12 @@
atm/cam/ozone
ozone_strataero_WACCM6_L70_zm5day_19750101-20141229_c180216.nc
atm/cam/ozone_strataero
-CESM_1849_2100_sad_V3_c160211.nc
-atm/cam/volc
-ozone_strataero_CAM6chem_1849-2014_zm_5day_c170924.nc
-atm/cam/ozone
-ozone_strataero_WACCM6_L70_zm5day_19750101-20141229_c180216.nc
-atm/cam/ozone_strataero
+CESM_1849_2100_sad_V3_c160211.nc
+atm/cam/volc
+ozone_strataero_CAM6chem_1849-2014_zm_5day_c170924.nc
+atm/cam/ozone
+ozone_strataero_WACCM6_L70_zm5day_19750101-20141229_c180216.nc
+atm/cam/ozone_strataero
atm/waccm/sulf/sulfate.ar5_camchem_c130304.nc
@@ -1994,16 +1992,20 @@
OFF
+
+atm/cam/chem/trop_mam/atmsrf_ne3np4_230718.nc
atm/cam/chem/trop_mam/atmsrf_ne3np4.pg3_221214.nc
+atm/cam/chem/trop_mam/atmsrf_ne5np4_110920.nc
atm/cam/chem/trop_mam/atmsrf_ne5pg3_201105.nc
-atm/cam/chem/trop_mam/atmsrf_ne5np4_cdf5_110920.nc
-atm/cam/chem/trop_mam/atmsrf_ne16np4_cdf5_110920.nc
+atm/cam/chem/trop_mam/atmsrf_ne16np4_110920.nc
atm/cam/chem/trop_mam/atmsrf_ne16pg3_c230520.nc
-atm/cam/chem/trop_mam/atmsrf_ne30np4_cdf5_110920.nc
-atm/cam/chem/trop_mam/atmsrf_ne30pg3_cdf5_180522.nc
+atm/cam/chem/trop_mam/atmsrf_ne30np4_110920.nc
+atm/cam/chem/trop_mam/atmsrf_ne30np4.pg2_200108.nc
+atm/cam/chem/trop_mam/atmsrf_ne30pg3_180522.nc
atm/cam/chem/trop_mam/atmsrf_ne60np4_110920.nc
-atm/cam/chem/trop_mam/atmsrf_ne120np4_cdf5_110920.nc
-atm/cam/chem/trop_mam/atmsrf_ne240np4_cdf5_110920.nc
+atm/cam/chem/trop_mam/atmsrf_ne120np4_110920.nc
+atm/cam/chem/trop_mam/atmsrf_ne120np4.pg2_200109.nc
+atm/cam/chem/trop_mam/atmsrf_ne240np4_110920.nc
atm/cam/chem/trop_mam/atmsrf_ne0np4conus30x8_161116.nc
atm/cam/chem/trop_mam/atmsrf_ne30x4_ARCTIC_191011.nc
@@ -2024,7 +2026,7 @@
atm/cam/chem/trop_mozart/dvel/dep_data_c20221208.nc
-atm/cam/chem/geoschem/dvel/dep_data_file_geoschem_c230417.nc
+atm/cam/chem/geoschem/dvel/dep_data_file_geoschem_v14.3_2023Jan08.nc
atm/waccm/phot/effxstex.txt
@@ -2063,7 +2065,7 @@
.true.
.true.
.false.
- .false.
+ .false.
.true.
0.075D0
@@ -2075,20 +2077,20 @@
.false.
.true.
- .true.
+ .true.
.false.
.true.
.true.
- .true.
+ .true.
.true.
0
1
1
- 1
+ 1
1
0.01d0
@@ -2135,10 +2137,10 @@
6.0
1.0
0.5
- 0.1
+ 0.1
0.5
4.2
- 4.25
+ 4.25
0.0
1.0
0.1
@@ -2155,21 +2157,21 @@
1.25
0.25
0.3
- 0.1
+ 0.1
0.3
0.0
0.4
25.0D-6
- 61.0D-6
+ 61.0D-6
8.0D-6
238.15D0
.true.
.false.
0.308
- 0.3
+ 0.3
0.280
0.32
- 0.3
+ 0.3
2
0.04
0.1
@@ -2183,15 +2185,16 @@
.false.
.false.
.false.
- .false.
- .true.
+ .false.
+ .true.
+ .false.
.false.
.false.
.true.
.false.
.false.
.false.
- .true.
+ .true.
.false.
.false.
.true.
@@ -2203,7 +2206,7 @@
.true.
.false.
.false.
- .true.
+ .true.
.false.
.false.
.false.
@@ -2238,8 +2241,9 @@
0.5
25.0
.false.
-.true.
.true.
+.true.
+
.true.
0.2
@@ -2265,6 +2269,7 @@
10.0
4.0
0.0
+ 5.0
.true.
.false.
@@ -2283,6 +2288,9 @@
.false.
.false.
.false.
+ 0.5
+ 25.00
+
.false.
@@ -2309,6 +2317,7 @@
1
0
1
+
2
0
1
@@ -2343,15 +2352,15 @@
1.D0
1.D0
- 1.D0
+ 1.D0
1.D0
0.2D0
- 0.1D0
+ 0.1D0
0.1D0
- 0.0D0
+ 0.0D0
0.001D0
@@ -2370,10 +2379,10 @@
1.D8
1.D8
- .true.
- .true.
- kk2000
- .true.
+ .true.
+ .true.
+ kk2000
+ .true.
1
3
@@ -2404,20 +2413,20 @@
1.2D0
1.2D0
-.false.
-.true.
-.true.
+.false.
+.true.
+.true.
.true.
0.01D0
0.05D0
.false.
.true.
-.true.
+.true.
.true.
.false.
-.false.
+.false.
1.0D0
.true.
@@ -2449,7 +2458,7 @@
1.D0
0.D0
0.D0
-0.D0
+0.D0
1.D0
@@ -2459,12 +2468,12 @@
30.D0
100.D0
100.D0
-100.D0
+100.D0
100.D3
100.D0
100.D0
-100.D0
+100.D0
30.D0
40.D0
@@ -2484,51 +2493,55 @@
0.45D0
0.45D0
0.35D0
-1.30D0
+1.30D0
0.30D0
-0.30D0
+0.30D0
0.45D0
-0.45D0
+0.45D0
0.45D0
-0.45D0
+0.45D0
0.45D0
0.55D0
0.22D0
0.70D0
-1.30D0
+1.30D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.8D0
-0.8D0
+0.8D0
0.70D0
-0.70D0
+0.70D0
0.13D0
0.26D0
-0.26D0
+0.26D0
0.7D0
-0.7D0
+0.7D0
0.24D0
-0.24D0
+0.24D0
0.9D0
-0.9D0
+0.9D0
+
+
+Zender_2003
+atm
@@ -2536,7 +2549,7 @@
1.62D0
0.90D0
1.00D0
-1.5D0
+1.5D0
1.10D0
1.2D0
0.60D0
@@ -2644,7 +2657,7 @@
.false.
.true.
.true.
-.true.
+.true.
0.900D0
0.910D0
@@ -2664,12 +2677,12 @@
0.8875D0
0.9125D0
- 0.910D0
- 0.950D0
- 0.950D0
- 0.8975D0
- 0.8875D0
- 0.9125D0
+ 0.910D0
+ 0.950D0
+ 0.950D0
+ 0.8975D0
+ 0.8875D0
+ 0.9125D0
0.910D0
0.920D0
@@ -2683,7 +2696,7 @@
0.100D0
0.000D0
- 0.000D0
+ 0.000D0
0.000D0
0.800D0
@@ -2707,7 +2720,7 @@
0.14D0
0.10D0
0.10D0
- 0.10D0
+ 0.10D0
0.10D0
0.10D0
@@ -2732,25 +2745,25 @@
750.0D2
700.0D2
700.0D2
- 700.0D2
+ 700.0D2
1
5
5
- 5
+ 5
4
4
4
- 4
+ 4
0.95D0
0.93D0
0.93D0
- 0.93D0
+ 0.93D0
0.70D0
0.70D0
0.70D0
- 0.70D0
+ 0.70D0
0.80D0
0.85D0
@@ -2774,7 +2787,7 @@
.false.
.true.
-.true.
+.true.
.false.
@@ -2854,11 +2867,11 @@
0.0035D0
0.0075D0
0.0075D0
- 0.0059D0
- 0.0035D0
- 0.0035D0
- 0.0075D0
- 0.0075D0
+ 0.0059D0
+ 0.0035D0
+ 0.0035D0
+ 0.0075D0
+ 0.0075D0
0.0035D0
0.0035D0
0.0020D0
@@ -2875,11 +2888,11 @@
0.0035D0
0.0300D0
0.0300D0
- 0.0450D0
- 0.0035D0
- 0.0035D0
- 0.0300D0
- 0.0300D0
+ 0.0450D0
+ 0.0035D0
+ 0.0035D0
+ 0.0300D0
+ 0.0300D0
0.0035D0
0.0035D0
0.0020D0
@@ -2903,7 +2916,7 @@
5
1
- 1
+ 1
-1.0E-3
0.5
@@ -2919,13 +2932,12 @@
0.5D0
-0
1
2
4
4
- 4
+ 4
4
42
42
@@ -2935,9 +2947,9 @@
42
42
42
-42
+42
42
-42
+42
42
1
@@ -2972,12 +2984,141 @@
-atm/cam/inic/gaus/cami_0000-09-01_64x128_L30_c031210.nc
-atm/cam/scam/iop/ARM97_4scam.nc
- 1500
- 9
- .true.
- slt
+ 1
+ 10000
+ .true.
+ 0.0D0
+ .true.
+ 10800._r8
+
+ 'T', 'bc_a1', 'bc_a4', 'dst_a1', 'dst_a2', 'dst_a3', 'ncl_a1', 'ncl_a2', 'ncl_a3',
+ 'num_a1', 'num_a2', 'num_a3', 'num_a4', 'pom_a1', 'pom_a4', 'so4_a1', 'so4_a2', 'so4_a3', 'soa_a1', 'soa_a2'
+
+
+ 'T', 'bc_a1', 'bc_a4', 'dst_a1', 'dst_a2', 'dst_a3', 'ncl_a1', 'ncl_a2', 'ncl_a3',
+ 'num_a1', 'num_a2', 'num_a3', 'num_a4', 'pom_a1', 'pom_a4', 'so4_a1', 'so4_a2', 'so4_a3', 'soa_a1', 'soa_a2'
+
+
+ 'T', 'bc_a1', 'bc_a4', 'dst_a1', 'dst_a2', 'dst_a3', 'ncl_a1', 'ncl_a2', 'ncl_a3',
+ 'num_a1', 'num_a2', 'num_a3', 'num_a4', 'pom_a1', 'pom_a4', 'so4_a1', 'so4_a2', 'so4_a3', 'soa_a1', 'soa_a2'
+
+ 105000.D0
+ 200.D0
+ .true.
+ 864000.D0
+ 172800.D0
+
+
+
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-06-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-06-01-00000.nc
+atm/cam/scam/iop/ARM95_4scam.nc
+ 368.9e-6
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-06-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-06-01-00000.nc
+atm/cam/scam/iop/ARM97_4scam.nc
+ 368.9e-6
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-02-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-02-01-00000.nc
+atm/cam/scam/iop/ATEX_48hr_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-06-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-06-01-00000.nc
+atm/cam/scam/iop/BOMEX_5day_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/S11_CTL_MixedLayerInit_reduced.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/S12_CTL_MixedLayerInit_reduced.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/S6_CTL_reduced.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/DYCOMSrf01_4day_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/DYCOMSrf02_48hr_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-08-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-08-01-00000.nc
+atm/cam/scam/iop/GATEIII_4scam_c170809.nc
+
+
+atm/cam/scam/iop/micre2017_3mo.cam.i.2017-01-01-00000.regrid.ne3np4.nc
+atm/cam/scam/iop/micre2017_3mo.cam.i.2017-01-01-00000.regrid.Gaus_64x128.nc
+atm/cam/scam/iop/micre2017_3mo.macquarie2017.iop.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-10-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-10-01-00000.nc
+atm/cam/scam/iop/MPACE_4scam.nc
+
+ 'CLDST', 'CNVCLD',
+ 'ICWMR','ICIMR','FREQL','FREQI','LANDFRAC','CDNUMC','FICE','WSUB','CCN3','ICLDIWP',
+ 'CDNUMC', 'AQSNOW', 'WSUB', 'CCN3', 'FREQI', 'FREQL', 'FREQR', 'FREQS', 'CLDLIQ', 'CLDICE',
+ 'FSDS', 'FLDS','AREL','AREI','NSNOW','QSNOW','DSNOW',
+ 'FLNT','FLNTC','FSNT','FSNTC','FSNS','FSNSC','FLNT','FLNTC','QRS','QRSC','QRL','QRLC',
+ 'LWCF','SWCF', 'NCAI', 'NCAL', 'NIHF','NIDEP','NIIMM','NIMEY','ICLDIWP','ICLDTWP', 'CONCLD',
+ 'QCSEVAP', 'QISEVAP', 'QVRES', 'CMELIQ', 'CMEIOUT', 'EVAPPREC', 'EVAPSNOW', 'TAQ',
+ 'ICLMRCU', 'ICIMRCU' ,'ICWMRSH' ,'ICWMRDP', 'ICLMRTOT' , 'ICIMRTOT' , 'SH_CLD' , 'DP_CLD',
+ 'LIQCLDF','ICECLDF', 'ICWMRST', 'ICIMRST', 'EFFLIQ', 'EFFICE','ADRAIN','ADSNOW','WSUBI',
+ 'TGCLDLWP','GCLDLWP'
+
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-07-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-07-01-00000.nc
+atm/cam/scam/iop/RICO_3day_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-06-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-06-01-00000.nc
+atm/cam/scam/iop/SAS_ideal_4scam.nc
+ 368.9e-6
+ .false.
+ .true.
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-04-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-04-01-00000.nc
+atm/cam/scam/iop/SPARTICUS_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-12-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-12-01-00000.nc
+atm/cam/scam/iop/TOGAII_4scam.nc
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-01-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-01-01-00000.nc
+atm/cam/scam/iop/TWP06_4scam.nc
+ 1
+ 1
+
+
+atm/cam/inic/se/CESM2.F2000climo.ne3np4.cam.i.0003-06-01-00000.nc
+atm/cam/inic/gaus/CESM2.F2000climo.64x128.cam.i.0003-06-01-00000.nc
+atm/cam/scam/iop/ARM97_4scam.nc
@@ -3085,9 +3226,9 @@
3
3
5
- 5
+ 5
6
- 6
+ 6
1
1
3
@@ -3157,7 +3298,6 @@
3
2
4
- 4
9
8
2
@@ -3165,11 +3305,6 @@
3
1
- 1
- 20
- 4
- 2
- 4
1
3
2
@@ -3343,11 +3478,19 @@
'O3S_Loss = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
- '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3'
+ '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3'
'O3S_Loss = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
- '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3',
+ '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3',
+ 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + ',
+ 'jeuv_14 + jeuv_15 + jeuv_16 + jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23',
+
+
+ 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + ',
+ 'jeuv_14 + jeuv_15 + jeuv_16 + jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23',
+
+
'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + ',
'jeuv_14 + jeuv_15 + jeuv_16 + jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23',
@@ -3462,6 +3605,35 @@
'APIN_O3 + BPIN_O3 + LIMON_O3 + MYRC_O3 + ',
'ISOPN1D_O3 + ISOPN4D_O3 + ISOPNOOHD_O3 + NC4CHO_O3 + TERPF1_O3 + TERPF2_O3'
+
+ 'O3_Prod = NO_HO2 + CH3O2_NO + C2H5O2_NO + CH3CO3_NO + EO2_NO + C3H7O2_NO + PO2_NO + RO2_NO + ',
+ ' MACRO2_NOa + MCO3_NO + .92*ISOPO2_NO + ISOPNO3_NO + XO2_NO + jnoa + jonitr + NOA_OH ',
+ 'O3_Loss = O1D_H2O + OH_O3 + HO2_O3 + C2H4_O3 + C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3 + TERP_O3 + S_O3 + SO_O3',
+ 'O3S_Loss = 2.0*O_O3 + O1D_H2O + HO2_O3 + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + 2.0*CLO_CLOa + ',
+ ' 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3 + SO_O3 + ',
+ ' C2H4_O3 + C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3',
+ 'O3_alkenes = C2H4_O3 + C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3',
+ 'RO2_NO_sum = CH3O2_NO + C2H5O2_NO + CH3CO3_NO + EO2_NO + C3H7O2_NO + PO2_NO + RO2_NO + MACRO2_NOa + ',
+ ' MACRO2_NOb + MCO3_NO + ISOPO2_NO + ISOPNO3_NO + XO2_NO', 'RO2_NO3_sum = MACRO2_NO3 + MCO3_NO3 + ISOPO2_NO3 + ISOPNO3_NO3 + XO2_NO3',
+ 'RO2_HO2_sum = CH3O2_HO2 + C2H5O2_HO2 + CH3CO3_HO2 + EO2_HO2 + C3H7O2_HO2 + PO2_HO2 + RO2_HO2 + MACRO2_HO2 + ',
+ ' MCO3_HO2 + ISOPO2_HO2 + ISOPNO3_HO2 + XO2_HO2',
+ 'RO2_RO2_sum = CH3O2_CH3O2a + CH3O2_CH3O2b + C2H5O2_CH3O2 + C2H5O2_C2H5O2 + CH3CO3_CH3O2 + CH3CO3_CH3CO3 + C3H7O2_CH3O2 + ',
+ ' RO2_CH3O2 + MACRO2_CH3O2 + MACRO2_CH3CO3 + MCO3_CH3O2 + MCO3_CH3CO3 + MCO3_MCO3 + ISOPO2_CH3O2 + ',
+ ' ISOPO2_CH3CO3 + XO2_CH3O2 + XO2_CH3CO3',
+ 'RCO2_NO2_sum = CH3CO3_NO2 + MCO3_NO2',
+ 'OddOx_Ox_Loss = 2.0*O_O3 + O1D_H2O',
+ 'OddOx_HOx_Loss = HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3',
+ 'OddOx_NOx_Loss = 2.0*NO2_O + 2.0*jno3_b',
+ 'OddOx_CLOxBROx_Loss = 2.0*CLO_O + 2.0*jcl2o2 + 2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2',
+ 'OddOx_Loss_Tot = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
+ ' 2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2',
+ 'OddOx_Prod_Tot = 2.0*jo2_a + 2.0*jo2_b',
+ 'Ox_Prod = 2.0*jo2_a + 2.0*jo2_b + NO_HO2 + CH3O2_NO + C2H5O2_NO + CH3CO3_NO + EO2_NO + C3H7O2_NO + PO2_NO + ',
+ ' RO2_NO + MACRO2_NOa + MCO3_NO + .92*ISOPO2_NO + ISOPNO3_NO + XO2_NO + jnoa + jonitr + NOA_OH',
+ 'Ox_Loss = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
+ ' 2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + C2H4_O3 + ',
+ ' C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3 + TERP_O3 + S_O3 + SO_O3'
+
'O3_Prod = NO_HO2 + CH3O2_NO + HOCH2OO_NO + C2H5O2_NO + CH3CO3_NO + EO2_NO + C3H7O2_NO + PO2_NO + RO2_NO + ENEO2_NO + ',
' MACRO2_NOa + MCO3_NO + MEKO2_NO + ALKO2_NO + .92*ISOPAO2_NO + .92*ISOPBO2_NO + ISOPNO3_NO + XO2_NO + ACBZO2_NO + ',
@@ -3502,7 +3674,6 @@
' C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3 + MTERP_O3 + BCARY_O3 + S_O3 + SO_O3'
-
.false.
atm/cam/geoschem/emis/ExtData/HEMCO
@@ -3530,6 +3701,11 @@
144
91
+
+atm/cam/geoschem/emis/ExtData/CHEM_INPUTS
+atm/cam/geoschem/emis/ExtData/CHEM_INPUTS/FAST_JX/v2024-05/
+atm/cam/geoschem/emis/ExtData/CHEM_INPUTS/CLOUD_J/v2023-05/
+
.false.
.true.
diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml
index 15594a7cc3..5aad5a9ac3 100644
--- a/bld/namelist_files/namelist_definition.xml
+++ b/bld/namelist_files/namelist_definition.xml
@@ -168,7 +168,7 @@
The ocean temperatures are initailized with the values:
T_s = Tmin + Tdlt*exp[-0.5*(Lat/Twidth)^2]
Default: 26.
-
+
@@ -476,20 +476,6 @@
Default: none
-
-
-
-Full pathname of time-variant boundary dataset for aerosol masses.
-Default: set by build-namelist.
-
-
-
-Add CAM3 prescribed aerosols to the physics buffer.
-Default: FALSE
-
-
-1 for FFT filter always, 0 for combined algebraic/FFT filter. The value 0
-is used for CAM3, otherwise it is using the value 1.
+1 for FFT filter always, 0 for combined algebraic/FFT filter.
Default: set by build-namelist
@@ -1354,6 +1339,12 @@ Whether or not to enable gravity waves produced by shallow convection.
Default: .false.
+
+Whether or not to enable gravity waves from PBL moving mountains source.
+Default: .false.
+
+
Gravity wave spectrum dimension (wave numbers are from -pgwv to pgwv).
@@ -1511,12 +1502,6 @@ Full pathname of boundary dataset for meso-gamma ridges.
Default: set by build-namelist.
-
-Critical Froude number squared (used only for orographic waves).
-Default: set by build-namelist.
-
-
Factor to multiply tau by, for orographic waves in the southern hemisphere.
@@ -1555,6 +1540,13 @@ Width of gaussian used to create frontogenesis tau profile [m/s].
Default: set by build-namelist.
+
+Tunable parameter controlling proportion of boundary layer momentum flux escaping as GW momentum flux
+Default: set by build-namelist.
+
+
+
Full pathname of Beres lookup table data file for gravity waves sourced
@@ -1569,6 +1561,12 @@ from shallow convection.
Default: set by build-namelist.
+
+Relative pathname of lookup table for deep convective moving mountain GW source
+Default: set by build-namelist.
+
+
Background source strength (used for waves from frontogenesis).
@@ -2764,7 +2762,7 @@ Default: 1.0
-Unitless scaling factor for snow fall speed to account for sub-grid scale ice crysta shape variability.
+Unitless scaling factor for snow fall speed to account for sub-grid scale ice crystal shape variability.
Default: 1.0
@@ -2994,8 +2992,6 @@ Default: 1.0
-Minimum subgrid vertical velocity for liquid droplets during aerosol activation with units of (m s-1).
-Default: 0.2 m s-1
Minimum subgrid vertical velocity (before scale factor) for liquid droplets during aerosol activation with units of (m s-1).
Default: set by build-namelist
@@ -3629,7 +3625,9 @@ Default: set by build-namelist
-Switch for CLUBB_SGS
+Flag for CLUBB_SGS. N.B. this variable may not be set by the user. It is
+set by build-namelist via information in the configure cache file to be
+consistent with how CAM was built.
Default: set by build-namelist
@@ -4916,30 +4914,6 @@ Specifies the name of the sea salt emission parameterization.
Default: Gong
-
-=======
-
-
-
-Full pathname of time-variant ozone mixing ratio boundary dataset.
-Default: set by build-namelist.
-
-
-
-Add CAM3 prescribed ozone to the physics buffer.
-Default: FALSE
-
-
-
-Flag for yearly cycling of ozone data. If set to FALSE, a multi-year
-dataset is assumed, otherwise a single-year dataset is assumed, and ozone
-will be cycled over the 12 monthly averages in the file.
-Default: TRUE
-
-
+ group="phys_ctl_nl" valid_values="cam4,cam5,cam6,adiabatic,held_suarez,kessler,frierson" >
Name of the CAM physics package. N.B. this variable may not be set by
the user. It is set by build-namelist via information in the configure
cache file to be consistent with how CAM was built.
@@ -5300,9 +5274,21 @@ Default: set by build-namelist for climo cases, otherwise -1 to use model clock.
-
-Full pathname to GEOS-Chem chemistry inputs directory
+Full pathname of the GEOS-Chem chemistry inputs directory.
+Default: set by build-namelist.
+
+
+
+Full pathname of the aerosols optical property inputs directory used in GEOS-Chem outside of Cloud-J.
+Default: set by build-namelist.
+
+
+
+Full pathname of the Cloud-J photolysis inputs directory used in GEOS-Chem.
Default: set by build-namelist.
@@ -5603,7 +5589,7 @@ Default: Unused
+ group="phys_ctl_nl" valid_values="rrtmgp,rrtmg,camrt" >
Type of radiation scheme employed.
Default: set by build-namelist
@@ -5811,6 +5797,7 @@ code directory for the CAM component.
Default: set by build-namelist.
+
+
+Use the SCAM-IOP 3d forcing if true, use combination of dycore vertical advection and iop horiz advection if false
+Default:False
+
+
Force scam to use the lat lon fields specified in the scam namelist not what is closest to IOP avail lat lon
@@ -6289,19 +6282,19 @@ Default: set by build-namelist.
+ group="aero_wetdep_nl" valid_values="" >
Tuning for below cloud scavenging of interstitial modal aerosols.
Default: set by build-namelist.
+ group="aero_wetdep_nl" valid_values="" >
Tuning for in-cloud scavenging of interstitial modal aerosols.
Default: set by build-namelist.
+ group="aero_wetdep_nl" valid_values="" >
Tuning for in-cloud scavenging of cloud-borne modal aerosols.
Default: set by build-namelist.
@@ -7710,6 +7703,21 @@ List of fluxes needed by the CARMA model, from CLM to CAM.
Default: set by build-namelist.
+
+Which dust emission method is going to be used.
+Either the Zender 2003 scheme or the Leung 2023 scheme.
+Default: Zender_2003
+
+
+
+Option only applying for the Zender_2003 method for whether the soil erodibility
+file is handled in the active LAND model or in the ATM model.
+(only used when dust_emis_method is Zender_2003)
+Default: atm
+
+
+
@@ -8403,6 +8412,7 @@ Default: Set by build-namelist.
Default: Set by build-namelist.
+
- CAM cam6 physics:
- CAM cam5 physics:
- CAM cam4 physics:
- CAM cam3 physics:
- CAM simplified and non-versioned physics :
- CAM7 development physics:
+ CAM cam7 physics:
+ CAM cam6 physics:
+ CAM cam5 physics:
+ CAM cam4 physics:
+ CAM simplified and non-versioned physics :
+
+
-
CAM-Nor physics and dynamics differences :
- CAM stand-alone single column mode -- need to define usermods directory with IOP settings:
+ CAM stand-alone single column mode -- user defined IOP settings can be placed under the usermods scam_user directory:
CAM specified dynamics is used in finite volume dynamical core:
CAM physics is nudged towards prescribed meteorology:
- CAM-Chem troposphere/stratosphere chemistry with simplified VBS-SOA:
- CAM-Chem troposphere/stratosphere chemistry with simplified VBS-SOA and expanded isoprene and terpene oxidation:
- GEOS-Chem troposphere/stratosphere chemistry :
- CAM-Chem troposphere/stratosphere chem with simplified volatility basis set SOA scheme and fire emissons :
- CAM CLUBB - turned on by default in CAM60:
- CAM-Chem troposphere/stratosphere chem with extended volatility basis set SOA scheme and modal aersols :
- CAM low top model
- Prognostic GHG chemistry mechanism for CAM7:
- Modal Aerosol Model composed of 7 modes:
- CAM mid top model
- CAM CO2 ramp:
- CAM super-parameterized CAM one moment SAM microphysics
- CAM super-parameterized CAM one moment SAM microphysics using CLUBB
- CAM super-parameterized CAM double moment m2005 SAM microphysics
- CAM super-parameterized CAM double moment m2005 SAM microphysics using CLUBB
- CAM tropospheric chemistry with bulk aerosols:
+ CAM-Chem troposphere/stratosphere chem with simplified volatility basis set SOA scheme and fire emissons :
+ CAM CLUBB - turned on by default in CAM60:
+ CAM-Chem troposphere/stratosphere chemistry with simplified VBS-SOA:
+ CAM-Chem troposphere/stratosphere chemistry with simplified VBS-SOA and expanded isoprene and terpene oxidation:
+ CAM-Chem troposphere/stratosphere simplified chemistry for climate simulations:
+ CAM-Chem troposphere/stratosphere chem with extended volatility basis set SOA scheme and modal aersols :
+ GEOS-Chem troposphere/stratosphere chemistry :
+ Prognostic GHG chemistry mechanism for CAM7:
+ CAM low top model
+ Modal Aerosol Model composed of 7 modes:
+ CAM mid top model
+ CAM CO2 ramp:
+ CAM super-parameterized CAM one moment SAM microphysics
+ CAM super-parameterized CAM one moment SAM microphysics using CLUBB
+ CAM super-parameterized CAM double moment m2005 SAM microphysics
+ CAM super-parameterized CAM double moment m2005 SAM microphysics using CLUBB
+ CAM tropospheric chemistry with bulk aerosols:
- -phys cam_dev
- -chem ghg_mam4
- -chem trop_strat_mam5_vbs
+
-camnor
-chem trop_mam4
+ -chem ghg_mam4
-chem trop_mam_oslo
+
+
+ -chem trop_strat_mam5_vbs
+ -chem ghg_mam4
-chem geoschem_mam4
+
-chem trop_mam7
-chem trop_strat_mam5_vbsext
- -chem trop_strat_mam5_ts2
+ -chem trop_strat_mam5_ts2
+ -chem trop_strat_mam5_ts4
-clubb_sgs
- -dyn eul -scam
-rad camrt -chem none -spcam_nx 32 -spcam_ny 1 -spcam_dx 4000 -spcam_dt 20 -phys spcam_sam1mom
-rad camrt -chem none -spcam_nx 32 -spcam_ny 1 -spcam_dx 4000 -spcam_dt 20 -phys spcam_sam1mom -spcam_clubb_sgs
-rad rrtmg -chem trop_mam3 -spcam_nx 32 -spcam_ny 1 -spcam_dx 4000 -spcam_dt 20 -phys spcam_m2005
@@ -173,7 +177,7 @@
- -age_of_air_trcs
+ -age_of_air_trcs
-chem waccm_ma
-chem waccm_ma_mam5
-chem waccm_mad_mam5
@@ -189,11 +193,29 @@
-offline_dyn
-nlev 56
- -nlev 56
+ -nlev 56
-nlev 88
-nlev 145
- -nlev 58 -model_top lt
- -nlev 93 -model_top mt
+ -nlev 58 -model_top lt
+ -nlev 93 -model_top mt
+
+
+ -scam arm95
+ -scam arm97
+ -scam atex
+ -scam bomex
+ -scam cgilss11
+ -scam cgilss12
+ -scam cgilss6
+ -scam dycomsrf01
+ -scam dycomsrf02
+ -scam gateIII
+ -scam mpace
+ -scam rico
+ -scam sparticus
+ -scam togaII
+ -scam twp06
+ -scam camfrc
-phys adiabatic
@@ -234,31 +256,22 @@
waccm_tsmlt_1850_cam6
waccm_ma_1850_cam6
waccm_sc_1850_cam6
-
- 1850_cam_lt
- 1850_camnor_lt_tropmam4
- 1850_camnor_lt_osloaero
- 1850_cam_mt
-
- 2000_cam4_trop_chem
- waccmxie_ma_2000_cam4
- waccmx_ma_2000_cam4
-
- 2000_cam6
- waccm_tsmlt_2000_cam6
- waccm_ma_2000_cam6
- waccm_sc_2000_cam6
- 2000_trop_strat_vbs_cam6
+ 1850_cam_lt
+ 1850_cam_mt
+
+ 2000_cam4_trop_chem
+ waccmxie_ma_2000_cam4
+ waccmx_ma_2000_cam4
+
+ 2000_cam6
+ 2000_cam6
+ waccm_tsmlt_2000_cam6
+ waccm_ma_2000_cam6
+ waccm_sc_2000_cam6
+ 2000_trop_strat_vbs_cam6
2000_geoschem
- waccmx_ma_2000_cam6
+ waccmx_ma_2000_cam6
- 2000_cam6
- 2000_camnor_tropmam4
- 2000_camnor_osloaero
- 2000_camnor_tropmam4
- 2000_camnor_osloaero
-
- aquaplanet_cam3
aquaplanet_cam4
aquaplanet_cam4
aquaplanet_cam5
@@ -268,38 +281,35 @@
aquaplanet_rce_cam6
aquaplanet_waccm_2000
- 2010_cam6
- 2010_trop_strat_vbs_cam6
- waccm_tsmlt_2010_cam6
- waccm_sc_2010_cam6
+ 2010_cam6
+ 2010_trop_strat_vbs_cam6
+ waccm_tsmlt_2010_cam6
+ waccm_sc_2010_cam6
2010_geoschem
- 1850-2005_cam5
- 1850-2005_cam4
-
- 1850-2005_cam4
- 1850-2005_cam4_bgc
- 1950-2010_ccmi_refc1_waccmx_ma
- 1850-2005_cam5
- hist_cam6
-
- hist_cam_lt
- hist_camnor_lt_tropmam4
- hist_camnor_lt_osloaero
- hist_cam_mt
+ 1850-2005_cam5
+ 1850-2005_cam4
+ 1850-2005_cam4
+ 1850-2005_cam4_bgc
+ 1950-2010_ccmi_refc1_waccmx_ma
+ 1850-2005_cam5
+ hist_cam6
+ hist_cam_lt
+ hist_cam_mt
waccm_tsmlt_hist_cam6
waccm_sc_hist_cam6
waccm_ma_hist_cam6
waccm_ma_hist_cam6
waccm_ma_hist_cam4
- hist_trop_strat_vbs_cam6
- hist_trop_strat_nudged_cam6
- hist_trop_strat_vbsext_cam6
- hist_trop_strat_vbsfire_cam6
- hist_geoschem
+ hist_trop_strat_vbs_cam6
+ hist_trop_strat_ts4_cam7
+ hist_trop_strat_nudged_cam6
+ hist_trop_strat_vbsext_cam6
+ hist_trop_strat_vbsfire_cam6
+ hist_geoschem
hist_geoschem_nudged
- waccmx_ma_hist_cam6
+ waccmx_ma_hist_cam6
1850-PD_cam5
@@ -323,8 +333,8 @@
sd_waccm_ma_cam6
sd_waccm_ma_cam6
sd_waccm_ma_cam4
- sd_trop_strat_vbs_cam6
- sd_trop_strat2_cam6
+ sd_trop_strat_vbs_cam6
+ sd_trop_strat2_cam6
sd_cam6
dabi_p2004
@@ -333,6 +343,13 @@
dctest_frierson
dctest_baro_kessler
+
+ 1850_camnor_lt_tropmam4
+ 1850_camnor_lt_osloaero
+ hist_camnor_lt_tropmam4
+ hist_camnor_lt_osloaero
+ 2000_camnor_tropmam4
+ 2000_camnor_osloaero
@@ -391,7 +408,8 @@
$COMP_ROOT_DIR_ATM/cime_config/usermods_dirs/aquap
$COMP_ROOT_DIR_ATM/cime_config/usermods_dirs/aquap
- $COMP_ROOT_DIR_ATM/cime_config/usermods_dirs/scam_mandatory
+ $COMP_ROOT_DIR_ATM/cime_config/usermods_dirs/scam_mandatory
+ $COMP_ROOT_DIR_ATM/cime_config/usermods_dirs/scam_camfrc
run_component_cam
env_case.xml
@@ -453,7 +471,7 @@
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP1-2.6-WACCM_1849-2101_monthly_c191007.nc
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_f09_g17.CMIP6-SSP2-4.5-WACCM_1849-2101_monthly_c191007.nc
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_SSP370_b.e21.BWSSP370cmip6.f09_g17.CMIP6-SSP3-7.0-WACCM.002_1849-2101_monthly_0.9x1.25_c211216.nc
- $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc
+ $DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_hist_b.e21.BWHIST.f09_g17.CMIP6-historical-WACCM.ensmean_1849-2015_monthly_0.9x1.25_c180926.nc
$DIN_LOC_ROOT/lnd/clm2/ndepdata/fndep_clm_WACCM6_CMIP6piControl001_y21-50avg_1850monthly_0.95x1.25_c180802.nc
diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml
index 8797c3b9f2..f3d6436ee5 100644
--- a/cime_config/config_compsets.xml
+++ b/cime_config/config_compsets.xml
@@ -32,83 +32,102 @@
- lname
- alias
- support (optional description of the support level for this compset)
-
Each compset node can also have the following attributes
- grid (optional regular expression match for grid to work with the compset)
+
+
+
-
+
-
+
NF2000
- 2000_CAM%DEV%LT%NORESM%CAMoslo_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ 2000_CAM70%LT%NORESM%CAMoslo_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
NF2000mam4
- 2000_CAM%DEV%LT%NORESM%GHGMAM4_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ 2000_CAM70%LT%NORESM%GHGMAM4_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
NF1850
- 1850_CAM%DEV%LT%NORESM%CAMoslo_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ 1850_CAM70%LT%NORESM%CAMoslo_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
NF1850mam4
- 1850_CAM%DEV%LT%NORESM%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ 1850_CAM70%LT%NORESM%GHGMAM4_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
NFLTHIST
- HIST_CAM%DEV%LT%NORESM%CAMoslo_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ HIST_CAM70%LT%NORESM%CAMoslo_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
NFLTHISTmam4
- HIST_CAM%DEV%LT%NORESM%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+ HIST_CAM70%LT%NORESM%GHGMAM4_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_DGLC%NOEVOLVE_SWAV
+
+
+
+
+
+ F2000Nuopc
+ 2000_CAM40_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+
+
F2000climo
2000_CAM60_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FHIST
HIST_CAM60_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FLTHIST
- HIST_CAM%DEV%LT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM70%LT_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FMTHIST
- HIST_CAM%DEV%MT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM70%MT_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FLT1850_TESTINGONLY_v0c
- 1850_CAM%DEV%LT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 1850_CAM70%LT_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FMT1850_TESTINGONLY_v0c
- 1850_CAM%DEV%MT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 1850_CAM70%MT_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FHIST_BGC
HIST_CAM60_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
@@ -116,11 +135,17 @@
FDABIP04
2000_CAM%DABIP04_SLND_SICE_SOCN_SROF_SGLC_SWAV
+
+
+
FHS94
2000_CAM%HS94_SLND_SICE_SOCN_SROF_SGLC_SWAV
+
+
+
@@ -139,13 +164,105 @@
- FSCAM
- 2000_CAM60%SCAM_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+ FSCAMARM95
+ 2000_CAM60%FSCAMARM95_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMARM97
+ 2000_CAM60%SCAMARM97_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMATEX
+ 2000_CAM60%SCAMATEX_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMBOMEX
+ 2000_CAM60%SCAMBOMEX_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMCGILSS11
+ 2000_CAM60%SCAMCGILSS11_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMCGILSS12
+ 2000_CAM60%SCAMCGILSS12_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMCGILSS6
+ 2000_CAM60%SCAMCGILSS6_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMDYCOMSRF01
+ 2000_CAM60%SCAMDYCOMSRF01_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMDYCOMSRF02
+ 2000_CAM60%SCAMDYCOMSRF02_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMGATE3
+ 2000_CAM60%SCAMGATE3_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMMPACE
+ 2000_CAM60%SCAMMPACE_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMRICO
+ 2000_CAM60%SCAMRICO_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMSPARTICUS
+ 2000_CAM60%SCAMSPARTICUS_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMTOGA2
+ 2000_CAM60%SCAMTOGA2_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMTWP06
+ 2000_CAM60%SCAMTWP06_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
+
+
+
+ FSCAMCAMFRC
+ 2000_CAM60%SCAMCAMFRC_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
FCSCAM
- 2000_CAM60%SCAM%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+ 2000_CAM60%SCAM%CT1S_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV
+
@@ -155,11 +272,6 @@
-
- QPC3
- 2000_CAM30_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
-
-
QPC4
2000_CAM40_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
@@ -205,29 +317,21 @@
HIST_CAM60_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
-
- QSPCAMS
- 2000_CAM%SPCAMS_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
-
-
-
- QPSPCAMM
- 2000_CAM%SPCAMM_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
-
-
QPC6
2000_CAM60_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+
+
QPC2000climo
- 2000_CAM60%CCTS1_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+ 2000_CAM60%CT1S_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
QPSCAMC5
- 2000_CAM50%SCAM_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+ 2000_CAM50%SCAMARM97_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
@@ -251,6 +355,8 @@
QSC6
2000_CAM60_SLND_SICE_DOCN%SOMAQP_SROF_SGLC_SWAV
+
+
@@ -277,16 +383,6 @@
1850_CAM60_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
-
- FSPCAMM
- 2000_CAM%SPCAMM_CLM50%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV
-
-
-
- FSPCAMS
- 2000_CAM%SPCAMS_CLM50%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV
-
-
FHIST_BDRD
HIST_CAM60_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_BGC%BDRD
@@ -294,7 +390,7 @@
F2000dev
- 2000_CAM%DEV_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2000_CAM70_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -317,50 +413,54 @@
-
-
-
- FSPCAMCLBS
- 2000_CAM%SPCAMCLBS_CLM50%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV
-
-
-
- FSPCAMCLBM
- 2000_CAM%SPCAMCLBM_CLM50%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV
-
-
-
FC2000climo
- 2000_CAM60%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2000_CAM60%CT1S_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FC2000climo_HCO
- 2000_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2000_CAM60%CT1S%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
+ FC2000climo_GC
+ 2000_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FC2010climo
- 2010_CAM60%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2010_CAM60%CT1S_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FC2010climo_HCO
- 2010_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2010_CAM60%CT1S%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
+ FC2010climo_GC
+ 2010_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCHIST
- HIST_CAM60%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FCHIST_GC
+ HIST_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV
+
+
- FCLTHIST
- HIST_CAM%DEV%LT%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ FHISTC_LTt1s
+ HISTC_CAM70%LT%CT1S_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
- FCMTHIST
- HIST_CAM%DEV%MT%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ FHISTC_MTt1s
+ HISTC_CAM70%MT%CT1S_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
+ FHISTC_MTt4s
+ HISTC_CAM70%MT%CT4S_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCvbsxHIST
@@ -372,37 +472,42 @@
FCHIST_HCO
- HIST_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCnudged
- HIST_CAM60%CCTS1%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FCnudged_GC
+ HIST_CAM60%GEOSCHEM%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
FCts2nudged
- HIST_CAM60%CCTS2%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT2S%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCnudged_HCO
- HIST_CAM60%CCTS1%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCts2nudged_HCO
- HIST_CAM60%CCTS2%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT2S%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCSD
- HIST_CAM60%CCTS1%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCts2SD
- HIST_CAM60%CCTS2%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT2S%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCSD_HCO
- HIST_CAM60%CCTS1%SDYN%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM60%CT1S%SDYN%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -431,42 +536,49 @@
-
+
FWHIST
HIST_CAM60%WCTS_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FWHIST_BGC
HIST_CAM60%WCTS_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FWsc2010climo
2010_CAM60%WCSC_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FWsc2000climo
2000_CAM60%WCSC_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FWsc1850
1850_CAM60%WCSC_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FWscHIST
HIST_CAM60%WCSC_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FW1850
1850_CAM60%WCTS_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
@@ -560,41 +672,20 @@
HIST_CAM60%WXIED%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
-
- FC2000climo_GC
- 2000_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV
-
-
-
- FC2010climo_GC
- 2010_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV
-
-
-
- FCHIST_GC
- HIST_CAM60%GEOSCHEM%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_CISM2%NOEVOLVE_SWAV
-
-
-
- FCnudged_GC
- HIST_CAM60%GEOSCHEM%HEMCO%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
-
-
- 1997-06-18
- 1979-01-01
+ 1979-01-01
1950-01-01
2000-01-01
2005-01-01
1980-01-01
1850-01-01
- 2010-01-01
+ 2010-01-01
2015-01-01
- 2013-01-01
+ 2013-01-01
1995-01-01
1995-01-01
2005-01-01
@@ -607,12 +698,70 @@
2004-01-01
1950-01-01
+ 1995-07-18
+ 1997-06-18
+ 1969-02-15
+ 1969-06-25
+ 1997-07-15
+ 1997-07-15
+ 1997-07-15
+ 1999-07-11
+ 1999-07-11
+ 1974-08-30
+ 2004-10-05
+ 1995-07-15
+ 2010-04-01
+ 1992-12-18
+ 2006-01-17
+ 1997-06-18
+
+
+
+
+
+ 418
+ 695
+ 47
+ 119
+ 719
+ 719
+ 719
+ 47
+ 47
+ 479
+ 413
+ 71
+ 717
+ 480
+ 641
+ 10
+
+
+
+
+
+ nhours
- 84585
+ 19800
+ 84585
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 7171
+ 0
+ 3599
+ 0
+ 10800
+ 0
@@ -638,76 +787,6 @@
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
-
-
- 1
- 1
-
-
-
@@ -718,13 +797,49 @@
- 36.6
+ 36.6
+ 36.6
+ 15.0
+ 15.0
+ 32.0
+ 35.0
+ 17.0
+ 31.5
+ 31.5
+ 9.0
+ 70.5
+ 18.0
+ 36.6
+ -2.1
+ -12.43
+ 36.6
- 262.5
+ 262.5
+ 262.5
+ 345.0
+ 300.0
+ 231.0
+ 235.0
+ 211.0
+ 238.5
+ 238.5
+ 336.0
+ 206.0
+ 298.5
+ 262.51
+ 154.69
+ 130.89
+ 262.5
+
+
+
+
+
+ FALSE
diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index 029878b583..bb0d57e7da 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -83,7 +83,7 @@
-
+
@@ -93,7 +93,7 @@
-
+
diff --git a/components/cice b/components/cice
index bfc0a0892b..b0bf4fef4a 160000
--- a/components/cice
+++ b/components/cice
@@ -1 +1 @@
-Subproject commit bfc0a0892bada6219d6283ae96eed3ce48c82744
+Subproject commit b0bf4fef4aa944c57c0972b66411882e20d3868d
diff --git a/components/mizuRoute b/components/mizuRoute
deleted file mode 160000
index 2ff305a029..0000000000
--- a/components/mizuRoute
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2ff305a0292cb06789de6cfea7ad3cc0d6173493
diff --git a/components/rtm b/components/rtm
deleted file mode 160000
index b3dfcfbba5..0000000000
--- a/components/rtm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b3dfcfbba58c151ac5a6ab513b3515ef3deff798
diff --git a/src/atmos_phys b/src/atmos_phys
index 4944547f04..67927f1511 160000
--- a/src/atmos_phys
+++ b/src/atmos_phys
@@ -1 +1 @@
-Subproject commit 4944547f04b1457d78bf7d3c0becddcfe0deabb9
+Subproject commit 67927f15113eb9c5d4a57f2276d67b8ad88c5149
diff --git a/src/chemistry/oslo_aero b/src/chemistry/oslo_aero
new file mode 160000
index 0000000000..63d5443fd2
--- /dev/null
+++ b/src/chemistry/oslo_aero
@@ -0,0 +1 @@
+Subproject commit 63d5443fd2de9f1e1bea0058f4f2d7d3feedf2d6
diff --git a/src/cpl/nuopc/atm_import_export.F90 b/src/cpl/nuopc/atm_import_export.F90
index 07b7f46ae3..9486209fa1 100644
--- a/src/cpl/nuopc/atm_import_export.F90
+++ b/src/cpl/nuopc/atm_import_export.F90
@@ -27,7 +27,7 @@ module atm_import_export
use srf_field_check , only : set_active_Faxa_nhx
use srf_field_check , only : set_active_Faxa_noy
use srf_field_check , only : active_Faxa_nhx, active_Faxa_noy
- use atm_stream_ndep , only : stream_ndep_init, stream_ndep_interp, stream_ndep_is_initialized
+ use atm_stream_ndep , only : stream_ndep_init, stream_ndep_interp, stream_ndep_is_initialized, use_ndep_stream
implicit none
private ! except
@@ -246,7 +246,8 @@ subroutine advertise_fields(gcomp, flds_scalar_name, rc)
call set_active_Faxa_nhx(.true.)
call set_active_Faxa_noy(.true.)
else
- ! The following is used for reading in stream data
+ ! The following is used for reading in stream data, or for aquaplanet or simple model
+ ! cases where the ndep fluxes are not used.
call set_active_Faxa_nhx(.false.)
call set_active_Faxa_noy(.false.)
end if
@@ -1246,25 +1247,51 @@ subroutine export_fields( gcomp, model_mesh, model_clock, cam_out, rc)
end do
end if
- ! If ndep fields are not computed in cam and must be obtained from the ndep input stream
call state_getfldptr(exportState, 'Faxa_ndep', fldptr2d=fldptr_ndep, rc=rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
if (.not. active_Faxa_nhx .and. .not. active_Faxa_noy) then
+
+ ! ndep fields not active (i.e., not computed by WACCM). Either they are not needed,
+ ! or they are obtained from the ndep input stream.
+
+ ! The ndep_stream_nl namelist group is read in stream_ndep_init. This sets whether
+ ! or not the stream will be used.
if (.not. stream_ndep_is_initialized) then
call stream_ndep_init(model_mesh, model_clock, rc)
if (ChkErr(rc,__LINE__,u_FILE_u)) return
stream_ndep_is_initialized = .true.
end if
- call stream_ndep_interp(cam_out, rc)
- if (ChkErr(rc,__LINE__,u_FILE_u)) return
- ! NDEP read from forcing is expected to be in units of gN/m2/sec - but the mediator
- ! expects units of kgN/m2/sec
- scale_ndep = .001_r8
+
+ if (use_ndep_stream) then
+
+ ! get ndep fluxes from the stream
+ call stream_ndep_interp(cam_out, rc)
+ if (ChkErr(rc,__LINE__,u_FILE_u)) return
+ ! NDEP read from forcing is expected to be in units of gN/m2/sec - but the mediator
+ ! expects units of kgN/m2/sec
+ scale_ndep = .001_r8
+
+ else
+
+ ! ndep fluxes not used. Set to zero.
+ do c = begchunk,endchunk
+ do i = 1,get_ncols_p(c)
+ cam_out(c)%nhx_nitrogen_flx(i) = 0._r8
+ cam_out(c)%noy_nitrogen_flx(i) = 0._r8
+ end do
+ end do
+ scale_ndep = 1._r8
+
+ end if
+
else
+
! If waccm computes ndep, then its in units of kgN/m2/s - and the mediator expects
! units of kgN/m2/sec, so the following conversion needs to happen
scale_ndep = 1._r8
+
end if
+
g = 1
do c = begchunk,endchunk
do i = 1,get_ncols_p(c)
diff --git a/src/hemco b/src/hemco
index 3a6d999ab0..7bd8358229 160000
--- a/src/hemco
+++ b/src/hemco
@@ -1 +1 @@
-Subproject commit 3a6d999ab0dbee9f03ab6b9a13dd3b6d9670eb54
+Subproject commit 7bd8358229eefd2cbb910ff30c46dfc97e34fb6f
diff --git a/src/physics/camnor_phys b/src/physics/camnor_phys
new file mode 160000
index 0000000000..6910b103ba
--- /dev/null
+++ b/src/physics/camnor_phys
@@ -0,0 +1 @@
+Subproject commit 6910b103ba64968ba8da94886add717e877cb0e1
diff --git a/src/physics/clubb b/src/physics/clubb
index 50cee042e5..15e802092f 160000
--- a/src/physics/clubb
+++ b/src/physics/clubb
@@ -1 +1 @@
-Subproject commit 50cee042e588fefd3fe58c2a1d638affec8c0389
+Subproject commit 15e802092f65b3a20e5d67cb32d40f8a2771ca9b