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

Go to the source code of this file.

Modules

module  smagorinsky_mod
 Calculates the Smagorinsky eddy viscosity and diffusivity at l_w-points.
 

Functions/Subroutines

type(component_descriptor_type) function, public smagorinsky_mod::smagorinsky_get_descriptor ()
 Provides the descriptor back to the caller and is used in component registration. More...
 
subroutine smagorinsky_mod::initialisation_callback (current_state)
 Initialisation call back which will read in the coriolis configuration and set up the geostrophic winds. More...
 
subroutine smagorinsky_mod::timestep_callback (current_state)
 For each none halo cell this will calculate the subgrid terms for viscosity and diffusion. More...
 
subroutine smagorinsky_mod::finalisation_callback (current_state)
 Called when the model is finishing up, will finalise the halo communications represented by the state. More...
 
subroutine smagorinsky_mod::update_viscous_number (current_state)
 Update viscous number based upon the viscosity and diffusivity coefficients. More...
 
subroutine smagorinsky_mod::setfri (current_state, richardson_number, ssq)
 Calculates the eddy viscosity (VIS) and diffusivity (DIFF) depending on the Richardson Number (RI) and half squared strain rate. More...
 
real(kind=default_precision) function, dimension(current_state%local_grid%size(z_index)), public smagorinsky_mod::calculate_richardson_number (current_state, ssq, th, q)
 Calculates the richardson number depending upon the setup of the model and the method selected. More...
 
real(kind=default_precision) function, dimension(current_state%local_grid%size(z_index)) smagorinsky_mod::moist_ri_2 (current_state, ssq, th, q)
 Calculates another "moist version" of the Richardson number based on "change in subgrid buoyancy flux when a fraction EPS is exchanged". More...
 
real(kind=default_precision) function, dimension(current_state%local_grid%size(z_index)) smagorinsky_mod::moist_ri_1 (current_state, ssq, th, q)
 Calculates numerator of Richarson number as the difference in buoyancy between a parcel at K+1 and a parcel lifted from K to K+1. Condensation is calculated by assuming that TL=T-(Lv/CP)*QL+gz/CP and QT = QV+QL are conserved on lifting. Microphysics conversions are assumed to happen slowly compared to turbulent processes so are, therefore, neglected in the calculation. More...
 
real(kind=default_precision) function, dimension(current_state%local_grid%size(z_index)), public smagorinsky_mod::calculate_half_squared_strain_rate (current_state, u, v, w)
 Calculates the half squared strain rate on l_w-points which is used in determining the Richardson number. CX=1./DX, CY=1./DY, RDZ(K)=1./DZ(K), RDZN(K) =1./DZN(K) _SSQ= 0.5*^^DU_I/DX_J+DU_J/DX_I^^**2 _SSQIJ= (DU_I/DX_J+DU_J/DX_I)**2 _Hence SSQ= SUM(I,J) {0.5*(SSQIJ)}. More...
 
real(kind=default_precision) function, dimension(current_state%local_grid%size(z_index)), public smagorinsky_mod::calculate_thermal_dissipation_rate (current_state, th)
 
subroutine smagorinsky_mod::copy_vis_to_halo_buffer (current_state, neighbour_description, dim, source_index, pid_location, current_page, source_data)
 Copies the viscosity field data to halo buffers for a specific process in a dimension and halo cell. More...
 
subroutine smagorinsky_mod::copy_vis_corners_to_halo_buffer (current_state, neighbour_description, corner_loc, x_source_index, y_source_index, pid_location, current_page, source_data)
 Copies the viscosity field corner data to halo buffers for a specific process. More...
 
subroutine smagorinsky_mod::copy_diff_to_halo_buffer (current_state, neighbour_description, dim, source_index, pid_location, current_page, source_data)
 Copies the diffusion field data to halo buffers for a specific process in a dimension and halo cell. More...
 
subroutine smagorinsky_mod::copy_diff_corners_to_halo_buffer (current_state, neighbour_description, corner_loc, x_source_index, y_source_index, pid_location, current_page, source_data)
 Copies the diffusion field corner data to halo buffers for a specific process. More...
 

Variables

integer, parameter smagorinsky_mod::richardson_number_calculation =2
 
real(kind=default_precision) smagorinsky_mod::eps
 
real(kind=default_precision) smagorinsky_mod::repsh
 
real(kind=default_precision) smagorinsky_mod::thcona
 
real(kind=default_precision) smagorinsky_mod::thconb
 
real(kind=default_precision) smagorinsky_mod::thconap1
 
real(kind=default_precision) smagorinsky_mod::suba
 
real(kind=default_precision) smagorinsky_mod::subb
 
real(kind=default_precision) smagorinsky_mod::subc
 
real(kind=default_precision) smagorinsky_mod::subg
 
real(kind=default_precision) smagorinsky_mod::subh
 
real(kind=default_precision) smagorinsky_mod::subr
 
real(kind=default_precision) smagorinsky_mod::pr_n
 
real(kind=default_precision) smagorinsky_mod::ric
 
real(kind=default_precision) smagorinsky_mod::ricinv
 
integer smagorinsky_mod::iqv
 
integer smagorinsky_mod::iql