diff --git a/.gitmodules b/.gitmodules
index 77e9c2fc56..b940db1dfe 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -144,7 +144,7 @@ fxDONOTUSEurl = https://github.com/ESMCI/cime
[submodule "cmeps"]
path = components/cmeps
url = https://github.com/ESCOMP/CMEPS.git
-fxtag = cmeps0.14.63
+fxtag = cmeps0.14.67
fxrequired = ToplevelRequired
fxDONOTUSEurl = https://github.com/ESCOMP/CMEPS.git
@@ -179,7 +179,7 @@ fxDONOTUSEurl = https://github.com/NCAR/ParallelIO
[submodule "cice"]
path = components/cice
url = https://github.com/ESCOMP/CESM_CICE
-fxtag = cesm_cice6_5_0_9
+fxtag = cesm_cice6_5_0_10
fxrequired = ToplevelRequired
fxDONOTUSEurl = https://github.com/NCAR/ParallelIO
diff --git a/bld/build-namelist b/bld/build-namelist
index 5fa7434755..c7a4c7857a 100755
--- a/bld/build-namelist
+++ b/bld/build-namelist
@@ -1566,7 +1566,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/) {
+if (($phys =~ /cam6/ or $phys =~ /cam7/) and $chem =~ /_mam/) {
# turn on volc forcings in cam6 -- prognostic or prescribed
if ( $chem_has_ocs ) {
# turn on prognostic stratospheric aerosols
@@ -1596,9 +1596,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')) {
@@ -1854,7 +1854,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;
@@ -2228,7 +2228,7 @@ if ($chem eq 'trop_mam3') {
}
# 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) {
@@ -2389,7 +2389,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;
@@ -3150,15 +3150,15 @@ if (($chem ne 'none') and ($chem ne 'terminator') and !($chem =~ /geoschem/)) {
add_default($nl, '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 $nl->get_value('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 $nl->get_value('deep_scheme') =~ /ZM/) {
add_default($nl, 'zmconv_parcel_pbl', 'val'=>'.true.');
} else {
add_default($nl, 'zmconv_parcel_pbl', 'val'=>'.false.');
@@ -3211,8 +3211,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');
@@ -3229,7 +3229,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.');
}
@@ -3245,13 +3245,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';
}
}
@@ -3357,6 +3357,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) {
@@ -3525,13 +3531,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');
@@ -3719,7 +3718,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.');
@@ -3750,7 +3749,7 @@ if (!$simple_phys) {
}
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.');
@@ -3773,8 +3772,8 @@ 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.');
add_default($nl, 'gw_qbo_hdepth_scaling', 'val'=>'1.0D0');
@@ -3910,7 +3909,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.');
@@ -5084,8 +5083,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 03f2f10405..327f3d22ea 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.
diff --git a/bld/configure b/bld/configure
index e2fb784495..adfafa5fea 100755
--- a/bld/configure
+++ b/bld/configure
@@ -69,7 +69,7 @@ OPTIONS
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 ].
Default: trop_mam4 for cam6 and 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
@@ -89,7 +89,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 .
@@ -97,7 +97,7 @@ 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 [cam3 | cam4 | cam5 | cam6 | cam7 |
held_suarez | adiabatic | kessler | tj2016 | grayrad
spcam_sam1mom | spcam_m2005]. Default: cam6
-prog_species Comma-separate list of prognostic mozart species packages.
@@ -209,6 +209,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
@@ -534,21 +535,16 @@ 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";
}
# Add to the config object.
@@ -566,7 +562,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') {
@@ -575,6 +571,12 @@ if ($simple_phys or $phys_pkg =~ m/^cam[34]$/ or $phys_pkg eq 'spcam_sam1mom') {
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'}) {
@@ -675,17 +677,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;
@@ -823,7 +814,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') {
@@ -872,7 +863,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;
}
@@ -883,6 +874,13 @@ if (defined $opts{'clubb_sgs'}) {
# consistency checks...
+# 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";
@@ -955,13 +953,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') {
@@ -996,13 +996,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') {
@@ -1062,10 +1064,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/cam3|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.
@@ -1116,8 +1118,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";
}
@@ -1300,6 +1302,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;
@@ -1308,7 +1328,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;
@@ -1322,7 +1342,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') {
@@ -2157,8 +2177,8 @@ 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) {
@@ -2267,7 +2287,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";
diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 331863e4e2..fbd64ccd61 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -47,7 +47,7 @@
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/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
@@ -290,7 +290,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
@@ -339,7 +339,7 @@
98288.0D0
98288.0D0
98288.0D0
- 98288.0D0
+ 98288.0D0
98288.0D0
98288.0D0
@@ -584,7 +584,7 @@
.false.
.true.
-.true.
+.true.
slingo
@@ -630,9 +630,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
@@ -871,8 +871,8 @@
.true.
.true.
.true.
-.false.
-.false.
+.false.
+.false.
.false.
.false.
.false.
@@ -929,6 +929,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
@@ -940,10 +941,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
@@ -1927,10 +1928,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
@@ -1972,12 +1973,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
@@ -2059,7 +2060,7 @@
.true.
.true.
.false.
- .false.
+ .false.
.true.
0.075D0
@@ -2071,20 +2072,20 @@
.false.
.true.
- .true.
+ .true.
.false.
.true.
.true.
- .true.
+ .true.
.true.
0
1
1
- 1
+ 1
1
0.01d0
@@ -2131,10 +2132,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
@@ -2151,21 +2152,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
@@ -2180,14 +2181,14 @@
.false.
.false.
.false.
- .true.
+ .true.
.false.
.false.
.true.
.false.
.false.
.false.
- .true.
+ .true.
.false.
.false.
.true.
@@ -2199,7 +2200,7 @@
.true.
.false.
.false.
- .true.
+ .true.
.false.
.false.
.false.
@@ -2234,8 +2235,8 @@
0.5
25.0
.false.
-.true.
.true.
+.true.
.true.
0.2
@@ -2346,10 +2347,10 @@
1.D0
0.2D0
- 0.1D0
+ 0.1D0
0.1D0
- 0.0D0
+ 0.0D0
0.001D0
@@ -2368,10 +2369,10 @@
1.D8
1.D8
- .true.
- .true.
- kk2000
- .true.
+ .true.
+ .true.
+ kk2000
+ .true.
1
3
@@ -2404,17 +2405,17 @@
.false.
.true.
-.true.
+.true.
0.01D0
0.05D0
.false.
.true.
-.true.
+.true.
.true.
.false.
-.false.
+.false.
1.0D0
.true.
@@ -2446,7 +2447,7 @@
1.D0
0.D0
0.D0
-0.D0
+0.D0
1.D0
@@ -2456,12 +2457,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
@@ -2481,51 +2482,51 @@
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
@@ -2533,7 +2534,7 @@
1.62D0
0.90D0
1.00D0
-1.5D0
+1.5D0
1.10D0
1.2D0
0.60D0
@@ -2641,7 +2642,7 @@
.false.
.true.
.true.
-.true.
+.true.
0.900D0
0.910D0
@@ -2661,12 +2662,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
@@ -2680,7 +2681,7 @@
0.100D0
0.000D0
- 0.000D0
+ 0.000D0
0.000D0
0.800D0
@@ -2704,7 +2705,7 @@
0.14D0
0.10D0
0.10D0
- 0.10D0
+ 0.10D0
0.10D0
0.10D0
@@ -2729,25 +2730,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
@@ -2771,7 +2772,7 @@
.false.
.true.
-.true.
+.true.
.false.
@@ -2851,11 +2852,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
@@ -2872,11 +2873,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
@@ -2900,7 +2901,7 @@
5
1
- 1
+ 1
-1.0E-3
0.5
@@ -2922,7 +2923,7 @@
2
4
4
- 4
+ 4
4
42
42
@@ -2932,9 +2933,9 @@
42
42
42
-42
+42
42
-42
+42
42
1
@@ -3082,9 +3083,9 @@
3
3
5
- 5
+ 5
6
- 6
+ 6
1
1
3
diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml
index 26ec0d371c..350d55a64c 100644
--- a/bld/namelist_files/namelist_definition.xml
+++ b/bld/namelist_files/namelist_definition.xml
@@ -3605,7 +3605,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
diff --git a/cime_config/SystemTests/mgp.py b/cime_config/SystemTests/mgp.py
index 14f691dfcf..ab2232eda0 100644
--- a/cime_config/SystemTests/mgp.py
+++ b/cime_config/SystemTests/mgp.py
@@ -2,7 +2,7 @@
CIME MGP test. This class inherits from SystemTestsCompareTwo
This is a changing config options test to compare between MG3 and
-PUMAS in camdev. The use of MG3 or PUMAS should be bfb.
+PUMAS in cam7. The use of MG3 or PUMAS should be bfb.
This is just like an ERC test and it's meant for CAM only
as it only does a single build.
@@ -39,9 +39,9 @@ def __init__(self, case,
def _case_one_setup(self):
stop_n = self._case1.get_value("STOP_N")
expect(stop_n >= 3, "STOP_N must be at least 3, STOP_N = {}".format(stop_n))
- self._case.set_value("CAM_CONFIG_OPTS","-phys cam_dev -microphys mg3")
+ self._case.set_value("CAM_CONFIG_OPTS","-phys cam7 -microphys mg3")
def _case_two_setup(self):
- self._case.set_value("CAM_CONFIG_OPTS","-phys cam_dev -microphys pumas")
+ self._case.set_value("CAM_CONFIG_OPTS","-phys cam7 -microphys pumas")
diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml
index 21d3ec6d4b..560bca7ef2 100644
--- a/cime_config/config_component.xml
+++ b/cime_config/config_component.xml
@@ -8,12 +8,12 @@
CAM
===============
-->
+ CAM cam7 physics:
CAM cam6 physics:
CAM cam5 physics:
CAM cam4 physics:
CAM cam3 physics:
CAM simplified and non-versioned physics :
- CAM7 development physics:
- -phys cam_dev
- -chem ghg_mam4
-chem trop_strat_mam5_vbs
-chem geoschem_mam4
@@ -175,8 +173,8 @@
-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
-phys adiabatic
@@ -217,14 +215,14 @@
waccm_tsmlt_1850_cam6
waccm_ma_1850_cam6
waccm_sc_1850_cam6
- 1850_cam_lt
- 1850_cam_mt
+ 1850_cam_lt
+ 1850_cam_mt
2000_cam4_trop_chem
waccmxie_ma_2000_cam4
waccmx_ma_2000_cam4
- 2000_cam6
+ 2000_cam6
2000_cam6
waccm_tsmlt_2000_cam6
waccm_ma_2000_cam6
@@ -257,8 +255,8 @@
1950-2010_ccmi_refc1_waccmx_ma
1850-2005_cam5
hist_cam6
- hist_cam_lt
- hist_cam_mt
+ hist_cam_lt
+ hist_cam_mt
waccm_tsmlt_hist_cam6
waccm_sc_hist_cam6
waccm_ma_hist_cam6
diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml
index d2aec47d2e..3a4bb4bad4 100644
--- a/cime_config/config_compsets.xml
+++ b/cime_config/config_compsets.xml
@@ -63,22 +63,22 @@
FLTHIST
- HIST_CAM%DEV%LT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM70%LT_CLM51%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_CLM51%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_CLM51%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_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -282,7 +282,7 @@
F2000dev
- 2000_CAM%DEV_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ 2000_CAM70_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -344,11 +344,11 @@
FCLTHIST
- HIST_CAM%DEV%LT%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM70%LT%CCTS1_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCMTHIST
- HIST_CAM%DEV%MT%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+ HIST_CAM70%MT%CCTS1_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
FCvbsxHIST
diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml
index 7c78c98599..c074a75baf 100644
--- a/cime_config/config_pes.xml
+++ b/cime_config/config_pes.xml
@@ -432,7 +432,7 @@
1
-
+
none
-8
@@ -455,7 +455,7 @@
-
+
none
-8
@@ -482,7 +482,7 @@
0
-
+
none
-12
@@ -540,7 +540,7 @@
-
+
none
1800
diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index 05983cca7b..f1a0d0799d 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -93,7 +93,7 @@
-
+
@@ -1444,13 +1444,8 @@
-
-
-
-
-
-
+
@@ -1487,9 +1482,7 @@
-
-
@@ -1533,32 +1526,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1679,16 +1652,16 @@
-
+
-
+
-
+
@@ -1709,7 +1682,7 @@
-
+
@@ -1803,7 +1776,7 @@
-
+
@@ -1812,7 +1785,7 @@
-
+
@@ -1820,8 +1793,8 @@
-
-
+
+
@@ -1830,7 +1803,7 @@
-
+
@@ -1839,7 +1812,7 @@
-
+
@@ -1848,7 +1821,7 @@
-
+
@@ -2280,7 +2253,7 @@
-
+
@@ -2289,7 +2262,7 @@
-
+
@@ -2415,7 +2388,7 @@
-
+
@@ -2435,7 +2408,7 @@
-
+
@@ -2450,7 +2423,7 @@
-
+
@@ -2459,7 +2432,7 @@
-
+
@@ -2742,7 +2715,7 @@
-
+
@@ -2800,7 +2773,7 @@
-
+
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/shell_commands b/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/shell_commands
new file mode 100644
index 0000000000..d3fa399380
--- /dev/null
+++ b/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/shell_commands
@@ -0,0 +1,3 @@
+./xmlchange ROF_NCPL=\$ATM_NCPL
+./xmlchange RUN_STARTDATE=0001-12-14
+./xmlchange CAM_CONFIG_OPTS="-phys cam7 -microphys mg2 -chem ghg_mam4 -nlev 32"
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_cam
similarity index 100%
rename from cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_cam
rename to cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_cam
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_clm b/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_clm
similarity index 100%
rename from cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_clm
rename to cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_clm
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/shell_commands b/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/shell_commands
deleted file mode 100644
index 513b5dbe41..0000000000
--- a/cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/shell_commands
+++ /dev/null
@@ -1,3 +0,0 @@
-./xmlchange ROF_NCPL=\$ATM_NCPL
-./xmlchange RUN_STARTDATE=0001-12-14
-./xmlchange CAM_CONFIG_OPTS="-phys cam_dev -microphys mg2 -chem ghg_mam4 -nlev 32"
diff --git a/components/cice b/components/cice
index bdf6ea04d6..b56154b318 160000
--- a/components/cice
+++ b/components/cice
@@ -1 +1 @@
-Subproject commit bdf6ea04d6133434fcaa4de5336de106f01290d0
+Subproject commit b56154b318b41312faec8a8ebee86c866b47c9f2
diff --git a/components/cmeps b/components/cmeps
index 6384ff4e4a..90f815ba9e 160000
--- a/components/cmeps
+++ b/components/cmeps
@@ -1 +1 @@
-Subproject commit 6384ff4e4a6bc82a678f9419a43ffbd5d53ac209
+Subproject commit 90f815ba9e7493d71043b5d8e627a3f20bd5dc78
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 9e627f133c..e267ccd639 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,4 +1,218 @@
+===============================================================
+
+Tag name: cam6_4_001
+Originator(s): eaton
+Date: Wed Jun 26, 2024
+One-line Summary: Change name of physics package 'cam_dev' to 'cam7'
+Github PR URL: https://github.com/ESCOMP/CAM/pull/1028
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+
+#813 - Introduce "-phys cam7" and remove "-phys cam_dev".
+https://github.com/ESCOMP/CAM/issues/813
+
+- The compset tokens CAM%DEV are replaced by CAM70
+- The src/physics/cam_dev/ directory is renamed src/physics/cam7
+- No compset names were changed.
+
+#1033 - Change DART test to use 128 instead of 108 processors
+https://github.com/ESCOMP/CAM/issues/1033
+
+- SMS_C80_P108x1_Lh1.f09_f09_mg17.FHIST_DARTC6
+ changed to
+ SMS_C80_P128x1_Lh1.f09_f09_mg17.FHIST_DARTC6
+
+Issue #1038 - Replace ne16np4 grid for WACCM HIST test with ne16np4.pg3
+https://github.com/ESCOMP/CAM/issues/1039
+
+- SMS_D_Ln9.ne16_ne16_mg17.FX2000.derecho_intel.cam-outfrq9s
+ changed to
+ SMS_D_Ln9.ne16pg3_ne16pg3_mg17.FX2000.derecho_intel.cam-outfrq9s
+
+Issue #1039 - Change transient ne30np4 cam tests to ne30np4.pg3 #1039
+https://github.com/ESCOMP/CAM/issues/1039
+
+- ERP_Ln9.ne30_ne30_mg17.FCnudged.derecho_intel.cam-outfrq9s
+ changed to
+ ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s
+
+. resolves #813
+. resolves #1033
+. resolves #1038
+. resolves #1039
+
+Describe any changes made to build system:
+
+. The physics package name 'cam_dev' is replaced by 'cam7'
+. The compset component 'CAM%DEV' is replaced by 'CAM70'
+. No compset names have been changed.
+
+Describe any changes made to the namelist:
+
+. cam_physpkg will be set to cam7 instead of cam_dev
+
+List any changes to the defaults for the boundary datasets: none
+
+Describe any substantial timing or memory changes: none
+
+Code reviewed by: cacraigucar, nusbaume
+
+List all files eliminated:
+
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/shell_commands
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_cam
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev/user_nl_clm
+src/physics/cam_dev/cam_snapshot.F90
+src/physics/cam_dev/convect_diagnostics.F90
+src/physics/cam_dev/micro_pumas_cam.F90
+src/physics/cam_dev/physpkg.F90
+src/physics/cam_dev/stochastic_emulated_cam.F90
+src/physics/cam_dev/stochastic_tau_cam.F90
+. These files moved from the directories with 'cam_dev' in the name to
+ directories with 'cam7' in the name.
+
+List all files added and what they do:
+
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/shell_commands
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_cam
+cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam7/user_nl_clm
+. moved from cime_config/testdefs/testmods_dirs/cam/outfrq1d_14dec_ghg_cam_dev
+. shell_commands has cam_dev changed to cam7
+
+src/physics/cam7/cam_snapshot.F90
+src/physics/cam7/convect_diagnostics.F90
+src/physics/cam7/micro_pumas_cam.F90
+src/physics/cam7/physpkg.F90
+src/physics/cam7/stochastic_emulated_cam.F90
+src/physics/cam7/stochastic_tau_cam.F90
+. moved from src/physics/cam_dev
+
+List all existing files that have been modified, and describe the changes:
+
+.gitmodules
+. CMEPS submodule updated to cmeps0.14.67
+
+bld/build-namelist
+. change 'cam_dev' to 'cam7'
+. a consistency check making sure clubb_sgs is used with cam7 is moved to
+ configure since these settings are known there.
+. add check to disallow user setting of do_clubb_sgs
+
+bld/namelist_files/namelist_defaults_cam.xml
+. add default value for cam_physics_mesh for ne16pg3
+
+bld/config_files/definition.xml
+. change valid_values for 'phys' from 'cam_dev' to 'cam7'
+
+bld/configure
+. change 'cam_dev' to 'cam7'
+. the physics package is always specified in the component definition.
+ Remove the default setting and make sure the -phys option is set.
+. set the default chemistry package for cam7 physics to ghg_mam4
+. the setting for 'model_top' was moved to be near the 'nlev' settings.
+. change filepath name from src/physics/cam_dev to src/physics/cam7
+. add check that model_top is only specified for cam7 physics.
+bld/namelist_files/namelist_defaults_cam.xml
+. change 'cam_dev' to 'cam7'
+
+bld/namelist_files/namelist_definition.xml
+. update description of do_clubb_sgs to indicate that it is not user
+ settable.
+
+cime_config/SystemTests/mgp.py
+. change 'cam_dev' to 'cam7'
+
+cime_config/config_component.xml
+cime_config/config_compsets.xml
+. change 'CAM%DEV' to 'CAM70'
+. modify compset matching so that %LT and %MT are only matched for CAM70
+ physics.
+. remove %GHGMAM4 modifier (default chemistry set in configure)
+. F2000dev, FCLTHIST, FCMTHIST - change CLM50 to CLM51. CLM no longer supports CLM50
+ with CAM70 physics.
+
+cime_config/config_pes.xml
+. change 'CAM%DEV' to 'CAM70'
+
+cime_config/testdefs/testlist_cam.xml
+. change 'CAM%DEV' to 'CAM70'
+. change 'cam_dev' to 'cam7'
+. increased walltime limits for several tests that hit time limits on
+ derecho
+. remove F2000dev tests from aux_cam and prealpha categories. Also remove
+ 2000_CAM70%GHGMAM4_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV which is
+ the same as the updated F2000dev. The remaining F2000dev tests will be
+ updated to use F2000climo once that compset is updated to CAM7.
+. Update the following tests which are currently failing due to missing CLM
+ datasets to use CSLAM grids rather than pure SE
+ ERP_Ln9.ne30_ne30_mg17.FCnudged.derecho_intel.cam-outfrq9s
+ SMS_D_Ln9.ne16_ne16_mg17.FX2000.derecho_intel.cam-outfrq9s
+. Change
+ SMS_C80_P108x1_Lh1.f09_f09_mg17.FHIST_DARTC6
+ to
+ SMS_C80_P128x1_Lh1.f09_f09_mg17.FHIST_DARTC6
+. remove 1 remaining Vmct test
+
+src/chemistry/mozart/mo_gas_phase_chemdr.F90
+src/physics/cam/nucleate_ice_cam.F90
+src/physics/cam/phys_control.F90
+src/physics/cam/vertical_diffusion.F90
+. change 'cam_dev' to 'cam7'
+
+src/physics/cam/zm_conv_intr.F90
+. check whether zmconv_parcel_pbl is set true when the bottom layer thickness is
+ less than 100 m. Issue a warning to the log file if it's not.
+
+
+If there were any failures reported from running test_driver.sh on any test
+platform, and checkin with these failures has been OK'd by the gatekeeper,
+then copy the lines from the td.*.status files for the failed tests to the
+appropriate machine below. All failed tests must be justified.
+
+derecho/intel/aux_cam: all PASS except:
+
+ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.derecho_intel.cam-outfrq9s (Overall: NLFAIL) details:
+ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.derecho_intel.cam-outfrq9s_rrtmgp (Overall: NLFAIL) details:
+SMS_D_Ln9.ne30pg3_ne30pg3_mg17.FMTHIST.derecho_intel.cam-outfrq9s (Overall: NLFAIL) details:
+- cam_physpkg changed from cam_dev to cam7
+
+ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
+- pre-existing failure due to HEMCO not having reproducible results
+
+ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
+SMS_D_Ln9.ne16pg3_ne16pg3_mg17.FX2000.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
+- these tests changed to CSLAM grids, so no baseline for comparison
+
+ERS_Ld3.f10_f10_mg37.F1850.derecho_intel.cam-outfrq1d_14dec_ghg_cam7 (Overall: DIFF) details:
+- baseline comparisons fail because case name changed from cam_dev to cam7
+
+SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s (Overall: PEND) details:
+SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: PEND) details:
+- pre-existing failures - need fix in CLM external
+ CLMBuildNamelist::setup_logic_initial_conditions() : use_init_interp is NOT synchronized with init_interp_attributes in the namelist_defaults file, this should be corrected there
+
+SMS_D_Ln9_P1280x1.ne30pg3_ne30pg3_mg17.FCLTHIST.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
+- expected diff due to changing CLM50 to CLM51
+
+SMS_D_Ln9.T42_T42.FSCAM.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
+- pre-existing failure - need fix in CICE external
+ fails in med.F90
+
+izumi/nag/aux_cam: All PASS except
+
+DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details:
+- pre-existing failure
+
+izumi/gnu/aux_cam: All PASS
+
+CAM tag used for the baseline comparison tests if different than previous
+tag:
+
+Summarize any changes to answers: BFB - all diffs are due changing the test
+ grid, the test case name, or the compset definition (CLM50 -> CLM51).
+
+===============================================================
===============================================================
Tag name: cam6_3_162
diff --git a/src/chemistry/mozart/mo_gas_phase_chemdr.F90 b/src/chemistry/mozart/mo_gas_phase_chemdr.F90
index 68657d0739..0575b2f8c0 100644
--- a/src/chemistry/mozart/mo_gas_phase_chemdr.F90
+++ b/src/chemistry/mozart/mo_gas_phase_chemdr.F90
@@ -1072,7 +1072,7 @@ subroutine gas_phase_chemdr(lchnk, ncol, imozart, q, &
do m = 1,pcnst
n = map2chm( m )
if ( n > 0 ) then
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! apply to qtend array
if (cnst_type(m).eq.'dry') then
qtend(:ncol,pver,m) = qtend(:ncol,pver,m) - sflx(:ncol,n)*rpdeldry(:ncol,pver)*gravit
diff --git a/src/physics/cam/nucleate_ice_cam.F90 b/src/physics/cam/nucleate_ice_cam.F90
index 922e871b72..7d03297688 100644
--- a/src/physics/cam/nucleate_ice_cam.F90
+++ b/src/physics/cam/nucleate_ice_cam.F90
@@ -261,7 +261,7 @@ subroutine nucleate_ice_cam_init(mincld_in, bulk_scale_in, pbuf2d, aero_props)
call endrun(routine//': ERROR qsatfac is required when subgrid = -1 or subgrid_strat = -1')
end if
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! Updates for PUMAS v1.21+
call addfld('NIHFTEN', (/ 'lev' /), 'A', '1/m3/s', 'Activated Ice Number Concentration tendency due to homogenous freezing')
call addfld('NIDEPTEN', (/ 'lev' /), 'A', '1/m3/s', 'Activated Ice Number Concentration tendency due to deposition nucleation')
@@ -286,7 +286,7 @@ subroutine nucleate_ice_cam_init(mincld_in, bulk_scale_in, pbuf2d, aero_props)
call addfld ('WICE', (/ 'lev' /), 'A','m/s','Vertical velocity Reduction caused by preexisting ice' )
call addfld ('WEFF', (/ 'lev' /), 'A','m/s','Effective Vertical velocity for ice nucleation' )
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! Updates for PUMAS v1.21+
call addfld ('INnso4TEN', (/ 'lev' /), 'A','1/m3/s','Number Concentration tendency so4 (in) to ice_nucleation')
call addfld ('INnbcTEN', (/ 'lev' /), 'A','1/m3/s','Number Concentration tendency bc (in) to ice_nucleation')
@@ -627,7 +627,7 @@ subroutine nucleate_ice_cam_calc( &
! *** Turn off soot nucleation ***
soot_num = 0.0_r8
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
call nucleati( &
wsubi(i,k), t(i,k), pmid(i,k), relhum(i,k), icldm(i,k), &
@@ -768,7 +768,7 @@ subroutine nucleate_ice_cam_calc( &
end if
end if
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
!Updates for pumas v1.21+
naai_hom(i,k) = nihf(i,k)/dtime
@@ -808,7 +808,7 @@ subroutine nucleate_ice_cam_calc( &
endif
endif
- else ! Not cam_dev
+ else ! Not cam7
naai_hom(i,k) = nihf(i,k)
@@ -846,7 +846,7 @@ subroutine nucleate_ice_cam_calc( &
endif
end if
- end if ! cam_dev
+ end if ! cam7
end if freezing
end do iloop
end do kloop
@@ -857,7 +857,7 @@ subroutine nucleate_ice_cam_calc( &
maerosol)
end if
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! Updates for PUMAS v1.21+
call outfld('NIHFTEN', nihf, pcols, lchnk)
call outfld('NIIMMTEN', niimm, pcols, lchnk)
@@ -877,7 +877,7 @@ subroutine nucleate_ice_cam_calc( &
call outfld( 'fhom' , fhom, pcols, lchnk)
call outfld( 'WICE' , wice, pcols, lchnk)
call outfld( 'WEFF' , weff, pcols, lchnk)
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! Updates for PUMAS v1.21+
call outfld('INnso4TEN',INnso4 , pcols,lchnk)
call outfld('INnbcTEN',INnbc , pcols,lchnk)
diff --git a/src/physics/cam/phys_control.F90 b/src/physics/cam/phys_control.F90
index 92ccac1335..1de052c318 100644
--- a/src/physics/cam/phys_control.F90
+++ b/src/physics/cam/phys_control.F90
@@ -242,21 +242,21 @@ subroutine phys_ctl_readnl(nlfile)
endif
endif
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! Check that eddy_scheme, macrop_scheme, shallow_scheme are all set to CLUBB
if (eddy_scheme /= 'CLUBB_SGS' .or. macrop_scheme /= 'CLUBB_SGS' .or. shallow_scheme /= 'CLUBB_SGS') then
- write(iulog,*) 'cam_dev is only compatible with CLUBB. Quitting'
- call endrun('cam_dev is only compatible with eddy, macrop, and shallow schemes = CLUBB_SGS')
+ write(iulog,*) 'cam7 is only compatible with CLUBB. Quitting'
+ call endrun('cam7 is only compatible with eddy, macrop, and shallow schemes = CLUBB_SGS')
end if
! Add a check to make sure SPCAM is not used
if (use_spcam) then
- write(iulog,*)'SPCAM not compatible with cam_dev physics. Quitting'
- call endrun('SPCAM and cam_dev incompatible')
+ write(iulog,*)'SPCAM not compatible with cam7 physics. Quitting'
+ call endrun('SPCAM and cam7 incompatible')
end if
! Add check to make sure we are not trying to use `camrt`
if (trim(radiation_scheme) == 'camrt') then
- write(iulog,*) ' camrt specified and it is not compatible with cam_dev'
- call endrun('cam_dev is not compatible with camrt radiation scheme')
+ write(iulog,*) ' camrt specified and it is not compatible with cam7'
+ call endrun('cam7 is not compatible with camrt radiation scheme')
end if
end if
diff --git a/src/physics/cam/vertical_diffusion.F90 b/src/physics/cam/vertical_diffusion.F90
index 12c50b4234..326e3dd579 100644
--- a/src/physics/cam/vertical_diffusion.F90
+++ b/src/physics/cam/vertical_diffusion.F90
@@ -449,7 +449,7 @@ subroutine vertical_diffusion_init(pbuf2d)
do_pbl_diags = .true.
call init_hb_diff(gravit, cpair, ntop_eddy, nbot_eddy, pref_mid, karman, eddy_scheme)
!
- ! run HB scheme where CLUBB is not active when running cam_dev or cam6 physics
+ ! run HB scheme where CLUBB is not active when running cam7 or cam6 physics
! else init_hb_diff is called just for diagnostic purposes
!
if (do_hb_above_clubb) then
@@ -1057,7 +1057,7 @@ subroutine vertical_diffusion_tend( &
case ( 'CLUBB_SGS' )
!
- ! run HB scheme where CLUBB is not active when running cam_dev
+ ! run HB scheme where CLUBB is not active when running cam7
!
if (do_hb_above_clubb) then
call compute_hb_free_atm_diff( ncol , &
@@ -1194,7 +1194,7 @@ subroutine vertical_diffusion_tend( &
tauy = 0._r8
shflux = 0._r8
cflux(:,1) = 0._r8
- if (cam_physpkg_is("cam_dev")) then
+ if (cam_physpkg_is("cam7")) then
! surface fluxes applied in clubb emissions module
cflux(:,2:) = 0._r8
else
diff --git a/src/physics/cam/zm_conv_intr.F90 b/src/physics/cam/zm_conv_intr.F90
index febf576443..b80fcf504d 100644
--- a/src/physics/cam/zm_conv_intr.F90
+++ b/src/physics/cam/zm_conv_intr.F90
@@ -17,7 +17,6 @@ module zm_conv_intr
use rad_constituents, only: rad_cnst_get_info, rad_cnst_get_mode_num, rad_cnst_get_aer_mmr, &
rad_cnst_get_aer_props, rad_cnst_get_mode_props !, &
- use ndrop_bam, only: ndrop_bam_init
use cam_abortutils, only: endrun
use physconst, only: pi
use spmd_utils, only: masterproc
@@ -248,6 +247,12 @@ subroutine zm_conv_init(pref_edge)
real(r8),intent(in) :: pref_edge(plevp) ! reference pressures at interfaces
+ ! local variables
+ real(r8), parameter :: scale_height = 7000._r8 ! std atm scale height (m)
+ real(r8), parameter :: dz_min = 100._r8 ! minimum thickness for using
+ ! zmconv_parcel_pbl=.false.
+ real(r8) :: dz_bot_layer ! thickness of bottom layer (m)
+
character(len=512) :: errmsg
integer :: errflg
@@ -351,6 +356,19 @@ subroutine zm_conv_init(pref_edge)
' which is ',pref_edge(limcnv),' pascals'
end if
+ ! If thickness of bottom layer is less than dz_min, and zmconv_parcel_pbl=.false.,
+ ! then issue a warning.
+ dz_bot_layer = scale_height * log(pref_edge(pverp)/pref_edge(pver))
+ if (dz_bot_layer < dz_min .and. .not. zmconv_parcel_pbl) then
+ if (masterproc) then
+ write(iulog,*)'********** WARNING **********'
+ write(iulog,*)' ZM_CONV_INIT: Bottom layer thickness (m) is ', dz_bot_layer
+ write(iulog,*)' The namelist variable zmconv_parcel_pbl should be set to .true.'
+ write(iulog,*)' when the bottom layer thickness is < ', dz_min
+ write(iulog,*)'********** WARNING **********'
+ end if
+ end if
+
no_deep_pbl = phys_deepconv_pbl()
!CACNOTE - Need to check errflg and report errors
call zm_convr_init(cpair, epsilo, gravit, latvap, tmelt, rair, &
diff --git a/src/physics/cam_dev/cam_snapshot.F90 b/src/physics/cam7/cam_snapshot.F90
similarity index 100%
rename from src/physics/cam_dev/cam_snapshot.F90
rename to src/physics/cam7/cam_snapshot.F90
diff --git a/src/physics/cam_dev/convect_diagnostics.F90 b/src/physics/cam7/convect_diagnostics.F90
similarity index 100%
rename from src/physics/cam_dev/convect_diagnostics.F90
rename to src/physics/cam7/convect_diagnostics.F90
diff --git a/src/physics/cam_dev/micro_pumas_cam.F90 b/src/physics/cam7/micro_pumas_cam.F90
similarity index 100%
rename from src/physics/cam_dev/micro_pumas_cam.F90
rename to src/physics/cam7/micro_pumas_cam.F90
diff --git a/src/physics/cam_dev/physpkg.F90 b/src/physics/cam7/physpkg.F90
similarity index 100%
rename from src/physics/cam_dev/physpkg.F90
rename to src/physics/cam7/physpkg.F90
diff --git a/src/physics/cam_dev/stochastic_emulated_cam.F90 b/src/physics/cam7/stochastic_emulated_cam.F90
similarity index 100%
rename from src/physics/cam_dev/stochastic_emulated_cam.F90
rename to src/physics/cam7/stochastic_emulated_cam.F90
diff --git a/src/physics/cam_dev/stochastic_tau_cam.F90 b/src/physics/cam7/stochastic_tau_cam.F90
similarity index 100%
rename from src/physics/cam_dev/stochastic_tau_cam.F90
rename to src/physics/cam7/stochastic_tau_cam.F90