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.
Name | Meaning | Default |
---|---|---|
lprog_qrqs | Interpolate qr, qs to the fine grid | .FALSE. |
lprog_qg | Interpolate qg to the fine grid | .FALSE. |
Name | Meaning | Default |
---|---|---|
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: no filling 1: MIN (before smoothing the orography) 2: MIN (after smoothing the orography) |
0 |
rfill_valley | Mask for valley filling: if the height distance to the four direct neighbor grid points is larger than rfill_valley, this valley is filled up and set to the minimum height value of the four neighbors | 0.0_ireals |
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:
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 |
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.
Name | Meaning | Default |
---|---|---|
lbdclim | if .TRUE., special data are written to the boundary files | .FALSE. |
lcm2lm | if .TRUE., data from a (common) coarse grid climate model are read. | .FALSE. |
The switch lcm2lm has been implemented different compared to the former beta-version int2lm2_b2. In the beta-version this switch controlled both, reading data from a climate model and writing additional data to the boundary files. But this made it impossible to produce the additional boundary data in case of lgme2lm, lec2lm or llm2lm. Therefore we implemented another switch lbdclim, which controls the computation and writing of the additional boundary data.
Name | Meaning | Default |
---|---|---|
llake | if .TRUE., read and process additional lake parameters | .FALSE. |
lyear_360 | if .TRUE., use a climatological year with 360 days per year. | .FALSE. |
l_cressman | if .TRUE., use a Cressman scheme for the horizontal "Match"-interpolation (implemented for mass grid points only) | .FALSE. |
l_bicub_spl | if .TRUE., use a bicubic spline interpolation | .FALSE. |
There are additional switches that control the treatment of the slowly varying fields. The computation of these fields has been moved from the subroutine external_data.f90 to the module src_2d_fields.f90 (new subroutine plant_characteristics in this module). In climate mode, these fields have to be computed also for producing boundary conditions.
Name | Meaning | Default | ||||||
---|---|---|---|---|---|---|---|---|
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 |
If type_w_so_rel = 0, an artificial profile for the soil moisture is set, no matter which input model is used. The settings type_w_so_rel = 1/2 only work for lcm2lm = .TRUE..
NOTE: In Version 1.5 itype_w_so_rel has been introduced as iw_so_rel_type. We changed the name in order to be consistent with other names of that type in INT2LM and in the COSMO-Model.
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.
With the introduction of the climate mode also the NetCDF-format for I/O has been implemented into the INT2LM. For every file that is read or written, the user can decide whether it should be done in Grib1 or NetCDF. This can be controlled by the Namelist variables listed in the following table. Possible values of the strings are 'grb1' or 'ncdf'.
Name | Meaning | Default |
---|---|---|
ylmext_form_read | Input format for the external parameters of the COSMO-Model grid | 'grb1' |
yinext_form_read | Input format for the external parameters of the coarse grid | 'grb1' |
yin_form_read | Input format of the coarse grid data | 'grb1' |
ylm_form_write | Output format for the COSMO-Model variables | 'grb1' |
To proper implement the NetCDF format, some more implementations of the generic routine distribute_values were necessary in the module parallel_utilities.f90.
Name | Meaning | Default | ||||||
---|---|---|---|---|---|---|---|---|
yinput_type | to choose the type of the input data:
| 'forecast' | ||||||
ytunit_in | Time unit for input data. This character determines, how the
filename for the input data is set.
It occurs as the fourth character in the filename.
| 'f' | ||||||
ytunit_out | Time unit for output data. This character determines, how the
filename for the boundary (output) data is set.
It occurs as the fourth character in the filename.
| 'f' |
The following 2 Namelist variables have been eliminated:
The file YUCHKDAT is opened and closed in every step.
There were more modifications and extensions, which are described briefly here.
Name | Meaning | Default |
---|---|---|
nlevskip | number of levels to skip at top of input model | 0 |
Name | Meaning | Default | ||||
---|---|---|---|---|---|---|
idbg_level | To control the verbosity of debug output: with a higher value, more debug output is printed to STDOUT. | 2 | ||||
lprintdeb_all |
|
.FALSE. |
As usual, there have been several bug fixes.
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.
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.
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. |
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 |
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 |
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. |
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: