Versions Compared

Key

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

...

Section
Column
Info

OpenIFS includes a number of idealised configurations. In this article we explain how to:

  • setup and run a shallow-water model
  • set idealized (e.g. Rossby-Haurwitz wave) or real single level field.
  • enable semi-Lagrangian or Euler timestepping
  • create the initial fields

Configuration

The shallow-water (SW) configuration is one of several that exist in OpenIFS (and IFS). The configuration is set by the variable NCONF in namelist NAMCT0 (see yomct0.F90). The normal 3D primitive equation configuration uses NCONF=1.

For the 2D SW configuration, NCONF=201.

The 2D SW model can be initialised in various idealized states or from a single level real field. This initialisation is controlled by another variable, N2DINI in the namelist NAMCT0.

As these idealized configurations are primarily research tools, they may vary from one major model release to another and not all options found in the code are guaranteed to work.

N2DINI = 1 in NAMCT0 will initialise the Rossby-Haurwitz wave case (Williamson et al, J. Comput. Phys., 1992).
N2DINI = 3 in NAMCT0 will initialise the SW model with real fields read from GRIB.

The reader is invited to look in suspecb.F90 to see what other initialisation options as possible (N2DINI=42 does not work).

Although there is mention of NCONF=202 (the Vorticity Equation configuration) in the code, this does not work.

Warning
titleWarning: code changes required for OpenIFS 38r1

OpenIFS 38r1 (all versions) require code changes in order to be able to run with N2DINI=3 (initialized with real fields). Please see Code Changes below.

Column

Panel
bgColorwhite
titleBGColor#f0f0f0
titleOn this page...
Table of Contents

...

For more information about Metview please see Using Metview with OpenIFS or contact openifs-support@ecmwf.int.

Code changes

Warning

if running OpenIFS 38r1 (all versions), code changes are required before using the shallow water option initialized with real fields (N2DINI=3 & NCONF=201).

Changes are required because the shallow-water code uses older code for reading GRIB data that was omitted from OpenIFS before the shallow-water option was made available.

Required steps to enable shallow-water code option

  • Download the OpenIFS 38r1 shallow-water replacement source tarball: openifs38r1_sw_newsrc.tgz
    (this file is also available on the OpenIFS ftp site)
  • Make a backup copy of the OpenIFS source code  in the directory where the OpenIFS model files were unpacked:

    Code Block
    cp -r src src.orig
  • Delete some files that will be replaced:

    Code Block
    rm src/openifs/dummy/decops2.f90
    rm src/openifs/dummy/gribex.f90
    rm src/openifs/emos/pbio/emosnum.F
    rm src/openifs/emos/pbio/fortint.h
    rm -r src/openifs/emos/gribex		# delete entire 'gribex' director
  • To compile the code if using GNU/gfortran, it may be necessary to enable the use of cray pointers.
    Edit 'make/oifs.cfg' and change:

    Code Block
    oifs.prop{fc}       = $OIFS_FC

    to:

    Code Block
    oifs.prop{fc}       = $OIFS_FC -fcray-pointer

Code notes

Other switches related to the shallow-water model setup are used internally: LR2D & LRSHW.

...