Skip to content

Commit

Permalink
Merge pull request ESCOMP#1028 from brian-eaton/cam7
Browse files Browse the repository at this point in the history
cam6_4_001: Change name of physics package 'cam_dev' to 'cam7'
  • Loading branch information
brian-eaton authored Jun 26, 2024
2 parents ab476f9 + 2651067 commit 62110ab
Show file tree
Hide file tree
Showing 29 changed files with 508 additions and 283 deletions.
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
59 changes: 29 additions & 30 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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')) {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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.');
Expand Down Expand Up @@ -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');
Expand All @@ -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.');
}

Expand All @@ -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';
}
}

Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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');
Expand Down Expand Up @@ -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.');

Expand Down Expand Up @@ -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.');
Expand All @@ -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');
Expand Down Expand Up @@ -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.');
Expand Down Expand Up @@ -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'"));
Expand Down
4 changes: 2 additions & 2 deletions bld/config_files/definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ Option to turn on waccmx thermosphere/ionosphere extension: 0 => no, 1 => yes
<entry id="ionosphere" valid_values="none,wxie" value="none">
Ionosphere model used in WACCMX.
</entry>
<entry id="phys" valid_values="cam3,cam4,cam5,cam6,cam_dev,held_suarez,adiabatic,kessler,tj2016,grayrad,spcam_sam1mom,spcam_m2005" value="">
Physics package: cam3, cam4, cam5, cam6, cam_dev, held_suarez, adiabatic, kessler, tj2016, grayrad, spcam_sam1mom, spcam_m2005.
<entry id="phys" valid_values="cam3,cam4,cam5,cam6,cam7,held_suarez,adiabatic,kessler,tj2016,grayrad,spcam_sam1mom,spcam_m2005" value="">
Physics package: cam3, cam4, cam5, cam6, cam7, held_suarez, adiabatic, kessler, tj2016, grayrad, spcam_sam1mom, spcam_m2005.
</entry>
<entry id="hemco" valid_values="0,1" value="0">
Switch to turn on Harmonized Emissions Component (HEMCO) for chemistry: 0 => no, 1 => yes.
Expand Down
Loading

0 comments on commit 62110ab

Please sign in to comment.