MONC
Modules | Functions/Subroutines | Variables
tvdadvection.F90 File Reference

Go to the source code of this file.

Modules

module  tvdadvection_mod
 Implements TVD advection for prognostic fields.
 

Functions/Subroutines

type(component_descriptor_type) function, public tvdadvection_mod::tvdadvection_get_descriptor ()
 Provides a description of this component for the core to register. More...
 
subroutine tvdadvection_mod::field_information_retrieval_callback (current_state, name, field_information)
 Field information retrieval callback, this returns information for a specific components published field. More...
 
subroutine tvdadvection_mod::field_value_retrieval_callback (current_state, name, field_value)
 Field value retrieval callback, this returns the value of a specific published field. More...
 
subroutine tvdadvection_mod::initialisation_callback (current_state)
 Sets up the stencil_mod (used in interpolation) and allocates data for the flux fields. More...
 
subroutine tvdadvection_mod::finalisation_callback (current_state)
 Frees up the memory associated with the advection. More...
 
subroutine tvdadvection_mod::timestep_callback (current_state)
 Timestep callback hook which performs the TVD advection for each prognostic field. More...
 
subroutine tvdadvection_mod::advect_flow_fields (current_state)
 Will advect the flow fields. More...
 
subroutine tvdadvection_mod::advect_q_fields (current_state)
 Advects the Q fields. More...
 
subroutine tvdadvection_mod::advect_theta (current_state)
 Advects the theta field if it is active. More...
 
subroutine tvdadvection_mod::advect_scalar_field (y_local_index, x_local_index, dt, u, v, w, z_q_field, q_field, source_field, global_grid, local_grid, parallel, halo_column, field_stepping)
 Advects a single scalar field. More...
 
subroutine tvdadvection_mod::advect_u (y_local_index, x_local_index, dt, u, v, w, zf, su, global_grid, local_grid, parallel, halo_column, field_stepping)
 Advects the U flow field. More...
 
subroutine tvdadvection_mod::advect_v (y_local_index, x_local_index, dt, u, v, w, zf, sv, global_grid, local_grid, parallel, halo_column, field_stepping)
 Advects the V flow field. More...
 
subroutine tvdadvection_mod::advect_w (y_local_index, x_local_index, dt, u, v, w, zf, sw, global_grid, local_grid, parallel, halo_column, field_stepping)
 Advects the W flow field. More...
 
subroutine tvdadvection_mod::differentiate_face_values (y_flow_index, x_flow_index, u, v, w, y_source_index, x_source_index, source_field, local_grid, global_grid, flux_y_previous, flux_x_previous, tzc1, tzc2, differentiate_top)
 Differentiates face values to update the source field. More...
 
subroutine tvdadvection_mod::complete_y_flux_wrap_send_if_required (y_local_index, field, parallel, local_grid)
 Completes the Y flux MPI asynchronous send if required. More...
 
subroutine tvdadvection_mod::register_y_flux_wrap_send_if_required (y_local_index, field, parallel, local_grid)
 Registers an asynchronous send for the Y flux if required. More...
 
subroutine tvdadvection_mod::complete_y_flux_wrap_recv_if_required (y_local_index, field, parallel, local_grid)
 Completes the Y flux MPI asynchronous recieve if required. If the wrap around process is the same (one process in the y dimension) then just issues a local copy. More...
 
subroutine tvdadvection_mod::register_y_flux_wrap_recv_if_required (y_local_index, field, parallel, local_grid)
 Registers an MPI asynchronous receive for the flux if required. More...
 
subroutine tvdadvection_mod::save_precomponent_tendencies (current_state, cxn, cyn, txn, tyn)
 Save the 3d tendencies coming into the component. More...
 
subroutine tvdadvection_mod::compute_component_tendencies (current_state, cxn, cyn, txn, tyn)
 Computation of component tendencies. More...
 
subroutine tvdadvection_mod::set_published_field_value (field_value, real_1d_field, real_2d_field, real_3d_field)
 Sets the published field value from the temporary diagnostic values held by. More...
 
logical function tvdadvection_mod::determine_if_advection_here (field)
 Parses a field string (read in from the configuration file) and determines whether this algorithm should be used for advecting that field. More...
 

Variables

type(grid_stencil_type), save tvdadvection_mod::star_stencil
 
integer, save tvdadvection_mod::u_index =0
 
integer, save tvdadvection_mod::v_index =0
 
integer, save tvdadvection_mod::w_index =0
 
logical tvdadvection_mod::advect_flow
 
logical tvdadvection_mod::advect_th
 
logical tvdadvection_mod::advect_q
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::flux_x
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::flux_y
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::flux_z
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::u_advection
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::v_advection
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::w_advection
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::th_advection
 
real(kind=default_precision), dimension(:,:), allocatable tvdadvection_mod::q_advection
 
type(prognostic_field_type), dimension(:), allocatable tvdadvection_mod::interpolated_fields
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_u
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_v
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_w
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_th
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_qv
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_ql
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_qi
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_qr
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_qs
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_qg
 
real(kind=default_precision), dimension(:,:,:), allocatable tvdadvection_mod::tend_3d_tabs
 
logical tvdadvection_mod::l_tend_3d_u
 
logical tvdadvection_mod::l_tend_3d_v
 
logical tvdadvection_mod::l_tend_3d_w
 
logical tvdadvection_mod::l_tend_3d_th
 
logical tvdadvection_mod::l_tend_3d_qv
 
logical tvdadvection_mod::l_tend_3d_ql
 
logical tvdadvection_mod::l_tend_3d_qi
 
logical tvdadvection_mod::l_tend_3d_qr
 
logical tvdadvection_mod::l_tend_3d_qs
 
logical tvdadvection_mod::l_tend_3d_qg
 
logical tvdadvection_mod::l_tend_3d_tabs
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_u
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_v
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_w
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_th
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_qv
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_ql
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_qi
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_qr
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_qs
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_qg
 
real(kind=default_precision), dimension(:), allocatable tvdadvection_mod::tend_pr_tot_tabs
 
logical tvdadvection_mod::l_tend_pr_tot_u
 
logical tvdadvection_mod::l_tend_pr_tot_v
 
logical tvdadvection_mod::l_tend_pr_tot_w
 
logical tvdadvection_mod::l_tend_pr_tot_th
 
logical tvdadvection_mod::l_tend_pr_tot_qv
 
logical tvdadvection_mod::l_tend_pr_tot_ql
 
logical tvdadvection_mod::l_tend_pr_tot_qi
 
logical tvdadvection_mod::l_tend_pr_tot_qr
 
logical tvdadvection_mod::l_tend_pr_tot_qs
 
logical tvdadvection_mod::l_tend_pr_tot_qg
 
logical tvdadvection_mod::l_tend_pr_tot_tabs
 
integer tvdadvection_mod::iqv =0
 
integer tvdadvection_mod::iql =0
 
integer tvdadvection_mod::iqr =0
 
integer tvdadvection_mod::iqi =0
 
integer tvdadvection_mod::iqs =0
 
integer tvdadvection_mod::iqg =0
 
integer tvdadvection_mod::diagnostic_generation_frequency