← Back to Documentation Home
CCPP SciDoc v8.0.0  v8.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
calpreciptype_mod Module Reference

This module defines four algorithms that are called to calculate dominant precipitation type, and the tallies are sumed in calwxt_dominant(). More...

Functions/Subroutines

subroutine calpreciptype (kdt, nrcm, im, ix, lm, lp1, randomno, xlat, xlon, gt0, gq0, prsl, prsi, prec, phii, tskin, domr, domzr, domip, doms)
 
subroutine calwxt (lm, lp1, t, q, pmid, pint, d608, rog, epsq, zint, iwx, twet)
 This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperatue below freezing and lowest layer temperature (Baldwin et al. 1994 [11])
 
subroutine calwxt_ramer (lm, lp1, t, q, pmid, rh, td, pint, ptyp)
 This subroutine is written and provided by Jim Ramer at NOAA/ESRL (Ramer (1993) [167]).
 
real(kind=kind_phys) function xmytw (t, td, p)
 
subroutine calwxt_bourg (lm, lp1, rn, g, t, q, pmid, pint, zint, ptype)
 this routine computes precipitation type using a decision tree approach that uses the so-called "energy method" of Bourgouin(2000) [26].
 
subroutine calwxt_revised (lm, lp1, t, q, pmid, pint, d608, rog, epsq, zint, twet, iwx)
 This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperature below freezing and lowest layer temperature (Baldwin et al.1994 [11]). Since the original version of the algorithm has a high bias for freezing rain and sleet, the revised version is to balance that bias with a version more likely to predict snow.
 
subroutine calwxt_dominant (nalg, rain, freezr, sleet, snow, domr, domzr, domip, doms)
 This subroutine takes the precipitation type solutions from different algorithms and sums them up to give a dominant type.
 

Detailed Description

This module defines four algorithms that are called to calculate dominant precipitation type, and the tallies are sumed in calwxt_dominant().

Function/Subroutine Documentation

◆ calpreciptype()

subroutine calpreciptype_mod::calpreciptype ( integer, intent(in)  kdt,
integer, intent(in)  nrcm,
integer, intent(in)  im,
integer, intent(in)  ix,
integer, intent(in)  lm,
integer, intent(in)  lp1,
real(kind=kind_phys), dimension(ix,nrcm), intent(in)  randomno,
real(kind=kind_phys), dimension(im), intent(in)  xlat,
real(kind=kind_phys), dimension(im), intent(in)  xlon,
real(kind=kind_phys), dimension(ix,lm), intent(in)  gt0,
real(kind=kind_phys), dimension(ix,lm), intent(in)  gq0,
real(kind=kind_phys), dimension(ix,lm), intent(in)  prsl,
real(kind=kind_phys), dimension(ix,lp1), intent(in)  prsi,
real(kind=kind_phys), dimension(im), intent(in)  prec,
real(kind=kind_phys), dimension(ix,lp1), intent(in)  phii,
real(kind=kind_phys), dimension(im), intent(in)  tskin,
real(kind=kind_phys), dimension(im), intent(out)  domr,
real(kind=kind_phys), dimension(im), intent(out)  domzr,
real(kind=kind_phys), dimension(im), intent(out)  domip,
real(kind=kind_phys), dimension(im), intent(out)  doms 
)

GFS calpreciptype General Algorithm

  • Compute wet bulb temperature and relative humidity.
  • Call calwxt() to calculte instantaneous precipitation type component 1.
  • Call calwxt_ramer() to calculate instantaneous precipitation type component 2.
  • Call calwxt_bourg() to calculate instantaneous precipitation type component 3.
  • Call calwxt_revised() to calculate instantateous precipitation type component 4.

Definition at line 10 of file calpreciptype.f90.

◆ calwxt()

subroutine calpreciptype_mod::calwxt ( integer, intent(in)  lm,
integer, intent(in)  lp1,
real(kind=kind_phys), dimension(lm), intent(in)  t,
real(kind=kind_phys), dimension(lm), intent(in)  q,
real(kind=kind_phys), dimension(lm), intent(in)  pmid,
real(kind=kind_phys), dimension(lp1), intent(in)  pint,
real(kind=kind_phys), intent(in)  d608,
real(kind=kind_phys), intent(in)  rog,
real(kind=kind_phys), intent(in)  epsq,
real(kind=kind_phys), dimension(lp1), intent(in)  zint,
integer, intent(out)  iwx,
real(kind=kind_phys), dimension(lm), intent(in)  twet 
)

This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperatue below freezing and lowest layer temperature (Baldwin et al. 1994 [11])

Definition at line 221 of file calpreciptype.f90.

◆ calwxt_bourg()

subroutine calpreciptype_mod::calwxt_bourg ( integer, intent(in)  lm,
integer, intent(in)  lp1,
real(kind=kind_phys), dimension(2), intent(in)  rn,
real(kind=kind_phys), intent(in)  g,
real(kind=kind_phys), dimension(lm), intent(in)  t,
real(kind=kind_phys), dimension(lm), intent(in)  q,
real(kind=kind_phys), dimension(lm), intent(in)  pmid,
real(kind=kind_phys), dimension(lp1), intent(in)  pint,
real(kind=kind_phys), dimension(lp1), intent(in)  zint,
integer, intent(out)  ptype 
)

this routine computes precipitation type using a decision tree approach that uses the so-called "energy method" of Bourgouin(2000) [26].

Definition at line 886 of file calpreciptype.f90.

◆ calwxt_dominant()

subroutine calpreciptype_mod::calwxt_dominant ( integer, intent(in)  nalg,
integer, dimension(nalg), intent(in)  rain,
integer, dimension(nalg), intent(in)  freezr,
integer, dimension(nalg), intent(in)  sleet,
integer, dimension(nalg), intent(in)  snow,
real(kind=kind_phys), intent(out)  domr,
real(kind=kind_phys), intent(out)  domzr,
real(kind=kind_phys), intent(out)  domip,
real(kind=kind_phys), intent(out)  doms 
)

This subroutine takes the precipitation type solutions from different algorithms and sums them up to give a dominant type.

GFS calwxt_dominant General Algorithm

  • Loop over the number of different algorithms that are used.
  • Ties are broken to favor the most dangerous form of precip freezing rain > snow > sleet > rain.

Definition at line 1321 of file calpreciptype.f90.

◆ calwxt_ramer()

subroutine calpreciptype_mod::calwxt_ramer ( integer, intent(in)  lm,
integer, intent(in)  lp1,
real(kind=kind_phys), dimension(lm), intent(in)  t,
real(kind=kind_phys), dimension(lm), intent(in)  q,
real(kind=kind_phys), dimension(lm), intent(in)  pmid,
real(kind=kind_phys), dimension(lm), intent(in)  rh,
real(kind=kind_phys), dimension(lm), intent(in)  td,
real(kind=kind_phys), dimension(lp1), intent(in)  pint,
integer, intent(out)  ptyp 
)

This subroutine is written and provided by Jim Ramer at NOAA/ESRL (Ramer (1993) [167]).

Definition at line 477 of file calpreciptype.f90.

◆ calwxt_revised()

subroutine calpreciptype_mod::calwxt_revised ( integer, intent(in)  lm,
integer, intent(in)  lp1,
real(kind=kind_phys), dimension(lm), intent(in)  t,
real(kind=kind_phys), dimension(lm), intent(in)  q,
real(kind=kind_phys), dimension(lm), intent(in)  pmid,
real(kind=kind_phys), dimension(lp1), intent(in)  pint,
real(kind=kind_phys), intent(in)  d608,
real(kind=kind_phys), intent(in)  rog,
real(kind=kind_phys), intent(in)  epsq,
real(kind=kind_phys), dimension(lp1), intent(in)  zint,
real(kind=kind_phys), dimension(lm), intent(in)  twet,
integer, intent(out)  iwx 
)

This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperature below freezing and lowest layer temperature (Baldwin et al.1994 [11]). Since the original version of the algorithm has a high bias for freezing rain and sleet, the revised version is to balance that bias with a version more likely to predict snow.

Definition at line 1056 of file calpreciptype.f90.

◆ xmytw()

real(kind=kind_phys) function calpreciptype_mod::xmytw ( real(kind=kind_phys)  t,
real(kind=kind_phys)  td,
real(kind=kind_phys)  p 
)

Definition at line 761 of file calpreciptype.f90.