The vertical discretization in LMDZ
LMDZ model levels are hybrid sigma-pressure coordinates.
This means that the pressure P of a model level is a function of surface pressure PS (which varies with time) and fixed predefined time-independent hybrid coordinates ap() and bp():
P(level,time) = ap(level) + bp(level) . Ps (time)
Near the surface ap() is negligible and
P(level,time) ~ bp(level) . Ps (time)
and thus model levels are essentially sigma levels there.
Going to higher altitudes, bp() goes to zero and the bp().Ps term becomes negligible and then
P(level,time) ~ ap(level)
and thus model levels tend to be purely pressure levels there.
definition of the vertical distribution
There are many ways to define the vertical distribution of model layers via the def files. In practice the related parameters are set in the vert.def (which is included in the run.def file). The master parameter being vert_sampling (string) which can be set to:
- vert_sampling=strato_custom : a highly customizable setup for stratospheric extensions
- vert_sampling=strato : a default for stratospheric extensions
- vert_sampling=sigma : make model levels (automatically generated) purely sigma levels
- vert_sampling=tropo : a default for tropospheric simulations
- vert_sampling = read : read ap() and bp(), the auxiliary hybrid coordinate coefficients, from file “hybrid.txt”
Friendly advice
Typically you don't need to mess with the vertical discretization, the provided defaults (see files in DefLists) should match your need. If you really want to dive into this, then you should check out routine libf/dyn3d_common/disvert.F90
03/12/2021