-
Notifications
You must be signed in to change notification settings - Fork 5
Milestone: CMEPS 0.2
This milestone includes configurations of the Community Mediator for Earth Prediction Systems (CMEPS) with active ocean and sea ice components, options for both active and data atmosphere components, and a data runoff component. All components are coupled through National Unified Operational Prediction Capability (NUOPC) interfaces. Workflow is provided via the Common Infrastructure for Modeling the Earth (CIME), which includes the data models and automated tools for downloading associated forcing files; a case control system to manage configuration, compilation, and execution; and a NUOPC-compliant Driver and Mediator. All associated CIME and model component repositories are managed in the UFSCOMP umbrella repository.
The supported coupled applications are not scientifically validated in this milestone. This milestone demonstrates a methodology and set of workflow tools for development and testing of coupled modeling applications.
Component sets (compsets) are used extensively and provide a shorthand notation for known configurations of model components. This release includes multiple compsets, as detailed below, and each compset tests a different aspects of the coupled system in isolation. Some compsets are focused on testing an individual model component, such as the ocean model, and some compsets are focused on testing aspects of the coupling infrastructure itself, such as ensuring correct data flow and grid remapping through the Mediator. A capability enabling isolated and incremental development is the use of data models, which, in most cases, provide static data from files thereby eliminating coupling feedbacks in the system for diagnosing the behavior of one or more components. For example, the "I" compset is used to test the land model in isolation by forcing it with a data atmosphere component. The "DTEST" compset tests the ice model by forcing it with a data atmosphere and a data ocean model run in a mode that prognostically computes sea surface temperatures but does not include ocean dynamics. The "G" compset builds on the "DTEST" compset by introducing a fully active ocean model to interact with the sea ice, but leaving the data atmosphere for static meteorological forcings. The "X" compset includes only "dead" model components that provide analytical data in order to test grid remapping through the Mediator.
The milestone uses the CIME testing infrastructure to compare output from a suite of test cases against previously generated baselines. A complete list of tests appears below. Baselines, which include history output from the active components in a coupled run, are provided on the supported platforms. The CIME testing infrastructure builds and runs all of the tests and provides a PASS or FAIL status for each test against the baseline.
The milestone also demonstrates an approach to repository management in which a single umbrella repository maintains a set of links to individual component repositories such that strict versions of the constituent component codes can be downloaded with a single command. Ideally, the referenced repositories would be either the authoritative repository of the model component or a fork of the authoritative repository such that changes have a path back to the main development trunk, reducing the likelihood of code divergence and site-specific implementations of community models. This has not been fully achieved in this milestone because several of the model code branches are currently in the CESM development Subversion repository which requires special credentials. A workaround has been provided as we are working to fully resolve this. See the Limitations section below for more details.
This milestone has been tested successfully on these platforms:
- Cheyenne/NCAR
- Hobart/NCAR
- Theia/NOAA
Component sets or compsets are a shorthand for known configurations of model components. This milestone release includes the compsets listed below. More information about compsets and the compset naming convention is available in the CIME documentation.
- BMOM (2000_CAM40_CLM45%SP_CICE_MOM6_SROF_SGLC_SWAV): A fully coupled system with four active components: the Community Atmosphere Model (CAM) with version 4 physics, the Community Land Model (CLM) version 4.5, Los Alamos Sea Ice Model (CICE), and the Modular Ocean Model version 6 (MOM6).
- CMOM (2000_DATM%NYF_SLND_DICE%SSMI_MOM6_DROF%NYF_SGLC_SWAV): Active ocean (MOM6) forced by a data atmosphere with Coordinated Ocean-ice Reference Experiments version 2 (COREv2) Normal Year Forcings (NYF). The data ice component reads sea ice extent from Special Sensor Microwave Imager (SSMI) climatological data and computes a surface flux which is sent to the Mediator. The data river provides climatological normal year forcings.
- CMOM_IAF (2000_DATM%IAF_SLND_DICE%IAF_MOM6_DROF%IAF_SGLC_SWAV): Same as CMOM compset, but uses the COREv2 Interannual Forcings (IAF) instead of Normal Year Forcings.
- GMOM (2000_DATM%NYF_SLND_CICE_MOM6_DROF%NYF_SGLC_SWAV): Active ocean (MOM6) and ice (CICE) components forced by a data atmosphere and data river with COREv2 Normal Year Forcings.
- GMOM_IAF (2000_DATM%IAF_SLND_CICE_MOM6_DROF%IAF_SGLC_SWAV): Same as GMOM, but forcings are COREv2 Interannual Forcings.
- F2000Nuopc (2000_CAM40_CLM50%SP_CICE%PRES_DOCN%DOM_SROF_SGLC_SWAV): Active atmosphere (CAM with version 4.0 physics), active land (CLM version 5.0), prescribed sea ice (CICE), and a data ocean model with prescribed climatological SST and ice-coverage.
- I2000Clm50SpNuopc (2000_DATM%GSWP3v1_CLM50%SP_SICE_SOCN_SROF_SGLC_SWAV): Active land (CLM version 5.0) forced by a data atmosphere using Global Soil Wetness Project Phase 3 (GSWP3v1) forcings.
- DTEST (2000_DATM%NYF_SLND_CICE_DOCN%SOM_DROF%NYF_SGLC_SWAV_TEST): A compset with a data ocean in the slab ocean model mode (SOM), which computes a prognostic sea surface temperature and a freeze/melt potential (surface Q-flux) used by the sea ice model. This is used to test the ocean-ice interaction with the ice model in relative isolation and to test regridding in the Mediator.
- X (2000_XATM_XLND_XICE_XOCN_XROF_XGLC_XWAV): All dead components. This configuration used for testing data flow through the Mediator.
- A (2000_DATM%NYF_SLND_DICE%SSMI_DOCN%DOM_DROF%NYF_SGLC_SWAV): A compset with all data models. This is used to test the CIME infrastructure, especially when porting to new platforms.
A test suite is included with the milestone that automatically exercises all of the supported compsets and compares the output against previously generated baseline results on the supported platforms. Each test follows a naming convention defined by CIME. The full explanation of the test naming convention is available in the CIME documentation. Here we give a brief summary of the parts of the test naming convention relevant to this milestone. The general format for a test name is:
TESTTYPE[_MODIFIERS].GRID.COMPSET[.MACHINE_COMPILER[.TESTMODS]]
- All tests in this suite have TESTTYPE of
SMS
, which is a "smoke startup test." - The MODIFIERS
_Vnuopc
and_Vmct
refer to the use of the NUOPC/CMEPS infrastructure and the MCT infrastructure, respectively. The purpose of running both is to compare results of the NUOPC version against previously validated MCT versions. The _L options indicate the run length, e.g._Ld5
is a five day run and_Ln5
is a five timestep run. - The GRID specification is of the form
f19_g16
where thef19
indicates the atmosphere/land grid are on a 1.9x2.5 degree grid and theg16
indicates the ocean/ice are on 1 degree displaced pole grid. See the CIME user's guide for more information about available grids. - COMPSET is one of the supported component set aliases listed above.
-
MACHINE_COMPILER must be one of the supported combinations, i.e.,
cheyenne_intel
ortheia_intel
. -
TESTMODS adds user-specific modifications to the test such as namelist modifications or custom shell commands. For example, the
allactive-nuopc_cap_io
option turns on the history output for active components.
Tests |
---|
SMS_Vnuopc_Ld5.f19_g16.BMOM.cheyenne_intel.allactive-nuopc_cap_io |
SMS_Vmct_Ld5.f19_g16.BMOM.cheyenne_intel.allactive-nuopc_cap_io |
SMS_Vmct_Ld5.T62_g16.CMOM.cheyenne_intel.mom-nuopc_cap |
SMS_Vnuopc_Ld5.T62_g16.CMOM.cheyenne_intel.mom-nuopc_cap |
SMS_Vnuopc_Ld5.T62_g16.GMOM.cheyenne_intel.mom-nuopc_cap |
SMS_Vmct_Ld5.T62_g16.GMOM.cheyenne_intel.mom-nuopc_cap |
SMS_Vnuopc_Ln5.T62_g37.DTEST.cheyenne_intel.cice-nuopc_cap |
SMS_Vmct_Ln5.T62_g37.DTEST.cheyenne_intel.cice-nuopc_cap |
SMS_Vnuopc_Ln5.f19_g16.F2000Nuopc.cheyenne_intel.cam-nuopc_cap |
SMS_Vmct_Ln5.f19_g16.F2000Nuopc.cheyenne_intel.cam-nuopc_cap |
SMS_Vnuopc.f19_g16.X.cheyenne_intel |
SMS_Vmct.f19_g16.X.cheyenne_intel |
SMS_Vnuopc_Ld1.T31_g37_rx1.A.cheyenne_intel |
SMS_Vmct_Ld1.T31_g37_rx1.A.cheyenne_intel |
SMS_Vnuopc_Ln5.f45_f45_mg37.I2000Clm50SpNuopc.cheyenne_intel.clm-nuopc_cap |
SMS_Vmct_Ln5.f45_f45_mg37.I2000Clm50SpNuopc.cheyenne_intel.clm-nuopc_cap |
SMS_Vnuopc_Ln5.ne16_ne16_mg17.QPC4.cheyenne_intel.cam-nuopc_cap |
SMS_Vmct_Ln5.ne16_ne16_mg17.QPC4.cheyenne_intel.cam-nuopc_cap |
MOM6 is started at rest and uses initial temperature and salinity conditions from the World Ocean Atlas 2005 (WOA2005) dataset. These and other required input files are available on the supported platforms. In addition, if this milestone is ported to another platform, the CIME case control system will automatically retrieve input data from the CESM input data subversion repository.
CIME includes three NUOPC run sequences, one of which is selected depending on the compset. The default run sequence below is used by most compsets. In cases where the compset does not include a component (e.g., the CMOM compset does not include a land model) then phases involving that component are automatically removed from the run sequence, but the order of the phases does not change.
@1800 #ocean coupling step
MED med_phases_prep_ocn_accum_avg
MED med_connectors_prep_med2ocn
MED -> OCN :remapMethod=redist
@1800 # atmosphere coupling step
MED med_phases_prep_ocn_map
MED med_phases_aofluxes_run
MED med_phases_prep_ocn_merge
MED med_phases_prep_ocn_accum_fast
MED med_phases_ocnalb_run
MED med_phases_prep_lnd
MED med_connectors_prep_med2lnd
MED -> LND :remapMethod=redist
MED med_phases_prep_ice
MED med_connectors_prep_med2ice
MED -> ICE :remapMethod=redist
MED med_phases_prep_wav
MED med_connectors_prep_med2wav
MED -> WAV :remapMethod=redist
MED med_phases_prep_rof
MED med_connectors_prep_med2rof
MED -> ROF :remapMethod=redist
ICE
LND
ROF
WAV
ICE -> MED :remapMethod=redist
MED med_connectors_post_ice2med
MED med_fraction_set
LND -> MED :remapMethod=redist
MED med_connectors_post_lnd2med
ROF -> MED :remapMethod=redist
MED med_connectors_post_rof2med
MED med_phases_prep_glc
MED med_connectors_prep_med2glc
MED -> GLC :remapMethod=redist
MED med_phases_prep_atm
MED med_connectors_prep_med2atm
MED -> ATM :remapMethod=redist
ATM
GLC
WAV -> MED :remapMethod=redist
MED med_connectors_post_wav2med
GLC -> MED :remapMethod=redist
MED med_connectors_post_glc2med
ATM -> MED :remapMethod=redist
MED med_connectors_post_atm2med
MED med_phases_history
@
OCN
OCN -> MED :remapMethod=redist
MED med_connectors_post_ocn2med
@
For compsets that do not have an ocean model (i.e., the compset long name includes SOCN) the following run sequence is used.
@1800 # atmosphere coupling step
MED med_phases_prep_ice
MED med_connectors_prep_med2ice
MED -> ICE :remapMethod=redist
MED med_phases_prep_wav
MED med_connectors_prep_med2wav
MED -> WAV :remapMethod=redist
MED med_phases_prep_lnd
MED med_connectors_prep_med2lnd
MED -> LND :remapMethod=redist
MED med_phases_prep_glc
MED med_connectors_prep_med2glc
MED -> GLC :remapMethod=redist
MED med_phases_prep_rof
MED med_connectors_prep_med2rof
MED -> ROF :remapMethod=redist
ICE
LND
ROF
WAV
ROF -> MED :remapMethod=redist
MED med_connectors_post_rof2med
LND -> MED :remapMethod=redist
MED med_connectors_post_lnd2med
ICE -> MED :remapMethod=redist
MED med_connectors_post_ice2med
MED med_fraction_set
MED med_phases_prep_atm
MED med_connectors_prep_med2atm
MED -> ATM :remapMethod=redist
ATM
GLC
WAV -> MED :remapMethod=redist
MED med_connectors_post_wav2med
GLC -> MED :remapMethod=redist
MED med_connectors_post_glc2med
ATM -> MED :remapMethod=redist
MED med_connectors_post_atm2med
MED med_phases_history
@
When the compset includes an active atmosphere (CAM) and data ocean (DOCN), the following run sequence is used:
@1800 # atmosphere coupling step
MED med_phases_prep_ocn_accum_avg
MED med_connectors_prep_med2ocn
MED -> OCN :remapMethod=redist
MED med_phases_prep_lnd
MED med_connectors_prep_med2lnd
MED -> LND :remapMethod=redist
MED med_phases_prep_ice
MED med_connectors_prep_med2ice
MED -> ICE :remapMethod=redist
ICE
LND
OCN
OCN -> MED :remapMethod=redist
MED med_connectors_post_ocn2med
ICE -> MED :remapMethod=redist
MED med_connectors_post_ice2med
MED med_fraction_set
MED med_phases_prep_ocn_map
MED med_phases_aofluxes_run
MED med_phases_prep_ocn_merge
MED med_phases_prep_ocn_accum_fast
MED med_phases_ocnalb_run
LND -> MED :remapMethod=redist
MED med_connectors_post_lnd2med
MED med_phases_prep_atm
MED med_connectors_prep_med2atm
MED -> ATM :remapMethod=redist
ATM
ATM -> MED :remapMethod=redist
MED med_connectors_post_atm2med
MED med_phases_history
@
Validation was performed on the fully coupled system (BMOM compset) by comparing MOM6 forcings and prognostic output of the NUOPC-based system against the same runs using the MCT-based coupler, which was previously validated. Each plot below has two panels: the top panel shows a variable from the MCT-based run and the bottom panel shows a variable from the NUOPC-based run. Data for the plots is taken from the standard MOM6 diagnostic and history files. All plots are shown at day 5 and indicate strong similarity under visual comparison.
Figure 1.a: Comparison of taux |
Figure 1.b: Comparison of tauy |
Figure 1.c: Comparison of precipitation |
Figure 1.d: Comparison of shortware radiation |
Figure 1.e: Comparison of sensible heat flux |
Figure 1.f: Comparison of latent heat flux |
Figure 2.a: Comparison of u velocity |
Figure 2.b: Comparison of v velocity |
Figure 2.c: Comparison of potential temperature |
Figure 2.d: Comparison of salinity |
CESM is in the process of transitioning all of their model components from private Subversion repositories into public Git repositories on GitHub. During this transitional period, three repositories are not yet available publicly: CAM, CLM, and CICE. This creates an issue for community members who which to download and run this milestone but do not have CESM Subversion access. Therefore, as a stop gap solution, local copies of the affected component repositories are provided on the supported platforms. The only change in workflow required is to use the appropriate Externals.MACHINE.cfg file instead of the default Externals.cfg file when running checkout_externals. The machine-specific externals specification points to the local copies of the respective component repositories. Details for how to reference this file are provided in the instructions below. The aim in the next release is to ensure at least read-only access to all component repositories without requiring special credentials.
CIME automatically downloads needed datasets such as forcing files and files containing grid remapping weights. There are several supported protocols for retrieving these datasets, including Subversion, GridFTP, ftp, and wget. However, the Theia machine does not allow general outbound access via these protocols, so CIME is not able to retrieve this data. As a workaround, all required input data for the supported compsets and tests have been provided in a local directory on Theia. In the future, we will consider how to better support automatic retrieval on input data on Theia, including working with Theia system administrators to see if access can be opened for a trusted site that includes input data for community components. More information about CIME's input data tools can be found in the CIME User's Guide.
No attempt has been made to optimize the included compsets/tests for performance. The test runs have logs set to a high level of verbosity for debugging and diagnostics, leading to a large amount of I/O.
# Clone UFSCOMP
$ git clone https://github.com/ESCOMP/UFSCOMP.git
$ cd UFSCOMP
$ git checkout cmeps_v0.2
# Check out all model components and CIME
# IMPORTANT NOTE: If you have CESM SVN developer access, use the default
# Externals.cfg by running this command:
$ ./manage_externals/checkout_externals
# If you do NOT have CESM SVN developer access, local copies of CAM,
# CLM, and CICE are provided on each supported platform.
# On Cheyenne use:
$ ./manage_externals/checkout_externals -e Externals.Cheyenne.cfg
# On Theia use:
$ ./manage_externals/checkout_externals -e Externals.Theia.cfg
# Set environment
$ export CIME_MODEL=cesm
$ export PROJECT=<your project> # account to charge for run
# Build and run test suite
$ cd cime/scripts
# Command on Cheyenne:
$ qcmd -- ./create_test --xml-testlist ./testlist_cmeps.xml --xml-category prealpha --xml-machine cheyenne --test-id cmepsv02
# Command on Theia:
$ ./create_test --xml-testlist ./testlist_cmeps.xml --xml-category prealpha --xml-machine theia --test-id cmepsv02