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