Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents

...


This page contains a quickstart guide for building and using OpenIFS 48r1 at model version 48R1.0.

...

Info

Worked Example:

We explain the model installation and the process of running of a forecast experiment on the ECMWF HPC facility (hpc2020 Atos)

  • All data files and configuration scripts that are required for the worked example experiment described in this quickstart guide can be found on the ECMWF file system here:  /perm/openifs/oifs_data/48r1/example
  • The model will be installed into $HOME/openifs/openifs_48R1.0/
  • The example forecast experiment will be set up in directory $PERM/i4xc/

It is important to note that the installation process on hpc2020 will not directly translate to alternative systems

Extract the OpenIFS package

Create your local installation of OpenIFS 48R1.0 by cloning or branching from the git repository with the OpenIFS package. 

...

Note
  • You will need approximately 4 GB of disk space for the model sources, the bundle packages, and the built model binaries. 
  • Please note that currently access to this repository is restricted to a limited number of users only.

Set up the platform configuration file

The OpenIFS model requires a small number of Linux environment variables to be set for both installation and runs. These are referred to as global environment variables.

...

Info

Previous versions of the OpenIFS model also used a platform configuration file. Since OpenIFS 48r1 the number of variables set inside this file has been reduced to a bare minimum. At present, only the variables OIFS_HOME , OIFS_CYCLE , and OIFS_DATA_DIR  need to be set in this file. 

 Build OpenIFS

In the next step the model binary executable (and other helper programs) will be built.

OpenIFS build system

In contrast to earlier model versions, the building of OpenIFS 48r1 is no longer based on the FCM configuration manager, but uses from now on the ecbuild ECMWF build system that is also used for the ECMWF IFS model, and which uses CMake at its core.

OpenIFS 48r1 is further distributed with a software bundle which automatically installs many required software packages during the build process, such as for instance ecbuild, ecCodes, metkit, etc. Hence, a separate installation of these libraries is no longer required as they have now become part of the OpenIFS distribution. 

Starting the build process

The  $OIFS_HOME/bin/openifs-test.sh  script can be used to build the model and run initial tests. 

...

Code Block
languagebash
themeMidnight
[INFO]: Good news - ctest has passed
        openifs is ready for experiment and SCM testing
----------------------------------------------------------------
END ifstest on OpenIFS build

 Set up a forecast experiment

An example forecast experiment has been prepared for OpenIFS 48r1. The experiment ID is i4xc

...

Code Block
languagebash
themeMidnight
cd $PERM/i4xc/2016092500
cp $OIFS_HOME/bin/oifs-run .
cp $OIFS_HOME/bin/exp-config.h .
cp $OIFS_HOME/bin/run.ecmwf-hpc2020.job

Determine experiment parameters

Namelist:

  • You should edit the atmospheric model namelist file fort.4. It contains Fortran namelists which control model settings and switches.
  • An important switch to edit is in namelist NAMRIP the variable CSTOP. Set this to the desired length of the forecast experiment.
  • Experiment i4xc can be run for up to 144 hours (6 days) by setting CSTOP='h144'.

...

Code Block
languagebash
titleexp-config.h
OIFS_EXPID="i4xc"       # your experiment ID
OIFS_NPROC=8            # the number of MPI tasks
OIFS_NTHREAD=4          # the number of OpenMP threads
OIFS_GRIDTYPE="l"       # the grid type, either 'l' for linear reduced grid, or 'o' for the cubic octahedral grid
OIFS_RES="255"          # the spectral grid resolution
OIFS_NAMELIST='fort.4'  # the name of the atmospheric namelist file (the default is fort.4, so this line could be omitted)
OIFS_EXE="${OIFS_HOME}/build/bin/ifsMASTER.DP"  # the name and location of the model binary executable
OIFS_PPROC=true         # enable postprocessing of model output after the model run
OUTPUT_ROOT=$(pwd)      # folder where pproc output is created (only used if OIFS_PPROC=true). In this case an output folder is created in the experiment directory. 
LFORCE=false            # overwrite existing symbolic links in the experiment directory
LAUNCH=""               # the platform specific run command for the MPI environment (e.g. "mpirun", "srun", etc). 

Running the experiment

After all the necessary edits to the namelists (fort.4) and to the experiment configuration file (exp-config.h) have been completed the model run can be started.

Depending on the available hardware experiments can either be run interactively or as a batch job.

Running a batch job

This method is the preferred way to run OpenIFS, as it is more efficient and it allows more flexibility in using the available hardware resources. 

...

Info

The job wrapper script will read the exp-config.h file and adopt the selected values. The exceptions are LAUNCH, which is set to "srun" for batch jobs, and OIFS_NPROC & OIFS_NTHREAD for which values from the batch job headers are used.

Running interactively

On the ECMWF hpc2020, running the model script interactively should be fine for lower grid resolutions up to T255L91. 

...

Code Block
languagebash
themeMidnight
# run interactively:
cd $PERM/i4xc/2016092500
./oifs-run

Postprocessing

If in the exp-config.h file the OIFS_PPROC variable has been set to true (or if the --pproc command line parameter was used) then the model output in the experiment directory is further processed after completing the model run.

...

This postprocessing is required if the Metview Python script is to be used later to visualise the model output.

Plotting of model output

Here we describe in a brief summary how a small number of plots from the model results can be generated. This permits a first-order sanity check whether the model results look sensible.

...

  • On the ECMWF Virtual Desktop Interface (VDI) open a terminal, log into the hpc2020 with command:  ssh hpc-login
  • In the terminal start the Jupyter server on an interactive node, using the command:  ecinteractive -k
  • After the interactive node has started you will be given a weblink to connect to the Jupyterlab session ("To manually re-attach go to <weblink>").
  • Open a web browser (e.g. Chrome) inside the VDI and paste the weblink into the address field; this will connect to the Jupyter server.
  • Find $PERM/mv/ipynb/single.ipynb in the browser, open the Notebook and run all cells of the Notebook. 

Requirements

Further details on software requirements for OpenIFS (this is not required for ECMWF hpc2020)

...