08.11.2013
This version contains the last technical changes before the next big release.
- Problems when reading boundary files with bitmaps
- New GRIB2 level types for FLake variables
- Initialization of prognostic rain, if no rain data are read from initial files
- Technical Changes and Bug Fixes
- Changes to the Namelists
- Changes of Results
Because of the usage of the array ipds (for GRIB1 meta data for product
definition section) in src_input and in src_output, a problem
occured when running with boundary data defined on frames using a bitmap.
After reading such boundary data, the bitmap-flag in ipds was set and
never cleared. Therefore, all output data also had the bitmap-flag set without
defining the bitmap-section.
Solution: Introduction of two different arrays ipds_in for input and
ipds_out for output
(routines affected: data_io.f90, io_metadata.f90, src_input.f90,
src_output.f90, src_sfcana.f90)
Back to Contents
In GRIB1, all FLake variables were coded with the level type "surface", which (of course)
is not correct. Therefore, new leveltypes have been introduced for GRIB2, which are now
officially accepted at WMO and are included in GRIB2, Version 11. The new level types are
described in Code Table 4.5 and are listed below:
Number |
Name |
Unit |
160 |
Depth below sea level |
m |
161 |
Depth below water surface |
m |
162 |
Lake or river bottom |
- |
163 |
Bottom of sediment layer |
- |
164 |
Bottom of thermally active sediment layer |
- |
165 |
Bottom of sediment layer penetrated by thermal wave |
- |
166 |
Mixing layer |
- |
Because most FLake variables are valid for a layer in the lake, the typeOfFirstFixedSurface
and the typeOfSecondFixedSurface are set different. In grib_api there are additional values
for the coded key typeOfLevel (which is derived from the two keys typeOfFirstFixedSurface and
typeOfSecondFixedSurface). The settings for the FLake variables are given below:
FLake variable |
grib_api typeOfLevel |
typeOfFirstFixedSurface |
typeOfSecondFixedSurface |
DEPTH_LK |
entireLake |
1 |
162 |
T_MNW_LK |
entireLake |
1 |
162 |
GAMSO_LK |
entireLake |
1 |
162 |
FETCH_LK |
surface |
1 |
1 |
T_WML_LK |
mixedLayer |
1 |
166 |
H_ML_LK |
mixedLayer |
1 |
166 |
C_T_LK |
thermocline |
166 |
162 |
T_BOT_LK |
lakeBottom |
162 |
255 |
DP_BS_LK |
sedimentLayerTA |
162 |
164 |
H_B1_LK |
sedimentLayerTW |
162 |
165 |
T_BL_LK |
sedimentBottomTA |
164 |
255 |
T_B1_LK |
sedimentBottomTW |
165 |
255 |
Consequences for the COSMO-Model:
The check for typeOfLevel has been omitted now in the COSMO-Model. Using grib_api this is
implicitly done by checking the shortName (as long as there are not several variables with
the same GRIB2 triple but different typeOfLevels). Also, for output the typeOfLevel need not
be set, because it is again implicitly set by setting the shortName.
Back to Contents
In Version 4.23 the option to run without prognostic precipitation was removed.
At the same time, initialization of rain and snow was moved from the first time
step to the initialization phase of the physics. But at this stage the variable
dt2 (=2*dt) was not set. This has been added now in subroutine
organize_physics.f90.
Back to Contents
- data_io.f90:
Split ipds into ipds_in and ipds_out, to separate for input and output.
- environment.f90:
Corrected usage of uninitialized variable yzerrmsg in subroutine exchg_boundaries.
- io_metadata.f90:
Renamed ipds to ipds_out to reflect usage for output.
- io_utilities.f90:
- Corrected usage of uninitialized variable yzhead in subroutine write_ready_final.
- Modified check for pv_in in subroutine check_input_grid: only check vertical
coordinate parameters
- lmorg.f90:
- Changed use of datatypes to FALSE in exchange_leapfrog (had problems on the IBM).
- Some technical changes for COSMOART and POLLEN.
- organize_data.f90:
Increased num_gribtabs to 12 to add table 245 for dust modelling.
- organize_physics.f90:
Initialize variable dt2 in the initialization step, because it is needed for the
diagnostic initialization calling subroutine hydci.
- numeric_utilities.f90:
Removed old CRAY compiler directives, which are not recognized any more.
- src_advection_rk.f90:
- Initialized izerror in subroutines horiz_adv_driver and
implicit_sedim
- Changed INTENT attribute of phi_new in SR implicit_sedim
to INOUT, because otherwise it is used before it is defined!
- src_artifdata.f90:
Initialized izerror before using in several subroutines.
- src_input.f90:
- Renamed ipds to ipds_in to reflect usage for input data
- Do not check the level types for the FLake variables any more
- Initialized pv_in also for pure GRIB2 I/O
- Initialized refatm%refatm_id also for binary output during restarts
- src_leapfrog.f90:
Added missing argument kflat also to semi-implicit-call
- src_lheat_nudge.f90:
Modifications to read all input data also in GRIB2.
- src_nudging.f90:
Bug fix, to avoid using de-allocated array ztcorr if ntpscor=1.
- src_obs_rad.f90:
- Changed INTENT attribute of variable nlev to INOUT in
subroutine prepare_rttov_input
- Changed INTENT attribute of variable comm to INOUT in
subroutine p_bcast_rad_set
- src_output.f90:
Renamed ipds to ipds_out to reflect usage for output.
- src_sfcana.f90:
Renamed ipds to ipds_out to reflect usage for output.
Back to Contents
There were no changes to the Namelists.
Back to Contents
There are no changes of results!
Back to Contents
This version will be renamed to COSMO-Model 5.0 beginning of November!