CAM
diffusion_solver Module Reference

Data Types

interface  any
 
interface  operator(.not.)
 
type  vdiff_selector
 

Functions/Subroutines

subroutine, public init_vdiff (kind, iulog_in, rair_in, gravit_in, do_iss_in, errstring)
 
type(vdiff_selector) pure function, public new_fieldlist_vdiff (ncnst)
 
subroutine, public compute_vdiff (lchnk, pcols, pver, ncnst, ncol, pmid, pint, rpdel, t, ztodt, taux, tauy, shflx, cflx, ntop, nbot, kvh, kvm, kvq, cgs, cgh, zi, ksrftms, qmincg, fieldlist, fieldlistm, u, v, q, dse, tautmsx, tautmsy, dtk, topflx, errstring, tauresx, tauresy, itaures, cpairv, rairi, do_molec_diff, compute_molec_diff, vd_lu_qdecomp, kvt)
 
character(128) function, public vdiff_select (fieldlist, name, qindex)
 
type(vdiff_selector) function not (a)
 
logical function my_any (a)
 
logical function diffuse (fieldlist, name, qindex)
 

Variables

integer, parameter r8 = selected_real_kind(12)
 
integer iulog = -1
 
real(r8), private cpair
 
real(r8), private gravit
 
real(r8), private rair
 
real(r8), private zvir
 
real(r8), private latvap
 
real(r8), private karman
 
logical, private do_iss
 
real(r8), parameter z0fac = 0.025_r8
 
real(r8), parameter z0max = 100._r8
 
real(r8), parameter horomin = 10._r8
 
real(r8), parameter dv2min = 0.01_r8
 
real(r8), private oroconst
 

Function/Subroutine Documentation

◆ compute_vdiff()

subroutine, public diffusion_solver::compute_vdiff ( integer, intent(in)  lchnk,
integer, intent(in)  pcols,
integer, intent(in)  pver,
integer, intent(in)  ncnst,
integer, intent(in)  ncol,
real(r8), dimension(pcols,pver), intent(in)  pmid,
real(r8), dimension(pcols,pver+1), intent(in)  pint,
real(r8), dimension(pcols,pver), intent(in)  rpdel,
real(r8), dimension(pcols,pver), intent(in)  t,
real(r8), intent(in)  ztodt,
real(r8), dimension(pcols), intent(in)  taux,
real(r8), dimension(pcols), intent(in)  tauy,
real(r8), dimension(pcols), intent(in)  shflx,
real(r8), dimension(pcols,ncnst), intent(in)  cflx,
integer, intent(in)  ntop,
integer, intent(in)  nbot,
real(r8), dimension(pcols,pver+1), intent(in)  kvh,
real(r8), dimension(pcols,pver+1), intent(inout)  kvm,
real(r8), dimension(pcols,pver+1), intent(inout)  kvq,
real(r8), dimension(pcols,pver+1), intent(inout)  cgs,
real(r8), dimension(pcols,pver+1), intent(inout)  cgh,
real(r8), dimension(pcols,pver+1), intent(in)  zi,
real(r8), dimension(pcols), intent(in)  ksrftms,
real(r8), dimension(ncnst), intent(in)  qmincg,
type(vdiff_selector), intent(in)  fieldlist,
type(vdiff_selector), intent(in)  fieldlistm,
real(r8), dimension(pcols,pver), intent(inout)  u,
real(r8), dimension(pcols,pver), intent(inout)  v,
real(r8), dimension(pcols,pver,ncnst), intent(inout)  q,
real(r8), dimension(pcols,pver), intent(inout)  dse,
real(r8), dimension(pcols), intent(out)  tautmsx,
real(r8), dimension(pcols), intent(out)  tautmsy,
real(r8), dimension(pcols,pver), intent(out)  dtk,
real(r8), dimension(pcols), intent(out)  topflx,
character(128), intent(out)  errstring,
real(r8), dimension(pcols), intent(inout)  tauresx,
real(r8), dimension(pcols), intent(inout)  tauresy,
integer, intent(in)  itaures,
real(r8), dimension(pcols,pver), intent(in)  cpairv,
real(r8), dimension(pcols,pver+1), intent(in)  rairi,
logical, intent(in)  do_molec_diff,
integer, optional, external  compute_molec_diff,
integer, optional, external  vd_lu_qdecomp,
real(r8), dimension(pcols,pver+1), intent(out), optional  kvt 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ diffuse()

logical function diffusion_solver::diffuse ( type(vdiff_selector), intent(in)  fieldlist,
character(*), intent(in)  name,
integer, intent(in), optional  qindex 
)
private
Here is the caller graph for this function:

◆ init_vdiff()

subroutine, public diffusion_solver::init_vdiff ( integer, intent(in)  kind,
integer, intent(in)  iulog_in,
real(r8), intent(in)  rair_in,
real(r8), intent(in)  gravit_in,
logical, intent(in)  do_iss_in,
character(128), intent(out)  errstring 
)
Here is the caller graph for this function:

◆ my_any()

logical function diffusion_solver::my_any ( type(vdiff_selector), intent(in)  a)
private

◆ new_fieldlist_vdiff()

type(vdiff_selector) pure function, public diffusion_solver::new_fieldlist_vdiff ( integer, intent(in)  ncnst)
Here is the caller graph for this function:

◆ not()

type(vdiff_selector) function diffusion_solver::not ( type(vdiff_selector), intent(in)  a)
private

◆ vdiff_select()

character(128) function, public diffusion_solver::vdiff_select ( type(vdiff_selector), intent(inout)  fieldlist,
character(*), intent(in)  name,
integer, intent(in), optional  qindex 
)
Here is the caller graph for this function:

Variable Documentation

◆ cpair

real(r8), private diffusion_solver::cpair
private

◆ do_iss

logical, private diffusion_solver::do_iss
private

◆ dv2min

real(r8), parameter diffusion_solver::dv2min = 0.01_r8
private

◆ gravit

real(r8), private diffusion_solver::gravit
private

◆ horomin

real(r8), parameter diffusion_solver::horomin = 10._r8
private

◆ iulog

integer diffusion_solver::iulog = -1
private

◆ karman

real(r8), private diffusion_solver::karman
private

◆ latvap

real(r8), private diffusion_solver::latvap
private

◆ oroconst

real(r8), private diffusion_solver::oroconst
private

◆ r8

integer, parameter diffusion_solver::r8 = selected_real_kind(12)
private

◆ rair

real(r8), private diffusion_solver::rair
private

◆ z0fac

real(r8), parameter diffusion_solver::z0fac = 0.025_r8
private

◆ z0max

real(r8), parameter diffusion_solver::z0max = 100._r8
private

◆ zvir

real(r8), private diffusion_solver::zvir
private