| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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. |
Initializes the arrays used for horizontal diffusion.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModHorizontalDiffusion_t), | intent(inout) | :: | this | |||
| class(ModGeometry_t), | intent(in), | target | :: | mod_geometry |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModHorizontalDiffusion_t), | intent(inout) | :: | this |
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