utilities for tempo microphysics
normalized lower gamma function calculated either with a series expansion or continued fraction method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | a | |||
| real(kind=wp), | intent(in) | :: | x |
solves the normalized lower gamma function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | a | |||
| real(kind=wp), | intent(in) | :: | x |
solves the normalized upper gamma function using a continued fractions method (modified Lentz Algorithm) see also Numerical Recipes in Fortran
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | a | |||
| real(kind=wp), | intent(in) | :: | x |
calculates liquid saturation vapor mixing ratio
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | p | |||
| real(kind=wp), | intent(in) | :: | t |
calculates ice saturation vapor mixing ratio
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | p | |||
| real(kind=wp), | intent(in) | :: | t |
returns nu_c for cloud water (values from 2-15)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | nc |
calculates ice number mixing ratio from mass fit of the RRTMG ice effective radius table and code by Gemini calculate the radiative effective size of ice. converts temperature from kelvin to celsius and applies a single continuous rational function to replace the discrete lookup. single continuous function for all temperatures safety clamp: strictly bound the radius for extreme hot/cold convert effective radius (microns) to diameter (meters) calculate the number concentration from the mean size and mass mixing ratio, assuming an inverse exponential size distribution.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | q_ice | |||
| real(kind=wp), | intent(in) | :: | temp |
calculates cloud number mixing ratio from mass
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | q_cloud | |||
| real(kind=wp), | intent(in) | :: | qnwfa |
calculates rain number mixing ratio from mass Original note from Greg: Not thrilled with it, but set y-intercept parameter to Marshall-Palmer value that basically assumes melting snow becomes typical rain. However, for -2C < T < 0C, make linear increase in exponent to attempt to keep supercooled collision-coalescence (warm-rain) similar to drizzle rather than bigger rain drops. While this could also exist at T > 0C, it is more difficult to assume it directly from having mass and not number.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | q_rain | |||
| real(kind=wp), | intent(in) | :: | temp |
returns land-specific value of cloud droplet number concentration when aerosol-aware = false if land = 1, else returns ocean-specific value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in), | optional | :: | land | ||
| real(kind=wp), | intent(out), | dimension(:) | :: | nc |
computes snow moments from Field et al. (2005)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | rs | |||
| real(kind=wp), | intent(in) | :: | tc | |||
| real(kind=dp), | intent(out) | :: | smob | |||
| real(kind=dp), | intent(out) | :: | smoc | |||
| real(kind=dp), | intent(out), | optional | :: | ns | ||
| real(kind=dp), | intent(out), | optional | :: | smo0 | ||
| real(kind=dp), | intent(out), | optional | :: | smo1 | ||
| real(kind=dp), | intent(out), | optional | :: | smo2 | ||
| real(kind=dp), | intent(out), | optional | :: | smoe | ||
| real(kind=dp), | intent(out), | optional | :: | smof | ||
| real(kind=dp), | intent(out), | optional | :: | smog | ||
| real(kind=dp), | intent(out), | optional | :: | smoz |
collision efficiency for rain collecting cloud water from Beard and Grover (1974) if a/A < 0.25 https://doi.org/10.1175/1520-0469(1974)031<0543:NCEFSR>2.0.CO;2 otherwise uses polynomials to get close match of Pruppacher and Klett Fig. 14-9
collision efficiency for snow collecting cloud water from Wang and Ji (2000) https://doi.org/10.1175/1520-0469(2000)057<1001:CEOICA>2.0.CO;2 equating melted snow diameter to effective collision cross-section
calculates cloud ice conversion to snow and depositional growth by binning cloud ice distributions and determining both the size bins > d0s (that are converted to snow) and the depositional growth up to d0s (for cloud ice) and > d0s for snow following Harrington et al. (1995) https://doi.org/10.1175/1520-0469(1995)052<4344:POICCP>2.0.CO;2
calculates droplet evaporation data