horizontal_diffusion Module

For performing horizontal diffusion.


Uses

  • module~~horizontal_diffusion~~UsesGraph module~horizontal_diffusion horizontal_diffusion module~params params module~horizontal_diffusion->module~params

Used by

  • module~~horizontal_diffusion~~UsedByGraph module~horizontal_diffusion horizontal_diffusion proc~initialize initialize proc~initialize->module~horizontal_diffusion proc~initialize_implicit initialize_implicit proc~initialize_implicit->module~horizontal_diffusion proc~set_forcing set_forcing proc~set_forcing->module~horizontal_diffusion proc~step step proc~step->module~horizontal_diffusion

Contents


Variables

TypeVisibility AttributesNameInitial
real, public :: dmp(mx,nx)

Damping coefficient for temperature and vorticity (explicit)

real, public :: dmpd(mx,nx)

Damping coefficient for divergence (explicit)

real, public :: dmps(mx,nx)

Damping coefficient for extra diffusion in the stratosphere (explicit)

real, public :: dmp1(mx,nx)

Damping coefficient for temperature and vorticity (implicit)

real, public :: dmp1d(mx,nx)

Damping coefficient for divergence (implicit)

real, public :: dmp1s(mx,nx)

Damping coefficient for extra diffusion in the stratosphere (implicit)

real, public :: tcorv(kx)

Vertical component of orographic correction for temperature

real, public :: qcorv(kx)

Vertical component of orographic correction for humidity

complex, public :: tcorh(mx,nx)

Horizontal component of orographic correction for temperature

complex, public :: qcorh(mx,nx)

Horizontal component of orographic correction for humidity


Interfaces

public interface do_horizontal_diffusion

  • private function do_horizontal_diffusion_2d(field, fdt_in, dmp, dmp1) result(fdt_out)

    Adds horizontal diffusion tendency of field to spectral tendency fdt using damping coefficients dmp and dmp1.

    Arguments

    Type IntentOptional AttributesName
    complex, intent(in) :: field(mx,nx)
    complex, intent(in) :: fdt_in(mx,nx)
    real, intent(in) :: dmp(mx,nx)
    real, intent(in) :: dmp1(mx,nx)

    Return Value complex (mx,nx)

  • private function do_horizontal_diffusion_3d(field, fdt_in, dmp, dmp1) result(fdt_out)

    Adds horizontal diffusion tendency of field to spectral tendency fdt at all model levels using damping coefficients dmp and dmp1.

    Arguments

    Type IntentOptional AttributesName
    complex, intent(in) :: field(mx,nx,kx)
    complex, intent(in) :: fdt_in(mx,nx,kx)
    real, intent(in) :: dmp(mx,nx)
    real, intent(in) :: dmp1(mx,nx)

    Return Value complex (mx,nx,kx)


Functions

private function do_horizontal_diffusion_2d(field, fdt_in, dmp, dmp1) result(fdt_out)

Adds horizontal diffusion tendency of field to spectral tendency fdt using damping coefficients dmp and dmp1.

Arguments

Type IntentOptional AttributesName
complex, intent(in) :: field(mx,nx)
complex, intent(in) :: fdt_in(mx,nx)
real, intent(in) :: dmp(mx,nx)
real, intent(in) :: dmp1(mx,nx)

Return Value complex (mx,nx)

private function do_horizontal_diffusion_3d(field, fdt_in, dmp, dmp1) result(fdt_out)

Adds horizontal diffusion tendency of field to spectral tendency fdt at all model levels using damping coefficients dmp and dmp1.

Arguments

Type IntentOptional AttributesName
complex, intent(in) :: field(mx,nx,kx)
complex, intent(in) :: fdt_in(mx,nx,kx)
real, intent(in) :: dmp(mx,nx)
real, intent(in) :: dmp1(mx,nx)

Return Value complex (mx,nx,kx)


Subroutines

public subroutine initialize_horizontal_diffusion()

Initializes the arrays used for horizontal diffusion.

Arguments

None