This subroutine computes the conversion from condensation to precipitation (snow or rain) or evaporation of rain. More...
Functions/Subroutines | |
subroutine, public | zhaocarr_precpd::zhaocarr_precpd_run (im, km, dt, del, prsl, q, cwm, t, rn, grav, hvap, hfus, ttp, cp, eps, epsm1, sr, rainp, u00k, psautco, prautco, evpco, wminco, wk1, lprnt, jpr, errmsg, errflg) |
local_name | standard_name | long_name | units | type | dimensions | kind | intent |
---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | integer | () | in | |
km | vertical_layer_dimension | vertical layer dimension | count | integer | () | in | |
dt | timestep_for_physics | physics time step | s | real | () | kind_phys | in |
del | air_pressure_difference_between_midlayers | pressure level thickness | Pa | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
prsl | air_pressure | layer mean pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
q | specific_humidity_of_new_state | water vapor specific humidity | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cwm | cloud_liquid_water_mixing_ratio_of_new_state | moist cloud condensed water mixing ratio | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
t | air_temperature_of_new_state | layer mean air temperature | K | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
rn | lwe_thickness_of_explicit_precipitation_amount | explicit precipitation amount on physics timestep | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
grav | gravitational_acceleration | gravitational acceleration | m s-2 | real | () | kind_phys | in |
hvap | latent_heat_of_vaporization_of_water_at_0c | latent heat of evaporation/sublimation | J kg-1 | real | () | kind_phys | in |
hfus | latent_heat_of_fusion_of_water_at_0c | latent heat of fusion | J kg-1 | real | () | kind_phys | in |
ttp | triple_point_temperature_of_water | triple point temperature of water | K | real | () | kind_phys | in |
cp | specific_heat_of_dry_air_at_constant_pressure | specific heat of dry air at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
eps | ratio_of_dry_air_to_water_vapor_gas_constants | rd/rv | none | real | () | kind_phys | in |
epsm1 | ratio_of_dry_air_to_water_vapor_gas_constants_minus_one | (rd/rv) - 1 | none | real | () | kind_phys | in |
sr | ratio_of_snowfall_to_rainfall | ratio of snowfall to large-scale rainfall | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
rainp | tendency_of_rain_water_mixing_ratio_due_to_microphysics | tendency of rain water mixing ratio due to microphysics | kg kg-1 s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | out |
u00k | critical_relative_humidity | critical relative humidity | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
psautco | autoconversion_to_snow_coefficient | conversion coefficient from cloud ice to snow | none | real | (ccpp_constant_one:2) | kind_phys | in |
prautco | autoconversion_to_rain_coefficient | conversion coefficient from cloud water to rain | none | real | (ccpp_constant_one:2) | kind_phys | in |
evpco | precipitation_evaporation_coefficient | coefficient for evaporation of rainfall | none | real | () | kind_phys | in |
wminco | cloud_condensate_autoconversion_threshold_coefficient | conversion coefficient from cloud liquid and ice to precipitation | none | real | (ccpp_constant_one:2) | kind_phys | in |
wk1 | grid_size_related_coefficient_used_in_scale_sensitive_schemes | grid size related coefficient used in scale-sensitive schemes | none | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
lprnt | flag_print | flag for printing diagnostics to output | flag | logical | () | in | |
jpr | horizontal_index_of_printed_column | horizontal index of printed column | index | integer | () | in | |
errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out |
errflg | ccpp_error_code | error code for error handling in CCPP | 1 | integer | () | out |
The following two equations can be used to calculate the precipitation rates of rain and snow at each model level:
\[ P_{r}(\eta)=\frac{p_{s}-p_{t}}{g\eta_{s}}\int_{\eta}^{\eta_{t}}(P_{raut}+P_{racw}+P_{sacw}+P_{sm1}+P_{sm2}-E_{rr})d\eta \]
and
\[ P_{s}(\eta)=\frac{p_{s}-p_{t}}{g\eta_{s}}\int_{\eta}^{\eta_{t}}(P_{saut}+P_{saci}-P_{sm1}-P_{sm2}-E_{rs})d\eta \]
where \(p_{s}\) and \(p_{t}\) are the surface pressure and the pressure at the top of model domain, respectively, and \(g\) is gravity. The implementation of the precipitation scheme also includes a simplified procedure of computing \(P_{r}\) and \(P_{s}\) (Zhao and Carr (1997) [223]).
The calculation is as follows: