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 156 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 282 of file lowerbc.F90.
|
private |
Definition at line 195 of file lowerbc.F90.
|
private |
Definition at line 636 of file lowerbc.F90.
|
private |
Definition at line 653 of file lowerbc.F90.
|
private |
|
private |
Definition at line 492 of file lowerbc.F90.
|
private |
Definition at line 551 of file lowerbc.F90.
|
private |
Definition at line 582 of file lowerbc.F90.
|
private |
Definition at line 49 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 41 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 740 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 414 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 386 of file lowerbc.F90.
|
private |
Registers asynchronous wrapping recv requests as needed.
current_state | The current model state |
Definition at line 263 of file lowerbc.F90.
|
private |
Definition at line 701 of file lowerbc.F90.
|
private |
|
private |
Definition at line 774 of file lowerbc.F90.
|
private |
Definition at line 173 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 470 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 442 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.