...
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.
- cd oifs/make and build the model using the 'opt' build configuration.
- cp oifs/t21test and edit the file 'job'
...
- to change the line beginning:
export GRIB_SAMPLES_PATH=...
to match the location of your grib_api installation. The model will fail with an error if it cannot find the 'ifs_samples' directory in the grib_api installation. - cp namelists fort.4
The model will look for a file 'fort.4' to read its fortran namelists from. Run the model with a single task and single thread by executing the job script:
./job
If the run works you will see output like this:Code Block signal_drhook(SIGSYS=31): New handler installed at 0x4d06cf; old preserved at 0x0 MPL_BUFFER_METHOD: 2 0 16:03:46 STEP 0 H= 0:00 +CPU= 3.598 16:03:46 STEP 1 H= 0:10 +CPU= 0.535 16:03:47 STEP 2 H= 0:20 +CPU= 0.537 16:03:48 STEP 3 H= 0:30 +CPU= 0.537 16:03:48 STEP 4 H= 0:40 +CPU= 0.527 16:03:49 STEP 5 H= 0:50 +CPU= 0.526 16:03:49 STEP 6 H= 1:00 +CPU= 0.530
This model test only run 6 model steps.
If you see an error like this:
Code Block mpirun noticed that job rank 0 with PID 7429 on node elvira exited on signal 11 (Segmentation fault).
or
Code Block MEMORY FAULT
it is most likely because OpenIFS requries more 'stack' memory than your default setting. Sometimes, this can happen when increasing the number of OpenMP threads.
To solve the problem add the line:
Code Block ulimit -s unlimited
to the file job just before the mpirun line. This will increase the per-process stack memory limit to the maximum the operating system allows.
Acceptance testing