15.12.2017
Another development version with the latest changes: Version 5.04h.
- Changes in the Data Assimilation
- Changes in the Dynamics
- Changes in the Physics
- GPU Version of Turbulence Scheme
- Technical Changes and Bug Fixes
- Changes to the Namelists
- Changes of Results
(by Christoph Schraff)
- Reading and processing of AMV (Atmospheric Motion Vectors from satellite data)
reports introduced. The name of the observation input file for these data is
cdfin_satob.
- Reading of PILOT and AMDAR reports (from files cdfin_pilot, cdfin_pilot_p,
cdfin_amdar) made more flexible in terms of mandatory variables in these
file types such that the NetCDF files available at CNMCA can be processed.
- In the fof feedback files written by COSMO, the report header element
retrtype is added for describing the AMV wind retrieval type (e.g. from VIS,
IR, or WV channel data). Reading feedback files with or without retrtype
from COSMO or DACE (LETKF, MEC) is transparent, i.e. this element is
automatically read only if present.
New values for retrtype are defined (5: WV clear air; 7: WV unspecified).
- Observation error value for radiosonde wind at 500 hPa adjusted to the value
used in the global VAR (from 3.5 to 3.0 m/s).
This would slightly change the results in KENDA if the observation error
values were not (re-)set in the namelist of the LETKF. More generally,
it might change the quality control decisions (in rare cases).
- Bug fix for writing report header element mdlsfc (model surface
characteristics) to the fof NetCDF feedback file.
There is a new namelist variable:
Group |
Name |
Meaning |
Default |
/NUDGING/ |
lcd090 |
NEW |
AMV (satellite Atmospheric Motion Vector) winds are
used actively. |
.TRUE. |
Back to Contents
(by Xavier Lapillonne, Pascal Spoerri, MCH)
In combination with the C++ Dycore an inconsistency was found in the halo of the
variable tt_lheat. This is because at the end of src_runge_kutta, the saturation
adjustment is run on the full domain, including the borders of the full domain.
But as no new values are computed on these borders, t, qv and qc are changed
"artificially". And the resulting temperature difference is added to the variable
tt_lheat for the latent heat nudging, which should not be the case.
These changes can modify the result, depending on the weather situation (if latent
heat nudging is active).
Measurements taken:
- src_lheating:
Introduce computational indices to subroutine get_gs_lheating, to be able
to run it only in the interior domain.
Before, this routine was computed on the full domain.
- src_runge_kutta.f90, src_leapfrog.f90:
Compute saturation adjustment only on the interior domain. Adapt computational
indices for get_gs_lheating to the interior domain.
- src_relaxation.f90:
Adapt computational indices for get_gs_lheating to the interior domain.
- src_nudging.f90:
Introduce computational indices for get_gs_lheating (interior domain only).
- src_lheat_nudge.f90:
Introduce computational indices for get_gs_lheating (full domain).
Back to Contents
- Tiedtke-Bechtold Convection Scheme (by Lucio Torrisi):
Introduced a new namelist switch lshallowconv_only in /PHYCTL/:
With this switch only the shallow convection from the Tiedtke-Bechtold scheme
can be activated. Note that it only works for this scheme (itype_conv=2).
Group |
Name |
Meaning |
Default |
/PHYCTL/ |
lshallowconv_only |
NEW |
To activate only the shallow convection from the Tiedtke-Bechtold
scheme. This switch only is in effect, if itype_conv = 2. |
.FALSE. |
The same switch also exists in ICON
- TERRA (by Ulrich Schaettler)
- The variables zzhls, zdzhs, zdzms have been declared as global variables and
are computed only once in sfc_init.
- The variable czmls in the interfaces to terra and terra_init has been renamed
zmls. With this name it is used throughout the subroutines.
Back to Contents
(by Xavier Lapillonne, MCH)
All routines of the turbulence schemes have been ported to the GPU with OpenACC
statements. There were a few technical changes to the code (in turb_diffusion),
but only very conservative ones, to not destroy performance on GPU. These are mostly
loop reordering , but the loops still vectorise on the CPU (tested with Cray).
The performance on CPU should not be affected.
Affected routines (beside turb-routines):
- data_constants.f90:
Declaration of special variables on GPU with copyin.
- src_block_fields_org.f90:
Added subroutines acc_update_device_block_fields, acc_update_host_block_fields.
Two small bug fixes have been implemented:
- turb_transfer:
In a loop, the scalar dz_s0_m was used, which was calculated in
another loop depending on vector index i. It is now just
recomputed in this loop.
- turb_diffusion:
A pointer prhon (pointing to allocatable field rhon) was
introduced, because SR bound_level_interp requires a pointer.
Back to Contents
- acc_device_management.f90:
Removed an INTEGER declaration, which appeared twice.
- acc_global_data.f90:
Include external SSO parameter fields and organizational variables for
the surface schemes
- hori_diffusion.f90, lmorg.f90, src_scpp_dycore.f90:
Update and fixes for the serialization.
Back to Contents
Group |
Name |
Meaning |
Default |
/NUDGING/ |
lcd090 |
NEW |
AMV (satellite Atmospheric Motion Vector) winds are
used actively. |
.TRUE. |
/PHYCTL/ |
lshallowconv_only |
NEW |
To activate only the shallow convection from the Tiedtke-Bechtold
scheme. This switch only is in effect, if itype_conv = 2. |
.FALSE. |
Back to Contents
- The changes in the dynamics for tt_lheat can modify the results, depending on
the weather situation (if latent heat nudging is active).
- Adjusting the observation error value for radiosonde wind at 500 hPa to the
value used in the global VAR (from 3.5 to 3.0 m/s) can also change the
results (see above).
Back to Contents