29.02.2016
Version 5.4 is a development version, which will not be officially released.
- Changes in the Assimilation
- Changes in the Dynamics
- COSMO-ICON Physics
- Digital Filter Initialization
- Technical Changes and GPU Management
- Further Bug Fixes
- Changes to the Namelists
- Changes of Results
(by C. Schraff)
Removal of AOF interface
- Removal of the interface for reading observations from AOF binary files and
subsequent processing of these data for nudging. Removal of the dependencies
of the AOF interface and code clean-up.
- For VOF ('YUVERIF') file output: passive bit in station characteristics is
now always set when height flag, redundancy flag, or blacklist flag (for
aircraft) is set.
- The interface for reading GPS ZTD (or IWV) data from ASCII files with the
COST-716 Version 2.0 template is maintained (except for the outdated bias
correction) and some diagnostic messages on the standard output added.
- The directory to which the NetCDF 'fof' feedobs (or feedback) file is
written can now be selected by namelist.
The following source modules have been removed from the active code:
- data_obs_process.f90
- src_obs_processing.f90
- src_obs_proc_aof.f90
- src_obs_proc_util.f90
One new namelist variable has been introduced to specify the directory, where
the NetCDF fof output file shall be written.
Several other namelist variables, dealing with the AOF interface, have been
eliminated:
- itype_obfile
- yaofpath
- lpraof
- dinlat, dislat, diwlon, dielon
- noctrq
Also the namelist variable lgpsbias has been eliminated.
Back to Contents
Targeted diffusion of cold pools
(by Oliver Fuhrer, Pascal Spoerri, Xavier Lapillonne)
The targeted diffusion for cold pools should avoid unrealistic undershootings
in the temperature field near the bottom, if the value of a grid point is
considerable colder than the average value of the surrounding. This diffusion
is switched on, if the difference is larger than a pre-determined threshold
value. Up to now this threshold has been hard-coded to 10 degree Kelvin. Also,
targeted diffusion was always switched on in the model.
Targeted diffusion has now been made configurable by introducing two new
namelist variables in the group /DYNCTL/:
| Group |
Name |
Meaning |
Default |
| /DYNCTL/ |
l_diff_cold_pools |
NEW |
Use targeted diffusion for cold pools. |
.TRUE. |
| thresh_cold_pool |
NEW |
Threshold to activate targeted diffusion
for cold pools.
Reasonable values are from 5.0 to 20.0 degree Kelvin |
10.0 |
If the default settings are used, the results will not be changed
Implement simple clipping for Semi-Lagrange advection scheme
(by Oliver Fuhrer)
A simple clipping for the Semi-Lagrange advection scheme has been implemented
by introducing the option "SL3_SC" for the namelist variable y_scalar_advect.
Hardcode the number of saturation adjustment iterations to 3 for CPP_DYCORE
(by O. Fuhrer)
In the COSMO-Model the number of saturation adjustment iterations depends on
the maximal vertical velocity. Usually only one iteration is enough, only for
larger velocities, 2 or 3 iterations are done. In order to have reproducible
results, independent of the domain decomposition, the maximal vertical velocity
is determined over the full domain. This requires a global communication.
To save this global communication in the CPP_DYCORE case, the number of iterations
to do is always 3. This has been hardcoded.
Update of serialization statements
(by P. Spoerri)
The serialization statements were updated to cosmo 5.04. Several fields were added
to serialize data consistently and to provide effective tagging of the individual
serialized fields.
Affected files:
- lmorg.f90
- Integration of lwest_lbdz, least_lbdz, lnorth_lbdz,
lsouth_lbdz, hhl fields, because they are serialized with the
ConstantFields and passed to the C++ Dycore.
qvsflx, lhfl_s, shfl_s, umfl_s, vmfl_s:
needed for the DycoreUnittest.
- fast_waves_sc.f90
- Integration of the irk value into fast_waves_strong_conserv,
this field is needed for tagging the serialization savepoint.
- Merging of the FastWavesSCUnittest.RHS and FastWavesSCUnittest.WPPTP
into FastWavesSCUnittest.RHSWPPTP since the update of RHS and
WPPTP is now computed level by level. Removal of several intermediate fields.
- src_advection_rk.f90
- Adapted the serialization of AdvectionPDBottUnittest.Init to reflect
the changes in advection pd and added the wgtfac_u and wgtfac_v fields.
- src_slow_tendencies_rk.f90
- Integration of ntstep and irk in complete_tendencies_uvwtpp
since both fields are used in the serializer for tagging the current timestep.
- Replacement of t_s_deprecated with t_g in the serializer fields.
- src_runge_kutta.f90
- Integration of rho, rdcoef, dqvdt, qvsflx,
lhfl_s, qrs, t_g for serialization.
- Adaptations for the sedimentation and vertical diffusion.
- Adding t_g for the VerticalDiffusionUnittest.DoTracers because
of changes in the handling of the vertical diffusion.
- src_cpp_dycore.f90
- Removal of t_s_nnow in the serialization.
- Uncommented SEDIM and SPPT_PERT integration because this integration
was not ready upon release.
Back to Contents
(by X. Lapillonne)
The module src_block_field.f90 has been refactored to allow for future optimizations
(for example doing a multi-copy).
Note, that the OpenACC statements in the copy function are still deactivated at the
moment. They can only be activated, if the full physics runs on the GPU.
In addition, some editorial changes have been done:
- Adapt spacing to COSMO style (subroutine declaration, mathematic operation).
- Removed obsolete copylist in gscp_interface.f90 and
src_block_fields_org.f90.
Back to Contents
(by L. Torrisi)
Better treatment of clouds and precipitation during diabatic DFI initialization
The subroutine dfi_initialization.f90 has been modified to have a better
treatment of clouds / precipitation during the diabatic DFI step. Filtering
the qx-variables tends to smooth the structure of the initial state clouds.
To mitigate this problem, two new namelist parameter have been introduced to change
the treatment of the qx-variables but also of the soil variables in the DFI.
Note that these new variables are only active for the option ndfi=1.
| Group |
Name |
Meaning |
Default |
| /INICTL/ |
itype_dfi_qx |
NEW |
Treatment of qx-variables in DFI:
- All qx-variables are filtered in the forward stage (default)
- qv is filtered, other variables are initialized with instantaneous
values valid at nhalf step of forward stage
- qv is filtered but corrected to maintain saturated points at nhalf
step of forward stage, other variables are initialized with
instantaneous values valid at nhalf step of forward stage
|
0 |
| itype_dfi_soil |
NEW |
Treatment of soil variables in DFI
(for consistency with clouds / precipitation treatment):
- All soil variables are derived from the average of values at the
initial and final step of forward stage (default).
- All soil variables are initialized with instantaneous values valid
at nhalf step of forward stage.
|
0 |
If the default values are used, the results will not be changed.
The recommended settings that were tested (results shown at COSMO-GM 2015) are:
- itype_dfi_qx = 2
- itype_dfi_soil = 1
Activating output for diabatic DFI for step 0
For diabatic digital filtering initialization (ndfi==1) no output was produced
for step 0 up to now. As this is needed for many operational applications, this
has been implemented now by calling:
- near_surface
- organize_satellites
- organize_data ('results')
from the DFI-run.
Back to Contents
Added tracking of boundary fields and copying to GPU (by O. Fuhrer)
The fields which are read as boundary conditions need to be copied from
CPU to GPU. Since this is implemented as a dynamic process and since copying
from CPU to GPU is an expensive operation, we track the fields which are actually
being read in src_input.f90 (only in case #ifdef _OPENACC) and fill a data
structure with the information required for the copy from CPU to GPU
(which is implemented in acc_utilities.f90 and called from lmorg.f90).
Running on GPU (by X. Lapillonne)
At the moment, only the radiation scheme can run on GPUs. For all other parts of
the model, which already contained some OpenACC statements, these are de-activated
for now.
(In modules: gscp_interface, meteo_utilities, src_block_fields)
Some corrections and adaptations have been done in modules:
organize_physics, radiation_interface, radiation_rg, radiation_utilities;
does not change results!
Device Management on GPUs (by X. Lapillonne)
A module acc_device_management.f90 has been added. This module also contains
the routine printGPUMem, which has been in acc_utilities.f90 before.
Further Technical Changes
- COSMO-ART:
Adaptations for the blocked data structure in modules radiation_rg,
radiation_interface, organize_physics;
does not change results!
- Information on code owners has been updated in several modules.
- Removal of iintegers and use of KIND parameter for long integers (i8) from
kind_parameters.f90 in modules:
- utilities.f90
- src_meanvalues.f90
- lmorg.f90
to be able to correctly compute the number of seconds or hours passed even in
long term climate simulations.
- src_input.f90: The checking of the date has been switched off for
the HHL fields.
Back to Contents
- organize_data.f90:
Replaced VORTIC1, VORTIC2, VORTIC3 with VORTIC_U, VORTIC_V, VORTIC_W,
which are the real names of these variables.
- radiation_utilities.f90 Subroutine compute_sunshine_condition:
For variable zcosphi the loop indices have been forgotten
(does not change results!)
- netcdf_io.f90:
After reading delta_t and h_scal these variables have not been
distributed to the other processors in SR distribute_values_asynio.
- pp_utilities.f90:
Modified error treatment in LPI computations, to avoid model crashes due to
problematic thermodynamic profiles.
- src_obs_rad.f90:
Bug fix in SR input_obs_satpp: had to move a part outside an IF-statement
Back to Contents
| Group |
Name |
Meaning |
Default |
| /DYNCTL/ |
l_diff_cold_pools |
NEW |
Use targeted diffusion for cold pools. |
.TRUE. |
| thresh_cold_pool |
NEW |
Threshold to activate targeted diffusion
for cold pools.
Reasonable values are from 5.0 to 20.0 degree Kelvin |
10.0 |
| y_scalar_advect |
additional value |
added a new option for simple clipping: SL3_SC |
BOTT2_STRANG |
| /NUDGING/ |
yfofdir |
NEW |
directory for output NetCDF fof file. |
./ |
| itype_obfile |
deleted |
type of observation input file (AOF/NetCDF) |
|
| yaofpath |
deleted |
path of AOF file (directory + file name) |
|
| lpraof |
deleted |
diagnostic output of AOF interface |
|
| dinlat, dislat, diwlon, dielon |
deleted |
diagnostic print area for AOF interface |
|
| noctrq |
deleted |
obs type of diagnostic print |
|
| lgpsbias |
deleted |
bias correction (GPS ASCII interface) |
|
| /INICTL/ |
itype_dfi_qx |
NEW |
Treatment of qx-variables in DFI:
- All qx-variables are filtered in the forward stage (default)
- qv is filtered, other variables are initialized with instantaneous
values valid at nhalf step of forward stage
- qv is filtered but corrected to maintain saturated points at nhalf
step of forward stage, other variables are initialized with
instantaneous values valid at nhalf step of forward stage
|
0 |
| itype_dfi_soil |
NEW |
Treatment of soil variables in DFI
(for consistency with clouds / precipitation treatment):
- All soil variables are derived from the average of values at the
initial and final step of forward stage (default).
- All soil variables are initialized with instantaneous values valid
at nhalf step of forward stage.
|
0 |
Back to Contents
With the default settings of the namelist variables, there are no changes to
the results.
On the Cray XC there are numerical changes to the results due to compiler optimizations.
Back to Contents