...
Section | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Test directory
The directory oifs/t21test
contains a number of files:
...
ref_021_0144
This file is reference output for the model tests. The model can be run in 'reference' mode where it checks it is working correctly by comparing some mathematical norms against these files. Reference runs are described in more detail under 'Acceptance testing' below.
Test integrations
A number of short model runs are recommended to verify the model is working correctly. Once you have compiled the model without errors, follow these steps.
These tests will ensure the model can run with multiple OpenMP threads, with MPI tasks and in mixed OpenMP/MPI mode. A further acceptance test can be run which compares the model output on your machine with reference data obtained from machines at ECMWF.
Serial : single task, single thread.
a) Build the model in the oifs/make
directory. Use the optimized ('opt') build configuration. If you find these tests do not work with this configuration, use the 'noopt' configuration and then experiment by raising the optimization level.
...
This test runs only 6 timesteps.
Model output
The model writes its output to a several files.
...
ifs.stat is a small file that prints the model steps, time taken for each step and a 'norm' measure. This file can be usually ignored but is useful for debugging.
Likely errors
The model will fail with an error if it cannot find the 'ifs_samples
' directory in the grib_api installation:
...
If the model still fails, contact openifs-support@ecmwf.int for assistance.
Parallel: 2 threads and 2 tasks
These next short tests verify the model works correctly with either OpenMP parallel threading, MPI tasks and both and follow on from the serial tests above.
...
and again look in the NODE_001.01 output file for the line: "NUMBER OF TASKS 2
" to verify that two MPI tasks was used.
Mixed mode: OpenMP and MPI
If the short tests above succeed, edit 'job' again and change OMP_NUM_THREADS back to 2 without changing NPROC. Rerun 'job' and confirm that 2 threads and 2 tasks was used in the NODE file and the run was successful. You may not be able to do this test if your computer does not have sufficient processing power.
If all these technical tests work, perform the acceptance test below to ensure that the numerical results from the model are as expected. It's strongly recommended this test is completed before proceeding to work with the model for development or production.
Acceptance testing
The final step is to check the model is producing the numerical answers within acceptable limits, even if it runs the short tests above without failing. OpenIFS includes code that will compute internal statistical norms and compare against numbers supplied by ECMWF. The file: ref_021_0144
in the t21test
directory contains statistical norms computed by the model run at ECMWF.
...
As long as the model reports 'calculations are correct' the model is behaving satisfactorily in your compilation and run environment. However, note that the ref_021_0144 file was generated by using the GNU compilers. If you use a different compiler such as Intel, you will see a larger maximum error value.
Generating validation tests
To generate additional validation tests to produce your own ref* files, use the namelist switch:
...