CAM
cldwat2m_macro Module Reference

Functions/Subroutines

subroutine, public ini_macro (rhminl_opt_in, rhmini_opt_in)
 
subroutine, public mmacro_pcond (lchnk, ncol, dt, p, dp, T0, qv0, ql0, qi0, nl0, ni0, A_T, A_qv, A_ql, A_qi, A_nl, A_ni, C_T, C_qv, C_ql, C_qi, C_nl, C_ni, C_qlst, D_T, D_qv, D_ql, D_qi, D_nl, D_ni, a_cud, a_cu0, clrw_old, clri_old, landfrac, snowh, tke, qtl_flx, qti_flx, cmfr_det, qlr_det, qir_det, s_tendout, qv_tendout, ql_tendout, qi_tendout, nl_tendout, ni_tendout, qme, qvadj, qladj, qiadj, qllim, qilim, cld, al_st_star, ai_st_star, ql_st_star, qi_st_star, a_det_star, do_cldice)
 
subroutine rhcrit_calc (ncol, dp, T0, p, clrw_old, clri_old, tke, qtl_flx, qti_flx, cmfr_det, qlr_det, qir_det, rhmini_arr, rhminl_arr, rhminl_adj_land_arr, rhminh_arr, d_rhmin_liq_PBL, d_rhmin_ice_PBL, d_rhmin_liq_det, d_rhmin_ice_det)
 
subroutine instratus_condensate (lchnk, ncol, k, p_in, T0_in, qv0_in, ql0_in, qi0_in, ni0_in, a_dc_in, ql_dc_in, qi_dc_in, a_sc_in, ql_sc_in, qi_sc_in, landfrac, snowh, rhmini_in, rhminl_in, rhminl_adj_land_in, rhminh_in, T_out, qv_out, ql_out, qi_out, al_st_out, ai_st_out, ql_st_out, qi_st_out)
 
subroutine instratus_core (lchnk, icol, k, p, T0, qv0, ql0, qi0, a_dc, ql_dc, qi_dc, a_sc, ql_sc, qi_sc, ai_st, qcst_crit, Tmin, Tmax, landfrac, snowh, rhminl, rhminl_adj_land, rhminh, T, qv, ql, qi)
 
subroutine funcd_instratus (T, p, T0, qv0, ql0, qi0, fice0, muQ0, qc_nc0, a_dc, ql_dc, qi_dc, a_sc, ql_sc, qi_sc, ai_st, qcst_crit, landfrac, snowh, rhminl, rhminl_adj_land, rhminh, f, fg, qc_nc, fice, al_st)
 
subroutine gridmean_rh (lchnk, icol, k, p, T, qv, ql, qi, a_dc, ql_dc, qi_dc, a_sc, ql_sc, qi_sc, landfrac, snowh)
 
subroutine positive_moisture (ncol, dt, qvmin, qlmin, qimin, dp, qv, ql, qi, t, qvten, qlten, qiten, tten, do_cldice)
 
subroutine gaussj (a, n, np, b, m, mp)
 

Variables

character(len=16) shallow_scheme
 
integer i_rhminl
 
integer i_rhmini
 
real(r8), parameter tau_detw =100._r8
 
real(r8), parameter tau_deti = 1._r8
 
real(r8), parameter c_aniso = 1._r8
 
real(r8), parameter coef_ero = 1.e-6_r8
 
integer, parameter i_adet = 1
 
logical, parameter camstfrac = .false.
 
real(r8), parameter qlst_min = 2.e-5_r8
 
real(r8), parameter qlst_max = 3.e-3_r8
 
real(r8), parameter cc = 0.1_r8
 
integer, parameter niter = 2
 
real(r8), parameter ramda = 0.5_r8
 
real(r8), private rhminl_const
 
real(r8), private rhminl_adj_land_const
 
real(r8), private rhminh_const
 
real(r8), private premit
 
real(r8), private premib
 
real(r8), parameter qsmall = 1.e-18_r8
 

Function/Subroutine Documentation

◆ funcd_instratus()

subroutine cldwat2m_macro::funcd_instratus ( real(r8), intent(in)  T,
real(r8), intent(in)  p,
real(r8), intent(in)  T0,
real(r8), intent(in)  qv0,
real(r8), intent(in)  ql0,
real(r8), intent(in)  qi0,
real(r8), intent(in)  fice0,
real(r8), intent(in)  muQ0,
real(r8), intent(in)  qc_nc0,
real(r8), intent(in)  a_dc,
real(r8), intent(in)  ql_dc,
real(r8), intent(in)  qi_dc,
real(r8), intent(in)  a_sc,
real(r8), intent(in)  ql_sc,
real(r8), intent(in)  qi_sc,
real(r8), intent(in)  ai_st,
real(r8), intent(in)  qcst_crit,
real(r8), intent(in)  landfrac,
real(r8), intent(in)  snowh,
real(r8), intent(in)  rhminl,
real(r8), intent(in)  rhminl_adj_land,
real(r8), intent(in)  rhminh,
real(r8), intent(out)  f,
real(r8), intent(out)  fg,
real(r8), intent(out)  qc_nc,
real(r8), intent(out)  fice,
real(r8), intent(out)  al_st 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ gaussj()

subroutine cldwat2m_macro::gaussj ( real(r8), dimension(np,np)  a,
integer  n,
integer  np,
real(r8), dimension(np,mp)  b,
integer  m,
integer  mp 
)
private
Here is the caller graph for this function:

◆ gridmean_rh()

subroutine cldwat2m_macro::gridmean_rh ( integer, intent(in)  lchnk,
integer, intent(in)  icol,
integer, intent(in)  k,
real(r8), intent(in)  p,
real(r8), intent(inout)  T,
real(r8), intent(inout)  qv,
real(r8), intent(inout)  ql,
real(r8), intent(inout)  qi,
real(r8), intent(in)  a_dc,
real(r8), intent(in)  ql_dc,
real(r8), intent(in)  qi_dc,
real(r8), intent(in)  a_sc,
real(r8), intent(in)  ql_sc,
real(r8), intent(in)  qi_sc,
real(r8), intent(in)  landfrac,
real(r8), intent(in)  snowh 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ini_macro()

subroutine, public cldwat2m_macro::ini_macro ( integer, intent(in)  rhminl_opt_in,
integer, intent(in)  rhmini_opt_in 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ instratus_condensate()

subroutine cldwat2m_macro::instratus_condensate ( integer, intent(in)  lchnk,
integer, intent(in)  ncol,
integer, intent(in)  k,
real(r8), dimension(pcols), intent(in)  p_in,
real(r8), dimension(pcols), intent(in)  T0_in,
real(r8), dimension(pcols), intent(in)  qv0_in,
real(r8), dimension(pcols), intent(in)  ql0_in,
real(r8), dimension(pcols), intent(in)  qi0_in,
real(r8), dimension(pcols), intent(in)  ni0_in,
real(r8), dimension(pcols), intent(in)  a_dc_in,
real(r8), dimension(pcols), intent(in)  ql_dc_in,
real(r8), dimension(pcols), intent(in)  qi_dc_in,
real(r8), dimension(pcols), intent(in)  a_sc_in,
real(r8), dimension(pcols), intent(in)  ql_sc_in,
real(r8), dimension(pcols), intent(in)  qi_sc_in,
real(r8), dimension(pcols), intent(in)  landfrac,
real(r8), dimension(pcols), intent(in)  snowh,
real(r8), dimension(pcols), intent(in)  rhmini_in,
real(r8), dimension(pcols), intent(in)  rhminl_in,
real(r8), dimension(pcols), intent(in)  rhminl_adj_land_in,
real(r8), dimension(pcols), intent(in)  rhminh_in,
real(r8), dimension(pcols), intent(out)  T_out,
real(r8), dimension(pcols), intent(out)  qv_out,
real(r8), dimension(pcols), intent(out)  ql_out,
real(r8), dimension(pcols), intent(out)  qi_out,
real(r8), dimension(pcols), intent(out)  al_st_out,
real(r8), dimension(pcols), intent(out)  ai_st_out,
real(r8), dimension(pcols), intent(out)  ql_st_out,
real(r8), dimension(pcols), intent(out)  qi_st_out 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ instratus_core()

subroutine cldwat2m_macro::instratus_core ( integer, intent(in)  lchnk,
integer, intent(in)  icol,
integer, intent(in)  k,
real(r8), intent(in)  p,
real(r8), intent(in)  T0,
real(r8), intent(in)  qv0,
real(r8), intent(in)  ql0,
real(r8), intent(in)  qi0,
real(r8), intent(in)  a_dc,
real(r8), intent(in)  ql_dc,
real(r8), intent(in)  qi_dc,
real(r8), intent(in)  a_sc,
real(r8), intent(in)  ql_sc,
real(r8), intent(in)  qi_sc,
real(r8), intent(in)  ai_st,
real(r8), intent(in)  qcst_crit,
real(r8), intent(in)  Tmin,
real(r8), intent(in)  Tmax,
real(r8), intent(in)  landfrac,
real(r8), intent(in)  snowh,
real(r8), intent(in)  rhminl,
real(r8), intent(in)  rhminl_adj_land,
real(r8), intent(in)  rhminh,
real(r8), intent(out)  T,
real(r8), intent(out)  qv,
real(r8), intent(out)  ql,
real(r8), intent(out)  qi 
)
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mmacro_pcond()

subroutine, public cldwat2m_macro::mmacro_pcond ( integer, intent(in)  lchnk,
integer, intent(in)  ncol,
real(r8), intent(in)  dt,
real(r8), dimension(pcols,pver), intent(in)  p,
real(r8), dimension(pcols,pver), intent(in)  dp,
real(r8), dimension(pcols,pver), intent(inout)  T0,
real(r8), dimension(pcols,pver), intent(inout)  qv0,
real(r8), dimension(pcols,pver), intent(inout)  ql0,
real(r8), dimension(pcols,pver), intent(inout)  qi0,
real(r8), dimension(pcols,pver), intent(inout)  nl0,
real(r8), dimension(pcols,pver), intent(inout)  ni0,
real(r8), dimension(pcols,pver), intent(in)  A_T,
real(r8), dimension(pcols,pver), intent(in)  A_qv,
real(r8), dimension(pcols,pver), intent(in)  A_ql,
real(r8), dimension(pcols,pver), intent(in)  A_qi,
real(r8), dimension(pcols,pver), intent(in)  A_nl,
real(r8), dimension(pcols,pver), intent(in)  A_ni,
real(r8), dimension(pcols,pver), intent(in)  C_T,
real(r8), dimension(pcols,pver), intent(in)  C_qv,
real(r8), dimension(pcols,pver), intent(in)  C_ql,
real(r8), dimension(pcols,pver), intent(in)  C_qi,
real(r8), dimension(pcols,pver), intent(in)  C_nl,
real(r8), dimension(pcols,pver), intent(in)  C_ni,
real(r8), dimension(pcols,pver), intent(in)  C_qlst,
real(r8), dimension(pcols,pver), intent(in)  D_T,
real(r8), dimension(pcols,pver), intent(in)  D_qv,
real(r8), dimension(pcols,pver), intent(in)  D_ql,
real(r8), dimension(pcols,pver), intent(in)  D_qi,
real(r8), dimension(pcols,pver), intent(in)  D_nl,
real(r8), dimension(pcols,pver), intent(in)  D_ni,
real(r8), dimension(pcols,pver), intent(in)  a_cud,
real(r8), dimension(pcols,pver), intent(in)  a_cu0,
real(r8), dimension(pcols,pver), intent(in)  clrw_old,
real(r8), dimension(pcols,pver), intent(in)  clri_old,
real(r8), dimension(pcols), intent(in)  landfrac,
real(r8), dimension(pcols), intent(in)  snowh,
real(r8), dimension(:,:), pointer  tke,
real(r8), dimension(:,:), pointer  qtl_flx,
real(r8), dimension(:,:), pointer  qti_flx,
real(r8), dimension(:,:), pointer  cmfr_det,
real(r8), dimension(:,:), pointer  qlr_det,
real(r8), dimension(:,:), pointer  qir_det,
real(r8), dimension(pcols,pver), intent(out)  s_tendout,
real(r8), dimension(pcols,pver), intent(out)  qv_tendout,
real(r8), dimension(pcols,pver), intent(out)  ql_tendout,
real(r8), dimension(pcols,pver), intent(out)  qi_tendout,
real(r8), dimension(pcols,pver), intent(out)  nl_tendout,
real(r8), dimension(pcols,pver), intent(out)  ni_tendout,
real(r8), dimension (pcols,pver), intent(out)  qme,
real(r8), dimension(pcols,pver), intent(out)  qvadj,
real(r8), dimension(pcols,pver), intent(out)  qladj,
real(r8), dimension(pcols,pver), intent(out)  qiadj,
real(r8), dimension(pcols,pver), intent(out)  qllim,
real(r8), dimension(pcols,pver), intent(out)  qilim,
real(r8), dimension(pcols,pver), intent(out)  cld,
real(r8), dimension(pcols,pver), intent(out)  al_st_star,
real(r8), dimension(pcols,pver), intent(out)  ai_st_star,
real(r8), dimension(pcols,pver), intent(out)  ql_st_star,
real(r8), dimension(pcols,pver), intent(out)  qi_st_star,
real(r8), dimension(pcols,pver), intent(out)  a_det_star,
logical, intent(in)  do_cldice 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ positive_moisture()

subroutine cldwat2m_macro::positive_moisture ( integer, intent(in)  ncol,
real(r8), intent(in)  dt,
real(r8), dimension(pcols,pver), intent(in)  qvmin,
real(r8), dimension(pcols,pver), intent(in)  qlmin,
real(r8), dimension(pcols,pver), intent(in)  qimin,
real(r8), dimension(pcols,pver), intent(in)  dp,
real(r8), dimension(pcols,pver), intent(inout)  qv,
real(r8), dimension(pcols,pver), intent(inout)  ql,
real(r8), dimension(pcols,pver), intent(inout)  qi,
real(r8), dimension(pcols,pver), intent(inout)  t,
real(r8), dimension(pcols,pver), intent(out)  qvten,
real(r8), dimension(pcols,pver), intent(out)  qlten,
real(r8), dimension(pcols,pver), intent(out)  qiten,
real(r8), dimension(pcols,pver), intent(out)  tten,
logical, intent(in)  do_cldice 
)
private
Here is the caller graph for this function:

◆ rhcrit_calc()

subroutine cldwat2m_macro::rhcrit_calc ( integer, intent(in)  ncol,
real(r8), dimension(pcols,pver), intent(in)  dp,
real(r8), dimension(pcols,pver), intent(in)  T0,
real(r8), dimension(pcols,pver), intent(in)  p,
real(r8), dimension(pcols,pver), intent(in)  clrw_old,
real(r8), dimension(pcols,pver), intent(in)  clri_old,
real(r8), dimension(:,:), pointer  tke,
real(r8), dimension(:,:), pointer  qtl_flx,
real(r8), dimension(:,:), pointer  qti_flx,
real(r8), dimension(:,:), pointer  cmfr_det,
real(r8), dimension(:,:), pointer  qlr_det,
real(r8), dimension(:,:), pointer  qir_det,
real(r8), dimension(pcols,pver), intent(out)  rhmini_arr,
real(r8), dimension(pcols,pver), intent(out)  rhminl_arr,
real(r8), dimension(pcols,pver), intent(out)  rhminl_adj_land_arr,
real(r8), dimension(pcols,pver), intent(out)  rhminh_arr,
real(r8), dimension(pcols,pver), intent(out)  d_rhmin_liq_PBL,
real(r8), dimension(pcols,pver), intent(out)  d_rhmin_ice_PBL,
real(r8), dimension(pcols,pver), intent(out)  d_rhmin_liq_det,
real(r8), dimension(pcols,pver), intent(out)  d_rhmin_ice_det 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ c_aniso

real(r8), parameter cldwat2m_macro::c_aniso = 1._r8
private

◆ camstfrac

logical, parameter cldwat2m_macro::camstfrac = .false.
private

◆ cc

real(r8), parameter cldwat2m_macro::cc = 0.1_r8
private

◆ coef_ero

real(r8), parameter cldwat2m_macro::coef_ero = 1.e-6_r8
private

◆ i_adet

integer, parameter cldwat2m_macro::i_adet = 1
private

◆ i_rhmini

integer cldwat2m_macro::i_rhmini
private

◆ i_rhminl

integer cldwat2m_macro::i_rhminl
private

◆ niter

integer, parameter cldwat2m_macro::niter = 2
private

◆ premib

real(r8), private cldwat2m_macro::premib
private

◆ premit

real(r8), private cldwat2m_macro::premit
private

◆ qlst_max

real(r8), parameter cldwat2m_macro::qlst_max = 3.e-3_r8
private

◆ qlst_min

real(r8), parameter cldwat2m_macro::qlst_min = 2.e-5_r8
private

◆ qsmall

real(r8), parameter cldwat2m_macro::qsmall = 1.e-18_r8
private

◆ ramda

real(r8), parameter cldwat2m_macro::ramda = 0.5_r8
private

◆ rhminh_const

real(r8), private cldwat2m_macro::rhminh_const
private

◆ rhminl_adj_land_const

real(r8), private cldwat2m_macro::rhminl_adj_land_const
private

◆ rhminl_const

real(r8), private cldwat2m_macro::rhminl_const
private

◆ shallow_scheme

character(len=16) cldwat2m_macro::shallow_scheme
private

◆ tau_deti

real(r8), parameter cldwat2m_macro::tau_deti = 1._r8
private

◆ tau_detw

real(r8), parameter cldwat2m_macro::tau_detw =100._r8
private