FV3 Bundle
bldriver Module Reference

Functions/Subroutines

subroutine, public bl_driver (IM, JM, LM, DT, U, V, TH, Q, P, QIT, QLT, FRLAND, FROCEAN, VARFLT, ZPBL, CM, CT, CQ, TURBPARAMS, TURBPARAMSI, USTAR, BSTAR, AKS, BKS, CKS, AKQ, BKQ, CKQ, AKV, BKV, CKV, EKV, FKV)
 
subroutine preliminary (IRUN, LM, DT, T, QV, PHALF, TH, QIT, QLT, ZFULL, ZHALF, TV, PV, RDZ, DMI, PFULL)
 
subroutine louis_diff (IRUN, LM, KH, KM, RI, DU, ZPBL, ZZ, ZE, PV, UU, VV, LOUIS, MINSHEAR, MINTHICK, LAMBDAM, LAMBDAM2, LAMBDAH, LAMBDAH2, ZKMENV, ZKHENV, AKHMMAX, ALH_DIAG, KMLS_DIAG, KHLS_DIAG)
 
subroutine tridiag_setup (IRUN, LM, DT, KPBLMIN, ZFULL, PFULL, RDZ, DMI, PHALF, TV, CT, CQ, CU, T, Q, TH, U, V, DIFF_T, DIFF_M, AKQ, AKS, AKV, BKQ, BKS, BKV, CKQ, CKS, CKV, EKV, ZPBL)
 
subroutine orodrag (IRUN, LM, DT, LAMBDA_B, C_B, FKV, BKV, U, V, ZFULL, VARFLT, PHALF)
 
subroutine lock_diff (ncol, nlev, tdtlw_in_dev, u_star_dev, b_star_dev, frland_dev, t_dev, qv_dev, qit_dev, qlt_dev, u_dev, v_dev, zfull_dev, pfull_dev, zhalf_dev, phalf_dev, diff_m_dev, diff_t_dev, prandtlsfc_const, prandtlrad_const, beta_surf_const, beta_rad_const, tpfac_sfc_const, entrate_sfc_const, pceff_sfc_const, khradfac_const, khsfcfac_const, radlw_dep, ESTBLX)
 
subroutine mpbl_depth (i, ncol, nlev, tpfac, entrate, pceff, t, q, u, v, z, p, b_star, u_star, ipbl, ztop, ESTBLX)
 
subroutine radml_depth (i, ncol, nlev, toplev, botlev, svp, zt, critjump, do_jump_exit, t, zf, zh, zb, zml)
 
subroutine diffusivity_pbl2 (i, ncol, lm, h, kfac, k_ent, vsurf, frland, zm, k_m, k_t)
 
subroutine esinit (ESTBLX)
 
subroutine qsatlqu0 (QS, TL)
 
subroutine qsatice0 (QS, TL)
 
subroutine dqsat_sub_sca (DQSi, QSSi, TEMP, PLO, ESTBLX)
 

Variables

integer, parameter degsubs = 100
 
real(kind_real), parameter tmintbl = 150.0
 
real(kind_real), parameter tmaxtbl = 333.0
 
integer, parameter tablesize = nint(TMAXTBL-TMINTBL)*DEGSUBS + 1
 

Function/Subroutine Documentation

◆ bl_driver()

subroutine, public bldriver::bl_driver ( integer, intent(in)  IM,
integer, intent(in)  JM,
integer, intent(in)  LM,
real(kind_real), intent(in)  DT,
real(kind_real), dimension(im,jm,lm), intent(in)  U,
real(kind_real), dimension(im,jm,lm), intent(in)  V,
real(kind_real), dimension(im,jm,lm), intent(in)  TH,
real(kind_real), dimension(im,jm,lm), intent(in)  Q,
real(kind_real), dimension(im,jm,0:lm), intent(in)  P,
real(kind_real), dimension(im,jm,lm), intent(in)  QIT,
real(kind_real), dimension(im,jm,lm), intent(in)  QLT,
real(kind_real), dimension(im,jm), intent(in)  FRLAND,
real(kind_real), dimension(im,jm), intent(in)  FROCEAN,
real(kind_real), dimension(im,jm), intent(in)  VARFLT,
real(kind_real), dimension(im,jm), intent(inout)  ZPBL,
real(kind_real), dimension(im,jm), intent(in)  CM,
real(kind_real), dimension(im,jm), intent(inout)  CT,
real(kind_real), dimension(im,jm), intent(in)  CQ,
real(kind_real), dimension(:), intent(in)  TURBPARAMS,
integer, dimension(:), intent(in)  TURBPARAMSI,
real(kind_real), dimension(im,jm), intent(in)  USTAR,
real(kind_real), dimension(im,jm), intent(in)  BSTAR,
real(kind_real), dimension(im,jm,lm), intent(out)  AKS,
real(kind_real), dimension(im,jm,lm), intent(out)  BKS,
real(kind_real), dimension(im,jm,lm), intent(out)  CKS,
real(kind_real), dimension(im,jm,lm), intent(out)  AKQ,
real(kind_real), dimension(im,jm,lm), intent(out)  BKQ,
real(kind_real), dimension(im,jm,lm), intent(out)  CKQ,
real(kind_real), dimension(im,jm,lm), intent(out)  AKV,
real(kind_real), dimension(im,jm,lm), intent(out)  BKV,
real(kind_real), dimension(im,jm,lm), intent(out)  CKV,
real(kind_real), dimension(im,jm,lm), intent(out)  EKV,
real(kind_real), dimension(im,jm,lm), intent(out)  FKV 
)

Definition at line 28 of file bldriver.F90.

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

◆ diffusivity_pbl2()

subroutine bldriver::diffusivity_pbl2 ( integer, intent(in)  i,
integer, intent(in)  ncol,
integer, intent(in)  lm,
real(kind_real), dimension(ncol), intent(in)  h,
real(kind_real), intent(in)  kfac,
real(kind_real), intent(in)  k_ent,
real(kind_real), intent(in)  vsurf,
real(kind_real), dimension(ncol), intent(in)  frland,
real(kind_real), dimension(ncol,1:lm+1), intent(in)  zm,
real(kind_real), dimension(lm), intent(out)  k_m,
real(kind_real), dimension(lm), intent(out)  k_t 
)
private

Definition at line 1256 of file bldriver.F90.

Here is the caller graph for this function:

◆ dqsat_sub_sca()

subroutine bldriver::dqsat_sub_sca ( real(kind_real)  DQSi,
real(kind_real)  QSSi,
real(kind_real)  TEMP,
real(kind_real)  PLO,
real(kind_real), dimension(:)  ESTBLX 
)
private

Definition at line 1467 of file bldriver.F90.

Here is the caller graph for this function:

◆ esinit()

subroutine bldriver::esinit ( real(kind_real), dimension(tablesize ESTBLX)
private

Definition at line 1305 of file bldriver.F90.

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

◆ lock_diff()

subroutine bldriver::lock_diff ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
real(kind_real), dimension(ncol,nlev), intent(in)  tdtlw_in_dev,
real(kind_real), dimension(ncol), intent(in)  u_star_dev,
real(kind_real), dimension(ncol), intent(in)  b_star_dev,
real(kind_real), dimension(ncol), intent(in)  frland_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  t_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  qv_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  qit_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  qlt_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  u_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  v_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  zfull_dev,
real(kind_real), dimension(ncol,nlev), intent(in)  pfull_dev,
real(kind_real), dimension(ncol,1:nlev+1), intent(in)  zhalf_dev,
real(kind_real), dimension(ncol,1:nlev+1), intent(in)  phalf_dev,
real(kind_real), dimension(ncol,1:nlev+1), intent(inout)  diff_m_dev,
real(kind_real), dimension(ncol,1:nlev+1), intent(inout)  diff_t_dev,
real(kind_real), intent(in)  prandtlsfc_const,
real(kind_real), intent(in)  prandtlrad_const,
real(kind_real), intent(in)  beta_surf_const,
real(kind_real), intent(in)  beta_rad_const,
real(kind_real), intent(in)  tpfac_sfc_const,
real(kind_real), intent(in)  entrate_sfc_const,
real(kind_real), intent(in)  pceff_sfc_const,
real(kind_real), intent(in)  khradfac_const,
real(kind_real), intent(in)  khsfcfac_const,
integer  radlw_dep,
real(kind_real), dimension(:), intent(in)  ESTBLX 
)
private

Definition at line 663 of file bldriver.F90.

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

◆ louis_diff()

subroutine bldriver::louis_diff ( integer, intent(in)  IRUN,
integer, intent(in)  LM,
real(kind_real), dimension(irun,lm+1), intent(out)  KH,
real(kind_real), dimension(irun,lm+1), intent(out)  KM,
real(kind_real), dimension(irun,lm+1), intent(out)  RI,
real(kind_real), dimension(irun,lm+1), intent(out)  DU,
real(kind_real), dimension(irun), intent(in)  ZPBL,
real(kind_real), dimension(irun,lm), intent(in)  ZZ,
real(kind_real), dimension(irun,lm+1), intent(in)  ZE,
real(kind_real), dimension(irun,lm), intent(in)  PV,
real(kind_real), dimension(irun,lm), intent(in)  UU,
real(kind_real), dimension(irun,lm), intent(in)  VV,
real(kind_real), intent(in)  LOUIS,
real(kind_real), intent(in)  MINSHEAR,
real(kind_real), intent(in)  MINTHICK,
real(kind_real), intent(in)  LAMBDAM,
real(kind_real), intent(in)  LAMBDAM2,
real(kind_real), intent(in)  LAMBDAH,
real(kind_real), intent(in)  LAMBDAH2,
real(kind_real), intent(in)  ZKMENV,
real(kind_real), intent(in)  ZKHENV,
real(kind_real), intent(in)  AKHMMAX,
real(kind_real), dimension(irun,lm+1), intent(out)  ALH_DIAG,
real(kind_real), dimension(irun,lm+1), intent(out)  KMLS_DIAG,
real(kind_real), dimension(irun,lm+1), intent(out)  KHLS_DIAG 
)
private

Definition at line 375 of file bldriver.F90.

Here is the caller graph for this function:

◆ mpbl_depth()

subroutine bldriver::mpbl_depth ( integer, intent(in)  i,
integer, intent(in)  ncol,
integer, intent(in)  nlev,
real(kind_real), intent(in)  tpfac,
real(kind_real), intent(in)  entrate,
real(kind_real), intent(in)  pceff,
real(kind_real), dimension(ncol,nlev), intent(in)  t,
real(kind_real), dimension(ncol,nlev), intent(in)  q,
real(kind_real), dimension(ncol,nlev), intent(in)  u,
real(kind_real), dimension(ncol,nlev), intent(in)  v,
real(kind_real), dimension(ncol,nlev), intent(in)  z,
real(kind_real), dimension(ncol,nlev), intent(in)  p,
real(kind_real), dimension(ncol), intent(in)  b_star,
real(kind_real), dimension(ncol), intent(in)  u_star,
integer, intent(out)  ipbl,
real(kind_real), dimension(ncol), intent(out)  ztop,
real(kind_real), dimension(:), intent(in)  ESTBLX 
)
private

Definition at line 1095 of file bldriver.F90.

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

◆ orodrag()

subroutine bldriver::orodrag ( integer, intent(in)  IRUN,
integer, intent(in)  LM,
real(kind_real), intent(in)  DT,
real(kind_real), intent(in)  LAMBDA_B,
real(kind_real), intent(in)  C_B,
real(kind_real), dimension(irun,lm), intent(out)  FKV,
real(kind_real), dimension(irun,lm), intent(inout)  BKV,
real(kind_real), dimension(irun,lm), intent(in)  U,
real(kind_real), dimension(irun,lm), intent(in)  V,
real(kind_real), dimension(irun,lm), intent(in)  ZFULL,
real(kind_real), dimension(irun), intent(in)  VARFLT,
real(kind_real), dimension(irun,lm+1), intent(in)  PHALF 
)
private

Definition at line 613 of file bldriver.F90.

Here is the caller graph for this function:

◆ preliminary()

subroutine bldriver::preliminary ( integer, intent(in)  IRUN,
integer, intent(in)  LM,
real(kind_real), intent(in)  DT,
real(kind_real), dimension(irun,lm), intent(in)  T,
real(kind_real), dimension(irun,lm), intent(in)  QV,
real(kind_real), dimension(irun,lm+1), intent(in)  PHALF,
real(kind_real), dimension(irun,lm), intent(in)  TH,
real(kind_real), dimension(irun,lm), intent(in)  QIT,
real(kind_real), dimension(irun,lm), intent(in)  QLT,
real(kind_real), dimension(irun, lm ), intent(out)  ZFULL,
real(kind_real), dimension(irun, lm+1), intent(out)  ZHALF,
real(kind_real), dimension(irun, lm ), intent(out)  TV,
real(kind_real), dimension(irun, lm ), intent(out)  PV,
real(kind_real), dimension(irun,1:lm-1), intent(out)  RDZ,
real(kind_real), dimension(irun, lm ), intent(out)  DMI,
real(kind_real), dimension(irun, lm ), intent(out)  PFULL 
)
private

Definition at line 303 of file bldriver.F90.

Here is the caller graph for this function:

◆ qsatice0()

subroutine bldriver::qsatice0 ( real(kind_real)  QS,
real(kind_real)  TL 
)
private

Definition at line 1393 of file bldriver.F90.

Here is the caller graph for this function:

◆ qsatlqu0()

subroutine bldriver::qsatlqu0 ( real(kind_real)  QS,
real(kind_real)  TL 
)
private

Definition at line 1347 of file bldriver.F90.

Here is the caller graph for this function:

◆ radml_depth()

subroutine bldriver::radml_depth ( integer, intent(in)  i,
integer, intent(in)  ncol,
integer, intent(in)  nlev,
integer, intent(in)  toplev,
integer, intent(in)  botlev,
real(kind_real), intent(in)  svp,
real(kind_real), intent(in)  zt,
real(kind_real), intent(in)  critjump,
logical, intent(in)  do_jump_exit,
real(kind_real), dimension(nlev), intent(in)  t,
real(kind_real), dimension(ncol,nlev), intent(in)  zf,
real(kind_real), dimension(ncol,nlev+1), intent(in)  zh,
real(kind_real), dimension(ncol), intent(out)  zb,
real(kind_real), dimension(ncol), intent(out)  zml 
)
private

Definition at line 1181 of file bldriver.F90.

Here is the caller graph for this function:

◆ tridiag_setup()

subroutine bldriver::tridiag_setup ( integer, intent(in)  IRUN,
integer, intent(in)  LM,
real(kind_real), intent(in)  DT,
integer, intent(in)  KPBLMIN,
real(kind_real), dimension(irun,lm), intent(in)  ZFULL,
real(kind_real), dimension(irun,lm), intent(in)  PFULL,
real(kind_real), dimension(irun,lm-1), intent(in)  RDZ,
real(kind_real), dimension(irun,lm), intent(in)  DMI,
real(kind_real), dimension(irun,lm+1), intent(in)  PHALF,
real(kind_real), dimension(irun,lm), intent(in)  TV,
real(kind_real), dimension(irun ), intent(in)  CT,
real(kind_real), dimension(irun ), intent(in)  CQ,
real(kind_real), dimension(irun ), intent(in)  CU,
real(kind_real), dimension(irun,lm), intent(in)  T,
real(kind_real), dimension(irun,lm), intent(in)  Q,
real(kind_real), dimension(irun,lm), intent(in)  TH,
real(kind_real), dimension(irun,lm), intent(in)  U,
real(kind_real), dimension(irun,lm), intent(in)  V,
real(kind_real), dimension(irun,lm+1), intent(inout)  DIFF_T,
real(kind_real), dimension(irun,lm+1), intent(inout)  DIFF_M,
real(kind_real), dimension(irun,lm), intent(out)  AKQ,
real(kind_real), dimension(irun,lm), intent(out)  AKS,
real(kind_real), dimension(irun,lm), intent(out)  AKV,
real(kind_real), dimension(irun,lm), intent(out)  BKQ,
real(kind_real), dimension(irun,lm), intent(out)  BKS,
real(kind_real), dimension(irun,lm), intent(out)  BKV,
real(kind_real), dimension(irun,lm), intent(out)  CKQ,
real(kind_real), dimension(irun,lm), intent(out)  CKS,
real(kind_real), dimension(irun,lm), intent(out)  CKV,
real(kind_real), dimension(irun,lm), intent(out)  EKV,
real(kind_real), dimension(irun), intent(out)  ZPBL 
)
private

Definition at line 507 of file bldriver.F90.

Here is the caller graph for this function:

Variable Documentation

◆ degsubs

integer, parameter bldriver::degsubs = 100
private

Definition at line 17 of file bldriver.F90.

◆ tablesize

integer, parameter bldriver::tablesize = nint(TMAXTBL-TMINTBL)*DEGSUBS + 1
private

Definition at line 19 of file bldriver.F90.

◆ tmaxtbl

real(kind_real), parameter bldriver::tmaxtbl = 333.0
private

Definition at line 18 of file bldriver.F90.

◆ tmintbl

real(kind_real), parameter bldriver::tmintbl = 150.0
private

Definition at line 18 of file bldriver.F90.