FE 13 - COSMO-Model System: Interpolation Program INT2LM
29.05.2008
Version 1.8 of the interpolation program INT2LM is available since
end of May 2008. In the last months, the climate mode has been tested
more intensively now by colleagues from the CLM community, and we
incorporated more changes and bug fixes for that mode. At DWD we worked
on the vectorization of the code, to prepare it for our new machines.
The optimizations for the vector processors also speeded up the code
on the IBM (and surely also on other scalar machines), which is mainly
due to the fact, that we could save many computations in the vertical
interpolations. Besides other technical adaptations and few bug fixes,
we also introduced three new features. All changes are described in
more detail below.
- Modifications since Version 1.7
- Changes in the Namelists
- Changes of the Results
- Treatment of qr, qs, qg:
There are developments going on to introduce prognostic variables for
rain and snow into the global model GME of DWD. The INT2LM has been
extended, to interpolate also these variables from the GME.
Up to now, qr and qs could only be interpolated from
the COSMO-Model itself.
This feature is switched on by lprog_qrqs=.TRUE. and
lgme2lm=.TRUE..
- External parameters for the subgrid scale orography (sso) scheme:
Additional external parameters are read, if the subgrid scale orography
scheme should be used for the coarser applications of the COSMO-Model.
The reading of the additional parameters can be controlled by the new
Namelist variable (in group /CONTRL/) lsso:
Name |
Meaning |
Default |
lsso |
to process parameters for sso scheme |
.FALSE. |
The program for the external parameters has to be extended, to provide
the necessary additional parameters. This work is still in progress.
- External parameters for the topographical corrections in the radiation scheme:
Additional external parameters are read, if the corrections in the radiation
scheme should be computed in the COSMO-Model.
The reading of the additional parameters can be controlled by the new
Namelist variable (in group /CONTRL/) lradtopo:
Name |
Meaning |
Default |
lradtopo |
to process parameters for topographic corrections of radiation |
.FALSE. |
The program for the external parameters has to be extended, to provide
the necessary additional parameters. This work is still in progress.
Back to Contents
For the climate mode, the following adaptations have been done:
- Alternative calls to the bicubic spline interpolation have been
implemented in src_coarse_interpol.f90.
- Treatment of itype_rootdp:
For the options 1 and 2, a bug was fixed. A new field to save the external
field read from the parameter data set has been introduced.
Another option (3) has been added.
- Treatment of itype_w_so_rel:
The default of itype_w_so_rel has been set to 1
- Treatment of (NetCDF) undefined values for output:
Some adaptations were necessary, if NetCDF files with undefined values
are read, but GRIB output is done.
- Computation of control level for geopotential:
Some climate models do not provide the geopotential on higher levels,
therefore an option was added to compute this control level geopotential
from the other input parameters.
- Interpolation from coarse grid models with lower upper boundary in the atmosphere:
If input is taken from models, that have an upper boundary, which is lower
than the desired upper boundary in the COSMO-Model, the vertical profile
of every grid point of the coarse grid model is extended to the COSMO
upper boundary.
Back to Contents
- The name and meaning of the namelist variable lyear_360 has been changed
to an integer value: itype_calendar, to allow several types of calendars:
0: proleptic-gregorian calendar (default)
1: a year with 360 days every year
- All variable names gz0 have been renamed to z0 and the (Grib) factor
and bias have been removed: INT2LM only works with the z0-values, so there
is no need for extra scaling.
- The namelist switch ldebug has been (definitely) eliminated, so it has to
be removed from all Namelist input and runscripts!
- The subroutine xd (in module gme_utilities.f90), which does the diamond
boundary update for global GME fields has been adapted to avoid problems
at the diamond boundaries, when working with bitmap files.
- The Namelist parameter lcm2lm was not distributed to other nodes.
- Call to subroutines org_read_coarse_grid and org_coarse_interpol
also for lcm2lm.
- The field w_cl_lm was deallocated two times, which caused troubles
on some compilers.
- Interpolation of SST is not required (any more).
- Do not deallocate fis_in, if fic_in could not be read.
Back to Contents
- src_vert_interpol.f90:
- Subroutines adapt_pressure_1, adapt_pressure_2: The IF-clause in the
computation of the virtual temperature prevented the vectorization of
this loop. Therefore, the computation of the different statement-functions
for GME and IFS has been modified.
- Subroutine adapt_pressure_2: In the Newton iterations, the
IF (kcontrol_fi /= 1) prevented vectorization. The control
geopotential is now computed before in a new variable.
- Subroutine vert_interpol:
The k-loop within the i-j-loops was moved outside
The Spline interpolation has been modified, in order not to begin always
from the very start. This saves a lot of computation time also on
scalar systems.
- src_lm_fields.f90, src_vert_inter_lm.f90:
Changes in the vertical interpolation analogous to src_vert_interpol.f90.
- gme_utilities.f90, src_gme_interpol.f90:
The (many) IF-clauses for the Match-Interpolation prevented the vectorization
of the routine pp_interp2ls. We introduced an initialization-routine for this
interpolation, where weighting variables are computed only once.
According to this change, Subroutine pp_interp2ls has been re-written.
- utilities.f90:
Subrouinte horizontal_filtering: changed the i-loop and the loop over the filter
weights, to vectorize over the i-loop.
Back to Contents
There were changes only in the group /CONTRL/:
- Two variables have been eliminated: ldebug and lyear_360.
Instead of ldebug, the variable idbg_level has to be
used now. lyear_360 is replaced by the new variable
itype_calendar.
- There are three new variables:
Name |
Meaning |
Default |
lsso |
to process parameters for sso scheme |
.FALSE. |
lradtopo |
to process parameters for topographic corrections of radiation |
.FALSE. |
itype_calendar |
for specifying the calendar used
- 0: gregorian calendar (default)
(but this needs a bug fix in get_utc_date,
because up to now we only have julian calendar)
- 1: every year has 360 days
|
0 |
Back to Contents
There are no changes to the results of the NWP applications.