implicit Module

For initializing and performing implicit computations. Implicit solver module. This module extends the ModHorizontalDiffusion module.


Uses

  • module~~implicit~~UsesGraph module~implicit implicit module~geometry geometry module~implicit->module~geometry module~params params module~implicit->module~params module~horizontal_diffusion horizontal_diffusion module~implicit->module~horizontal_diffusion module~types types module~implicit->module~types module~geometry->module~params module~geometry->module~types module~params->module~types module~horizontal_diffusion->module~geometry module~horizontal_diffusion->module~params module~horizontal_diffusion->module~types iso_fortran_env iso_fortran_env module~types->iso_fortran_env

Used by

  • module~~implicit~~UsedByGraph module~implicit implicit module~model_state model_state module~model_state->module~implicit proc~step step proc~step->module~implicit proc~step->module~model_state proc~get_grid_point_tendencies get_grid_point_tendencies proc~get_grid_point_tendencies->module~implicit proc~get_grid_point_tendencies->module~model_state proc~get_spectral_tendencies get_spectral_tendencies proc~get_spectral_tendencies->module~implicit proc~get_spectral_tendencies->module~model_state proc~get_tendencies get_tendencies proc~get_tendencies->module~model_state proc~initialize_geopotential initialize_geopotential proc~initialize_geopotential->module~model_state proc~modelstate_init_sst_anom modelstate_init_sst_anom proc~modelstate_init_sst_anom->module~model_state proc~initialize_boundaries initialize_boundaries proc~initialize_boundaries->module~model_state proc~land_model_init land_model_init proc~land_model_init->module~model_state proc~get_physical_tendencies get_physical_tendencies proc~get_physical_tendencies->module~model_state proc~do_single_step do_single_step proc~do_single_step->module~model_state proc~initialize_coupler initialize_coupler proc~initialize_coupler->module~model_state proc~run_land_model run_land_model proc~run_land_model->module~model_state proc~set_forcing set_forcing proc~set_forcing->module~model_state proc~sea_model_init sea_model_init proc~sea_model_init->module~model_state proc~run_sea_model run_sea_model proc~run_sea_model->module~model_state module~speedy_driver speedy_driver module~speedy_driver->module~model_state module~prognostics prognostics module~prognostics->module~model_state proc~couple_sea_land couple_sea_land proc~couple_sea_land->module~model_state proc~couple_land_atm couple_land_atm proc~couple_land_atm->module~model_state proc~set_geopotential set_geopotential proc~set_geopotential->module~model_state proc~first_step first_step proc~first_step->module~model_state proc~initialize_state initialize_state proc~initialize_state->module~model_state proc~initialize_state->module~prognostics proc~get_zonal_average_fields get_zonal_average_fields proc~get_zonal_average_fields->module~model_state proc~get_shortwave_rad_fluxes get_shortwave_rad_fluxes proc~get_shortwave_rad_fluxes->module~model_state proc~couple_sea_atm couple_sea_atm proc~couple_sea_atm->module~model_state proc~transform_grid2spectral transform_grid2spectral proc~transform_grid2spectral->module~prognostics proc~transform_spectral2grid transform_spectral2grid proc~transform_spectral2grid->module~prognostics proc~apply_grid_filter apply_grid_filter proc~apply_grid_filter->module~prognostics

Contents


Derived Types

type, public, extends(ModHorizontalDiffusion_t) :: ModImplicit_t

Components

TypeVisibility AttributesNameInitial
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

Type-Bound Procedures

procedure, public :: initialize => ModImplicit_initialize
procedure, public :: set_time_step => ModImplicit_set_time_step
procedure, public :: delete => ModImplicit_delete
procedure, public :: implicit_terms => ModImplicit_implicit_terms

Subroutines

private subroutine ModImplicit_initialize(this, mod_geometry)

Initialize constants for implicit computation of horizontal diffusion and gravity waves.

Read more…

Arguments

Type IntentOptional AttributesName
class(ModImplicit_t), intent(inout) :: this
class(ModGeometry_t), intent(in), target:: mod_geometry

private subroutine ModImplicit_set_time_step(this, dt)

Arguments

Type IntentOptional AttributesName
class(ModImplicit_t), intent(inout), target:: this
real(kind=p), intent(in) :: dt

Time step

private subroutine ModImplicit_delete(this)

Arguments

Type IntentOptional AttributesName
class(ModImplicit_t), intent(inout) :: this

private subroutine ModImplicit_implicit_terms(this, divdt, tdt, psdt)

Correct tendencies for implicit gravity wave model

Arguments

Type IntentOptional AttributesName
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