CAM
advance_xm_wpxp_module Module Reference

Functions/Subroutines

subroutine, public advance_xm_wpxp (dt, sigma_sqd_w, wm_zm, wm_zt, wp2, Lscale, wp3_on_wp2, wp3_on_wp2_zt, Kh_zt, Kh_zm, tau_C6_zm, Skw_zm, rtpthvp, rtm_forcing, wprtp_forcing, rtm_ref, thlpthvp, thlm_forcing, wpthlp_forcing, thlm_ref, rho_ds_zm, rho_ds_zt, invrs_rho_ds_zm, invrs_rho_ds_zt, thv_ds_zm, rtp2, thlp2, w_1_zm, w_2_zm, varnce_w_1_zm, varnce_w_2_zm, mixt_frac_zm, l_implemented, em, sclrpthvp, sclrm_forcing, sclrp2, rtm, wprtp, thlm, wpthlp, err_code, sclrm, wpsclrp)
 
subroutine, private xm_wpxp_lhs (l_iter, dt, Kh_zm, wpxp, a1, a1_zt, wm_zm, wm_zt, wp2, wp3_on_wp2, wp3_on_wp2_zt, Kw6, tau_C6_zm, C7_Skw_fnc, C6x_Skw_fnc, rho_ds_zm, rho_ds_zt, invrs_rho_ds_zm, invrs_rho_ds_zt, wpxp_upper_lim, wpxp_lower_lim, l_implemented, em, Lscale, thlm, lhs)
 
subroutine, private xm_wpxp_rhs (solve_type, l_iter, dt, xm, wpxp, xm_forcing, wpxp_forcing, C7_Skw_fnc, xpthvp, C6x_Skw_fnc, tau_C6_zm, a1, a1_zt, wp3_on_wp2, wp3_on_wp2_zt, rho_ds_zt, rho_ds_zm, invrs_rho_ds_zm, thv_ds_zm, wpxp_upper_lim, wpxp_lower_lim, rhs)
 
subroutine, private xm_wpxp_solve (nrhs, lhs, rhs, solution, err_code, rcond)
 
subroutine, private xm_wpxp_clipping_and_stats (solve_type, dt, wp2, xp2, wm_zt, xm_forcing, rho_ds_zm, rho_ds_zt, invrs_rho_ds_zm, invrs_rho_ds_zt, xp2_threshold, xm_threshold, rcond, low_lev_effect, high_lev_effect, l_implemented, solution, xm, xm_tol, wpxp, err_code)
 
pure real(kind=core_rknd) function, dimension(2), private xm_term_ta_lhs (rho_ds_zm, rho_ds_zmm1, invrs_rho_ds_zt, invrs_dzt)
 
pure real(kind=core_rknd) function, dimension(3), private wpxp_term_ta_lhs (wp3_on_wp2_ztp1, wp3_on_wp2_zt, a1_ztp1, a1_zt, rho_ds_ztp1, rho_ds_zt, invrs_rho_ds_zm, invrs_dzm, level)
 
pure real(kind=core_rknd) function, dimension(3) wpxp_term_ta_lhs_upwind (a1_zm, a1_zm_p1, a1_zm_m1, wp3_on_wp2_p1, wp3_on_wp2, wp3_on_wp2_m1, invrs_dzt, invrs_dztkp1, invrs_rho_ds_zm, rho_ds_zmp1, rho_ds_zm, rho_ds_zmm1)
 
pure real(kind=core_rknd) function, dimension(2), private wpxp_term_tp_lhs (wp2, invrs_dzm)
 
pure real(kind=core_rknd) function, private wpxp_terms_ac_pr2_lhs (C7_Skw_fnc, wm_ztp1, wm_zt, invrs_dzm)
 
pure real(kind=core_rknd) function, private wpxp_term_pr1_lhs (C6x_Skw_fnc, tau_C6_zm)
 
pure real(kind=core_rknd) function, private wpxp_terms_bp_pr3_rhs (C7_Skw_fnc, thv_ds_zm, xpthvp)
 
subroutine, private xm_correction_wpxp_cl (solve_type, dt, wpxp_chnge, invrs_dzt, xm)
 
pure real(kind=core_rknd) function, dimension(gr%nz), private damp_coefficient (coefficient, Cx_Skw_fnc, max_coeff_value, threshold, Lscale)
 

Variables

integer, parameter, private nsub = 2
 
integer, parameter, private nsup = 2
 
integer, parameter, private xm_wpxp_thlm = 1
 
integer, parameter, private xm_wpxp_rtm = 2
 
integer, parameter, private xm_wpxp_scalar = 3
 

Function/Subroutine Documentation

◆ advance_xm_wpxp()

subroutine, public advance_xm_wpxp_module::advance_xm_wpxp ( real( kind = core_rknd ), intent(in)  dt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  sigma_sqd_w,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wm_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wm_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Lscale,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Kh_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Kh_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  tau_C6_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Skw_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rtpthvp,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rtm_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wprtp_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rtm_ref,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thlpthvp,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thlm_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpthlp_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thlm_ref,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thv_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rtp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thlp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  w_1_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  w_2_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  varnce_w_1_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  varnce_w_2_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  mixt_frac_zm,
logical, intent(in)  l_implemented,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  em,
real( kind = core_rknd ), dimension(gr%nz,sclr_dim), intent(in)  sclrpthvp,
real( kind = core_rknd ), dimension(gr%nz,sclr_dim), intent(in)  sclrm_forcing,
real( kind = core_rknd ), dimension(gr%nz,sclr_dim), intent(in)  sclrp2,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  rtm,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  wprtp,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  thlm,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  wpthlp,
integer, intent(inout)  err_code,
real( kind = core_rknd ), dimension(gr%nz,sclr_dim), intent(inout)  sclrm,
real( kind = core_rknd ), dimension(gr%nz,sclr_dim), intent(inout)  wpsclrp 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ damp_coefficient()

pure real( kind = core_rknd ) function, dimension(gr%nz), private advance_xm_wpxp_module::damp_coefficient ( real( kind = core_rknd ), intent(in)  coefficient,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Cx_Skw_fnc,
real( kind = core_rknd ), intent(in)  max_coeff_value,
real( kind = core_rknd ), intent(in)  threshold,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Lscale 
)
private
Here is the caller graph for this function:

◆ wpxp_term_pr1_lhs()

pure real( kind = core_rknd ) function, private advance_xm_wpxp_module::wpxp_term_pr1_lhs ( real( kind = core_rknd ), intent(in)  C6x_Skw_fnc,
real( kind = core_rknd ), intent(in)  tau_C6_zm 
)
private
Here is the caller graph for this function:

◆ wpxp_term_ta_lhs()

pure real( kind = core_rknd ) function, dimension(3), private advance_xm_wpxp_module::wpxp_term_ta_lhs ( real( kind = core_rknd ), intent(in)  wp3_on_wp2_ztp1,
real( kind = core_rknd ), intent(in)  wp3_on_wp2_zt,
real( kind = core_rknd ), intent(in)  a1_ztp1,
real( kind = core_rknd ), intent(in)  a1_zt,
real( kind = core_rknd ), intent(in)  rho_ds_ztp1,
real( kind = core_rknd ), intent(in)  rho_ds_zt,
real( kind = core_rknd ), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), intent(in)  invrs_dzm,
integer, intent(in)  level 
)
private
Here is the caller graph for this function:

◆ wpxp_term_ta_lhs_upwind()

pure real( kind = core_rknd ) function, dimension(3) advance_xm_wpxp_module::wpxp_term_ta_lhs_upwind ( real( kind = core_rknd ), intent(in)  a1_zm,
real( kind = core_rknd ), intent(in)  a1_zm_p1,
real( kind = core_rknd ), intent(in)  a1_zm_m1,
real( kind = core_rknd ), intent(in)  wp3_on_wp2_p1,
real( kind = core_rknd ), intent(in)  wp3_on_wp2,
real( kind = core_rknd ), intent(in)  wp3_on_wp2_m1,
real( kind = core_rknd ), intent(in)  invrs_dzt,
real( kind = core_rknd ), intent(in)  invrs_dztkp1,
real( kind = core_rknd ), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), intent(in)  rho_ds_zmp1,
real( kind = core_rknd ), intent(in)  rho_ds_zm,
real( kind = core_rknd ), intent(in)  rho_ds_zmm1 
)
Here is the caller graph for this function:

◆ wpxp_term_tp_lhs()

pure real( kind = core_rknd ) function, dimension(2), private advance_xm_wpxp_module::wpxp_term_tp_lhs ( real( kind = core_rknd ), intent(in)  wp2,
real( kind = core_rknd ), intent(in)  invrs_dzm 
)
private
Here is the caller graph for this function:

◆ wpxp_terms_ac_pr2_lhs()

pure real( kind = core_rknd ) function, private advance_xm_wpxp_module::wpxp_terms_ac_pr2_lhs ( real( kind = core_rknd ), intent(in)  C7_Skw_fnc,
real( kind = core_rknd ), intent(in)  wm_ztp1,
real( kind = core_rknd ), intent(in)  wm_zt,
real( kind = core_rknd ), intent(in)  invrs_dzm 
)
private
Here is the caller graph for this function:

◆ wpxp_terms_bp_pr3_rhs()

pure real( kind = core_rknd ) function, private advance_xm_wpxp_module::wpxp_terms_bp_pr3_rhs ( real( kind = core_rknd ), intent(in)  C7_Skw_fnc,
real( kind = core_rknd ), intent(in)  thv_ds_zm,
real( kind = core_rknd ), intent(in)  xpthvp 
)
private
Here is the caller graph for this function:

◆ xm_correction_wpxp_cl()

subroutine, private advance_xm_wpxp_module::xm_correction_wpxp_cl ( integer, intent(in)  solve_type,
real( kind = core_rknd ), intent(in)  dt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_chnge,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_dzt,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  xm 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xm_term_ta_lhs()

pure real( kind = core_rknd ) function, dimension(2), private advance_xm_wpxp_module::xm_term_ta_lhs ( real( kind = core_rknd ), intent(in)  rho_ds_zm,
real( kind = core_rknd ), intent(in)  rho_ds_zmm1,
real( kind = core_rknd ), intent(in)  invrs_rho_ds_zt,
real( kind = core_rknd ), intent(in)  invrs_dzt 
)
private
Here is the caller graph for this function:

◆ xm_wpxp_clipping_and_stats()

subroutine, private advance_xm_wpxp_module::xm_wpxp_clipping_and_stats ( integer, intent(in)  solve_type,
real( kind = core_rknd ), intent(in)  dt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  xp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wm_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  xm_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zt,
real( kind = core_rknd ), intent(in)  xp2_threshold,
real( kind = core_rknd ), intent(in)  xm_threshold,
real( kind = core_rknd ), intent(in)  rcond,
integer, dimension(gr%nz), intent(in)  low_lev_effect,
integer, dimension(gr%nz), intent(in)  high_lev_effect,
logical, intent(in)  l_implemented,
real( kind = core_rknd ), dimension(2*gr%nz), intent(in)  solution,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  xm,
real( kind = core_rknd ), intent(in)  xm_tol,
real( kind = core_rknd ), dimension(gr%nz), intent(inout)  wpxp,
integer, intent(out)  err_code 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xm_wpxp_lhs()

subroutine, private advance_xm_wpxp_module::xm_wpxp_lhs ( logical, intent(in)  l_iter,
real( kind = core_rknd ), intent(in)  dt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Kh_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  a1,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  a1_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wm_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wm_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Kw6,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  tau_C6_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  C7_Skw_fnc,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  C6x_Skw_fnc,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_upper_lim,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_lower_lim,
logical, intent(in)  l_implemented,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  em,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  Lscale,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thlm,
real( kind = core_rknd ), dimension(nsup+nsub+1,2*gr%nz), intent(out)  lhs 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xm_wpxp_rhs()

subroutine, private advance_xm_wpxp_module::xm_wpxp_rhs ( integer, intent(in)  solve_type,
logical, intent(in)  l_iter,
real( kind = core_rknd ), intent(in)  dt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  xm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  xm_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_forcing,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  C7_Skw_fnc,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  xpthvp,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  C6x_Skw_fnc,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  tau_C6_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  a1,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  a1_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wp3_on_wp2_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zt,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  invrs_rho_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  thv_ds_zm,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_upper_lim,
real( kind = core_rknd ), dimension(gr%nz), intent(in)  wpxp_lower_lim,
real( kind = core_rknd ), dimension(2*gr%nz), intent(out)  rhs 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xm_wpxp_solve()

subroutine, private advance_xm_wpxp_module::xm_wpxp_solve ( integer, intent(in)  nrhs,
real( kind = core_rknd ), dimension(nsup+nsub+1,2*gr%nz), intent(inout)  lhs,
real( kind = core_rknd ), dimension(2*gr%nz,nrhs), intent(inout)  rhs,
real( kind = core_rknd ), dimension(2*gr%nz,nrhs), intent(out)  solution,
integer, intent(out)  err_code,
real( kind = core_rknd ), intent(out), optional  rcond 
)
private
Here is the caller graph for this function:

Variable Documentation

◆ nsub

integer, parameter, private advance_xm_wpxp_module::nsub = 2
private

◆ nsup

integer, parameter, private advance_xm_wpxp_module::nsup = 2
private

◆ xm_wpxp_rtm

integer, parameter, private advance_xm_wpxp_module::xm_wpxp_rtm = 2
private

◆ xm_wpxp_scalar

integer, parameter, private advance_xm_wpxp_module::xm_wpxp_scalar = 3
private

◆ xm_wpxp_thlm

integer, parameter, private advance_xm_wpxp_module::xm_wpxp_thlm = 1
private