Neko 1.99.9
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, temp_w, n_x, n_y, n_z, h, tau_x, tau_y, tau_z, n_nodes, 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)
 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 90 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 72 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 304 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 260 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 311 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 267 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 288 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 326 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 249 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(n_nodes), intent(in)  u,
real(kind=rp), dimension(n_nodes), intent(in)  v,
real(kind=rp), dimension(n_nodes), intent(in)  w,
real(kind=rp), dimension(n_nodes), intent(in)  temp,
real(kind=rp), dimension(n_nodes), intent(in)  temp_w,
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,
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 
)
Parameters
tstepThe current time-step

Definition at line 127 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 110 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 276 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 319 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 241 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 66 of file richardson_cpu.f90.

◆ tau_ptr

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

Definition at line 65 of file richardson_cpu.f90.