Full-model Testing
Full model system testing of EAMxx is done via CIME test cases (much like the rest of E3SM).
We offer a number of test suites, including:
e3sm_eamxx_v1_lowres
- A handful of reasonably quickly-running tests run at
ultra-low-resolution (
ne4
grid).
- A handful of reasonably quickly-running tests run at
ultra-low-resolution (
e3sm_eamxx_mam4xx_v1_lowres
- Tests designed for the MAM4xx aerosol library and are separate from
the above (mostly
ne4
, though also includesne30
).
- Tests designed for the MAM4xx aerosol library and are separate from
the above (mostly
e3sm_eamxx_v1_dp-eamxx
1- A quickly-running test that employs the doubly-periodic (dp)
configuration of EAMxx at low-resolution (
ne30)
.
- A quickly-running test that employs the doubly-periodic (dp)
configuration of EAMxx at low-resolution (
e3sm_eamxx_v1_medres
- Tests intended to be a middle-ground (
ne30
) between the_lowres
and_hires
in that it is a more comprehensive test of capabilities than low-resolution but runs more quickly than high-resolution.
- Tests intended to be a middle-ground (
e3sm_eamxx_v1_hires
- A small number of larger, longer-running (high-resolution) tests to measure performance.
Note: See the collapsed section "Lists of Test Cases and Suites..." below for more information on these test suite configurations.
cd $repo/cime/scripts
./create_test e3sm_scream_v1_at --wait
cd $repo/cime/scripts
./create_test SMS.ne4_ne4.F2010-SCREAMv1 --wait
- There are many behavioral tweaks you can make to a test case, like
changing the run length, test type, etc.
- Most of this is not specific to EAMxx and works for any CIME case.
- This general information and much more can be found in the CIME docs.
EAMxx-specific Model Configuration
The main model-level configuration options for EAMxx are:
- grids
- compsets
- testmods
Common EAMxx Grids2
ne4_ne4
:3 ultra-low-resolutionne4pg2_ne4pg2
:3 ultra-low-resolution with phys gridne30_ne30
: low-resolutionne30pg2_ne30pg2
: low-resolution with phys gridne1024pg2_ne1024pg2
: ultra-high-resolution with phys grid
More information about grids may be found on this Confluence Page.
Common EAMxx Compsets
F2010-SCREAMv1
: V1 standard compset with EAMxx V1 atmosphereFIOP-SCREAMv1-DP
: V1 withdpxx
1F2010-SCREAMv1-noAero
: V1 without aerosol forcing
Full info on supported compsets may be found by taking a look at the EAMxx
config_compsets.xml
source file.
Common EAMxx Testmods
small_kernels
- Enable smaller-granularity kernels, which can improve performance on some systems.
scream-output-preset-{i}, i = 1,..., 6
- 6 output presets for EAMxx
- These turn some combination of our three output streams
(
phys_dyn
,phys
, anddiags
), various remaps, etc.
bfbhash
- Turns on bit-for-bit hash output.
- See this Confluence page for additional information.
Further Reading
Additional information about running EAMxx may be found at this webpage.
List of Selected Test Cases and Suites from cime_config/tests.py
"e3sm_eamxx_v1_lowres" : {
"time" : "01:00:00",
"inherit" : ("e3sm_eamxx_mam4xx_v1_lowres"),
"tests" : (
"ERP_D_Lh4.ne4_ne4.F2010-SCREAMv1.eamxx-output-preset-1",
"ERS_Ln9.ne4_ne4.F2000-SCREAMv1-AQP1.eamxx-output-preset-2",
"SMS_D_Ln9.ne4_ne4.F2010-SCREAMv1-noAero.eamxx-output-preset-3",
"ERP_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.eamxx-output-preset-4",
"ERS_D_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.eamxx-rad_frequency_2--eamxx-output-preset-5",
"ERS_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.eamxx-small_kernels--eamxx-output-preset-5",
"ERS_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.eamxx-small_kernels_p3--eamxx-output-preset-5",
"ERS_Ln22.ne4pg2_ne4pg2.F2010-SCREAMv1.eamxx-small_kernels_shoc--eamxx-output-preset-5",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-all_mam4xx_procs",
)
},
"e3sm_eamxx_mam4xx_v1_lowres" : {
"time" : "01:00:00",
"tests" : (
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-optics",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-aci",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-wetscav",
"SMS_D_Ln5.ne4pg2_oQU480.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-drydep",
"SMS_D_Ln5.ne30pg2_oECv3.F2010-SCREAMv1-MPASSI.eamxx-mam4xx-remap_emiss_ne4_ne30"
)
},
"e3sm_eamxx_v1_dp-eamxx" : {
"time" : "01:00:00",
# each test runs with 225 dynamics and 100 physics columns,
# roughly size of ne2
"tests" : (
"ERS_P16_Ln22.ne30pg2_ne30pg2.FIOP-SCREAMv1-DP.eamxx-dpxx-dycomsrf01",
"ERS_P16_Ln22.ne30pg2_ne30pg2.FIOP-SCREAMv1-DP.eamxx-dpxx-arm97",
"ERS_P16_Ln22.ne30pg2_ne30pg2.FIOP-SCREAMv1-DP.eamxx-dpxx-comble",
"ERS_P16_Ln22.ne30pg2_ne30pg2.FRCE-SCREAMv1-DP",
)
},
"e3sm_eamxx_v1_medres" : {
"time" : "02:00:00",
"tests" : (
"ERS_Ln22.ne30_ne30.F2010-SCREAMv1.eamxx-internal_diagnostics_level--eamxx-output-preset-3",
"PEM_Ln90.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-spa_remap--eamxx-output-preset-4",
"ERS_Ln90.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-small_kernels--eamxx-output-preset-5",
"ERP_Ln22.conusx4v1pg2_r05_oECv3.F2010-SCREAMv1-noAero.eamxx-bfbhash--eamxx-output-preset-6",
"ERS_Ln22.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-L128--eamxx-output-preset-4",
"REP_Ld5.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-L128--eamxx-output-preset-6",
"SMS.ne30pg2_EC30to60E2r2.WCYCLXX2010",
"ERS_Ln90.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-L128--eamxx-sl_nsubstep2",
)
},
# Used to track performance
"e3sm_eamxx_v1_hires" : {
"time" : "01:00:00",
"tests" : (
"SMS_Ln300.ne30pg2_ne30pg2.F2010-SCREAMv1.eamxx-perf_test--eamxx-output-preset-1"
)
}

spectral elements (blue boxes)
and Gauss-Legendre-Lobatto interpolation points (green dots).
-
An EAMxx compset configuration employing doubly-periodic lateral boundary conditions. ↩↩
-
See below for some additional details about Grid Nomenclature
Notes on Grid Nomenclature
The convention of E3SM and EAMxx is to characterize grids in terms of:
- The Number of spectral Elements (
ne<X>
) along each dimension (e.g., length and width) of a face of the "cubed sphere" model used to represent the earth.- That is, an
ne4_ne4
grid has 16 elements on each face of the cubed sphere. - As such, the number of elements tiling the cubed-sphere earth is
\(N_{\text{elements}} = N_{\text{sides}}\times [\text{ne}]^2 = 6 [\text{ne}]\). - Note that the grid resolution may be written denoting an
np<X>
term that indicates the number of Gauss-Legendre-Lobatto nodes used to discretize each dimension of the spectral element. - For
ne<X>
grids,np
is essentially fixed at 4 for modern E3SM, meaning each element is discretized on an 4\(\times\)4 grid. - Thus, the total number of GLL nodes discretizing the surface of the
cubed sphere is
\(N_{\text{points}} = N_{\text{elements}}\) \(\times \left([\text{np}] - 1\right)^2 + 2\)
- That is, an
- The Number of spectral Elements (
-
Note: The
ne4
(ultra-low resolution) grid is intended to only be used for unit testing or debugging. ↩↩