Skip to content

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).
  • e3sm_eamxx_mam4xx_v1_lowres
    • Tests designed for the MAM4xx aerosol library and are separate from the above (mostly ne4, though also includes ne30).
  • e3sm_eamxx_v1_dp-eamxx1
    • A quickly-running test that employs the doubly-periodic (dp) configuration of EAMxx at low-resolution (ne30).
  • 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.
  • 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.

Running a Test Suite
cd $repo/cime/scripts
./create_test e3sm_scream_v1_at --wait
Running a Single Test Case
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:

  1. grids
  2. compsets
  3. testmods

Common EAMxx Grids2

  • ne4_ne4:3 ultra-low-resolution
  • ne4pg2_ne4pg2:3 ultra-low-resolution with phys grid
  • ne30_ne30: low-resolution
  • ne30pg2_ne30pg2: low-resolution with phys grid
  • ne1024pg2_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 atmosphere
  • FIOP-SCREAMv1-DP: V1 with dpxx1
  • F2010-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, and diags), various remaps, etc.
  • bfbhash

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"
        )
}
Cubed-sphere-earth
Cubed-sphere representation of the earth depicting
spectral elements (blue boxes)
and Gauss-Legendre-Lobatto interpolation points (green dots).

  1. An EAMxx compset configuration employing doubly-periodic lateral boundary conditions. ↩↩

  2. 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\)

    ↩

  3. Note: The ne4 (ultra-low resolution) grid is intended to only be used for unit testing or debugging. ↩↩