The MPAS-Seaice testing system consists of a series of python scripts that are used to test the MPAS-Seaice model.
> test_mpas-seaice.py [-h] -d MPASDEVELOPMENTDIR [-b MPASBASEDIR] [-t TESTSUITE] [-o DOMAINSDIR] [-a] [-c]
Name | Description |
---|---|
-h | Display the help screen which describes the available options. |
-d, --dev | Specify a path to the MPAS checkout to be tested. |
-b, --base | [optional]: Specify a path to the MPAS checkout to be. tested against, in the case of regression tests. If this option is not specified, only tests that do not require a base MPAS checkout to check against will be performed. |
-t, --testsuite | [optional, default: /testsuites/testsuite.standard.xml]: Specify the testsuite for the testing system to test with. |
-o, --domaindir | [optional, default: env variable MPAS_SEAICE_DOMAINS_DIR]: This specifies the domains directory for the system to use to get domain files to build testing cases with. |
-a, --avail | [optional]: List the tests that have been implemented. |
-c, --check | [optional]: This option set namelist options which will cause MPAS-Seaice to fail all the tests. This is for testing the testing system. |
The tests that will be performed are defined in a testsuite .xml file, stored in the testsuites directory in the testing system. Below is an example testsuite file that specifies the configurations (namelist and streams file), domains (grid, forcing and graph files) and tests that should be performed:
<?xml version="1.0" encoding="UTF-8"?> <testsuite name="standard"> <configuration name="standard_physics"> <domain name="domain_QU120km"> <test name="regression"/> <test name="parallelism"/> <test name="restartability"/> </domain> </configuration> </testsuite>
This example specifies a series of tests (regression, parallelism and
restartability) to be performed with the domain_QU120km domain and the
standard_physics configuration. Test suites are stored in
E3SM/components/mpas-seaice/testing_and_setup/testing
within the MPAS repo.
The testing system uses configurations (i.e. namelist and stream file pairs)
listed in the testsuite xml file in the test runs that it performs. The
files are stored in the repository at MPAS/testing_and_setup/configurations
.
The testing system uses domains listed in the testsuite xml file. The domain
provides grid, forcing and graph files for the testing runs. The system being
used must have a directory containg various domain directories. These
directories must contain get_domain.py
script files to allow the testing
system to set up runs.
- Regression: Bit reproducibility is tested between the dev and base MPAS checkouts.
2. Parallelism: Bit reproducibility is tested between different processor counts for the same dev MPAS checkout.
3. Restartability: Bit reproducibility is tested between a standard run and a run with a restart half way through.
Required python packages can be installed with Conda:
> conda create -n mpas_seaice python=3.6 > conda install -n mpas_seaice netCDF4 > conda install -n mpas_seaice -c conda-forge f90nml > conda install -n mpas_seaice -c anaconda colorama