Test files

This section describes the configuration and data files that accompany the repository. The configuration files can be found in mpas-bundle/mpas-jedi/test/testinput and mpas-bundle/mpas-jedi/test/testinput/namelists. The actual data files for JEDI-MPAS 1.0.0 release are downloaded from UCAR Digital Asset Services Hub (DASH <https://dashrepo.ucar.edu/dataset/147b_jcsda.html>). They include the CRTM coefficient files and test files for IODA, UFO, SABER, and MPAS-JEDI. mpas_get_ufo_test_data, mpas_get_crtm_test_data, and mpas_get_mpas-jedi_test_data tests also check if the necessary test data is in place for MPAS-JEDI ctest.

yaml configuration files

The directory mpas-bundle/mpas-jedi/test/testinput contains a number of yaml files for configuring various tests and applications with a 480km MPAS mesh using MPAS-JEDI. These serve as examples for users to configure their own applications.

Data Assimilation Applications

3denvar_bumploc_bumpinterp.yaml is an example of pure 3DEnVar with a 5-member ensemble background error covariance and diagnosed horizontal localization scales (see parameters_bumploc.yaml below) and using BUMP utilities for spatial interpolation of model fields.

3denvar_bumploc_unsinterp.yaml is the same as 3denvar_bumploc_bumpinterp.yaml, except for using an unstructured interpolation with barycentric weights, which is available from OOPS repository.

3denvar_2stream_bumploc_unsinterp.yaml is the same as 3denvar_bumploc_bumpinterp.yaml, except for using the 2-stream state initialization method. More information about 2-stream state initialization is available in the Geometry class documentation.

3denvar_dual_resolution.yaml is an example of pure 3DEnVar with a finer resolution state (at 384 km) and coarse resolution increment (at 480 km).

3dfgat.yaml is an example of the First Guess at Appropriate Time using three time slots.

3dvar.yaml is a 3DVar example with the Identity background error covariance.

3dvar_bumpcov.yaml and 3dvar_bumpcov_rttovcpp.yaml are 3DVar examples with the BUMP-estimated univariate background error covariance. 3dvar_bumpcov.yaml uses the CRTM observation operator to simulate the radiance observation, while 3dvar_bumpcov_rttovcpp.yaml uses the RTTOV observation operator.

3dhybrid_bumpcov_bumploc.yaml is for hybrid-3DEnVar.

4denvar_bumploc.yaml is the configuration for pure 4DEnVar with 5 ensemble members at 3 time slots with BUMP used for covariance localization. 4denvar_ID.yaml is similar to 4denvar_bumploc.yaml but without localization.

eda_3dhybrid.yaml and eda_3dhybrid_1-4.yaml performs a 5-member ensemble of hybrid-3DEnVar analyses.

HofX Applications

HofX takes the model and observation input and computes the model-counterpart of observations using the forward observation operators implemented in UFO. Quality control filters can optionally be applied in HofX applications. This type of application could be used for verifying a model forecast against observations.

hofx3d.yaml uses a model state pre-generated from the separate MPAS forecast application.

hofx3d_rttovcpp.yaml is the same as hofx3d.yaml, except for using the RTTOV observation operator only.

hofx.yaml includes the step of the model forecast.

enshofx.yaml and enshofx_1-5.yaml are used to execute a 5-member ensemble of HofX applications. This test is currently disabled.

Estimate background error covariances and localization using BUMP

parameters_bumpcov.yaml is for estimating the static background error covariance from 5-member ensemble samples.

parameters_bumploc.yaml is for estimating the ensemble localization length scales from 5-member ensemble samples.

Unit Tests and Other Applications

geometry.yaml: Unit test for the Geometry class.

model.yaml: Unit test for the Model class.

state.yaml: Unit test for the State class.

increment.yaml: Unit test for the Increment class.

errorcovariance.yaml: Unit test for the background error covariance class.

dirac_bumpcov.yaml: Dirac test using the static background error covariance.

dirac_bumploc.yaml: Dirac test using the ensemble background error covariance with localization.

dirac_noloc.yaml: Dirac test using the ensemble background error covariance without localization.

linvarcha.yaml: Unit test for the Linear Variable Change class.

forecast.yaml: Run a MPAS model forecast inside JEDI.

getvalues_bumpinterp.yaml and getvalues_unsinterp.yaml: Unit test for the GetValues class using BUMP utilities and unstructured interpolation from OOPS for spatial interpolation of model fields, respectively.

lineargetvalues.yaml: Unit test for the LinearGetValues class.

convertstate_bumpinterp.yaml and convertstate_unsinterp.yaml: Application test to convert the state between two geometries with different resolutions using BUMP interpolation or unstructured interpolation, respectively.

rtpp.yaml : Application test for relaxation to prior perturbation (RTPP) inflation.

gen_ens_pert_B.yaml: Application test to generate the randomized perturbations based on the background error covariance, and then run a model forecast. This test is currently disabled.

MPAS fixed input files

When the mpas-bundle is built, MPAS model-required static and climatology files are downloaded and placed under ~build/_deps/mpas_data-src/atmosphere/physics_wrf/files/, including CAM_*.DBL, OZONE_*.TBL, RRTMG_*, SOILPARM.TBL, GENPARM.TBL, VEGPARM.TBL. They are copied in the ~build/mpas-jedi/test directory during the build phase of mpas-jedi. (See mpas-bundle/mpas-jedi/test/CMakeLists.txt.)

MPAS model grid (480km) partition file x1.2562.graph.info.part.2 is also needed to test mpas-jedi with 2 processors.

MPAS model namelist examples (384km/namelist.atmosphere_2018041500, 480km_2stream/namelist.atmosphere_2018041500, 480km/namelist.atmosphere_2018041421, and 480km/namelist.atmosphere_2018041500) and MPAS stream files (384km/streams.atmosphere, 480km_2stream/streams.atmosphere, 480km/streams.atmosphere, stream_list.atmosphere.diagnostics, stream_list.atmosphere.output, stream_list.atmosphere.surface) for controlling model I/O are also provided under mpas-bundle/mpas-jedi/test/namelists directory.

Users should consult the MPAS model’s documentation (https://mpas-dev.github.io/) to understand namelist settings.

Dynamic input files

When running data assimilation (or other) applications, it is necessary to provide a background or restart state from which to initialize the system. The files that are required of course depend on the applications. mpas-bundle/mpas-jedi-data/testinput_tier_1 includes the dynamic input files required for Tier 1 ctest.


For most ctests, a single global MPAS restart file (480km/bg/restart.2018-04-14_21.00.00.nc or 480km/bg/restart.2018-04-15_00.00.00.nc) serves as the background state. For 4DEnVar test, three files (including 480km/bg/restart.2018-04-15_03.00.00.nc) are used to represent the time-dependent background state.

384km/init/x1.4002.init.2018-04-15_00.00.00.nc is used as the fine resolution background state for dual-resolution test.

To test the 2-stream state initialization method, 480km_2stream/mpasout.2018-04-15_00.00.00.nc and 480km_2stream/x1.2562.init.2018-04-14_18.00.00.nc are included to provide the time-dependent and time-independent variables, respectively.


If running with ensemble applications (3D/4DEnVar or EDA) an ensemble must also be provided. There are examples of the ensemble files included in 480km/bg/ensemble/mem01-05. Five-member ensemble files are provided at three times to support 4DEnVar applications.

Dynamic output files

When the system runs it will produce several types of output files. Directories need to be created ahead of time in order to house this data.


When running either HofX or data assimilation applications it will produce hofx output containing several quantities in observation space. An example of how this output is set is below. Note that in the testing the files go to ~build/mpas-jedi/test/Data/os. In practice users can specify the file name and select where they would like the data to be output.

    type: H5File
    obsfile: Data/os/obsout_hofx3d_sondes.nc4


When estimating the background error-related parameters with BUMP (parameters_bumpcov.yaml or parameters_bumploc.yaml above), it will write out the statistics to files under ~build/mpas-jedi/test/Data/bump. In many cases these kinds of files produced by BUMP will be static and not generated except when first setting up an experiment. When running applications involving BUMP, the user can choose where this data is stored. The yaml snippet below shows how the path and filenames for BUMP output are set.

  prefix: Data/bump/mpas_parametersbump_loc


When running a data assimilation application it will write out analysis file(s) to disk, which is in the same MPAS NetCDF format. The code below shows how to set the analysis file name.

  filename: "Data/states/mpas.3denvar_bumploc_bump.$Y-$M-$D_$h.$m.$s.nc"