Neko 1.99.3
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
richardson_cpu Module Reference

Implements the CPU kernel for the richardson_t type.

Data Types

interface  heat_flux_interface
 
interface  tau_interface
 

Functions/Subroutines

subroutine compute_ri_b (bc_type, g_dot_n, hi, ti, ts, magu, kappa, q, ri_b)
 Computes the Richardson number.
 
subroutine assign_bc_value (bc_type, bc_value, q, ts, ti, kappa, utau, z0h, hi)
 Initialises q when the temperature surface bc is dirichlet.
 
subroutine set_stability_regime (ri_b, ri_threshold)
 Sets the stability regime based on the Richardson number value (quite arbitrary).
 
subroutine, public richardson_compute_cpu (u, v, w, temp, ind_r, ind_s, ind_t, ind_e, n_x, n_y, n_z, h, tau_x, tau_y, tau_z, n_nodes, lx, nelv, kappa, mu_w, rho_w, g_vec, pr, z0, z0h_in, bc_type, bc_value, tstep, ri_b_diagn, l_ob_diagn, utau_diagn, magu_diagn, ti_diagn, ts_diagn, q_diagn, h_x_idx, h_y_idx, h_z_idx)
 Main routine to compute the surface stresses based on richardson.
 
real(kind=rp) function tau_stable (magu, ri_b, h, z0, l, kappa)
 Similarity laws and corrections for the STABLE regime: Based on Mauritsen et al. 2007.
 
real(kind=rp) function heat_flux_stable (ti, ts, ri_b, h, magu, z0h, pr, l, utau, kappa)
 
real(kind=rp) function f_tau_stable (ri_b)
 
real(kind=rp) function f_theta_stable (ri_b)
 
real(kind=rp) function tau_convective (magu, ri_b, h, z0, l, kappa)
 Similarity laws and corrections for the UNSTABLE (convective) regime: Based on Louis 1979.
 
real(kind=rp) function heat_flux_convective (ti, ts, ri_b, h, magu, z0h, pr, l, utau, kappa)
 
real(kind=rp) function f_tau_convective (ri_b, c)
 
real(kind=rp) function f_theta_convective (ri_b, c)
 
real(kind=rp) function tau_neutral (magu, ri_b, h, z0, l, kappa)
 Similarity laws and corrections for the NEUTRAL regime:
 
real(kind=rp) function heat_flux_neutral (ti, ts, ri_b, h, magu, z0h, pr, l, utau, kappa)
 

Variables

procedure(tau_interface), pointer tau_ptr => null()
 
procedure(heat_flux_interface), pointer heat_flux_ptr => null()
 

Function/Subroutine Documentation

◆ assign_bc_value()

subroutine richardson_cpu::assign_bc_value ( character(len=*), intent(in bc_type,
real(kind=rp), intent(in bc_value,
real(kind=rp), intent(inout q,
real(kind=rp), intent(inout ts,
real(kind=rp), intent(in ti,
real(kind=rp), intent(in kappa,
real(kind=rp), intent(in utau,
real(kind=rp), intent(in z0h,
real(kind=rp), intent(in hi 
)
private

Definition at line 86 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ compute_ri_b()

subroutine richardson_cpu::compute_ri_b ( character(len=*), intent(in bc_type,
real(kind=rp), intent(in g_dot_n,
real(kind=rp), intent(in hi,
real(kind=rp), intent(in ti,
real(kind=rp), intent(in ts,
real(kind=rp), intent(in magu,
real(kind=rp), intent(in kappa,
real(kind=rp), intent(inout q,
real(kind=rp), intent(inout ri_b 
)
private

Definition at line 69 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ f_tau_convective()

real(kind=rp) function richardson_cpu::f_tau_convective ( real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in c 
)
private

Definition at line 297 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ f_tau_stable()

real(kind=rp) function richardson_cpu::f_tau_stable ( real(kind=rp), intent(in ri_b)
private

Definition at line 253 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ f_theta_convective()

real(kind=rp) function richardson_cpu::f_theta_convective ( real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in c 
)
private

Definition at line 304 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ f_theta_stable()

real(kind=rp) function richardson_cpu::f_theta_stable ( real(kind=rp), intent(in ri_b)
private

Definition at line 260 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ heat_flux_convective()

real(kind=rp) function richardson_cpu::heat_flux_convective ( real(kind=rp), intent(in ti,
real(kind=rp), intent(in ts,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in magu,
real(kind=rp), intent(in z0h,
real(kind=rp), intent(in pr,
real(kind=rp), intent(in l,
real(kind=rp), intent(in utau,
real(kind=rp), intent(in kappa 
)
private

Definition at line 281 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ heat_flux_neutral()

real(kind=rp) function richardson_cpu::heat_flux_neutral ( real(kind=rp), intent(in ti,
real(kind=rp), intent(in ts,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in magu,
real(kind=rp), intent(in z0h,
real(kind=rp), intent(in pr,
real(kind=rp), intent(in l,
real(kind=rp), intent(in utau,
real(kind=rp), intent(in kappa 
)
private

Definition at line 319 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ heat_flux_stable()

real(kind=rp) function richardson_cpu::heat_flux_stable ( real(kind=rp), intent(in ti,
real(kind=rp), intent(in ts,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in magu,
real(kind=rp), intent(in z0h,
real(kind=rp), intent(in pr,
real(kind=rp), intent(in l,
real(kind=rp), intent(in utau,
real(kind=rp), intent(in kappa 
)
private

Definition at line 242 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ richardson_compute_cpu()

subroutine, public richardson_cpu::richardson_compute_cpu ( real(kind=rp), dimension(lx, lx, lx, nelv), intent(in u,
real(kind=rp), dimension(lx, lx, lx, nelv), intent(in v,
real(kind=rp), dimension(lx, lx, lx, nelv), intent(in w,
real(kind=rp), dimension(lx, lx, lx, nelv), intent(in temp,
integer, dimension(n_nodes), intent(in ind_r,
integer, dimension(n_nodes), intent(in ind_s,
integer, dimension(n_nodes), intent(in ind_t,
integer, dimension(n_nodes), intent(in ind_e,
real(kind=rp), dimension(n_nodes), intent(in n_x,
real(kind=rp), dimension(n_nodes), intent(in n_y,
real(kind=rp), dimension(n_nodes), intent(in n_z,
real(kind=rp), dimension(n_nodes), intent(in h,
real(kind=rp), dimension(n_nodes), intent(inout tau_x,
real(kind=rp), dimension(n_nodes), intent(inout tau_y,
real(kind=rp), dimension(n_nodes), intent(inout tau_z,
integer, intent(in n_nodes,
integer, intent(in lx,
integer, intent(in nelv,
real(kind=rp), intent(in kappa,
real(kind=rp), dimension(n_nodes), intent(in mu_w,
real(kind=rp), dimension(n_nodes), intent(in rho_w,
real(kind=rp), dimension(3), intent(in g_vec,
real(kind=rp), intent(in pr,
real(kind=rp), intent(in z0,
real(kind=rp), intent(in z0h_in,
character(len=*), intent(in bc_type,
real(kind=rp), intent(in bc_value,
integer, intent(in tstep,
real(kind=rp), dimension(n_nodes), intent(inout ri_b_diagn,
real(kind=rp), dimension(n_nodes), intent(inout l_ob_diagn,
real(kind=rp), dimension(n_nodes), intent(inout utau_diagn,
real(kind=rp), dimension(n_nodes), intent(inout magu_diagn,
real(kind=rp), dimension(n_nodes), intent(inout ti_diagn,
real(kind=rp), dimension(n_nodes), intent(inout ts_diagn,
real(kind=rp), dimension(n_nodes), intent(inout q_diagn,
integer, dimension(n_nodes), intent(in h_x_idx,
integer, dimension(n_nodes), intent(in h_y_idx,
integer, dimension(n_nodes), intent(in h_z_idx 
)
Parameters
tstepThe current time-step

Definition at line 121 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_stability_regime()

subroutine richardson_cpu::set_stability_regime ( real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in ri_threshold 
)
private

Definition at line 104 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tau_convective()

real(kind=rp) function richardson_cpu::tau_convective ( real(kind=rp), intent(in magu,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in z0,
real(kind=rp), intent(in l,
real(kind=rp), intent(in kappa 
)
private

Definition at line 269 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tau_neutral()

real(kind=rp) function richardson_cpu::tau_neutral ( real(kind=rp), intent(in magu,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in z0,
real(kind=rp), intent(in l,
real(kind=rp), intent(in kappa 
)
private

Definition at line 312 of file richardson_cpu.f90.

Here is the caller graph for this function:

◆ tau_stable()

real(kind=rp) function richardson_cpu::tau_stable ( real(kind=rp), intent(in magu,
real(kind=rp), intent(in ri_b,
real(kind=rp), intent(in h,
real(kind=rp), intent(in z0,
real(kind=rp), intent(in l,
real(kind=rp), intent(in kappa 
)
private

Definition at line 234 of file richardson_cpu.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ heat_flux_ptr

procedure(heat_flux_interface), pointer richardson_cpu::heat_flux_ptr => null()
private

Definition at line 64 of file richardson_cpu.f90.

◆ tau_ptr

procedure(tau_interface), pointer richardson_cpu::tau_ptr => null()
private

Definition at line 63 of file richardson_cpu.f90.