| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private | :: | mod_implicit_initialize_flag | = | .false. | ||
| real(kind=p), | private, | allocatable, dimension(:) | :: | tref | |||
| real(kind=p), | private, | allocatable, dimension(:) | :: | tref2 | |||
| real(kind=p), | private, | allocatable, dimension(:) | :: | tref3 | |||
| real(kind=p), | private, | allocatable, dimension(:) | :: | dhsx | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | xc | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | xd | |||
| real(kind=p), | private, | allocatable, dimension(:, :) | :: | elz | |||
| real(kind=p), | private, | allocatable, dimension(:, :, :) | :: | xj |
Initialize constants for implicit computation of horizontal diffusion and gravity waves.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModImplicit_t), | intent(inout) | :: | this | |||
| class(ModGeometry_t), | intent(in), | target | :: | mod_geometry |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModImplicit_t), | intent(inout), | target | :: | this | ||
| real(kind=p), | intent(in) | :: | dt | Time step |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModImplicit_t), | intent(inout) | :: | this |
Correct tendencies for implicit gravity wave model
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ModImplicit_t), | intent(inout) | :: | this | |||
| complex(kind=p), | intent(inout) | :: | divdt(mx,nx,kx) | Divergence tendency |
||
| complex(kind=p), | intent(inout) | :: | tdt(mx,nx,kx) | Temperature tendency |
||
| complex(kind=p), | intent(inout) | :: | psdt(mx,nx) | log(surface pressure) tendency |
type, extends(ModHorizontalDiffusion_t) :: ModImplicit_t
logical :: mod_implicit_initialize_flag = .false.
real(p), allocatable, dimension(:) :: tref, tref2, tref3, dhsx
real(p), allocatable, dimension(:, :) :: xc, xd, elz
real(p), allocatable, dimension(:, :, :) :: xj
contains
procedure :: initialize => ModImplicit_initialize
procedure :: set_time_step => ModImplicit_set_time_step
procedure :: delete => ModImplicit_delete
procedure :: implicit_terms => ModImplicit_implicit_terms
end type ModImplicit_t