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:

  1. Rayleigh friction which acts on levels 1 to kbot. This function is located in damping_driver itself.

  2. A (orographic) mountain gravity wave drag module (cg_drag) may be called.

  3. A (non orographic) convective gravity wave drag module (mg_drag) may be called.

  4. 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

udt_rdamp

u wind tendency

\(m s^{-2}\)

vdt_rdamp

v wind tendency

\(m s^{-2}\)

tdt_diss_rdamp

dissipative heating

\(K s^{-1}\)

diss_heat_rdamp

integrated dissipative heating

\(W m^{-2}\)

Mountain GWD:

Name

Description

Units

udt_gwd

u wind tendency

\(m s^{-2}\)

vdt_gwd

v wind tendency

\(m s^{-2}\)

taubx

x base flux

\(kg m^{-1} s^{-2}\)

tauby

y base flux

\(kg m^{-1} s^{-2}\)

taus

saturation flux

\(kg m^{-1} s^{-2}\)

tdt_diss_gwd

dissipative heating

\(K s^{-1}\)

diss_heat_gwd

integrated dissipative heating

\(W s^{-2}\)

sgsmtn

sub-grid scale topography variance

\(m\)

Convective GWD:

Name

Description

Units

udt_cgwd

u wind tendency

\(m s^{-2}\)

Constant Drag:

Name

Description

Units

udt_cnstd

u wind tendency

\(m s^{-2}\)

topo_drag:

Note: These are not currently available

Name

Description

Units

udt_topo

u wind tendency

\(m s^{-2}\)

vdt_topo

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]

Authors

This documentation was written by Ross Castle, peer reviewed by Stephen Thomson, and quality controlled by Matthew Henry.