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

Go to the source code of this file.

Modules

module  lowerbc_mod
 This sets the lower boundary conditions for theta and the q variables.
 

Functions/Subroutines

type(component_descriptor_type) function, public lowerbc_mod::lowerbc_get_descriptor ()
 Descriptor of this component for registration. More...
 
subroutine lowerbc_mod::initialisation_callback (current_state)
 
subroutine lowerbc_mod::finalisation_callback (current_state)
 
subroutine lowerbc_mod::allocate_applicable_fields (current_state)
 
subroutine lowerbc_mod::timestep_callback (current_state)
 
subroutine lowerbc_mod::compute_lower_boundary_conditions (current_state, current_y_index, current_x_index, zu, zv, zth, th, zq, q)
 
subroutine lowerbc_mod::register_async_wrapping_recv_requests (current_state)
 Registers asynchronous wrapping recv requests as needed. More...
 
subroutine lowerbc_mod::complete_async_wrapping (current_state, zth, zq)
 Completes the asynchronous wrapping if required for periodic boundary conditions. More...
 
subroutine lowerbc_mod::package_y_wrapping_send_buffer (current_state, zth, zq, first_y_index, second_y_index)
 Packages theta and Q fields (if enabled) into the send buffer for Y. More...
 
subroutine lowerbc_mod::package_x_wrapping_send_buffer (current_state, zth, zq, first_x_index, second_x_index)
 Packages theta and Q fields (if enabled) into the send buffer for X. More...
 
subroutine lowerbc_mod::unpackage_y_wrapping_recv_buffer (current_state, zth, zq, first_y_index, second_y_index)
 Unpackages theta and Q fields from the receive buffer into the fields themselves (if enabled) for Y. More...
 
subroutine lowerbc_mod::unpackage_x_wrapping_recv_buffer (current_state, zth, zq, first_x_index, second_x_index)
 Unpackages theta and Q fields from the receive buffer into the fields themselves (if enabled) for X. More...
 
subroutine lowerbc_mod::handle_convective_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q)
 
real(kind=default_precision) function lowerbc_mod::look (current_state, vel)
 
subroutine lowerbc_mod::handle_neutral_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q)
 
subroutine lowerbc_mod::handle_stable_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q)
 
subroutine lowerbc_mod::compute_using_fixed_surface_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q)
 
subroutine lowerbc_mod::compute_using_fixed_surface_temperature (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, zth, th, zq, q)
 
subroutine lowerbc_mod::simple_boundary_values (current_state, current_y_index, current_x_index, th, q)
 
integer function lowerbc_mod::mostbc (current_state, delu, delt, z1, ustrdg, tstrdg)
 Solves the Monin-Obukhov equations in the case of specified surface values of temperature and mixing ratio,combined into a specified value of virtual temperature. It is a modified version of the subroutine described in Bull and Derbyshire (TDN197) based on the assumption that the similarity functions and roughness lengths for temperature and mixing ratio are the same. In that case, all the original theory can be used if we replace temperature by virtual temperature. The form of the non-dimensionalised wind shear used is 1.0 + BETAM z/L for the stable case and (1.0 - GAMMAM z/L)**1/4 for the unstable case. The form of the non-dimensionalised temperature gradient used is 1.0 + BETAH z/L for the stable case and (1.0 - GAMMAH z/L)**1/2 for the unstable case. More...
 
integer function lowerbc_mod::solve_monin_obukhov_unstable_case (delu, delt, ellmocon, ustrdg, tstrdg, vertical_grid)
 
integer function lowerbc_mod::solve_monin_obukhov_stable_case (delu, delt, zlogm, cmbc, ustrdg, tstrdg)
 

Variables

integer, parameter lowerbc_mod::convergence_success =1
 
integer, parameter lowerbc_mod::convergence_richardson_too_large =2
 
integer, parameter lowerbc_mod::convergence_failure =3
 
real(kind=default_precision), parameter lowerbc_mod::smth = 0.05_DEFAULT_PRECISION
 
real(kind=default_precision), parameter lowerbc_mod::tolm =1.0E-4_DEFAULT_PRECISION
 
real(kind=default_precision), parameter lowerbc_mod::tolt =1.0E-4_DEFAULT_PRECISION
 
real(kind=default_precision) lowerbc_mod::tstrcona
 
real(kind=default_precision) lowerbc_mod::rhmbc
 
real(kind=default_precision) lowerbc_mod::ddbc
 
real(kind=default_precision) lowerbc_mod::ddbc_x4
 
real(kind=default_precision) lowerbc_mod::eecon
 
real(kind=default_precision) lowerbc_mod::r2ddbc
 
real(kind=default_precision) lowerbc_mod::rcmbc
 
real(kind=default_precision) lowerbc_mod::tstrconb
 
real(kind=default_precision) lowerbc_mod::x4con
 
real(kind=default_precision) lowerbc_mod::xx0con
 
real(kind=default_precision) lowerbc_mod::y2con
 
real(kind=default_precision) lowerbc_mod::yy0con
 
real(kind=default_precision) lowerbc_mod::viscous_courant_coefficient
 
real(kind=default_precision), dimension(:,:,:), allocatable lowerbc_mod::x_wrapping_send_buffer
 
real(kind=default_precision), dimension(:,:,:), allocatable lowerbc_mod::y_wrapping_send_buffer
 
real(kind=default_precision), dimension(:,:,:), allocatable lowerbc_mod::x_wrapping_recv_buffer
 
real(kind=default_precision), dimension(:,:,:), allocatable lowerbc_mod::y_wrapping_recv_buffer
 
integer lowerbc_mod::iqv
 
integer, dimension(4) lowerbc_mod::wrapping_comm_requests
 
integer lowerbc_mod::y_wrapping_target_id
 
integer lowerbc_mod::x_wrapping_target_id