CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC
module_mp_radar Module Reference

This module is more library code whereas the individual microphysics schemes contains specific details needed for the final computation, so refer to location within each schemes calling the routine named rayleigh_soak_wetgraupel. More...

Functions/Subroutines

subroutine, public radar_init
 
complex *16 function, private m_complex_water_ray (lambda, T)
 
complex *16 function, private m_complex_ice_maetzler (lambda, T)
 
subroutine, public rayleigh_soak_wetgraupel (x_g, a_geo, b_geo, fmelt, meltratio_outside, m_w, m_i, lambda, C_back, mixingrule, matrix, inclusion, host, hostmatrix, hostinclusion)
 ingroup thompson_radar More...
 
complex *16 function, private get_m_mix_nested (m_a, m_i, m_w, volair, volice, volwater, mixingrule, host, matrix, inclusion, hostmatrix, hostinclusion, cumulerror)
 
complex *16 function, private get_m_mix (m_a, m_i, m_w, volair, volice, volwater, mixingrule, matrix, inclusion, error)
 
complex *16 function, private m_complex_maxwellgarnett (vol1, vol2, vol3, m1, m2, m3, inclusion, error)
 
real function, private gammln (XX)
 
real function, private wgamma (y)
 

Variables

integer, parameter, public nrbins = 50
 
double precision, dimension(nrbins+1), public xxdx
 
double precision, dimension(nrbins), public xxds
 
double precision, dimension(nrbins), public xdts
 
double precision, dimension(nrbins), public xxdg
 
double precision, dimension(nrbins), public xdtg
 
double precision, parameter, public lamda_radar = 0.10
 
double precision, public k_w
 
double precision, public pi5
 
double precision, public lamda4
 
complex *16, public m_w_0
 
complex *16, public m_i_0
 
double precision, dimension(nrbins+1), public simpson
 
double precision, dimension(3), parameter, public basis = (/1.d0/3.d0, 4.d0/3.d0, 1.d0/3.d0/)
 
real, dimension(4), public xcre
 
real, dimension(4), public xcse
 
real, dimension(4), public xcge
 
real, dimension(4), public xcrg
 
real, dimension(4), public xcsg
 
real, dimension(4), public xcgg
 
real, public xam_r
 
real, public xbm_r
 
real, public xmu_r
 
real, public xobmr
 
real, public xam_s
 
real, public xbm_s
 
real, public xmu_s
 
real, public xoams
 
real, public xobms
 
real, public xocms
 
real, public xam_g
 
real, public xbm_g
 
real, public xmu_g
 
real, public xoamg
 
real, public xobmg
 
real, public xocmg
 
real, public xorg2
 
real, public xosg2
 
real, public xogg2
 
integer, parameter, public slen = 20
 
character(len=slen), public mixingrulestring_s
 
character(len=slen), public matrixstring_s
 
character(len=slen), public inclusionstring_s
 
character(len=slen), public hoststring_s
 
character(len=slen), public hostmatrixstring_s
 
character(len=slen), public hostinclusionstring_s
 
character(len=slen), public mixingrulestring_g
 
character(len=slen), public matrixstring_g
 
character(len=slen), public inclusionstring_g
 
character(len=slen), public hoststring_g
 
character(len=slen), public hostmatrixstring_g
 
character(len=slen), public hostinclusionstring_g
 
double precision, parameter melt_outside_s = 0.9d0
 Single melting snow/graupel particle 90% meltwater on external sfc. More...
 
double precision, parameter melt_outside_g = 0.9d0
 

Detailed Description

The bulk of this code originated from Ulrich Blahak (Germany) and was adapted to WRF by G. Thompson. This version of code is only intended for use when Rayleigh scattering principles dominate and is not intended for wavelengths in which Mie scattering is a significant portion. Therefore, it is well-suited to use with 5 or 10 cm wavelength like USA NEXRAD radars. This code makes some rather simple assumptions about water coating on outside of frozen species (snow/graupel). Fraction of meltwater is simply the ratio of mixing ratio below melting level divided by mixing ratio at level just above highest T>0C. Also, immediately 90% of the melted water exists on the ice's surface and 10% is embedded within ice. No water is "shed" at all in these assumptions. The code is quite slow because it does the reflectivity calculations based on 50 individual size bins of the distributions.