06.06.2012
In autumn 2012 it is planned to release COSMO-Model 5.0 and INT2LM 2.0. This version of INT2LM
is a first step in the unification of the INT2LM with the developments of the CLM Community.
- Initializations for FLake variables / FLake coldstart
- Vertical Interpolation of GME soil layers to a different number of layers
- Interoperability / BCEPS
- Conditional Compilation
- Unification of Utility Modules with latest version of COSMO-Model (4.23)
- CLM Extensions for next unified Release
- Bug Fixes and Technical Changes
- Changes in the Namelists
- Changes of the Results
(by Dmitrii Mironov)
A more consistent initialization of the variables for the cold start of FLake has
been implemented. All variables are now set to some default reference values, even
over ocean and over land. Also the variables t_ice and h_ice are
set over lake grid boxes to default values (corresponding to NO ice).
There is an issue with the consistency of fr_lake and depth_lk in
the external data. All the checks in INT2LM and the COSMO-Model
for running the FLake model are based only on depth_lk > 0.
So the fr_lake field is not used for any checks!
Now there is the convention, that depth_lk < 0.0 if and only if fr_lake < 0.5.
To ensure this, a check is done in external_data, and if the check fails, the INT2LM
is stopped.
NOTE: This is only valid, if NO tile approach is used. Then this convention / check
has to be changed.
Back to Contents
(by Susanne Brienen)
A vertical interpolation of GME soil layers to a different number of layers
has been interpolated. This is used to initialize the typical CLM soil configuration
by operational NWP GME soil values. A new routine init_multi_layer_gme_ml has been
written, based on the routine init_multi_layer_cm from the lcm2lm-case.
Outline of the changes:
- The former variable msoilgrib(:), which contained the specification of the soil
layers (depth in centimeters), has been splitted to
- msoilgrib_in: specification of incoming soil layers and
- msoilgrib_lm: specification of outgoing (COSMO) soil layers
- incoming soil fields (and related variables) are now allocated with ke_soil_in
(in src_gme_interpol.f90 and src_read_coarse_grid.f90)
- The incoming soil moisture fields are horizontally interpolated to an intermediate
field w_so_gl (similar to the handling of the soil temperatures)
- If the number of soil layers in the incoming data is different to the number of
layers in the outgoing data (ke_soil_in /= ke_soil_lm), a new subroutine is
called in src_2d_fields: CALL init_multi_layer_gme_ml
This new subroutine is developed according to the subroutine init_multi_layer_cm,
which initializes the soil variables for climate runs.
If the number of incoming and outgoing layers is identical (ke_soil_in == ke_soil_lm),
nothing is changed.
Back to Contents
(by Ulrich Schättler)
New Models have been implemented, that are accepted now by INT2LM (with Grib2 only):
yinput_model=
- HIRLAM (internal flag lhir2lm)
- UMG Unified Model, global
- UMR Unified Model, regional
Extensions necessary to process UM and HIRLAM data:
- Added lhir2lm as an INT2LM internal flag
- Renamed [ak,bk]_in_uv to [ak,bk]_in_rho according to UM conventions
- src_grids: Compute interpolation weights also for HIRLAM data
- src_coarse_interpol: new subroutine interpol_coarse_special_hir
- Additional extensions for correct processing of the data.
Some more modifications to read data from other global models for BCEPS:
- Some GFS and IFS names have to be translated to DWD standards
Back to Contents
(by Ulrich Schättler)
Conditional compilation has been implemented for the libraries:
- DWD Grib1 library libgrib1.a with -DGRIBDWD
modified: io_utilities.f90, mpe_io.f90, src_gme_interpol.f90, src_namelists.f90,
src_read_coarse_grid.f90, src_read_ext.f90
- Grib library grib_api with -DGRIBAPI
modified: io_utilities.f90, src_gme_interpol.f90, src_namelists.f90,
src_read_coarse_grid.f90, src_read_ext.f90
- NetCDF with -DNETCDF
modified: io_utilities.f90, src_lm_output.f90, src_namelists.f90,
src_read_coarse_grid.f90, src_read_ext.f90
Back to Contents
- environment.f90:
- changed interfaces to subroutines extend_field, init_environment, init_procgrid,
exchg_boundaries
- therefore adaptations in INT2LM routines setup_int2lm, src_vert_inter_lm,
src_vert_interpol, src_lm_fields, src_read_ext
- io_utilities.f90:
- changes in subroutine make_fn (no influence to INT2lM)
- implemented #ifdef GRIBDWD
- send 4 more bytes in all communications using packed GRIB data because of
big endian / little endian problem
- unifications of NetCDF IDs with COSMO-Model
- meteo_utilities.f90:
changes in interface to cloud diag: now gets full pressure instead of
p0 and pp (no influence on INT2lM)
- parallel_utilities.f90:
Modified subroutine distribute_field, so that another sender than PE 0 can be specified
(similar to COSMO-Model 4.23)
- utilities.f90:
- Modifications of diff_minutes to allow for different calendars
- Added support for climatological year with 365 days in subroutine
get_utc_date
Back to Contents
- Introduction of prescribed soil albedo
Introduced new Namelist switch itype_albedo to choose treatment of
solar surface albedo (see also COSMO Version 4.23)
- surface albedo is a function of soiltype (default: no actions needed in INT2LM)
- surface albedo is prescribed by external fields for dry and saturated soil
- background albedo is prescribed by external fields
- vegetation albedo is modified by forest fraction
(done in the COSMO-Model, no actions needed in INT2LM)
- Introduced possibility to interpolate data from hybrid height and
from pressure coordinates.
Data can now be interpolated from
- pressure levels (e.g. NCEP Reanalyses) similar to GFS data for NWP mode:
While in NWP mode the namelist variable yinput_model='GFS' has to be
set, in climate mode it is yinput_model='CM' and an internal switch
lcm_pres_coor is set according to NetCDF meta data. So in climate mode
this can only be done with NetCDF input.
The pressure level data are interpolated to hybrid model levels.
In the first (NWP) implementation, only 31 level could be chosen, but
now also a 38 level version has been implemented.
If the control pressure level could not be read by initial data,
it is calculated in the module src_pressure_to_hybrid on the hybrid
levels for this case, because it cannot be calculated in
src_read_coarse_grid, where only the pressure level data are available.
- hybrid height coordinates (e.g. HadGEM2 data) similar to UKMO data for NWP mode
While in NWP mode the namelist variable yinput_model='UMG' or 'UMR' has to be
set, in climate mode it is yinput_model='CM' and an internal switch
lcm_hgt_coor is set according to NetCDF meta data. So in climate mode
this can only be done with NetCDF input.
The incoming reference atmosphere has to be set to irefatm_in=2 also for
lcm_hgt_coor, in order to calculate the correct reference pressure and
pressure deviation.
- Added support for climatological year with 365 days
(See also comments in COSMO-Model 4.23)
The usage of a 365 days calendar is defined by setting the Namelist parameter
itype_calendar = 2.
NOTE:
The new routines difmin_365, datjul_365, etc. that have been
proposed by the CLM community for the treatment of this new calendar, have not
been taken.
Instead we did the following:
The routines difmin and datjul from the external GRIB (or MISC) library have
been replaced a new COSMO routine diff_minutes (located in utilities.f90)
This routine has been extended with the argument itype_calendar, and the
different calendars are now treated within this routine.
No other routines are necessary now.
- New module clm_utilities holding climate version specific subroutines
(for NETCDF only)
The new subroutine setup_clm is called in setup_int2lm
- CLM Technical Changes and Bug Fixes: see section below
Back to Contents
- external_data.f90, interp_utilities.f90
All organizational variables for isolated points (globl_iso_points, local_iso_points)
are initialized with -1; if no other values are set during the initialization,
then there are isolated points with no matching land-sea-mask in the driving model.
- If the isolated points are water points (inland lakes), they are initialized by
interpolation without taking care of the land-sea-mask.
The subroutine interp_l in module interp_utilities.f90
has been modified accordingly.
- If the isolated points are islands within water, the model is stopped, because not all
necessary values can be initialized then with meaningful values.
Use longitudes_in, latitudes_in when computing the coordinates of isolated points
instead of dlon_in, dlat_in to account for non equidistant grid (e.g. gaussian)
(by CLM).
- interp_utilities.f90
Match interpolation (searching for nearest grid point with same land-sea-mask)
has to be switched off, when working with frames (because such a grid point
might not exist)
(by Davide Cesari)
- io_utilities.f90; SR check_input_grid
Corrected settings of zstartlon_g and zendlon_g for GRIB2 in the
subroutine check_input_grid in case of startlon / endlon < 180.0
(in this case these variables were not set before)
(by Davide Cesari)
- src_2d_fields.f90 (by CLM)
- Correct calculation of water content in soil layers deeper than the global
model soil layers in case of itype_w_so_rel=2
- Correction in init_multi_layer_cm: include W_SO for
deepest layer (no longer == 0); correct multiplication of layer thickness
- src_decomposition.f90
- Added initialization of ke1in also for GME data in decompose_gme
- Adaptations of decompose_cm when domain crosses the date line
- Make sure that the same part of coarse grid domain is considered for
sequential and for parallel runs for checking the isolated grid points
(Adaptation in Section 3 of decompose_cm)
- src_gribtabs.f90
Corrections / Additions for lcm2lm.
- src_lm_fields.f90
Correct computation of splines when top height of fine grid model is larger
than that of the coarse grid model (initialization of izln_vec)
(by CLM)
- src_namelists.f90 (by CLM)
- Distribute values of czmls_in for Namelist distribution instead of czml_soil_in
- Check consistency between lmixcld and lprog_qi
- Split long directory names for distribution using charbuf (len=100)
- Deactivated l_cressman until it is tested
- src_pressure_to_hybrid.f90
Modified lower boundary condition for vertical interpolation, if surface pressure
exceeds the "first guess" press_level(ke_in)+5000.0
(from CLM: Make sure that lower pressure boundary is always greater than
press_level(ke_in))
- src_read_coarse_grid.f90
- Added ensemble type 203 for COSMO-LEPS (Christoph Gebhardt).
- Consider nlevskip > 0 also for hybrid layers (by Davide Cesari).
- Include checking of necessary input for lcm2lm (CLM).
- Allow the name soil_depth for dimension and name of soil layers in
netCDF CM input alternatively to soil1 (CLM).
- src_read_ext.f90
- Change IF clause in lfilter_oro to avoid wrong field indexing.
- Added some more checks for the external parameter data set.
- src_vert_inter_lm.f90
Same bug fix for spline computation as in src_lm_fields.f90.
- src_vert_interpol.f90
Restructured the computations in Section 3 of Subroutine adapt_pressure_1:
The distinction of cases is now completely disjunct and therefore numerical
problems in the case of nearly identical orography heights in the coarse grid
model and the COSMO-Model are avoided.
Back to Contents
There were the following changes for the Namelist variables:
Group |
Name |
Meaning |
Default |
/CONTRL/ |
yinput_model |
Now accepts additional models:
- UMG: Unified Model (UKMO); global version
- UMR: Unified Model (UKMO); regional version
- HIRLM: HIRLAM (High Resolution Limited Area Model)
Other valid settings are:
- GME: Global Model of DWD, Germany
- COSMO: Regional COSMO-Model
- GSM: Global Model of JMA, Japan
- GFS: Global Model of NCEP, USA
- CM: Climate Model
|
' ' |
itype_calendar |
Now accepts additional value: 2 (for 365-day year support)
All valid settings are:
- gregorian calendar
- every year has 360 days
- every year has 365 days
|
0 |
itype_albedo |
New variable to choose the type of solar surface albedo.
Valid settings are:
- surface albedo is a function of soiltype (method up to now and still default)
- surface albedo is determined by two external fields for dry and
for saturated soil
- a background albedo is prescribed by external fields, which give
average values for every month
- the vegetation albedo is modified by forest fraction
|
1 |
Back to Contents
There are no changes of the results in the NWP applications!
Back to Contents