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 |
| 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) |
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. | |
| double precision, parameter | melt_outside_g = 0.9d0 |
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.
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.
| subroutine, public module_mp_radar::radar_init |
Definition at line 72 of file module_mp_radar.F90.
| subroutine, public module_mp_radar::rayleigh_soak_wetgraupel | ( | double precision, intent(in) | x_g, |
| double precision, intent(in) | a_geo, | ||
| double precision, intent(in) | b_geo, | ||
| double precision, intent(in) | fmelt, | ||
| double precision, intent(in) | meltratio_outside, | ||
| complex*16, intent(in) | m_w, | ||
| complex*16, intent(in) | m_i, | ||
| double precision, intent(in) | lambda, | ||
| double precision, intent(out) | c_back, | ||
| character(len=*), intent(in) | mixingrule, | ||
| character(len=*), intent(in) | matrix, | ||
| character(len=*), intent(in) | inclusion, | ||
| character(len=*), intent(in) | host, | ||
| character(len=*), intent(in) | hostmatrix, | ||
| character(len=*), intent(in) | hostinclusion | ||
| ) |
Definition at line 265 of file module_mp_radar.F90.
| double precision, dimension(3), parameter, public module_mp_radar::basis = (/1.d0/3.d0, 4.d0/3.d0, 1.d0/3.d0/) |
Definition at line 46 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hostinclusionstring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hostinclusionstring_s |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hostmatrixstring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hostmatrixstring_s |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hoststring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::hoststring_s |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::inclusionstring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::inclusionstring_s |
Definition at line 55 of file module_mp_radar.F90.
| double precision, public module_mp_radar::k_w |
Definition at line 43 of file module_mp_radar.F90.
| double precision, public module_mp_radar::lamda4 |
Definition at line 43 of file module_mp_radar.F90.
| double precision, parameter, public module_mp_radar::lamda_radar = 0.10 |
Definition at line 42 of file module_mp_radar.F90.
| complex*16, public module_mp_radar::m_i_0 |
Definition at line 44 of file module_mp_radar.F90.
| complex*16, public module_mp_radar::m_w_0 |
Definition at line 44 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::matrixstring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::matrixstring_s |
Definition at line 55 of file module_mp_radar.F90.
| double precision, parameter module_mp_radar::melt_outside_g = 0.9d0 |
Definition at line 63 of file module_mp_radar.F90.
| double precision, parameter module_mp_radar::melt_outside_s = 0.9d0 |
Single melting snow/graupel particle 90% meltwater on external sfc.
Definition at line 62 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::mixingrulestring_g |
Definition at line 55 of file module_mp_radar.F90.
| character(len=slen), public module_mp_radar::mixingrulestring_s |
Definition at line 55 of file module_mp_radar.F90.
| integer, parameter, public module_mp_radar::nrbins = 50 |
Definition at line 39 of file module_mp_radar.F90.
| double precision, public module_mp_radar::pi5 |
Definition at line 43 of file module_mp_radar.F90.
| double precision, dimension(nrbins+1), public module_mp_radar::simpson |
Definition at line 45 of file module_mp_radar.F90.
| integer, parameter, public module_mp_radar::slen = 20 |
Definition at line 54 of file module_mp_radar.F90.
| real, public module_mp_radar::xam_g |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xam_r |
Definition at line 49 of file module_mp_radar.F90.
| real, public module_mp_radar::xam_s |
Definition at line 50 of file module_mp_radar.F90.
| real, public module_mp_radar::xbm_g |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xbm_r |
Definition at line 49 of file module_mp_radar.F90.
| real, public module_mp_radar::xbm_s |
Definition at line 50 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcge |
Definition at line 48 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcgg |
Definition at line 48 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcre |
Definition at line 48 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcrg |
Definition at line 48 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcse |
Definition at line 48 of file module_mp_radar.F90.
| real, dimension(4), public module_mp_radar::xcsg |
Definition at line 48 of file module_mp_radar.F90.
| double precision, dimension(nrbins), public module_mp_radar::xdtg |
Definition at line 41 of file module_mp_radar.F90.
| double precision, dimension(nrbins), public module_mp_radar::xdts |
Definition at line 41 of file module_mp_radar.F90.
| real, public module_mp_radar::xmu_g |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xmu_r |
Definition at line 49 of file module_mp_radar.F90.
| real, public module_mp_radar::xmu_s |
Definition at line 50 of file module_mp_radar.F90.
| real, public module_mp_radar::xoamg |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xoams |
Definition at line 50 of file module_mp_radar.F90.
| real, public module_mp_radar::xobmg |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xobmr |
Definition at line 49 of file module_mp_radar.F90.
| real, public module_mp_radar::xobms |
Definition at line 50 of file module_mp_radar.F90.
| real, public module_mp_radar::xocmg |
Definition at line 51 of file module_mp_radar.F90.
| real, public module_mp_radar::xocms |
Definition at line 50 of file module_mp_radar.F90.
| real, public module_mp_radar::xogg2 |
Definition at line 52 of file module_mp_radar.F90.
| real, public module_mp_radar::xorg2 |
Definition at line 52 of file module_mp_radar.F90.
| real, public module_mp_radar::xosg2 |
Definition at line 52 of file module_mp_radar.F90.
| double precision, dimension(nrbins), public module_mp_radar::xxdg |
Definition at line 41 of file module_mp_radar.F90.
| double precision, dimension(nrbins), public module_mp_radar::xxds |
Definition at line 41 of file module_mp_radar.F90.
| double precision, dimension(nrbins+1), public module_mp_radar::xxdx |
Definition at line 40 of file module_mp_radar.F90.