diff --git a/.gitignore b/.gitignore
index fbccc45e74..6beb06fc54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ src/physics/silhs
src/physics/pumas
src/physics/pumas-frozen
src/dynamics/fv3/atmos_cubed_sphere
+src/hemco
libraries/FMS
libraries/mct
libraries/parallelio
diff --git a/Externals.cfg b/Externals.cfg
index 133bfa0561..45d8422403 100644
--- a/Externals.cfg
+++ b/Externals.cfg
@@ -3,15 +3,15 @@
#-----------------------------
[parallelio]
-tag = pio2_5_10
protocol = git
+tag = pio2_5_10
repo_url = https://github.com/NCAR/ParallelIO
local_path = libraries/parallelio
required = True
[mct]
-tag = MCT_2.11.0
protocol = git
+tag = MCT_2.11.0
repo_url = https://github.com/MCSclimate/MCT
local_path = libraries/mct
required = True
@@ -21,15 +21,15 @@ required = True
#-----------------------------
[ccs_config]
-tag = ccs_config_noresm0.0.13
protocol = git
+tag = ccs_config_noresm0.0.14
repo_url = https://github.com/NorESMhub/ccs_config_noresm.git
local_path = ccs_config
required = True
[cime]
-tag = cime6.0.105_noresm_v2
protocol = git
+tag = cime6.0.105_noresm_v4
repo_url = https://github.com/NorESMhub/cime.git
local_path = cime
required = True
@@ -39,8 +39,8 @@ required = True
#-----------------------------
[share]
-tag = share1.0.17_noresm_v1
protocol = git
+tag = share1.0.17_noresm_v1
repo_url = https://github.com/NorESMHub/NorESM_share
local_path = share
required = True
@@ -50,24 +50,24 @@ required = True
#-----------------------------
[cice6]
-tag = cesm_cice6_4_1_7_noresm_v1
protocol = git
+tag = cesm_cice6_4_1_7_noresm_v1
repo_url = https://github.com/NorESMhub/NorESM_CICE
local_path = components/cice
externals = Externals.cfg
required = True
[cdeps]
-tag = cdeps1.0.10
protocol = git
+tag = cdeps1.0.10
repo_url = https://github.com/NorESMhub/CDEPS.git
local_path = components/cdeps
externals = Externals_CDEPS.cfg
required = True
[cmeps]
-tag = cmeps0.14.32_noresm_v0
protocol = git
+tag = cmeps0.14.32_noresm_v2
repo_url = https://github.com/NorESMhub/CMEPS.git
local_path = components/cmeps
required = True
@@ -81,30 +81,30 @@ externals = Externals_CISM.cfg
required = True
[clm]
-tag = ctsm5.1.dev124-noresm_v1
protocol = git
+tag = ctsm5.1dev130-noresm_v1
repo_url = https://github.com/NorESMhub/CTSM
local_path = components/clm
externals = Externals_CLM.cfg
required = True
[mosart]
-tag = mosart1_0_48_noresm_v1
protocol = git
+tag = mosart1_0_48_noresm_v1
repo_url = https://github.com/NorESMhub/MOSART
local_path = components/mosart
required = True
[rtm]
-tag = rtm1_0_78
protocol = git
+tag = rtm1_0_78
repo_url = https://github.com/ESCOMP/RTM
local_path = components/rtm
required = True
[cam]
-local_path = .
protocol = externals_only
+local_path = .
externals = Externals_CAM.cfg
required = True
diff --git a/Externals_CAM.cfg b/Externals_CAM.cfg
index 539a9c7361..4a43ae2d5d 100644
--- a/Externals_CAM.cfg
+++ b/Externals_CAM.cfg
@@ -1,72 +1,80 @@
[chem_proc]
-local_path = chem_proc
protocol = git
-repo_url = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
tag = chem_proc5_0_05
+repo_url = https://github.com/ESCOMP/CHEM_PREPROCESSOR.git
+local_path = chem_proc
required = True
[carma]
-local_path = src/physics/carma/base
protocol = git
-repo_url = https://github.com/ESCOMP/CARMA_base.git
tag = carma4_00
+repo_url = https://github.com/ESCOMP/CARMA_base.git
+local_path = src/physics/carma/base
required = True
[cosp2]
-local_path = src/physics/cosp2/src
protocol = svn
-repo_url = https://github.com/CFMIP/COSPv2.0/tags/
tag = v2.1.4cesm/src
+repo_url = https://github.com/CFMIP/COSPv2.0/tags/
+local_path = src/physics/cosp2/src
required = True
[clubb]
-local_path = src/physics/clubb
protocol = svn
-repo_url = https://github.com/larson-group/clubb_release/tags/
tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag/src/CLUBB_core
+repo_url = https://github.com/larson-group/clubb_release/tags/
+local_path = src/physics/clubb
required = True
[silhs]
-local_path = src/physics/silhs
protocol = svn
-repo_url = https://github.com/larson-group/clubb_release/tags/
tag = clubb_4ncar_20221129_59cb19f_20230330_branchtag/src/SILHS
+repo_url = https://github.com/larson-group/clubb_release/tags/
+local_path = src/physics/silhs
required = True
[pumas]
-local_path = src/physics/pumas
protocol = git
-repo_url = https://github.com/ESCOMP/PUMAS
tag = pumas_cam-release_v1.29
+repo_url = https://github.com/ESCOMP/PUMAS
+local_path = src/physics/pumas
required = True
[pumas-frozen]
-local_path = src/physics/pumas-frozen
protocol = git
-repo_url = https://github.com/ESCOMP/PUMAS
tag = pumas_cam-release_v1.17_rename
+repo_url = https://github.com/ESCOMP/PUMAS
+local_path = src/physics/pumas-frozen
required = True
[ali_arms]
-local_path = src/physics/ali_arms
protocol = git
+tag = ALI_ARMS_v1.0.1
repo_url = https://github.com/ESCOMP/ALI-ARMS
-tag = ALI_ARMS_v1.0.0
+local_path = src/physics/ali_arms
required = True
[atmos_phys]
-tag = atmos_phys0_00_011
protocol = git
+tag = atmos_phys0_00_011
repo_url = https://github.com/NCAR/atmospheric_physics
-required = True
local_path = src/atmos_phys
+required = True
[camnor_phys]
-tag = camnor_noresm_v0.0.1
protocol = git
+tag = camnor_noresm_v0.0.3
repo_url = https://github.com/NorESMhub/CAM-Nor-physics
-required = True
local_path = src/physics/camnor_phys
+required = True
+
+[hemco]
+protocol = git
+tag = hemco-cesm1_2_0_hemco3_6_2_cesm
+repo_url = https://github.com/ESCOMP/HEMCO_CESM.git
+local_path = src/hemco
+required = True
+externals = Externals_HCO.cfg
[externals_description]
-schema_version = 1.0.0
+schema_version = 1.0.01
diff --git a/bld/config_files/definition.xml b/bld/config_files/definition.xml
index f286a6ff29..251669792a 100644
--- a/bld/config_files/definition.xml
+++ b/bld/config_files/definition.xml
@@ -46,14 +46,22 @@ Switch to turn on analytic initial conditions for the dynamics state:
0 => no
1 => yes.
+
+Model top specifier - set by compset definition
+ lt: ~ 40 km top
+ mt: ~ 80 km top
+
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, spcam_sam1mom, spcam_m2005.
+
+Physics package: cam3, cam4, cam5, cam6, cam_dev, held_suarez, adiabatic, kessler, tj2016, grayrad, spcam_sam1mom, spcam_m2005.
+
+
+Switch to turn on Harmonized Emissions Component (HEMCO) for chemistry: 0 => no, 1 => yes.
Option to turn on NorESM modifications to baseline CESM/CAM physics and dynamics
diff --git a/bld/configure b/bld/configure
index 724694f850..dce056db30 100755
--- a/bld/configure
+++ b/bld/configure
@@ -90,6 +90,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].
+ -model_top Specify the model_top option [ lt | mt ].
-nadv Set total number of advected species to .
-nadv_tt Set number of advected test tracers .
-nlev Set number of levels to .
@@ -98,7 +99,7 @@ OPTIONS
-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 |
- held_suarez | adiabatic | kessler | tj2016 |
+ held_suarez | adiabatic | kessler | tj2016 | grayrad |
spcam_sam1mom | spcam_m2005]. Default: cam6
-prog_species Comma-separate list of prognostic mozart species packages.
Currently available: DST,SSLT,SO4,GHG,OC,BC,CARBON16
@@ -270,6 +271,7 @@ GetOptions(
"max_n_rad_cnst=s" => \$opts{'max_n_rad_cnst'},
"mct_libdir=s" => \$opts{'mct_libdir'},
"microphys=s" => \$opts{'microphys'},
+ "model_top=s" => \$opts{'model_top'},
"mpi_inc=s" => \$opts{'mpi_inc'},
"mpi_lib=s" => \$opts{'mpi_lib'},
"nadv=s" => \$opts{'nadv'},
@@ -574,7 +576,7 @@ if ($print>=2) {
# Set flag to indicate a simple physics option
my $simple_phys = 0;
-if ($phys_pkg =~ m/^adiabatic$|^held_suarez$|^kessler$|^tj2016$/) {
+if ($phys_pkg =~ m/^adiabatic$|^held_suarez$|^kessler$|^tj2016$|^grayrad$/) {
$simple_phys = 1;
}
@@ -687,6 +689,18 @@ 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;
@@ -1559,6 +1573,8 @@ $nadv = $cfg_ref->get('nadv');
if ($print>=2) { print "Total advected constituents: $nadv$eol"; }
#-----------------------------------------------------------------------------------------------
+
+##-----------------------------------------------------------------------------------------------
# Makefile configuration #######################################################################
#-----------------------------------------------------------------------------------------------
@@ -1913,9 +1929,20 @@ if ($silhs == 1) {
$cfg_cppdefs .= ' -DSILHS';
}
+# Simple Models
+if ($simple_phys) { $cfg_cppdefs .= ' -DSIMPLE'; }
+
# UNICON
if ($unicon) { $cfg_cppdefs .= ' -DUSE_UNICON'; }
+# Harmonized Emissions Component (HEMCO)
+# These CPP definitions are used by HEMCO to recognize -
+# MODEL_ - HEMCO/GEOS-Chem components running in model environment
+# MODEL_CESM - ...within CESM
+# USE_REAL8 - HEMCO/GEOS-Chem should use real8 internal precision
+# HEMCO_CESM - indicates CESM model environment. Deprecated, will be removed soon.
+$cfg_cppdefs .= ' -DMODEL_ -DMODEL_CESM -DHEMCO_CESM -DUSE_REAL8 ';
+
#-----------------------------------------------------------------------------------------------
# CPP defines to put on Makefile
@@ -2125,6 +2152,21 @@ sub write_filepath
print $fh "$camsrcdir/src/ionosphere\n";
print $fh "$camsrcdir/src/chemistry/mozart\n";
+
+ print $fh "$camsrcdir/src/hemco\n";
+
+ # shared dependencies for HEMCO (Harmonized Emissions Component)
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Shared\n";
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Shared/Headers\n";
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Shared/GeosUtil\n";
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Shared/NcdfUtil\n";
+
+ # HEMCO source code directory paths from HEMCO external
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Core\n";
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Extensions\n";
+ print $fh "$camsrcdir/src/hemco/HEMCO/src/Interfaces/Shared\n";
+
+
print $fh "$camsrcdir/src/chemistry/utils\n";
if ($rad eq 'rrtmg') {
diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 0db8c5b711..dbeae32f17 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -78,6 +78,7 @@
atm/cam/inic/fv/f.e22.FC2010climo.f09_f09_mg17.cam6_2_022.001.cam.i.0016-01-01-00000_c200610.nc
atm/cam/inic/fv/f.e22.FC2010climo.f09_f09_mg17.cam6_2_022.001.cam.i.0016-01-01-00000_c200610.nc
atm/cam/inic/fv/f.e22.FC2010climo.f09_f09_mg17.cam6_2_022.001.cam.i.0016-01-01-00000_c200610.nc
+atm/cam/inic/fv/FC2000mam5_f10_0002-01-01_c221214.nc
atm/cam/inic/fv/cami-mam3_0000-01-01_0.9x1.25_L32_c141031.nc
atm/cam/inic/fv/cami-mam3_0000-01-01_1.9x2.5_L32_c150407.nc
atm/cam/inic/fv/cami-mam4_0000-01-01_10x15_L32_c170914.nc
@@ -123,10 +124,9 @@
atm/cam/inic/se/f.e22.FCnudged.ne0CONUSne30x8_ne0CONUSne30x8_mt12.cam6_2_032.002.cam.i.2013-01-01-00000_c200623.nc
atm/cam/inic/se/f.e22.FCnudged.ne30_ne30_mg17.release-cesm2.2.0_spinup.2010_2020.001.cam.i.2011-01-01-00000_L58_c220310.nc
atm/cam/inic/se/FCMTHIST_ne30pg3_1980-01-01_c221214.nc
-atm/cam/inic/fv/FC2000mam5_f10_0002-01-01_c221214.nc
-atm/cam/inic/se/FWsc_ne30pg3_58L_GRID_48_taperstart10km_lowtop_BL10_v3_beta1p75_Top_43km.nc
-atm/cam/inic/se/L93_ne30pg3_ne30pg3_mg17_450_short.cam.i.1979-01-07-00000.nc
+atm/cam/inic/se/FLT_L58_ne30pg3_IC_c220623.nc
+atm/cam/inic/se/cam7_FMT_ne30pg3_mg17_L93_c221118.nc
atm/cam/chem/trop_mozart/ic/cami_0000-09-01_4x5_L26_c060217.nc
atm/cam/chem/trop_mozart/ic/cami_0000-09-01_10x15_L26_c060216.nc
@@ -217,8 +217,12 @@
atm/cam/inic/gaus/cami_0000-09-01_8x16_L26_c030918.nc
atm/cam/inic/gaus/cami_0000-01-01_8x16_L30_c090102.nc
+atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L32_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L58_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_topo_ne3pg3_mg37_L93_01-01-31_c221214.nc
+atm/cam/inic/se/F2000climo_ne5pg3_mg37_L32_01-01-31_c230520.nc
+atm/cam/inic/se/F2000climo_ne5pg3_mg37_L58_01-01-31_c230520.nc
-atm/cam/inic/homme/cami-mam3_0000-01_ne5np4_L30.140707.nc
atm/cam/inic/se/ape_topo_cam4_ne16np4_L26_c171020.nc
atm/cam/inic/se/ape_topo_cam4_ne16np4_L30_c171020.nc
atm/cam/inic/se/ape_topo_cam4_ne16np4_L32_c171020.nc
@@ -236,6 +240,9 @@
atm/cam/inic/homme/cami-mam3_0000-01-ne240np4_L30_c111004.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L32_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L58_01-01-31_c221214.nc
+atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L93_01-01-31_c221214.nc
atm/cam/inic/se/ape_cam4_ne5np4_L26_c170517.nc
atm/cam/inic/se/ape_cam4_ne16np4_L26_c170417.nc
atm/cam/inic/se/ape_cam4_ne30np4_L26_c170417.nc
@@ -361,6 +368,24 @@
held_suarez_1994
moist_baroclinic_wave_dcmip2016
moist_baroclinic_wave_dcmip2016
+ moist_baroclinic_wave_dcmip2016
+
+
+
+ 1.0d-5
+ 3.21d-5
+ 1.0d0
+ 0.1d0
+ 0.310d0
+ 1.4d0
+ 6.0d0
+ 1.5d0
+ 0.1d0
+ 1.d7
+ 1.d0
+ 271.d0
+ 39.d0
+ 26.d0
@@ -691,6 +716,7 @@
3.00D-15
7.5D-16
3.0D-15
+ 30.D0
@@ -705,6 +731,8 @@
0.7D0
0.4D0
+0.30D0
+0.70D0
0.55D0
0.5D0
0.5D0
@@ -713,8 +741,17 @@
0.5D0
0.5D0
0.5D0
+
0.0625D0
+1.0D0
+0.5D0
+0.5D0
+
+1.0D0
+0.5D0
+0.5D0
+
0.03D0
@@ -745,9 +782,8 @@
.true.
.true.
.true.
-.true.
-.false.
-.false.
+.true.
+.false.
.false.
.false.
.false.
@@ -797,15 +833,15 @@
320x385
-atm/cam/coords/fv0.47x0.63_esmf_c210305.nc
-atm/cam/coords/fv0.9x1.25_esmf_c210305.nc
-atm/cam/coords/fv1.9x2.5_esmf_200428.nc
-atm/cam/coords/fv4x5_esmf_c210305.nc
-atm/cam/coords/ne5np4_esmf_20191204.nc
-atm/cam/coords/ne5np4.pg3_esmf_mesh_c210121.nc
-atm/cam/coords/ne16np4_esmf_c210305.nc
-atm/cam/coords/ne30np4_esmf_c210305.nc
-atm/cam/coords/ne30pg3_esmf_20200428.nc
+atm/cam/coords/fv0.47x0.63_esmf_c210305.nc
+atm/cam/coords/fv0.9x1.25_esmf_c210305.nc
+atm/cam/coords/fv1.9x2.5_esmf_200428.nc
+atm/cam/coords/fv4x5_esmf_c210305.nc
+atm/cam/coords/ne5np4_esmf_20191204.nc
+atm/cam/coords/ne5np4.pg3_esmf_mesh_c210121.nc
+atm/cam/coords/ne16np4_esmf_c210305.nc
+atm/cam/coords/ne30np4_esmf_c210305.nc
+atm/cam/coords/ne30pg3_esmf_20200428.nc
1.00D0
@@ -1859,8 +1895,10 @@
atm/cam/chem/trop_mam/atmsrf_ne3np4.pg3_cdf5_c221214.nc
+atm/cam/chem/trop_mam/atmsrf_ne5pg3_201105.nc
atm/cam/chem/trop_mam/atmsrf_ne5np4_cdf5_110920.nc
atm/cam/chem/trop_mam/atmsrf_ne16np4_cdf5_110920.nc
+atm/cam/chem/trop_mam/atmsrf_ne16pg3_c230520.nc
atm/cam/chem/trop_mam/atmsrf_ne30np4_cdf5_110920.nc
atm/cam/chem/trop_mam/atmsrf_ne30pg3_cdf5_180522.nc
atm/cam/chem/trop_mam/atmsrf_ne60np4_110920.nc
@@ -1995,6 +2033,7 @@
6.0
1.0
0.5
+ 0.1
0.5
4.2
0.0
@@ -2013,6 +2052,7 @@
1.25
0.25
0.3
+ 0.1
0.3
0.0
0.4
@@ -2023,7 +2063,7 @@
.true.
.false.
0.308
- 0.280
+ 0.280
0.270
0.32
2
@@ -2047,10 +2087,11 @@
.true.
.true.
.true.
- .false.
- .false.
+ .true.
+ .true.
.false.
.false.
+ .true.
.false.
.false.
.false.
@@ -2145,21 +2186,13 @@
1
0
1
- 400.D-6
-
- 2
- 0
- 1
- 500.D-6
- 390.D-6
- 200.D-6
-
- 3
- 0
- 1
- 500.D-6
- 390.D-6
- 200.D-6
+ 2
+ 0
+ 1
+
+ 3
+ 0
+ 1
.false.
.true.
@@ -2190,6 +2223,7 @@
1.D0
1.D0
+ 2.5D0
0.2D0
@@ -2199,7 +2233,7 @@
25.D-6
1.D0
- 1.D0
+ 0.5D0
1.D0
1.D0
@@ -2334,7 +2368,7 @@
0.55D0
0.22D0
0.70D0
-0.70D0
+0.80D0
0.8D0
0.8D0
0.8D0
@@ -2370,13 +2404,14 @@
-1.35D0
-1.62D0
-0.90D0
-1.00D0
-1.10D0
-1.2D0
-0.60D0
+1.35D0
+1.62D0
+0.90D0
+1.00D0
+1.5D0
+1.10D0
+1.2D0
+0.60D0
1.0D0
@@ -2980,12 +3015,12 @@
3.22D0
- 3
- 2
- 4
- 4
- 3
- 1
+ 3
+ 2
+ 4
+ 4
+ 3
+ 1
1
20
@@ -3012,9 +3047,9 @@
-1
- 1.25e5
- 1.0e6
- 1.0e6
+ 1.25e5
+ 1.0e6
+ 1.0e6
0.0
1.0
@@ -3034,18 +3069,18 @@
2
1
- 3
- 5
- 3
- 5
- 3
- 10
+ 3
+ 5
+ 3
+ 5
+ 3
+ 10
7
3
4
- 6
+ 6
3
-1
@@ -3140,6 +3175,17 @@
+
+ 'O3S_Loss = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
+ '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3'
+
+
+ 'O3S_Loss = 2.0*O_O3 + O1D_H2O + HO2_O + HO2_O3 + OH_O + OH_O3 + H_O3 + 2.0*NO2_O + 2.0*jno3_b + 2.0*CLO_O + 2.0*jcl2o2 + ',
+ '2.0*CLO_CLOa + 2.0*CLO_CLOb + 2.0*BRO_CLOb + 2.0*BRO_CLOc + 2.0*BRO_BRO + 2.0*BRO_O + CLO_HO2 + BRO_HO2 + S_O3',
+ 'SolIonRate_Tot = jeuv_1 + jeuv_2 + jeuv_3 + jeuv_4 + jeuv_5 + jeuv_6 + jeuv_7 + jeuv_8 + jeuv_9 + jeuv_10 + jeuv_11 + ',
+ 'jeuv_14 + jeuv_15 + jeuv_16 + jeuv_17 + jeuv_18 + jeuv_19 + jeuv_20 + jeuv_21 + jeuv_22 + jeuv_23',
+
+
'O3_Prod = NO_HO2 + CH3O2_NO + HOCH2OO_NO + C2H5O2_NO + CH3CO3_NO + EO2_NO + C3H7O2_NO + PO2_NO + ',
'RO2_NO + ENEO2_NO + MACRO2_NOa + jhonitr + ',
@@ -3291,4 +3337,31 @@
' C3H6_O3 + ISOP_O3 + MVK_O3 + MACR_O3 + MTERP_O3 + BCARY_O3 + S_O3 + SO_O3'
+
+.false.
+atm/cam/geoschem/emis/ExtData/HEMCO
+atm/cam/geoschem/emis/HEMCO_Config.CC.CEDS_AEIC19.NEx.c230615.rc
+atm/cam/geoschem/emis/HEMCO_Diagn.3_5_0.c230307.rc
+-1
+
+
+144
+91
+
+
+576
+361
+
+
+288
+201
+
+
+288
+201
+
+
+144
+91
+
diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml
index 14a8864857..01775aca60 100644
--- a/bld/namelist_files/namelist_definition.xml
+++ b/bld/namelist_files/namelist_definition.xml
@@ -53,6 +53,121 @@
This is an optional attribute that is mainly useful for variables
that have only a small number of allowed values.
-->
+
+
+
+ Minimum Wind Threshold for surface flux calculations which is
+ added to avoid possible cases that would result in a division by zero.
+ Default: 1.0d-5
+
+
+
+ Surface Roughness Length for surface drag calculation.
+ Default: 3.21d-5
+
+
+
+ Critical Richardson Number for stable mixing cutoff.
+ Default: 1.0
+
+
+
+ Surface Layer Fraction of boundary layer depth.
+ The prescribed fraction of the boundary layer depth
+ for surface interactions.
+ Default: 0.1
+
+
+
+ Frierson Albedo: Frierson's Net Solar Flux=> 938.4 = 1360*(1.-0.31)
+ The Frierson model prescribes a net solar flux which incorporated the
+ effects of albedo. Rather than adhering to this formulation, the net
+ solar flux is obtained by a more common practice of specifying an albedo
+ value. For the approximate (simple) solar flux of 1360 W m-2, the albedo
+ value of 0.31 yields the value used by Frierson.
+ Default: 0.31
+
+
+
+ Latitudinal Variation of Shortwave Radiation.
+ Shortwave radiation contains no seasonal/diurnal variations and has a
+ Latitudinal variation specified by DeltaS according to:
+ R_solar = (R_net/4)*[1 + DeltaS*P_2(Lat)]
+ where P_2 is the second Legendre polynomial.
+ Default: 1.4
+
+
+
+ Longwave Optical Depth at Equator.
+ The optical depths are specified as a function of Latitude to approximate
+ the effects of water vapor according to:
+ Tau_0 = Tau_eqtr + (Tau_pole - Tau_eqtr)*sin^2(Lat)
+ Default: 6.0
+
+
+
+ Longwave Optical Depth at Poles.
+ The optical depths are specified as a function of Latitude to approximate
+ the effects of water vapor according to:
+ Tau_0 = Tau_eqtr + (Tau_pole - Tau_eqtr)*sin^2(Lat)
+ Default: 1.5
+
+
+
+ Linear Optical Depth Parameter for stratosphere.
+ The pressure dependence of optical depths that approximate the effects of
+ water vapor varies according to:
+ Tau = Tau_0*[ LinFrac*(P/P_s) + (1-LinFrac)*(P/P_s)^4 ]
+ Default: 0.1
+
+
+
+ Ocean Mixed-Layer Heat Capacity.
+ The ocean surface is a slab mixed layer with a specified heat capacity in units of J K-1 m-2
+ Default: 1.e7
+
+
+
+ Scale Factor for E0 (saturation vapor pressure) to contol wet/dry experiments.
+ WetDryCoef=0 corresponds to the atmosphere in the dry limit.
+ Friersons wet limit corresponds to WetDryCoef=10.
+ Default: 1.
+
+
+
+ Tsrf Initial Condition: Minimum SST (K).
+ The ocean temperatures are initailized with the values:
+ T_s = Tmin + Tdlt*exp[-0.5*(Lat/Twidth)^2]
+ Default: 271.
+
+
+
+ Tsrf Initial Condition: Equator-Pole SST difference (K).
+ The ocean temperatures are initailized with the values:
+ T_s = Tmin + Tdlt*exp[-0.5*(Lat/Twidth)^2]
+ Default: 39.
+
+
+
+ Tsrf Initial Condition: Latitudinal width parameter for sst (degrees latitude)
+ The ocean temperatures are initailized with the values:
+ T_s = Tmin + Tdlt*exp[-0.5*(Lat/Twidth)^2]
+ Default: 26.
+
@@ -1411,6 +1526,12 @@ Frontogenesis function critical threshold.
Default: set by build-namelist.
+
+Width of gaussian used to create frontogenesis tau profile [m/s].
+Default: set by build-namelist.
+
+
Full pathname of Beres lookup table data file for gravity waves sourced
@@ -4762,7 +4883,7 @@ Default: TRUE
+ group="phys_ctl_nl" valid_values="cam3,cam4,cam5,cam6,adiabatic,held_suarez,kessler,frierson" >
Name of the CAM physics package. N.B. this variable may not be set by
the user. It is set by build-namelist via information in the configure
cache file to be consistent with how CAM was built.
@@ -4798,6 +4919,14 @@ cache file to be consistent with how CAM was built.
Default: set by build-namelist
+
+If TRUE then the Harmonized Emissions Component, HEMCO, will be used
+to calculate emissions in chemistry. ext_frc_specifier and srf_emis_specifier
+will be ignored.
+Default: FALSE
+
+
Runtime options of upper thermosphere WACCM-X. 'ionosphere' for
@@ -4929,6 +5058,44 @@ List of full pathnames of LTR electic potential inputs for both hemispheres.
Default: NONE.
+
+
+Full pathname of HEMCO data root for use in reading HEMCO input files.
+(e.g., '$DIN_LOC_ROOT/atm/cam/geoschem/emis/ExtData/HEMCO').
+Default: set by build-namelist.
+
+
+
+Full pathname of the HEMCO_Config.rc input file used to configure HEMCO.
+Default: set by build-namelist.
+
+
+
+Full pathname of the HEMCO_Diagn.rc input file used to configure HEMCO diagnostics.
+Default: set by build-namelist.
+
+
+
+Number of x-dimensions in HEMCO internal grid.
+Default: set by build-namelist.
+
+
+
+Number of y-dimensions in HEMCO internal grid.
+Default: set by build-namelist.
+
+
+
+Force emission year for HEMCO clock if positive. This will force cycling of data on this year.
+Default: set by build-namelist for climo cases, otherwise -1 to use model clock.
+
+
- CAM cam6 physics:
+ CAM cam6 physics:
CAM cam5 physics:
CAM cam4 physics:
CAM cam3 physics:
- CAM simplified and non-versioned physics :
+ CAM simplified and non-versioned physics :
CAM7 development physics:
+ With Harmonized Emissions Component (HEMCO) for chemistry:
+
-phys adiabatic
-phys adiabatic
-phys tj2016 -analytic_ic
+ -phys grayrad -analytic_ic
-phys held_suarez -analytic_ic
-phys kessler -chem terminator -analytic_ic -nadv_tt=6
@@ -295,6 +303,7 @@
dabi_p2004
held_suarez_1994
dctest_tj2016
+ dctest_frierson
dctest_baro_kessler
@@ -334,6 +343,8 @@
flbc_file='$DIN_LOC_ROOT/atm/waccm/lb/LBC_CMIP6_1pctCO2ramp_y1-165_0p5degLat_c180930.nc'
nlte_limit_co2=.true.
co2_cycle_rad_passive=.true.
+
+ use_hemco=.true.
rearth = 6.37122D6
diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml
index ba14ff840e..eb6e345561 100644
--- a/cime_config/config_compsets.xml
+++ b/cime_config/config_compsets.xml
@@ -56,12 +56,7 @@
- NFLT1850_TESTINGONLY_v0c
- 1850_CAM%DEV%NORESM%LT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
-
-
-
- NFLTHIST_v0c
+ NFLTHIST_v0d
HIST_CAM%DEV%LT%NORESM%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -90,12 +85,12 @@
- FLTHIST_v0c
+ FLTHIST_v0d
HIST_CAM%DEV%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
- FMTHIST_v0c
+ FMTHIST_v0d
HIST_CAM%DEV%MT%GHGMAM4_CLM51%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
@@ -339,11 +334,19 @@
FC2000climo
2000_CAM60%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FC2000climo_HCO
+ 2000_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FC2010climo
2010_CAM60%CCTS1_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FC2010climo_HCO
+ 2010_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FCHIST
@@ -365,6 +368,10 @@
FCfireHIST
HIST_CAM60%CFIRE_CLM50%BGC-CROP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FCHIST_HCO
+ HIST_CAM60%CCTS1%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FCnudged
@@ -374,6 +381,14 @@
FCts2nudged
HIST_CAM60%CCTS2%NUDG_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FCnudged_HCO
+ HIST_CAM60%CCTS1%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+
+ FCts2nudged_HCO
+ HIST_CAM60%CCTS2%NUDG%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FCSD
@@ -383,12 +398,21 @@
FCts2SD
HIST_CAM60%CCTS2%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FCSD_HCO
+ HIST_CAM60%CCTS1%SDYN%HEMCO_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
FSD
HIST_CAM60%SDYN_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV
+
+ FGRAYRAD
+ 2000_CAM%GRAYRAD_SLND_SICE_SOCN_SROF_SGLC_SWAV
+
+
FMOZ
2000_CAM40%TMOZ_CLM45%SP_CICE%PRES_DOCN%DOM_RTM_SGLC_SWAV
diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index d1f05ea1e2..3149a3f9d4 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -10,7 +10,7 @@
-
+
@@ -100,7 +100,7 @@
-
+