Documentation of the Changes in the COSMO-Model
Version 4.24

22.06.2012

4.24 is another version towards the new unified version 5.0. It contains again some fixes for 4.23, but again a few new features. It contains some modifications that do influence the results of the simulations. Hopefully, these are the last changes which do change the results, so this version is a candidate for performing meteorological tests. If everything works out well, the next versions only contain technical changes with no effects on the results.

Contents:

  1. New Fast Waves Solver
  2. Changes to Subroutines computing the Reference Atmospheres
  3. Changes for sub-hourly Analysis Update with LETKF
  4. Problems in FLake Model with GRIB packing
  5. Technical Changes and Bug Fixes
  6. Changes to the Namelists
  7. Changes of Results


1. New Fast Waves Solver

(by Michael Baldauf)

Most of the operational setups of the COSMO model now use the so-called Runge-Kutta time integration scheme (Wicker, Skamarock, 2002). The basic idea of this time-splitting procedure is to treat the slow parts like advection or Coriolis force with a large time step, whereas the fast waves modes sound and gravity wave expansion are treated with a small time step.

As in the original proposal of Wicker, Skamarock (2002, 1998) the fast waves are treated horizontally with a backward-forward scheme and vertically implicit to allow larger values for the small time step. An additional filter process must stabilize this whole time-splitting procedure; usually a divergence damping is used (e.g. Skamarock, Klemp, 1992) in the fast waves solver.

Properties of the new fast waves solver compared to the current one are:

A new namelist switch itype_fast_waves has been introduced in /DYNCTL/, to activate the old (Default) or new fast-waves solver:

Group Name Meaning Default
/DYNCTL/ itype_fast_waves Type of fast waves solver for Runge-Kutta dynamics
  1. Old scheme (from module fast_waves_rk.f90) (Default)
  2. New scheme (from module fast_waves_sc.f90)
    • with proper weightings for all vertical discretizations,
    • divergence operator in strong conservation form,
    • optionally: isotropic (fully 3D) divergence damping,
    • optionally: Mahrer (1984) discretization
1

New options for the bottom boundary condition itype_bbc_w can be set which are only valid for itype_fast_waves=2. These will be elaborated further and will be documented in a later release.

Recommended Namelist settings for the new fast-waves solver in /DYNCTL/:

Back to Contents


2. Changes to Subroutines computing the Reference Atmospheres

(by Michael Baldauf)

There have been some changes to the subroutines reference_atmosphere, reference_atmosphere_2 and reference_atmosphere_BV in module meteo_utilities.f90:

The interfaces in src_input.f90 and src_artifdata.f90 have been adapted accordingly.

Back to Contents


3. Changes for sub-hourly Analysis Update with LETKF

(by Hendrik Reich)

When using the LETKF method for data assimilation in the future, there will be the need to have an assimilation cycle of only few minutes, and not of hours. Therefore the COSMO-Model has been adapted to read and write files, where also minutes and seconds are included, e.g.

laf20130504121500:   for 04th of May 2013, 12 UTC + 15 Minutes and 00 seconds

instead of the hitherto existing laf2013050412.

The main changes are:

Back to Contents


4. Problems in FLake Model with GRIB packing

(by Dmitrii Mironov)

There were problems with the FLake Model related to Grib packing. At the end of each time step the FLake Model checks all computed values for consistency. Then the variables are written to Grib and read again in the next assimilation cycle or at the start of a forecast. Due to grib packing the consistency of the data could be lost.

Therefore, a consistency check has now been added also at the beginning of a simulation in the subroutine flake_init.

Moreover, another security procedure has been implemented:
To limit the values of EXP-arguments, a maximum value for EXP arguments has been introduced in data_flake.f90: c_maxearg_flk = 1.0E+02_ireals.

NOTE: These modifications do change the results of the simulations!

Back to Contents


5. Technical Changes and Bug Fixes

  • io_utilities.f90:
    • Reading restart files: Adaptations are necessary in check_input_grid to deal with binary restart files.
    • Adaptations for reading NetCDF files: Unification of IDs with INT2LM: Changed dim_id for topo corrections from 11 to 15 (by Burkhardt Rockel).
  • data_io.f90:
    Unification of NetCDF dimension ID's with INT2LM (by Burkhardt Rockel, CLM).
  • organize_data.f90:
    • Corrected check for itype_albedo in line 1074: was erroneously checked two times for value = 2.
    • SR input_ioctl: replaced some WARNINGs for async I/O by ERROR, because error status is set now.
  • src_input.f90:
    • Reading restart files: Also check the possibility of irefatm=3 for restarts.
    • Corrected an error message in SR fill_realarray.
    • Adapted definition of dim_ids to INT2LM: changed ID for topo corrections from 11 to 15 (by Burkhardt Rockel).
  • src_output.f90: Conditional compilation for GRIBDWD in SR makegds:
    The vertical coordinate parameters can only be written, if GRIBDWD is set and the Grib library is available, because of packing of REALs to INTEGERs. In case of restart these parameters are not written, but also not needed.
  • src_sat_rttov.f90:
    Added a NOMOVE Compiler directive for the SX-compiler.
  • src_slow_tendencies_rk.f90:
    Order of summations for humidity tracer qvtens in advection: was different than for all the other humidity tracers and has been adapted now

    NOTE: This changes the results because of numerical reasons.

Back to Contents


6. Changes to the Namelists

There were the following changes for the Namelist variables:

Group Name Meaning Default
/RUNCTL/ ydate_ini The character string for this namelist switch can now be specified in two ways:
  • ydate_ini = 'yyyymmddhh': All file names are specified in the way it was before.
  • ydate_ini = 'yyyymmddhhmmss': (with additional digits for the minutes and seconds): All file names for the initial files or for ytunit='d' (in day format) are also specified with the additional digits.
' '
/DYNCTL/ itype_fast_waves Type of fast waves solver for Runge-Kutta dynamics
  1. Old scheme (from module fast_waves_rk.f90) (Default)
  2. New scheme (from module fast_waves_sc.f90)
    • with proper weightings for all vertical discretizations,
    • divergence operator in strong conservation form,
    • optionally: isotropic (fully 3D) divergence damping,
    • optionally: Mahrer (1984) discretization
1

Back to Contents


7. Changes of Results

The following changes influence the results:

  • Computation of t0 in subroutine reference_atmosphere_2 in a slightly different way: Affects only applications that use irefatm=2
  • Use of precomputed t0 in module src_runge_kutta instead of re-computing (because of numerical reasons).
  • Changes in the FLake Model.
  • Changes to the routine get_utc_date and the return parameter acthour: Slight changes of the values because of numerical reasons. Because this parameter is used in the radiation scheme for determining the zenith angle of the sun, the values of the simulations can change.

Back to Contents