Damping Driver
Summary
The damping_driver
module is called by the idealized_moist_phys
module by setting do_damping
to true. It controls the upper level momentum damping in Isca. It controls 4 optional functions:
Rayleigh friction which acts on levels
1
tokbot
. This function is located indamping_driver
itself.A (orographic) mountain gravity wave drag module (
cg_drag
) may be called.A (non orographic) convective gravity wave drag module (
mg_drag
) may be called.A time independent drag may be called. This function is located in
damping_driver
itself.
Another module (topo_drag
) is referenced in the code, but is not available in Isca at present.
It is located at: Isca/src/atmos_param/damping_driver/damping_driver.f90
Namelist options
trayfric
- (for Rayleigh friction) damping time in seconds for Rayleigh damping momentum in the top model layers, the number of which is specified by nlev_rayfric
(non namelist parameter, automatically determined in code). If trayfric
< 0 then time in days. Default 0.
do_rayleigh
- On/Off switch for doing Rayleigh friction. Default False
sponge_pbottom
- (for Rayleigh friction) used to calculate nlev_rayfric
, it specifies the bottom level where the Rayleigh friction starts. Default 50Pa.
do_cg_drag
- On/Off switch for doing mountain gravity wave drag. Default False.
do_topo_drag
- On/Off switch for doing the topo_drag module which is currently unavailable. Default False.
do_mg_drag
- On/Off switch for doing convective gravity wave drag. Default False.
do_conserve_energy
- (for Rayleigh friction) On/Off switch for also calculating the temperature tendency (if True). Default False.
do_const_drag
- On/Off switch for doing the constant drag. Default False.
const_drag_amp
- (for constant drag) Parameter for adjusting drag. Default 3.e-04.
const_drag_off
- (for constant drag) Parameter for adjusting drag. Default 0.
- For a typical idealized Earth set up there is no parameterised gravity wave drag and Rayleigh damping is only needed to keep the model stable. The namelist would then look like::
'do_rayleigh': True, 'trayfric': -0.25, 'sponge_pbottom': 50., 'do_conserve_energy': True
Diagnostics
There are many diagnostics either in or passed by damping driver.
Rayleigh friction:
Name |
Description |
Units |
---|---|---|
|
u wind tendency |
\(m s^{-2}\) |
|
v wind tendency |
\(m s^{-2}\) |
|
dissipative heating |
\(K s^{-1}\) |
|
integrated dissipative heating |
\(W m^{-2}\) |
Mountain GWD:
Name |
Description |
Units |
---|---|---|
|
u wind tendency |
\(m s^{-2}\) |
|
v wind tendency |
\(m s^{-2}\) |
|
x base flux |
\(kg m^{-1} s^{-2}\) |
|
y base flux |
\(kg m^{-1} s^{-2}\) |
|
saturation flux |
\(kg m^{-1} s^{-2}\) |
|
dissipative heating |
\(K s^{-1}\) |
|
integrated dissipative heating |
\(W s^{-2}\) |
|
sub-grid scale topography variance |
\(m\) |
Convective GWD:
Name |
Description |
Units |
---|---|---|
|
u wind tendency |
\(m s^{-2}\) |
Constant Drag:
Name |
Description |
Units |
---|---|---|
|
u wind tendency |
\(m s^{-2}\) |
topo_drag:
Note: These are not currently available
Name |
Description |
Units |
---|---|---|
|
u wind tendency |
\(m s^{-2}\) |
|
v wind tendency |
\(m s^{-2}\) |
Relevant modules and subroutines
The code is split into 4 subroutines; damping_driver
, damping_driver_init
, damping_driver_end
and rayleigh
. The _init
and _end
subroutines are for initializing and closing the module. The majority of the damping driver
code is just a switchboard with the exception of the Rayleigh and constant drag calculations. The calculations for the other drag schemes are given in their own documentation.
Rayleigh Drag
Located in the rayleigh
subroutine. This code damps the momentum toward zero in the specified upper model levels. The zonal/meridional tendency for each grid cell is calculated my multiplying the zonal/meridional velocity by a factor determined by the pressure and Rayleigh parameters. The damping is therefor proportional to the wind velocity.
The temperature tendency is calculated using the wind velocities, wind tendencies, and the heat capacity of air.
Constant Drag
Located in the damping_driver
subroutine. This is modelled on Alexander-Dunkerton winter average, it uses a 3rd order polynomial and the constant drag parameters to calculate a time invariant drag. This set up is modelled on Earth’s atmosphere and therefore not recommended for other planets.
References
Convective Gravity Wave Drag (cg_drag) [Pierrehumbert1986]
Orographic Gravity Wave Drag (mg_drag) [Alexander1999]