Versions Compared

Key

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

...

Panel
bgColorwhite
titleBGColor#f0f0f0
titleCreating initial fields from existing GRIB files

The GRIB files from an existing experiment can also be used to create initial files for the shallow-water model. In the following example, the initial files from the T21 test case distributed with the OpenIFS tarfile are used.

Code Block
collapsetrue
#  Extract a single level (level 1) for the shallow water model
#  and change the experiment id in the file.

grib_copy -w level=1,shortName=vo ICMSHepc8INIT tmp
grib_set -s experimentVersionNumber=epc9 -w experimentVersionNumber=epc8 tmp vo.grb

grib_copy -w level=1,shortName=d  ICMSHepc8INIT tmp
grib_set -s experimentVersionNumber=epc9 -w experimentVersionNumber=epc8 tmp d.grb

grib_copy -w shortName=z          ICMSHepc8INIT z.grb

#  Combine the 3 files to form the spectral initial file
cat vo.grb d.grb z.grb > ICMSHepc9INIT

#  Create gridpoint file (stl1 is used in this example)
grib_copy -w shortName=stl1 ICMGGepc8INIT gg.grb
grib_set -s experimentVersionNumber=epc9 -w experimentVersionNumber=epc8 gg.grb ICMGGepc9INIT

Note that the initial fields themselves are not used with the idealized configurations. The initial files are there to correctly set the grid, hence stl1 is used in this example to get the initial gridpoint file.

...

Panel
bgColorwhite
titleBGColor#f0f0f0

The following MARS request will retrieve ERA-Interim vorticity, divergence and geopotential fields together with a gridpoint field that can be used to create the initial ICMSH and ICMGG files in a similar way to the above method.

Code Block
titleRetrieve spectral fields from MARS for shallow-water model
collapsetrue
retrieve,
  class="ei",
  type=an,
  stream=oper,
  date=20100212,
  time=12,
  step=0,
  expver=1,
  param=VOR/D/Z,
  levelist=1,
  levtype=ml,
  target="sh_ml"
Code Block
titleRetrieve gridpoint field from MARS for shallow-water model
collapsetrue
 retrieve,
  class="ei",
  type=an,
  stream=oper,
  date=20091227,
  time=12,
  step=0,
  expver=1,
  param=139,
  levelist=off,
  levtype=sfc,
  target="sfc_gg"

...

It is extremely important to correctly set the NAMELIST to configure the shallow-water model correctly. Two examples are given here, one for semi-Lagrangian advection, the other for Euler advection. Euler advection must use a regular gaussian grid. It will not work with a reduced grid. The users is free to alter some parameters such as the timestep, filtering etc.

The examples below show the variables to change from normal forecast settings.

Code Block
titlesemi-Lagrangian advection namelist
collapsetrue
code
Code Block
titleEuler advection namelist
collapsetrue
 !
!  Shallow-water model with Euler stepping
!
&NAMDYN
 TSTEP=300.0,               ! reduce timestep for Euler stepping
 REPS1=0.01,                ! turn on Asselin time-filtering coefficient
 REPS2=0.01,
 LHDIFFM=.false.,           !  horizontal diffusion on / off
 LSETTLS=.false.,           ! extrapolations in SL scheme
 LSETTLST=.false.,          ! ditto
/
&NAMCT0
 NCONF=201,                 ! model configuration: 201 = shallow-water (see yomct0.F90)
 LSLAG=.false.,             ! turn off semi-lagrangian scheme
 LTWOTL=.false.,            ! disable two-time-level SL scheme.
 LRFRIC=.false.,            ! turn off Rayleigh friction
 LSLPHY=.false.,            ! turn off split time-step physics
 LVERTFE=.false.,           ! turn off vertical finite element scheme
 N2DINI=1,                  ! initialise  1 = Haurwitz wave, 2 = real fields
 LSPRT=.false.,             ! if T temperature is 'virtual temperature'
 LFPOS=false,               ! turn off fullpos diagnostics, does not work with SW
 N3DINI=0,                  ! no 3D initialisation
 NSTOP=600,                 ! no. of steps to run
/
&NAEPHY
 LEPHYS=false,           ! turn off ECMWF Physics package (master switch)
 LERADI=false,           ! turn off radiation scheme
/
&NAMDYNA
 LGRADSP=.false.,        ! disable de-aliasing the pressure gradient term
/
&NAMDIM
  NUNDEFLD=0,            ! make sure uninitialised variables are all set to zero
/

 

Gotchas

Info
titleGRIB_GRIBEX_MODE_ON

 The model will fail unless the environment variable:

export GRIB_GRIBEX_MODE_ON=1

is set in the job script. This is because the shallow-water code does not go through the usual code path (if NCONF=1) and uses a older code to output.

Otherwise the model will crash at the first output attempt. Users will usually see a failure from the grib_api library (typically grib_set_real8_array).

...