MONC
|
This sets the lower boundary conditions for theta and the q variables. More...
Functions/Subroutines | |
type(component_descriptor_type) function, public | lowerbc_get_descriptor () |
Descriptor of this component for registration. More... | |
subroutine | initialisation_callback (current_state) |
subroutine | finalisation_callback (current_state) |
subroutine | allocate_applicable_fields (current_state) |
subroutine | timestep_callback (current_state) |
subroutine | compute_lower_boundary_conditions (current_state, current_y_index, current_x_index, zu, zv, zth, th, zq, q) |
subroutine | register_async_wrapping_recv_requests (current_state) |
Registers asynchronous wrapping recv requests as needed. More... | |
subroutine | complete_async_wrapping (current_state, zth, zq) |
Completes the asynchronous wrapping if required for periodic boundary conditions. More... | |
subroutine | 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 | 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 | 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 | 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 | handle_convective_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q) |
real(kind=default_precision) function | look (current_state, vel) |
subroutine | handle_neutral_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q) |
subroutine | handle_stable_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q) |
subroutine | compute_using_fixed_surface_fluxes (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, th, q) |
subroutine | compute_using_fixed_surface_temperature (current_state, current_y_index, current_x_index, horizontal_velocity_at_k2, zth, th, zq, q) |
subroutine | simple_boundary_values (current_state, current_y_index, current_x_index, th, q) |
integer function | 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 | solve_monin_obukhov_unstable_case (delu, delt, ellmocon, ustrdg, tstrdg, vertical_grid) |
integer function | solve_monin_obukhov_stable_case (delu, delt, zlogm, cmbc, ustrdg, tstrdg) |
Variables | |
integer, parameter | convergence_success =1 |
integer, parameter | convergence_richardson_too_large =2 |
integer, parameter | convergence_failure =3 |
real(kind=default_precision), parameter | smth = 0.05_DEFAULT_PRECISION |
real(kind=default_precision), parameter | tolm =1.0E-4_DEFAULT_PRECISION |
real(kind=default_precision), parameter | tolt =1.0E-4_DEFAULT_PRECISION |
real(kind=default_precision) | tstrcona |
real(kind=default_precision) | rhmbc |
real(kind=default_precision) | ddbc |
real(kind=default_precision) | ddbc_x4 |
real(kind=default_precision) | eecon |
real(kind=default_precision) | r2ddbc |
real(kind=default_precision) | rcmbc |
real(kind=default_precision) | tstrconb |
real(kind=default_precision) | x4con |
real(kind=default_precision) | xx0con |
real(kind=default_precision) | y2con |
real(kind=default_precision) | yy0con |
real(kind=default_precision) | viscous_courant_coefficient |
real(kind=default_precision), dimension(:,:,:), allocatable | x_wrapping_send_buffer |
real(kind=default_precision), dimension(:,:,:), allocatable | y_wrapping_send_buffer |
real(kind=default_precision), dimension(:,:,:), allocatable | x_wrapping_recv_buffer |
real(kind=default_precision), dimension(:,:,:), allocatable | y_wrapping_recv_buffer |
integer | iqv |
integer, dimension(4) | wrapping_comm_requests |
integer | y_wrapping_target_id |
integer | x_wrapping_target_id |
This sets the lower boundary conditions for theta and the q variables.
|
private |
Definition at line 157 of file lowerbc.F90.
|
private |
Completes the asynchronous wrapping if required for periodic boundary conditions.
current_state | The current model state |
zth | Temperature field |
zq | Q fields |
Definition at line 283 of file lowerbc.F90.
|
private |
Definition at line 196 of file lowerbc.F90.
|
private |
Definition at line 631 of file lowerbc.F90.
|
private |
Definition at line 649 of file lowerbc.F90.
|
private |
|
private |
Definition at line 493 of file lowerbc.F90.
|
private |
Definition at line 551 of file lowerbc.F90.
|
private |
Definition at line 580 of file lowerbc.F90.
|
private |
Definition at line 50 of file lowerbc.F90.
|
private |
Definition at line 526 of file lowerbc.F90.
type(component_descriptor_type) function, public lowerbc_mod::lowerbc_get_descriptor | ( | ) |
Descriptor of this component for registration.
Definition at line 42 of file lowerbc.F90.
|
private |
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.
current_state | The current model state |
delu | The wind speed at the lowest grid point |
delt | The virtual potential temperature difference between the lowest grid point and the surface |
z1 | The height of the lowest grid point ABOVE the roughness length Z0 |
ustrdg | The diagnosed value of friction velocity |
tstrdg | The diagnosed value of surface virtual temperature scale |
Definition at line 735 of file lowerbc.F90.
|
private |
Packages theta and Q fields (if enabled) into the send buffer for X.
current_state | The current model state |
zth | Temperature field |
zq | Q fields |
first_x_index | The first X index to read from the data field |
second_x_index | The second X index to read from the data field |
Definition at line 415 of file lowerbc.F90.
|
private |
Packages theta and Q fields (if enabled) into the send buffer for Y.
current_state | The current model state |
zth | Temperature field |
zq | Q fields |
first_y_index | The first Y index to read from the data field |
second_y_index | The second Y index to read from the data field |
Definition at line 387 of file lowerbc.F90.
|
private |
Registers asynchronous wrapping recv requests as needed.
current_state | The current model state |
Definition at line 264 of file lowerbc.F90.
|
private |
Definition at line 696 of file lowerbc.F90.
|
private |
|
private |
Definition at line 769 of file lowerbc.F90.
|
private |
Definition at line 174 of file lowerbc.F90.
|
private |
Unpackages theta and Q fields from the receive buffer into the fields themselves (if enabled) for X.
current_state | The current model state |
zth | Temperature field |
zq | Q fields |
first_x_index | The first X index to read from the data field |
second_x_index | The second X index to read from the data field |
Definition at line 471 of file lowerbc.F90.
|
private |
Unpackages theta and Q fields from the receive buffer into the fields themselves (if enabled) for Y.
current_state | The current model state |
zth | Temperature field |
zq | Q fields |
first_y_index | The first Y index to read from the data field |
second_y_index | The second Y index to read from the data field |
Definition at line 443 of file lowerbc.F90.
|
private |
Definition at line 22 of file lowerbc.F90.
|
private |
Definition at line 22 of file lowerbc.F90.
|
private |
Definition at line 22 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 33 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 24 of file lowerbc.F90.
|
private |
Definition at line 24 of file lowerbc.F90.
|
private |
Definition at line 24 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 34 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 30 of file lowerbc.F90.
|
private |
Definition at line 30 of file lowerbc.F90.
|
private |
Definition at line 34 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.
|
private |
Definition at line 30 of file lowerbc.F90.
|
private |
Definition at line 30 of file lowerbc.F90.
|
private |
Definition at line 34 of file lowerbc.F90.
|
private |
Definition at line 27 of file lowerbc.F90.