Documentation of the Changes in the COSMO-Model
Version 4.12

11.05.2010

In the following, the main changes for the COSMO-Model between Version 4.2 and Version 4.12 are briefly documented. For more comprehensive explanations take a look to the file misc.global, which is distributed with the COSMO-Model source code. Also, only the most important Namelist changes are described here. For a full documentation please refer to the User Guide.

Contents:

  1. Changes in the Dynamics
  2. Changes in the Physics
  3. Changes in the Diagnostics and Postprocessing
  4. Changes in the Assimilation
  5. Technical Changes
  6. Summary of Namelist Variables Changes
  7. Changes of Results


1. Changes in the Dynamics

Changes in the bottom boundary condition for the Runge-Kutta dynamics
(by Günther Zängl)

The namelist parameter to choose an option for computing the bottom boundary condition has been renamed from itype_lbc_w to itype_bbc_w (because lbc is used for lateral boundary condition and bbc now is used for bottom boundary condition).

Moreover, the options itype_bbc_w = 2/3 have been changed from second order differences to a differencing following iadv_order without Runge-Kutta stepping. The options 0/1 still are for a Runge-Kutta stepping using iadv_order and 4/5 are using fourth-order centered differences.

For itype_bbc_w = 0/2/4 a quadratic extrapolation of the horizontal wind to the surface is computed, while for itype_bbc_w = 1/3/5 a linear one is used. The latter options are then only used for computing the metric terms.

Because of the changes for itype_bbc_w = 1 the results of COSMO-DE are changed.

Back to Contents

Changes in the horizontal diffusion
(by Oliver Fuhrer)

Situation up to now

There are (mainly) two types of horizontal diffusion, which can be chosen by the Namelist variable itype_hdiff:

  1. 4th order linear horizontal diffusion
  2. 4th order linear monotonic horizontal diffusion with an orographic limiter
With another Namelist variable lhdiff_mask, it could be chosen, whether the horizontal diffusion is performed on the whole field (lhdiff_mask=.FALSE.) or only in the boundary zone (lhdiff_mask=.TRUE.)

For itype_hdiff=2, correction factors could be given for the diffusion of the winds (hd_corr_u), the humidities and other tracers (hd_corr_q) and the temperature and pressure deviation (hd_corr_t).

For itype_hdiff=1, only the diffusion of the humidities and other tracers could be switched off completely by setting hd_corr_q=0.

A third variant (itype_hdiff=3) was only used earlier during the development of the Runge-Kutta scheme.

Changes to the scheme

Computation of the horizontal diffusion has been generalized in order

By an appropriate setting of the variables hd_corr_x_bd, the effect of lhdiff_mask can be reproduced: The variable lhdiff_mask therefore has been eliminated.

The effect of the generalization now is, that also for itype_hdiff=1 reduction factors can be specified for the interior and for the boundary zone of the domain separately. And pressure deviation can be treated separately from temperature.

The option itype_hdiff=3 has been eliminated, because it is not used any more.

Changes in the Namelist /DYNCTL/

Deleted Namelist variables: lhdiff_mask, hd_corr_u, hd_corr_q, hd_corr_t

New Namelist variables:

Name Meaning Default
hd_corr_u_in correction factor for horizontal diffusion flux of u,v,w in interior domain 1.0
hd_corr_u_bd correction factor for horizontal diffusion flux of u,v,w in boundary zone 1.0
hd_corr_t_in correction factor for horizontal diffusion flux of t in interior domain 0.75
hd_corr_t_bd correction factor for horizontal diffusion flux of t in boundary zone 0.75
hd_corr_p_in correction factor for horizontal diffusion flux of pp in interior domain 0.75
hd_corr_p_bd correction factor for horizontal diffusion flux of pp in boundary zone 0.75
hd_corr_q_in correction factor for horizontal diffusion flux of qv,qc in interior domain 0.5
hd_corr_q_bd correction factor for horizontal diffusion flux of qv,qc in boundary zone 0.5

Reproducing the old settings

All old settings can be reproduced with the new namelist variables by a proper setting. This is explained shortly. Here, hd_corr_u, hd_corr_q and hd_corr_t, resp., are the settings of the old Namelist variables.

itype_hdiff lhdiff_mask Settings
1 .TRUE. Diffusion only in the boundary zone, no reduction of horizontal diffusion fluxes:
hd_corr_u_bd = 1.0; hd_corr_u_in = 0.0;
hd_corr_t_bd = 1.0; hd_corr_t_in = 0.0;
hd_corr_p_bd = 1.0; hd_corr_p_in = 0.0;
hd_corr_q_in = 0.0;
For the diffusion of the humidities in the boundary zone, the situation is a bit different, because it could be switched off before with hd_corr_q = 0.0. So the setting must be
hd_corr_q_bd = 1.0 if hd_corr_q /= 0.0: diffusion, no reduction
= 0.0 if hd_corr_q == 0.0: no diffusion
.FALSE. Diffusion in the boundary and in the interior zone, no reduction of horizontal diffusion fluxes:
hd_corr_u_bd = 1.0; hd_corr_u_in = 1.0;
hd_corr_t_bd = 1.0; hd_corr_t_in = 1.0;
hd_corr_p_bd = 1.0; hd_corr_p_in = 1.0;
Again, the diffusion of the humidities could be switched off in the old settings, which must now be reflected for the boundary and the interior zone:
hd_corr_q_bd
hd_corr_q_in
= 1.0 if hd_corr_q /= 0.0: diffusion, no reduction
= 0.0 if hd_corr_q == 0.0: no diffusion
2 .TRUE. This is the COSMO-DE setting. Diffusion and reduction of fluxes only in the boundary zone:
hd_corr_u_bd = hd_corr_u; hd_corr_u_in = 0.0;
hd_corr_t_bd = hd_corr_t; hd_corr_t_in = 0.0;
hd_corr_p_bd = hd_corr_t; hd_corr_p_in = 0.0;
hd_corr_q_bd = hd_corr_q; hd_corr_q_in = 0.0;
.FALSE. This is the COSMO-EU setting. Diffusion and reduction of fluxes in the boundary and in the interior zone:
hd_corr_u_bd = hd_corr_u; hd_corr_u_in = hd_corr_u;
hd_corr_t_bd = hd_corr_t; hd_corr_t_in = hd_corr_t;
hd_corr_p_bd = hd_corr_t; hd_corr_p_in = hd_corr_t;
hd_corr_q_bd = hd_corr_q; hd_corr_q_in = hd_corr_q;

With the appropriate settings, the results are not changed.

Back to Contents


2. Changes in the Physics

Update of the multi-layer snow model
(by Ekaterina Machulskaya)

An update of this scheme has been implemented. This is still a preliminary, non-operational version, which is under testing at DWD. It is not meant for public use.

Back to Contents

Update of the sea-ice scheme
(by Jan-Peter Schulz)

An adapted sea-surface temperature is passed to subroutine tgcom as argument: t_s now contains t_ice at sea points covered with ice.

Back to Contents


3. Changes in the Diagnostics and Postprocessing

Computation of the potential vorticity
(by Michael Baldauf)

The COSMO-Model now contains the possibility to calculate the 3 compontents of the (relative) vorticity curl v (physical components in the system of spherical base vectors) and the potential vorticity (PV). This is a material invariant under quite general conditions, namely adiabatic and frictionless processes. Analogously, P ⋅ ρ is an integral invariant under the same conditions.

New subroutines in the module numeric_utilities:

New subroutines in the module pp_utilities:

Source code changes:

Back to Contents


4. Changes in the Assimilation

Changes in the Latent Heat Nudging
(by Daniel Leuenberger; Klaus Stephan)

Reintroduction of spatial quality function w

In the original LHN method of Jones and Macpherson (1997), a spatial quality function w is used to weight the radar observed and model precipitation to form the analysed precipitation. They calculated w from the distance to the next radar station, which is a good approximation to the radar quality over flat terrain. In mountainous regions such a quality function may not be optimal since in such regions the quality of radar precipitation is affected by various effects such as partial beam blocking or ground clutter. Leuenberger (2005) introduced a quality function based on geometrical visibility calculations of the Swiss radar network taking into account terrain induced radar problems. More recently, Rossa et al. (2009) proposed a spatial quality function based on statistical radar information, mainly using frequency of occurence as means to detect ground clutter and regions with low radar visibility.

In order to take such spatial quality information into account, the COSMO LHN code needed an upgrade, mainly to reactivate the possibility to use w in the calculation of the analysed precipitation, on which the determination of the latent heat increments are based. No fundamentally new code has been written to this end, instead the existing code that was still present for the use of the PI product has been refactured. A switch lhn_spqual has been introduced. If this switch is set to true, a 2D grib record named RADSPQUAL is read after each radar observation record (TOT_PREC). The order of the records is important, meaning that after each obs record, a quality record has to follow immediately. The field spqual must contain values in [0,1], so in contrast to the old code, no distances to the next radar station are read in, but directly the quality w.

Generalisation of the use of the radar observation input frequency

Up to now there was no possibility to chose the radar observation input frequency, but it was determined based on the switch lhn_radar_dx. This switch was introduced to differentiate between two DWD radar products, namely the old PI and the new DX product. The switch not only determined the radar input frequency but also the time interpolation between two subsequent radar observations and the use of the spatial radar weigth w. Now, the radar input time step can be specified in the namelist INPUT_ASS (lhn_dt_obs). Dependent on the radar input frequency, the time interpolation between subsequent radar observations is chosen:

  • lhn_dt_obs ≤ 10min: observations in the range [-2,3] ⋅ lhn_dt_obs are considered in the time interpolation (like up to now using lhn_radar_dx = .TRUE.)
  • lhn_dt_obs > 10min: observations in the range [0,1] ⋅ lhn_dt_obs are considered in the time interpolation, i.e. only the current and next observation is used (like up to now using lhn_radar_dx = .FALSE.)

More robust check in input of radar observations

Up to now no consistency check was made upon the radar observation grib records read in from the LHN input files, making the code vulnerable to the input of completely wrong grib fields. Therefore a more robust check was introduced if the input observations are consistent with the expected input. Beside the check for the appropriate observation time, the following additional properties of the grib records are now checked:

  • grib number and grib table number
  • dimensions of the 2D domain

References

  • Jones, C. D. and B. Macpherson, 1997:
    A Latent Heat Nudging Scheme for the Assimilation of Precipitation Data into an Operational Mesoscale Model. Meteorol. Appl., 4, 269-277
  • Leuenberger, D., 2005:
    High-resolution Radar Rainfall Assimilation: Exploratory Studies with Latent Heat Nudging, Dissertation Nr. 15884, ETH Zuerich. Available from http://e-collection.ethbib.ethz.ch/cgi-bin/show.pl?type=diss&nr=15884
  • Rossa, A., del Guerra, F. and Leuenberger, D., 2009:
    An Empirical Radar Data Quality Function, Proceedings of the 34th AMS Conference on Radar Meteorology, 5. - 9. October 2009 (Williamsburg,VA, USA), 8pp.

Changes in the Namelist switches (INPUT_ASS)

Deleted Namelist variables: lhn_radar_dx

New Namelist variables:

Name Meaning Default
lhn_spqual Switch for the use of a spatial quality function .FALSE.
lhn_dt_obs Time step of input data in minute 5

Note: No changes to the namelist variables are required, the defaults should match the behaviour of the old code. In this case, there are also no changes of the results.

Back to Contents


5. Technical Changes

  • Modification of interfaces in pp_utilities and meteo_utilities: Some interfaces in these modules have been changed for their usage in the postprocessing program FieldExtra. The modified subroutines are:
    • Subroutine cal_conv_ind in module pp_utilities:
      Insertion of additional interface arguments for error checking and provision of a mask, for which the computations have to be done.
    • Subroutine calc_sdi has been moved from module pp_utilities to module src_output, because of formal reasons. It does not fit to a utility module, because it uses other utility and data modules. This restricts its usage in FieldExtra
    • reference_atmosphere, reference_atmosphere_2 in module meteo_utilities:
      Some arguments have been declared as optional.
  • Introduced a new subroutine in src_input.f90, to check consistency of vertical coordinate parameters for all fields.
  • src_radiation.f90
    • Bug fix in the call to exchg_boundaries where a wrong vertical dimension in the 9th position of array kzdims had been used (by Lucio Torrisi)
    • Added computations for sunshine durations (by MCH)
    • Some changes in the ART part for new aerosol developments (by KIT)
  • numeric_utilities_rk.f90, SR zadv_pd_rk_cri_bott (by Stephan Pfahl)
    The 4th order option had erroneously been mixed with the vector optimizations of the 2nd order option (this changes results for 4th order option of Bott advection).
  • Corrected a comment for dimension of qvsflx in several subroutines.
  • Renamed t0 to t0_melt because of conflicting names.
  • Changed following short names because of conflicting names with other applications:
    Old Name New Name Explanation
    QNC QNCLOUD Especially QNH is used for surface pressure reduced to Mean-Sea Level in air traffic applications
    (reported by MeteoSwiss)
    QNR QNRAIN
    QNI QNICE
    QNS QNSNOW
    QNG QNGRAUPEL
    QNH QNHAIL
    PRS_MIN RSMIN This is the minimum stomata resistance of plants, but the old name is confusing because of PRS_GSP, PRS_CON, which stand for the Precipitation Rate of Snow. The COSMO variable is now called rsmin2d, to distinguish from the real value crsmin
  • The Namelist Variables yvarini and yvarbd have been eliminated. With these variables, the lists of initial and boundary variables, resp., could be specified. But depending on the configuration chosen, these lists are also set up by the program. Specifying them by hand was too error-prone.

Back to Contents


6. Summary of Namelist Variables Changes

There were the following changes for the Namelist variables:

Group Name Meaning Default
/DYNCTL/ lhdiff_mask eliminated -
hd_corr_u
hd_corr_q
hd_corr_t
hd_corr_u_in correction factor for horizontal diffusion flux of u,v,w in interior domain 1.0
hd_corr_u_bd correction factor for horizontal diffusion flux of u,v,w in boundary zone 1.0
hd_corr_t_in correction factor for horizontal diffusion flux of t in interior domain 0.75
hd_corr_t_bd correction factor for horizontal diffusion flux of t in boundary zone 0.75
hd_corr_p_in correction factor for horizontal diffusion flux of pp in interior domain 0.75
hd_corr_p_bd correction factor for horizontal diffusion flux of pp in boundary zone 0.75
hd_corr_q_in correction factor for horizontal diffusion flux of qv,qc in interior domain 0.5
hd_corr_q_bd correction factor for horizontal diffusion flux of qv,qc in boundary zone 0.5
/NUDGING/ lhn_radar_dx eliminated -
lhn_spqual Switch for the use of a spatial quality function .FALSE.
lhn_dt_obs Time step of input data in minute 5
/GRIBIN/ yvarini eliminated -
yvarbd eliminated -

Back to Contents


7. Changes of Results

Leapfrog-Dynamics (COSMO-EU):
No changes.

Runge-Kutta-Dynamics (COSMO-DE):
Changes due to the modifications in the bottom boundary condition (for itype_bbc_w=2/3)
and for 4th order Bott advection (for yef_adv_qx='Bott_4').

Back to Contents