FE 13 - COSMO-Model System: Interpolation Program INT2LM

Documentation of the Changes in INT2LM 1.7

26.11.2007

Version 1.7 of the interpolation program INT2LM is available since end of November 2007. This short guide gives an overview on the main modifications, the changes in the Namelists and the results. The main subjects of the new version are the developments for very high-resolution runs with the COSMO-Model and the extensions for the climate mode. While all modifications for the high-resolution runs have been intensively tested at DWD and other COSMO centers for about a year now, the extensions for the climate mode are still in the testing phase. Therefore it is not recommended to use this version as preprocessor for the COSMO-CLM, the climate mode of the COSMO-Model. Development and testing for this mode is going on and an updated version will be delivered as soon as possible.

Contents:

  1. Modifications since Version 1.4
  2. Modifications in Module mpe_io.f90 for Little Endian Machines
  3. Changes in the Namelists
  4. Changes of the Results

1. Modifications since Version 1.4

Developments for Runge-Kutta high-resolution runs

Back to Contents

Introduction of Ensemble Mode

The ensemble mode has been introduced into INT2LM to provide (different) boundary conditions for the ensemble members of the COSMO-Model. The ensemble member ID, the ensemble type and the total number of ensemble members are set and written to the corresponding grib headers.

The ensemble mode is controlled by a new Namelist switch leps_bc in the group /CONTRL/. Default is .FALSE. If leps_bc = .TRUE., a new Namelist group /EPSCTL/ is read which contains the following namelist parameters:

Name Meaning Default
iepsmem_bc ID of the member in the ensemble of boundary conditions
(meaningful value ≥ 0)
-1
iepstyp_bc ID of the boundary ensemble generation type
(meaningful value ≥ 0)
-1
iepstot_bc total number of boundary ensemble members
(meaningful value ≥ 0)
0
lchk_bc_typ if .TRUE., check member ID of input data
(only if leps_bc=.TRUE.)
.FALSE.

There is a new data module (data_epsctl.f90) and the following modules have been modified:

Back to Contents

Introduction of a smooth transition of orography at the lateral boundaries

If the orographies of the coarse grid and the fine grid differ too much in the vicinity of the lateral boundaries, problems can occur during the simulation. To avoid these, a smooth transition of the fine orography to the coarse one has been implemented. This can be controlled by the new Namelist variables:

Name Meaning Default
llbc_smooth If .TRUE., run with a smooth orography transition at the lateral boundaries. .FALSE.
nlbc_smooth Number of grid points for smooth orography transition at the lateral boundaries. 20

Back to Contents

Extensions for climate mode

Another major upgrade for INT2LM is the implementation of the climate mode. The main subjects are the introduction of NetCDF as I/O format (described below) and the provision of the slowly varying parameters (like plant characteristics) also in the boundary values.

Back to Contents

Extensions for chemistry

Another option that has been added to INT2LM is the possibility of interpolating additional fields for chemistry variables to the fine grid. This is only implemented for option llm2lm and is controlled with the Namelist variable:

Name Meaning Default
l_chemistry if .TRUE., interpolate additional chemistry fields .FALSE.

The metadata of the additional fields are declared in Grib Tables 241 and 242. If l_chemistry=.TRUE., all fields from these 2 tables, which are in the input data set, are read, interpolated to the fine grid and written to the output data field. If fields from these tables are not in the input data set, only a warning is given, no other action is done.

Back to Contents

Changes for I/O and Introduction of NetCDF

Back to Contents

Some (minor) modifications and extensions

There were more modifications and extensions, which are described briefly here.

Back to Contents

Bug Corrections

As usual, there have been several bug fixes.

Back to Contents


2. Modifications in Module mpe_io.f90 for Little Endian Machines

There was a problem with writing the proper structure of GRIB records on little endian machines (most Linux machines). If the number of bytes for a GRIB record did not fit into a full integer word (which is 4 bytes long), the last bytes were lost, leading to a corrupt GRIB end section: only 77 instead of 7777 were present in the GRIB record.

This is due to the different byte ordering by little endian (counting from right to left, instead from left to right). On big endian machines, the representation of a GRIB record in the machine has the form (note especially the last 2 integer words):

| G | R | I | B | | x | x | x | x | .... | x | x | 7 | 7 | | 7 | 7 | y | y |

where x is any information belonging to the GRIB record and y is not belonging to the GRIB record any more.

On little endian machines, the representation of each integer word is just reversed:

| B | I | R | G | | x | x | x | x | .... | 7 | 7 | x | x | | y | y | 7 | 7 |

Within mpe_io.f90, the bytes are organized in an integer array, but they are send via Message Passing Interface using the MPI_BYTE data type and the correct length of the GRIB record. The result is, that from the last integer word, only the two bytes containing yy are send, but not the two necessary bytes containing 77. When writing the data to disk, the little endian byte numbering is reversed, so that the GRIB record really is identical to the big endian version. But the last two bytes are not correct.

This problem is now by-passed by just sending additional bytes, in order to transfer the whole last integer word of the GRIB record. A modified version of mpe_io.f90 is included in the new INT2LM version and also in the new version of the COSMO-Model.

Back to Contents


3. Changes of the Namelists

Changes in existing groups:

Group /CONTRL/

Name Meaning Default
lprog_qrqs Interpolate qr, qs to the fine grid .FALSE.
lprog_qg Interpolate qg to the fine grid .FALSE.
lxso_first Extra smoothing of orography before low-pass filtering .FALSE.
ilow_pass_xso Type of low-pass filter for extra smoothing of steep orography 0
numfilt_xso Number of sequential applications of xso-filter 1
ilow_pass_oro Type of low-pass filter for orography filtering 1
numfilt_oro Number of sequential applications of orography-filter 1
ifill_valley Type of valley filling 0
rfill_valley Mask for valley filling 0.0_ireals
llbc_smooth to run with a smooth orography transition at lateral boundaries. .FALSE.
nlbc_smooth Number of grid points for smooth orography transition 20
lbdclim to write special data to the boundary files .FALSE.
lcm2lm to read data from a (common) coarse grid climate model .FALSE.
llake to read and process additional lake parameters .FALSE.
lyear_360 to use a climatological year with 360 days per year. .FALSE.
l_cressman to use a Cressman scheme for the horizontal "Match"-interpolation .FALSE.
l_bicub_spl to use a bicubic spline interpolation .FALSE.
l_chemistry to interpolate additional chemistry fields .FALSE.
itype_t_cl to choose, which deep soil (climatological) temperature shall be chosen: 0
itype_rootdp to choose, how the root depth shall be computed 0
itype_ndvi to choose treatment of plant cover and leaf area index: 0
itype_w_so_rel to choose type of relative soil moisture input: 0
leps_bc to switch on the ensemble mode .FALSE.
idbg_level to control the verbosity of debug output 2
lprintdeb_all to print debub output on all processors .FALSE.

Detailed explanations for the new variables can be found above. Note that the variable itype_w_so_rel has first been introduced as iw_so_rel_type. To be consistent with other names of that type, it has been adapted.

The following namelist variables have been deleted from the group /CONTRL/:
lanalysis, nstart, nstop, nincbound, dt, ke_soil, czml_soil, ldebug.

New Group /EPSCTL/

Name Meaning Default
iepsmem_bc ID of the member in the ensemble of of boundary conditions -1
iepstyp_bc ID of the boundary ensemble generation type -1
iepstot_bc total number of boundary ensemble members 0
lchk_bc_typ to check member ID of input data .FALSE.

Group /GRID_IN/

Name Meaning Default
polgam_in angle between the north poles of the systems 0.0
ke_soil_in number of input levels in multi-layer soil model (without climatological layer) 7
czml_soil_in depth of main level of soil layers (middle of layer) in meter 0.005, 0.02, 0.06,
0.18, 0.54, 1.62,
4.86, 14.58
endlat_in_tot transformed latitude of the upper right grid point 0.0
endlon_in_tot transformed longitude of the upper right grid point -40.0
lushift_in shift of u-velocity due to grid staggering .FALSE.
lvshift_in shift of v-velocity due to grid staggering .FALSE.
east_add_in add an extra column to the East 0
west_add_in add an extra column to the West 0
north_add_in add an extra column to the North 0
south_add_in add an extra column to the South 0
nlevskip number of levels to skip at top of input model 0

Group /LMGRID/

Name Meaning Default
ke_soil_lm number of levels in multi-layer soil model in the COSMO-Model (without climatological layer) 7
czml_soil_lm depth of main level of soil layers (middle of layer) in meter 0.005, 0.02, 0.06,
0.18, 0.54, 1.62,
4.86, 14.58
cw_so_rel_lm artifical volumetric soil water content (0-1) profile 0.75, 0.75, 0.75,
0.75, 0.75, 0.75,
0.75, 0.75
polgam angle between the north poles of the systems 0.0

Group /DATA/

Name Meaning Default
yinput_type to choose the type of the input data 'forecast'
ytunit_in Time unit for input data 'f'
ytunit_out Time unit for output data 'f'
yinext_form_read Input format for the external parameters of the coarse grid 'grb1'
ylmext_form_read Input format for the external parameters of the COSMO-Model grid 'grb1'
yin_form_read Input format of the coarse grid data 'grb1'
ylm_form_write Output format for the COSMO-Model variables 'grb1'
ldwd_grib_use use some DWD specific Grib settings .TRUE.

Back to Contents


4. Changes of the Results

Because of some adaptations in the filtering of orography, there are quite some changes in the results for the option lgme2lm=.TRUE.. But these differences are small. Other changes are:

Back to Contents