ModHorizontalDiffusion_t Derived Type

type, public :: ModHorizontalDiffusion_t


Inherits

type~~modhorizontaldiffusion_t~~InheritsGraph type~modhorizontaldiffusion_t ModHorizontalDiffusion_t ModGeometry_t ModGeometry_t type~modhorizontaldiffusion_t->ModGeometry_t mod_geometry

Contents


Components

TypeVisibility AttributesNameInitial
real(kind=p), private, allocatable:: dmp(:,:)

Damping coefficient for temperature and vorticity (explicit)

real(kind=p), private, allocatable:: dmpd(:,:)

Damping coefficient for divergence (explicit)

real(kind=p), private, allocatable:: dmps(:,:)

Damping coefficient for extra diffusion in the stratosphere (explicit)

real(kind=p), private, allocatable:: dmp1(:,:)

Damping coefficient for temperature and vorticity (implicit)

real(kind=p), private, allocatable:: dmp1d(:,:)

Damping coefficient for divergence (implicit)

real(kind=p), private, allocatable:: dmp1s(:,:)

Damping coefficient for extra diffusion in the stratosphere (implicit)

real(kind=p), private, allocatable:: tcorv(:)

Vertical component of orographic correction for temperature

real(kind=p), private, allocatable:: qcorv(:)

Vertical component of orographic correction for humidity

complex(kind=p), private, allocatable:: tcorh(:,:)

Horizontal component of orographic correction for temperature

complex(kind=p), private, allocatable:: qcorh(:,:)

Horizontal component of orographic correction for humidity

logical, private :: mod_diffusion_initialized =.false.
class(ModGeometry_t), private, pointer:: mod_geometry=> null()

Spectral module instance

logical, private :: mod_geometry_initialized =.false.

Type-Bound Procedures

procedure, public :: initialize => ModHorizontalDiffusion_initialize

procedure, public :: delete => ModHorizontalDiffusion_delete

Source Code

    type ModHorizontalDiffusion_t
        real(p), allocatable :: dmp(:, :)  !! Damping coefficient for temperature and vorticity (explicit)
        real(p), allocatable :: dmpd(:, :) !! Damping coefficient for divergence (explicit)
        real(p), allocatable :: dmps(:, :) !! Damping coefficient for extra diffusion in the stratosphere (explicit)

        real(p), allocatable :: dmp1(:, :)  !! Damping coefficient for temperature and vorticity (implicit)
        real(p), allocatable :: dmp1d(:, :) !! Damping coefficient for divergence (implicit)
        real(p), allocatable :: dmp1s(:, :) !! Damping coefficient for extra diffusion in the stratosphere (implicit)

        real(p), allocatable :: tcorv(:) !! Vertical component of orographic correction for temperature
        real(p), allocatable :: qcorv(:) !! Vertical component of orographic correction for humidity

        complex(p), allocatable :: tcorh(:, :) !! Horizontal component of orographic correction for temperature
        complex(p), allocatable :: qcorh(:, :) !! Horizontal component of orographic correction for humidity

        logical :: mod_diffusion_initialized = .false.

        ! We keep a pointer to a ModGeometry_t instance
        class(ModGeometry_t), pointer :: mod_geometry => null() !! Spectral module instance
        logical :: mod_geometry_initialized = .false.

    contains
        procedure :: initialize => ModHorizontalDiffusion_initialize
        procedure :: delete => ModHorizontalDiffusion_delete
        !        procedure :: do_horizontal_diffusion => do_horizontal_diffusion
    end type ModHorizontalDiffusion_t