This version is basically a consolidation version. Extensive testing of version 4.25 revealed
several problems with the restart functionality and some smaller bugs. Also, some problems with
the multi-layer snow model have been fixed and the new tracer module got its first update in view
of COSMO_ART.
New variables have been introduced to save the scale interaction TKE sources for output.
Corresponding shortnames for output and associated Grib1 numbers have been defined:
Back to Contents
(by Andreas Messer)
The modules organize_satellites.f90 and src_sat_rttov.f90 have
been modified in a way that also the RTTOV10 library can be used now. The code has
to be compiled with the macro -DRTTOV10 and the following external
modules and libraries have to be linked:
- libradiance10.2.a: the modules of this library have to be in the
INCLUDE path for compiling the RTTOV-interface of the COSMO-Model
- librttov10.2.a
For using RTTOV9, the code can still be compiled with the macro -DRTTOV9 and has
to be linked with the libraries:
- librttov9.3.a
- librttov9.3_parallel.a
- librttov_ifc.a
Other updates for using RTTOV10 have been in the modules data_satellites.f90,
mo_fdbk_cosmo.f90, mo_fdbk_tables.f90.
To activate the RTTOV10 library in the model, the switch itype_rttov=10 has
to be set.
Back to Contents
(by Andreas Messer)
Independent from computing the synthetic satellite images the COSMO-Model has been
extended to read satellite observation files from the sat-pp (satellite post-processing;
a tool developed at DWD), calculate the first guess brightness temperatures at the
observation time and location and write back the results into feedback files.
The assimilation itself will then be performed outside of the COSMO-Model.
To control the processing of the sat-pp files, a new Namelist INPUT
file (INPUT_OBS_RAD) is necessary, which contains the groups /TOVS_OBS/
and /TOVS_OBS_CHAN/.
To choose the actions for satellite processing, two new logical switches have been
introduced in the group /SATCTL/:
- lsynsat (Default: .TRUE.)
To activate computation of synthetic satellite images
(default behaviour from former versions)
- lobsrad (Default: .FALSE.)
To activate satellite observation processing. This can only be done, if the model
is compiled with -DRTTOV10!
Group |
Name |
Meaning |
Default |
/SATCTL/ |
lsynsat |
To activate computation of synthetic satellite
images (default behaviour from former versions). |
.TRUE. |
lobsrad |
To activate satellite observation processing.
This can only be done, if the model is compiled with -DRTTOV10!
|
.FALSE. |
Back to Contents
(by Uli Schättler, Hans-Jürgen Panitz, Burkhardt Rockel)
There were several issues and problems with writing / processing restart files:
- Additional diagnosis of qrs and rho for output steps:
In src_output.f90 an additional update of qrs and rho
is computed for output steps. This must not be done for restart steps.
- Advection of TKE (if not semi-lagrange advection):
This is a problem which was not noticed up to now, because advection of TKE is (still) not
used operationally (it is only done, if the logical switch lprog_tke=.TRUE.). But since
Version 4.23 TKE is treated as the humidity variables and therefore the timelevel, which has
to be advected, is copied to the timelevel nnew, with the following statement:
IF (ALLOCATED(tke)) tke(:,:,:,nnew) = tke(:,:,:,nadv)
But this was done without the bracketing: IF (lprog_tke) THEN, which has been added now.
The problem with the TKE scheme is, that it does not use the COSMO time stepping mechanism
with (nnold), nnow and nnew. This is not taken care of for the
advection neither was it taken care of in restart files.
Remedy: Write the TKE time level ntke also to the binary restart file (in src_output.f90),
read it (in src_input.f90) and store the TKE field in the correct time level.
The recomputation of ntke in organize_physics.f90 has to be eliminated therefore.
Note that TKE-advection is only implemented for the alternative turbulence schemes
itype_turb=5,...,8. Otherwise, the switch lprog_tke is reset to .FALSE.
in organize_physics.f90 after namelist reading and and TKE is not advected!
- File names of restart files when using asynchronous NetCDF I/O:
When constructing the file names in the new module netcdf_io.f90, it has not been
taken care of that nstart > 0 for restart runs.
- Introduced call to get_free_unit for restart files again (which was erroneously
moved outside to organize_data, because of prefetching of grib files) (US)
- Correct grib table numbers for multi-layer snow variables (BR)
- Always construct the file name for the constant fields with step 0, also for restart runs.
- In case of asynchronous I/O print the name of the file with the constant fields correctly
to file YUCHKDAT.
- Set the correct timestep counter so that the correct date string is calculated
for restarts at full hours in case of 14 digits for the date string
(which means: eliminate ntstepstart)
Back to Contents
(by Anne Roches, Oliver Fuhrer)
Some refinements and adaptations have already been implemented for the tracer module:
- Renaming of Namelist variables from /DYNCTL (and model variables) hd_corr_q_[in,bd] by
hd_corr_trcr_[in,bd] in order to be consistent also with the naming of other
switches (e.g. ltrcr_trilin, lef_adv_trcr_notpd, etc.).
These are the variables for the correction factors of the horizontal diffusion fluxes
for tracers (former: q-Variables):
Group |
Old Name |
New Name |
/DYNCTL/ |
hd_corr_q_in |
hd_corr_trcr_in |
hd_corr_q_bd |
hd_corr_trcr_bd |
- Removal of unnecessary information from the tracer module
(T_TEND_XXX, boundary index,...)
- Addition of the options T_LBC_USER and T_INI_USER for tracer clients who want to
perform user defined boundary setting and initialization resp.
- Change the default values of the metadata T_RELAX_ID and T_DAMP_ID in order to
be consistent with the other defaults (e.g. for advection)
- Renaming of T_CLP_POSDEF to T_CLP_ON since only on and off are available
for the moment.
- Addition of the pointer support in the metadata. This function is required for handling
associated fields (surface field, emissions, ...) gracefully.
- Handling of the surface field through the metadata mechanism which can now handle pointers.
We thus no longer need a pointer for the surface field in the tracer structure. We had
to shift the print of the tracer list and the metadata retrieval after organize_data
('start') in order to see also the pointers (e.g. surface field) in the standard output.
The pointer is now a 3D pointer instead of a 2D pointer.
- Increase of error message length in order to get more meaningful error messages.
- Completion and correction of the behaviour for all types of lateral boundary conditions
(initialize_loop, relaxation, damping)
- The previous correction led to non bit-identical results for some namelists settings due
to the strange treatment of QR, QS and QG. In order to get
bit-identical results also in these cases, a new metadata ("hack") has been introduced for
these species (DAMP_FORCED).
- Cleanup and cosmetics (removal of unnecessary calls, correction in comments,
update of headers, ...)
- In src_radiation.f90: Renamed local variable lprog_qi to lzprog_qi
to not confuse it with the global variable. Initialize this variable explicitely to .FALSE.,
which had been forgotten before. This lead to a crash when using itype_gscp < 3.
- Add a new subroutine trcr_get_block in order to retrieve a block of tracers in one
single call. This is required for COSMO-ART or other applications that deal with dozens of
tracers.
- Add a new subroutine for MESSY which gives access to the whole tracer structures.
This should replace the modifications made by Astrid in the tracer module.
- Add a warning in case of Leapfrog and l3dturb (combination not possible).
Back to Contents
(by Burkhardt Rockel, Uli Schättler)
A few technical adaptations were necessary for handling the variables of the
multi-layer snow model:
- Adapted variable names to corresponding I/O shortnames
(in modules data_fields.f90, src_allocation.f90, src_setup_vartab.f90, src_soil_multlay.f90,
dfi_initialization.f90, organize_data.f90, src_input.f90)
- Initialize h_snow in case of restarts (in src_soil_multlay.f90)
- Correct indices for gravity pre-setting (in src_soil_multlay.f90)
- Correct grib table numbers for multi-layer snow variables in src_input.f90,
organize_data.f90.
Back to Contents
(by Burkhardt Rockel)
Some variables, which had dimension of length 1, have been changed to scalar values.
Therefore the number of dimension IDs (in data_io.f90, netcdf_io.f90, src_input.f90)
could be reduced.
Back to Contents
- data_nudge_all.f90, organize_assimilation.f90:
Increased length of directory for NetCDF OBS files to 250 (by setting icdfdirlen to 250).
Changes in organize_assimilation.f90 for a proper broadcast of the character string
ycdfdir.
- mpe_io2.f90, Subroutine mpe_io_read:
An MPI_Wait in the loop over the PEs has been moved from within the IF-block: IF (length > 0)...
to outside of that IF-block, because otherwise the buffers could be overwritten by the
succeeding messages.
The DWD Grib-library calls have been embraced with ifdef GRIBDWD.
- netcdf_io.f90:
- Correction of the restart file names
- Renamed the argument variable "namelist" in few subroutines to "outblock", because
NAMELIST is a Fortran Keyword.
- organize_data.f90:
- if 14-digit file names are used, allow writing of analysis files also with an increment
of less than an hour and also immediately after hour 0 (not only starting with hour 1).
- added more consistency checks for the gribout namelist blocks:
If lasync_io is .TRUE. and nprocio > 0, all gribout files have to be grib and
If lasync_io is .TRUE. and nc_asyn_io > 0, all gribout files have to be NetCDF.
- src_conv_tiedtke.f90, src_conv_shallow.f90:
Allowing only non negative buoyant production terms of TKE
- src_gridpoints.f90:
Corrected dimensions for wind speed in meteographs output, which is computed now in m/s
and not in knots any more.
- src_output.f90:
- Bug fix for itype_gather=2: correct dimensions have to be added for arrays procarray_real
and procarray2d_real
- Bug fix for calling SR potential_vorticity_rho: the prognostic fields u, v
and w have to be passed with the correct timelevel itl
- src_setup_vartab.f90:
- Change leveltype for SOD_T and ASOD_T from 1 to 8 (HJP)
- Adapted variable names of multi-layer snow model to corresponding short names for I/O (US)
- Introduction of the additional output fields 'DTKE_(SSO, HSH, CON)' based on the
model variables 'tket_(sso, hshr, conv)' (MR)
- turbulence_diff.f90:
Saving scale interaction TKE soruce terms for output (for DTKE_SSO, DTKE_HSH, DTKE_CON)
- utilities.f90:
Corrected comments for arguments in rotation routines, where latitude and
longitude were mixed up
Back to Contents
There was a change of variable names in /DYNCTL/
Group |
Old Name |
New Name |
/DYNCTL/ |
hd_corr_q_in |
hd_corr_trcr_in |
hd_corr_q_bd |
hd_corr_trcr_bd |
And two new namelist variables in the group /SATCTL/
Group |
Name |
Meaning |
Default |
/SATCTL/ |
lsynsat |
To activate computation of synthetic satellite
images (default behaviour from former versions). |
.TRUE. |
lobsrad |
To activate satellite observation processing.
This can only be done, if the model is compiled with -DRTTOV10!
|
.FALSE. |
Back to Contents
All changes are pure technical. There is no change of results!
Back to Contents