*******************
Vertical wind
*******************
Calculation of vertical velocity and preparation of output files
================================================================
Two methods are provided in ``flex_extract`` for the calculation of the vertical velocity for ``FLEXTRA``/``FLEXPART``:
(i) from the horizontal wind field,
(ii) from the MARS parameter 77, which is available for operational forecasts and analyses since September 2008 and for reanalysis datasets **ERA5** and **CERA-20C**, which contains the vertical velocity directly in the eta coordinate system of the ECMWF model.
Especially for high resolution data, use of the ``MARS`` parameter 77 is recommended,
since the computational cost (measured in ECMWF HPC units) is reduced by 90-95% at
T799. The extraction time, which depends heavily also on the performance of ``MARS``, is
generally reduced by 50% as well. The ``MARS`` parameter 77 is then multiplied by ``dp/deta`` to
give a vertical velocity in Pa/s as needed by ``FLEXPART``.
Calculation from the horizontal wind field is still required for historical case studies using
**ERA-40**, **ERA-Interim** or operational data prior to September 2008.
Calculation of the vertical velocity from the horizontal wind using the continuity equation
===========================================================================================
The vertical velocity in the ECMWF's eta vertical coordinate system is computed by the Fortran program ``calc_etadot``, using the continuity equation and thereby ensuring mass-consistent 3D wind fields. A detailed description of ``calc_etadot`` can be found in the
documents v20_update_protocol.pdf, V30_update_protocol.pdf and
V40_update_protocol.pdf. The computational demand and accuracy of ``calc_etadot`` is highly
dependent on the specification of parameters ``GAUSS``, ``RESOL`` and ``SMOOTH``. The
following guidance can be given for choosing the right parameters:
* For very fine output grids (0.25 degree or finer), the full resolution T799 or even T1279 of the operational model is required (``RESOL=799``, ``SMOOTH=0``). The highest available resolution (and the calculation of vertical velocity on the Gaussian grid (``GAUSS=1``) is, however, rather demanding and feasible only for resolutions up to T799. Higher resolutions are achievable on the HPC. If data retrieval at T1279 needs to be performed on *ecgate*, the computation of the vertical velocity is feasible only on the lat/lon grid (``GAUSS=0``), which also yields very good results. Please read document v20_update_protocol.pdf-v60_update_protocol.pdf to see if the errors incurred are acceptable for the planned application.
* For lower resolution (often global) output grids, calculation of vertical velocities with lower than operational spectral resolution is recommended. For global grids the following settings appear optimal:
- For 1.0 degree grids: ``GAUSS=1``, ``RESOL=255``, ``SMOOTH=179``
- For 0.5 degree grids: ``GAUSS=1``, ``RESOL=399``, ``SMOOTH=359``
- Calculation on the lat/lon grid is not recommended for less than the operational (T1279) resolution.
- If ``GAUSS`` is set to 1, only the following choices are possible for ``RESOL`` on *ecgate*: 159,255,319,399,511,799, (on the HPC also 1279; 2047 in future model versions). This choice is restricted because a reduced Gaussian grid is defined in the ECMWF EMOSLIB only for these spectral resolutions. For ``GAUSS=0``, ``RESOL`` can be any value below the operational resolution.
- For ``SMOOTH``, any resolution lower than ``RESOL`` is possible. If no smoothing is desired, ``SMOOTH=0`` should be chosen. ``SMOOTH`` has no effect if the vertical velocity is calculated on a lat\/lon grid (``GAUSS=0``).
* The on-demand scripts send an error message for settings where ``SMOOTH`` (if set) and ``RESOL`` are larger than 360./``GRID``/2, since in this case, the output grid cannot resolve the highest wave numbers. The scripts continue operations, however.
* Regional grids are not cyclic in zonal directions, but global grids are. The software assumes a cyclic grid if ``RIGHT``-``LEFT`` is equal to ``GRID`` or is equal to ``GRID``-360.
* Finally, model and flux data as well as the vertical velocity computed are written to files ``yymmddhh`` (the standard ``flex_extract`` output files) If the parameters ``OMEGA`` or ``OMEGADIFF`` are set, also files ``OMEGAyymmddhh`` are created, containing the pressure vertical velocity (omega) and the difference between omega from ``MARS`` and from the surface pressure tendency. ``OMEGADIFF`` should be set to zero except for debugging, since it triggers expensive calculations on the Gaussian grid.
Calculation of the vertical velocity from the pre-calculated MARS parameter 77
==============================================================================
Since November 2008, the parameter 77 (deta/dt) is stored in ``MARS`` on full model levels. ``FLEXTRA``/``FLEXPART`` in its current version requires ``deta/dt`` on model half levels, multiplied by ``dp/deta``. In ``flex_extract``, the program ``calc_etadot`` assumes that parameter 77 is available if the ``CONTROL`` parameter ``ETA`` is set to 1.
It is recommended to use the pre-calculated parameter 77 by setting ``ETA`` to 1 whenever possible.
Setting the parameter ``ETA`` to 1 disables calculation of vertical velocity from the horizontal wind field, which saves a lot of computational time.
.. note::
However, the calculations on the Gaussian grid are avoided only if both ``GAUSS`` and ``ETADIFF`` are set to 0. Please set ``ETADIFF`` to 1 only if you are really need it for debugging since this is a very expensive option. In this case, ``ETAyymmddhh`` files are produced that contain the vertical velocity from horizontal winds and the difference to the pre-calculated vertical velocity.
The parameters ``RESOL``, ``GRID``, ``UPPER``, ``LOWER``, ``LEFT``, ``RIGHT`` still apply. As for calculations on the Gaussian grid, the spectral resolution parameter ``RESOL`` should be compatible with the grid resolution (see previous subsection).
.. toctree::
:hidden:
:maxdepth: 2