12.07.2016
Version 5.4b is the next development version, which will not be officially released.
Main changes are the convection schemes in blocked data format and the new
boundary condition module.
- Implementation of new Boundary Condition Module
- Implementation of Convection Schemes in Blocked Data Format
- Changes in C++ DyCore
- Changes to the Namelists
- Changes of Results
(by O.Fuhrer, P. Spoerri et al.)
A new module has been implemented in the COSMO-Model, which contains subroutines
to set special boundary conditions in the model. With implementing this module
and applying the methods in the model, some inconsistent settings of boundary
conditions have been modified. This will change the results, but verification
at MCH has shown only neutral effects.
Subroutines (methods) included in src_lbc.f90:
- lbc_value:
Implementation of the copy value boundary condition: A single value
is copied to all boundary points.
- lbc_copy:
Implementation of the copy field boundary condition:
A source field is copied to all boundary points.
- lbc_zerograd:
Implementation of the zero-gradient boundary condition:
Points in the boundary zone are copied from corresponding points in
the inner domain in order to impose a zero-gradient boundary condition.
- lbc_interpolate:
Implementation of the interpolate boundary condition:
Points in the boundary zone are computed as a linear combination of two
boundary fields bd1 and bd2.
- lbc_tendency:
Implementation of the tendency boundary condition:
Points in the boundary zone are computed by adding corresponding values
of a boundary tendency field with a factor dts.
- lbc_compute_tendency:
Computes a boundary tendency field from two boundary fields
with a time increment dt.
There are also two internal subroutines (methods):
- check_setup:
General backend for applying boundary conditions both at u-, v-, and
mass-point for a 3d field.
- get_bc_ranges:
Computes boundary range for a 2d block.
The methods of src_lbc.f90 have been implemented in several modules.
Here we document the parts which change the results of the model:
- fast_waves_rk, fast_waves_sc and src_runge_kutta:
Up to now:
For the fast-waves solver only the inner-most boundary line has been set
in the way it is used by fast_waves_rk or fast_waves_sc.
The advection then sees different kinds of boundary conditions, because it
uses not only the inner-most line.
Now tendency conditions are set for the full boundary zone.
Additionally, the boundary conditions for u, v in fast_waves_sc and are now set
after the computation of u, and v. Previously these boundary conditions were set
before the computation of u and v creating an inconsistency of the computed values
near the boundary.
- src_advection_rk:
Up to now:
The subroutines [western|eastern|southern|northern]_boundary set a zero-gradient
condition for rho and tke. And lateral_boundaries_zerograd does the same for
tracers in use. These routines were called once before starting the advection
operators.
This is now done by the subroutine advection_pd_lbc. But this routine is called
before every advection operator, so that every operator works with updated boundary
conditions.
- lmorg:
A new subroutine rlx_bc has been implemented which is called after the relaxation.
It sets (again) the values on the boundaries, but the values for w are changed, because
they are now set with a zerograd-condition, which was not the case before.
Another change related to boundaries has been implemented in src_relaxation:
The computation of the saturation adjustment has been restricted to the inner domain:
The saturation adjustment on the boundaries has already be computed in the dynamics, so
it does not have to be done again here.
Back to Contents
(by Xavier Lapillonne, Jochen Förstner, Ulrich Schättler)
The two convection schemes used in COSMO (Tiedtke and shallow convection) and
their interfaces have been adapted to run in the blocked data format. In addition
the IFS scheme by Tiedtke-Bechtold, which is used in ICON, has also been
implemented. The following new source modules are now available:
- conv_interface.f90: Interface module with subroutines
conv_init |
basic initializations of the schemes |
conv_init_copy |
set up the copy-list for blocked data |
conv_prepare |
perform some calculations necessary on ijk structure |
conv_organize |
call the chosen schemes |
conv_finalize |
clean up |
conv_in_wkarr_alloc |
allocation of local memory for the interface |
conv_in_wkarr_dealloc |
deallocation of local memory for the interface
(used with _OPENACC) |
All routines are written that they work for every scheme. Which scheme really
is used can be determined by itype_conv and is taken care of in the routines.
- conv_data.f90:
Module that defines data used in the schemes.
This modules also defines local memory for the schemes, which can be used when
_OPENACC is specified. Two subroutines conv_wkarr_alloc and
conv_wkarr_dealloc are provided to manage the local memory if
_OPENACC is used.
- conv_shallow.f90:
Computational part of former module src_conv_shallow, adapted to the blocked
data structure.
- conv_tiedtke.f90:
Computational part of former module src_conv_tiedtke, adapted to the blocked
data structure.
- conv_cumaster.f90:
(and additional modules: conv_cuascn.f90, conv_cudescn.f90, conv_cuflxtends.f90,
conv_cufunctions.f90, conv_cuinit.f90, conv_cuparameters.f90)
Modules for Tiedtke-Bechtold convection scheme.
The convection scheme is chosen with the namelist variable itype_conv, which has
the following possibilities:
- old Tiedtke scheme
- not available
- Tiedtke-Bechtold scheme (from IFS) !! NEW Option
- shallow convection scheme
Back to Contents
(by Pascal Spoerri)
Take imode_turb from turb_data now
(was in data_runcontrol before).
Back to Contents
There is a new option for itype_conv: with "2" the Tiedtke-Bechtold scheme is chosen.
And there are new switches in /PHYCTL/ and in /TUNING/. The new
variables in /TUNING/ are only in effect, when Tiedtke-Bechtold scheme is chosen.
Group |
Name |
Meaning |
Default |
/PHYCTL/ |
icpl_aero_conv |
NEW |
Type of coupling between aerosols and convection scheme:
- no description available yet
- no description available yet
| 0 |
icapdcycl |
NEW |
- no CAPE diurnal cycle correction (IFS default prior to cy40r1, i.e. 2013-11-19)
- CAPE - surface buoyancy flux (intermediate testing option)
- CAPE - subcloud CAPE (IFS default starting with cy40r1)
- Apply CAPE modification of (2) over land only, with additional
restriction to the tropics
| 0 |
y_conv_closure |
NEW |
type of shallow convection closure:
Possible values are:
- standard: as it was up to now
- Boeingclosure after Boeing: note that this is only possible
for the shallow convection! Tiedtke and Tiedtke-Bechtold
can only use the standard closure.
| standard |
/TUNING/ |
tune_capdcfac_et |
NEW |
fraction of CAPE diurnal cycle correction applied
in the extratropics
|
0.0 |
tune_rhebc_land |
NEW |
relative humidity threshold for onset of evaporation
below cloud base over land
|
0.75 |
tune_rhebc_ocean |
NEW |
relative humidity threshold for onset of evaporation
below cloud base over sea
|
0.85 |
tune_texc |
NEW |
excess value for temperature used in test parcel ascent
|
0.125 |
tune_qexc |
NEW |
excess fraction of grid-scale QV used in test parcel ascent
|
0.0125 |
tune_rcucov |
NEW |
convective area fraction
|
0.05 |
tune_entrorg |
NEW |
entrainment parameter for deep convection valid at dx=20 km
|
0.001825 |
tune_rhebc_land_trop |
NEW |
relative humidity threshold for onset of evaporation
below cloud base over land in the tropics
|
0.7 |
tune_rhebc_ocean_trop |
NEW |
relative humidity threshold for onset of evaporation
below cloud base over sea in the tropics
|
0.8 |
tune_rcucov_trop |
NEW |
convective area fraction in the tropics
|
0.05 |
Back to Contents
The implementation of the convection schemes in blocked data format are
(in principle) bit reproducible compared to the former implementation in
src_conv_shallow and src_conv_tiedtke. Only the Cray-compiler with option
hflex_mp=conservative changes the results. With hflex_mp=intolerant the
results are really bit-reproducible (also with GNU Compiler).
With the implementation of the new boundary condition module also some boundary
conditions have been slightly modified compared to the former version, to
provide more consistent boundary conditions. This changes the results, but
from a meteorological point of view the differences are neutral.
Back to Contents