Common Community Physics Package (CCPP) Scientific Documentation  Version 2.0
subroutine, public module_radiation_clouds::progcld4o ( real (kind=kind_phys), dimension(:,:), intent(in)  plyr,
real (kind=kind_phys), dimension(:,:), intent(in)  plvl,
real (kind=kind_phys), dimension(:,:), intent(in)  tlyr,
real (kind=kind_phys), dimension(:,:), intent(in)  tvly,
real (kind=kind_phys), dimension(:,:), intent(in)  qlyr,
real (kind=kind_phys), dimension(:,:), intent(in)  qstl,
real (kind=kind_phys), dimension(:,:), intent(in)  rhly,
real (kind=kind_phys), dimension(:,:,:), intent(in)  clw,
real (kind=kind_phys), dimension(:), intent(in)  xlat,
real (kind=kind_phys), dimension(:), intent(in)  xlon,
real (kind=kind_phys), dimension(:), intent(in)  slmsk,
integer, intent(in)  ntrac,
integer, intent(in)  ntcw,
integer, intent(in)  ntiw,
integer, intent(in)  ntrw,
integer, intent(in)  ntsw,
integer, intent(in)  ntgl,
integer, intent(in)  ntclamt,
integer, intent(in)  IX,
integer, intent(in)  NLAY,
integer, intent(in)  NLP1,
real (kind=kind_phys), dimension(:,:,:), intent(out)  clouds,
real (kind=kind_phys), dimension(:,:), intent(out)  clds,
integer, dimension(:,:), intent(out)  mtop,
integer, dimension(:,:), intent(out)  mbot 
)
Parameters
plyr(ix,nlay), model layer mean pressure in mb (100Pa)
plvl(ix,nlp1), model level pressure in mb (100Pa)
tlyr(ix,nlay), model layer mean temperature in K
tvly(ix,nlay), model layer virtual temperature in K
qlyr(ix,nlay), layer specific humidity in \(gm gm^{-1}\)
qstl(ix,nlay), layer saturate humidity in \(gm gm^{-1}\)
rhly(ix,nlay), layer relative humidity (=qlyr/qstl)
clw(ix,nlay,ntrac), layer cloud condensate amount
xlat(ix), grid latitude in radians, default to pi/2->-pi/2 range, otherwise see in-line comment
xlon(ix), grid longitude in radians (not used)
slmsk(ix), sea/land mask array (sea:0, land:1, sea-ice:2)
ntracnumber of tracers minus one (Modelntrac-1)
ntcwtracer index for cloud liquid water minus one (Modelntcw-1)
ntiwtracer index for cloud ice water minus one (Modelntiw-1)
ntrwtracer index for rain water minus one (Modelntrw-1)
ntswtracer index for snow water minus one (Modelntsw-1)
ntgltracer index for graupel minus one (Modelntgl-1)
ntclamttracer index for cloud amount minus one (Modelntclamt-1)
ixhorizontal dimension
nlayvertical layer dimension
nlp1vertical level dimension
clouds(ix,nlay,nf_clds), cloud profiles
clouds(:,:,1) - layer totoal cloud fraction
clouds(:,:,2) - layer cloud liquid water path ( \(g m^{-2}\))
clouds(:,:,3) - mean effective radius for liquid cloud (micron)
clouds(:,:,4) - layer cloud ice water path ( \(g m^{-2}\))
clouds(:,:,5) - mean effective radius for ice cloud (micron)
clouds(:,:,6) - layer rain dropwater path ( \(g m^{-2}\))
clouds(:,:,7) - mean effective radius for rain drop (micron)
clouds(:,:,8) - layer snow flake water path ( \(g m^{-2}\))
clouds(:,:,9) - mean effective radius for snow flake (micron)
clds(ix,5), fraction of clouds for low, mid, hi, tot, bl
mtop(ix,3), vertical indices for low, mid, hi cloud tops
mbot(ix,3), vertical indices for low, mid, hi cloud bases

progcld4o General Algorithm

  • Assign liquid/ice/rain/snow cloud droplet effective radius as default value.
  • Compute top pressure for each cloud domain for given latitude. ptopc(k,i): top presure of each cld domain (k=1-4 are sfc,L,m,h; i=1,2 are low-lat (<45 degree) and pole regions)
  • Compute liquid/ice condensate path in \(g m^{-2}\)
  • Compute effective liquid cloud droplet radius over land.
  • Compute effective ice cloud droplet radius in Heymsfield and McFarquhar (1996) [44].
  • Call gethml() to compute low, mid, high, total, and boundary layer cloud fractions and clouds top/bottom layer indices for low, mid, and high clouds. The three cloud domain boundaries are defined by ptopc. The cloud overlapping method is defined by control flag 'iovr', which may be different for lw and sw radiation programs.

References physcons::con_pi, physcons::con_ttp, gethml(), physparam::ivflip, and physparam::lcnorm.

Here is the call graph for this function: