This module contains the CCPP-compliant GFDL Cloud microphysics scheme.
Functions/Subroutines | |
subroutine, public | gfdl_cloud_microphys_init (me, master, nlunit, input_nml_file, logunit, fn_nml, imp_physics, imp_physics_gfdl, do_shoc, errmsg, errflg) |
The subroutine initializes the GFDL cloud microphysics. More... | |
subroutine, public | gfdl_cloud_microphys_finalize (errmsg, errflg) |
The subroutine 'gfdl_cloud_microphys_finalize' terminates the GFDL cloud microphysics. More... | |
subroutine, public | gfdl_cloud_microphys_run ( levs, im, con_g, con_fvirt, con_rd, frland, garea, gq0, gq0_ntcw, gq0_ntrw, gq0_ntiw, gq0_ntsw, gq0_ntgl, gq0_ntclamt, gt0, gu0, gv0, vvl, prsl, phii, del, rain0, ice0, snow0, graupel0, prcp0, sr, dtp, hydrostatic, phys_hydrostatic, errmsg, errflg) |
subroutine | gfdl_cloud_microphys_work (iis, iie, jjs, jje, kks, kke, ktop, kbot, qv, ql, qr, qi, qs, qg, qa, qn, qv_dt, ql_dt, qr_dt, qi_dt, qs_dt, qg_dt, qa_dt, pt_dt, pt, w, uin, vin, udt, vdt, dz, delp, area, dt_in, land, rain, snow, ice, graupel, hydrostatic, phys_hydrostatic) |
subroutine | mpdrv (hydrostatic, uin, vin, w, delp, pt, qv, ql, qr, qi, qs, qg, qa, qn, dz, is, ie, js, je, ks, ke, ktop, kbot, j, dt_in, ntimes, rain, snow, graupel, ice, m2_rain, m2_sol, cond, area1, land, u_dt, v_dt, pt_dt, qv_dt, ql_dt, qr_dt, qi_dt, qs_dt, qg_dt, qa_dt, w_var, vt_r, vt_s, vt_g, vt_i, qn2) |
GFDL cloud microphysics, major program, and is based on Lin et al.(1983) [65] and Rutledge and Hobbs (1984) [92]. More... | |
subroutine | sedi_heat (ktop, kbot, dm, m1, dz, tz, qv, ql, qr, qi, qs, qg, cw) |
This subroutine calculates sedimentation of heat. More... | |
subroutine | warm_rain (dt, ktop, kbot, dp, dz, tz, qv, ql, qr, qi, qs, qg, den, denfac, ccn, c_praut, rh_rain, vtr, r1, m1_rain, w1, h_var) |
This subroutine includes warm rain cloud microphysics. More... | |
subroutine | revap_racc (ktop, kbot, dt, tz, qv, ql, qr, qi, qs, qg, den, denfac, rh_rain, h_var) |
This subroutine calculates evaporation of rain and accretion of rain. More... | |
subroutine | linear_prof (km, q, dm, z_var, h_var) |
Definition of vertical subgrid variability used for cloud ice and cloud water autoconversion. More... | |
subroutine | icloud (ktop, kbot, tzk, p1, qvk, qlk, qrk, qik, qsk, qgk, dp1, den, denfac, vts, vtg, vtr, qak, rh_adj, rh_rain, dts, h_var) |
This subroutine includes cloud ice microphysics processes. More... | |
subroutine | subgrid_z_proc (ktop, kbot, p1, den, denfac, dts, rh_adj, tz, qv, ql, qr, qi, qs, qg, qa, h_var, rh_rain) |
This subroutine calculates temperature sentive high vertical resolution processes. More... | |
subroutine | revap_rac1 (hydrostatic, is, ie, dt, tz, qv, ql, qr, qi, qs, qg, den, hvar) |
This subroutine calculates rain evaporation. More... | |
subroutine | terminal_fall (dtm, ktop, kbot, tz, qv, ql, qr, qg, qs, qi, dz, dp, den, vtg, vts, vti, r1, g1, s1, i1, m1_sol, w1) |
The subroutine 'terminal_fall' computes terminal fall speed. More... | |
subroutine | check_column (ktop, kbot, q, no_fall) |
The subroutine 'check_column' checks if the water species is large enough to fall. More... | |
subroutine | implicit_fall (dt, ktop, kbot, ze, vt, dp, q, precip, m1) |
The subroutine computes the time-implicit monotonic fall scheme. More... | |
subroutine | lagrangian_fall_ppm (ktop, kbot, zs, ze, zt, dp, q, precip, m1, mono) |
Lagrangian scheme. More... | |
subroutine | cs_profile (a4, del, km, do_mono) |
GFDL cloud microphysics, major program, and is based on Lin et al.(1983) [65] and Rutledge and Hobbs (1984) [92]. More... | |
subroutine | cs_limiters (km, a4) |
This subroutine perform positive definite constraint. More... | |
subroutine | fall_speed (ktop, kbot, den, qs, qi, qg, ql, tk, vts, vti, vtg) |
The subroutine calculates vertical fall speed of snow/ice/graupel. More... | |
subroutine | setupm |
The subroutine sets up gfdl cloud microphysics parameters. More... | |
real function | acr3d (v1, v2, q1, q2, c, cac, rho) |
The function is an accretion function (Lin et al.(1983) [65] ) More... | |
real function | smlt (tc, dqs, qsrho, psacw, psacr, c, rho, rhofac) |
Melting of snow function (Lin et al.(1983) [65]) note: psacw and psacr must be calc before smlt is called. More... | |
real function | gmlt (tc, dqs, qgrho, pgacw, pgacr, c, rho) |
Melting of graupel function (Eq.(47) in Lin et al. 1983 [65]) note: \(P_{gacw}\) and \(P_{gacr}\) must be calculated before gmlt is called. More... | |
subroutine | qsmith_setup |
The subroutine 'qsmith_init' initializes lookup tables for saturation water vapor pressure for the following utility routines that are designed to return qs consistent with the assumptions in FV3. More... | |
real function | wqs1 (ta, den) |
The function 'wqs1' returns the saturation vapor pressure over pure liquid water for a given temperature and air density. More... | |
real function | wqs2 (ta, den, dqdt) |
The function 'wqs2' returns the saturation vapor pressure over pure liquid water for a given temperature and air density, as well as the analytic dqs/dT: rate of change of saturation vapor pressure WRT temperature. More... | |
real function | wet_bulb (q, t, den) |
The function 'wet_bulb' uses 'wqs2' to compute the wet-bulb temperature from the mixing ratio and the temperature. More... | |
real function | iqs1 (ta, den) |
The function 'iqs1' computes the saturated specific humidity for table iii. More... | |
real function | iqs2 (ta, den, dqdt) |
The function 'iqs2' computes the gradient of saturated specific humidity for table iii. More... | |
real function | qs1d_moist (ta, qv, pa, dqdt) |
The function 'qs1d_moist' computes the gradient of saturated specific humidity for table iii. More... | |
real function | wqsat2_moist (ta, qv, pa, dqdt) |
The function 'wqsat2_moist' computes the saturated specific humidity for pure liquid water , as well as des/dT. More... | |
real function | wqsat_moist (ta, qv, pa) |
The function 'wqsat_moist' computes the saturated specific humidity for pure liquid water. More... | |
real function | qs1d_m (ta, qv, pa) |
The function 'qs1d_m' computes the saturated specific humidity for table iii. More... | |
real function | d_sat (ta, den) |
The function 'd_sat' computes the difference in saturation vapor * density * between water and ice. More... | |
real function | esw_table (ta) |
The function 'esw_table' computes the saturated water vapor pressure for table ii. More... | |
real function | es2_table (ta) |
The function 'es2_table' computes the saturated water vapor pressure for table iii. More... | |
subroutine | esw_table1d (ta, es, n) |
The subroutine 'esw_table1d' computes the saturated water vapor pressure for table ii. More... | |
subroutine | es2_table1d (ta, es, n) |
The subroutine 'es3_table1d' computes the saturated water vapor pressure for table iii. More... | |
subroutine | es3_table1d (ta, es, n) |
The subroutine 'es3_table1d' computes the saturated water vapor pressure for table iv. More... | |
subroutine | qs_tablew (n) |
saturation water vapor pressure table ii More... | |
subroutine | qs_table2 (n) |
saturation water vapor pressure table iii More... | |
subroutine | qs_table3 (n) |
saturation water vapor pressure table iv More... | |
real function | qs_blend (t, p, q) |
The function 'qs_blend' computes the saturated specific humidity with a blend of water and ice depending on the temperature. More... | |
subroutine | qs_table (n) |
saturation water vapor pressure table i More... | |
subroutine | qsmith (im, km, ks, t, p, q, qs, dqdt) |
The function 'qsmith' computes the saturated specific humidity with a blend of water and ice depending on the temperature in 3D. More... | |
subroutine | neg_adj (ktop, kbot, pt, dp, qv, ql, qr, qi, qs, qg) |
The subroutine 'neg_adj' fixes negative water species. More... | |
subroutine | interpolate_z (is, ie, js, je, km, zl, hgt, a3, a2) |
quick local sum algorithm More... | |
subroutine | cloud_diagnosis (is, ie, js, je, den, qw, qi, qr, qs, qg, t, qcw, qci, qcr, qcs, qcg, rew, rei, rer, res, reg) |
The subroutine 'cloud_diagnosis' diagnoses the radius of cloud species. More... | |
Variables | |
real | missing_value = - 1.e10 |
character(len=17) | mod_name = 'gfdl_cloud_microphys' |
real(kind=kind_phys), parameter | one = 1.0d0 |
real(kind=kind_phys), parameter | con_d00 = 0.0d0 |
real(kind=kind_phys), parameter | con_p001 = 0.001d0 |
real(kind=kind_phys), parameter | con_day = 86400.d0 |
real(kind=kind_phys), parameter | rainmin = 1.0e-13 |
real, parameter | grav = 9.80665 |
gfs: acceleration due to gravity More... | |
real, parameter | rgrav = 1./grav |
real, parameter | rdgas = 287.05 |
gfs: gas constant for dry air More... | |
real, parameter | rvgas = 461.50 |
gfs: gas constant for water vapor More... | |
real, parameter | cp_air = 1004.6 |
gfs: heat capacity of dry air at constant pressure More... | |
real, parameter | hlv = 2.5e6 |
gfs: latent heat of evaporation More... | |
real, parameter | hlf = 3.3358e5 |
gfs: latent heat of fusion More... | |
real, parameter | pi = 3.1415926535897931 |
gfs: ratio of circle circumference to diameter More... | |
real, parameter | cp_vap = 4.0 * rvgas |
1846.0, heat capacity of water vapore at constnat pressure More... | |
real, parameter | cv_air = cp_air - rdgas |
717.55, heat capacity of dry air at constant volume More... | |
real, parameter | cv_vap = 3.0 * rvgas |
1384.5, heat capacity of water vapor at constant volume More... | |
real, parameter | c_ice = 1972.0 |
gfdl: heat capacity of ice at - 15 deg c More... | |
real, parameter | c_liq = 4185.5 |
gfdl: heat capacity of water at 15 deg c More... | |
real, parameter | eps = rdgas / rvgas |
0.6219934995 More... | |
real, parameter | zvir = rvgas / rdgas - 1. |
0.6077338443 More... | |
real, parameter | t_ice = 273.16 |
freezing temperature More... | |
real, parameter | table_ice = 273.16 |
freezing point for qs table More... | |
real, parameter | e00 = 611.21 |
ifs: saturation vapor pressure at 0 deg c More... | |
real, parameter | dc_vap = cp_vap - c_liq |
real, parameter | dc_ice = c_liq - c_ice |
2213.5, isobaric heating / colling More... | |
real, parameter | hlv0 = hlv |
gfs: evaporation latent heat coefficient at 0 deg c More... | |
real, parameter | hlf0 = hlf |
gfs: fussion latent heat coefficient at 0 deg c More... | |
real, parameter | lv0 = hlv0 - dc_vap * t_ice |
3.13905782e6, evaporation latent heat coefficient at 0 deg k More... | |
real, parameter | li00 = hlf0 - dc_ice * t_ice |
real, parameter | d2ice = dc_vap + dc_ice |
real, parameter | li2 = lv0 + li00 |
2.86799816e6, sublimation latent heat coefficient at 0 deg k More... | |
real, parameter | qrmin = 1.e-8 |
min value for rain More... | |
real, parameter | qvmin = 1.e-20 |
min value for water vapor (treated as zero) More... | |
real, parameter | qcmin = 1.e-12 |
min value for cloud condensates More... | |
real, parameter | vr_min = 1.e-3 |
min fall speed for rain More... | |
real, parameter | vf_min = 1.e-5 |
min fall speed for cloud ice, snow, graupel More... | |
real, parameter | dz_min = 1.e-2 |
use for correcting flipped height More... | |
real, parameter | sfcrho = 1.2 |
surface air density More... | |
real, parameter | rhor = 1.e3 |
density of rain water, lin83 More... | |
real | cracs |
real | csacr |
real | cgacr |
real | cgacs |
real | csacw |
real | craci |
real | csaci |
real | cgacw |
real | cgaci |
real | cracw |
constants for accretions More... | |
real, dimension(3, 4) | acco |
constants for accretions More... | |
real, dimension(5) | cssub |
real, dimension(5) | cgsub |
real, dimension(5) | crevp |
real, dimension(2) | cgfr |
real, dimension(5) | csmlt |
real, dimension(5) | cgmlt |
real | es0 |
real | ces0 |
real | pie |
real | fac_rc |
real | c_air |
real | c_vap |
real | lati |
real | latv |
real | lats |
real | lat2 |
real | lcp |
real | icp |
real | tcp |
used in Bigg mechanism and wet bulk More... | |
real | d0_vap |
the same as dc_vap, except that cp_vap can be cp_vap or cv_vap More... | |
real | lv00 |
the same as lv0, except that cp_vap can be cp_vap or cv_vap More... | |
integer, public | icloud_f = 0 |
cloud scheme More... | |
integer, public | irain_f = 0 |
cloud water to rain auto conversion scheme More... | |
logical, public | de_ice = .false. |
to prevent excessive build - up of cloud ice from external sources More... | |
logical, public | sedi_transport = .true. |
transport of momentum in sedimentation More... | |
logical, public | do_sedi_w = .false. |
transport of vertical motion in sedimentation More... | |
logical, public | do_sedi_heat = .true. |
transport of heat in sedimentation More... | |
logical, public | prog_ccn = .false. |
do prognostic ccn (yi ming's method) More... | |
logical, public | do_qa = .true. |
do inline cloud fraction More... | |
logical, public | rad_snow = .true. |
consider snow in cloud fraciton calculation More... | |
logical, public | rad_graupel = .true. |
consider graupel in cloud fraction calculation More... | |
logical, public | rad_rain = .true. |
consider rain in cloud fraction calculation More... | |
logical, public | fix_negative = .false. |
fix negative water species More... | |
logical | p_nonhydro = .false. |
perform hydrosatic adjustment on air density More... | |
real, dimension(:), allocatable | table |
real, dimension(:), allocatable | table2 |
real, dimension(:), allocatable | table3 |
real, dimension(:), allocatable | tablew |
real, dimension(:), allocatable | des |
real, dimension(:), allocatable | des2 |
real, dimension(:), allocatable | des3 |
real, dimension(:), allocatable | desw |
real, parameter | dt_fr = 8. |
homogeneous freezing of all cloud water at t_wfr - dt_fr More... | |
real | p_min = 100. |
minimum pressure (pascal) for mp to operate More... | |
real, public | cld_min = 0.05 |
minimum cloud fraction More... | |
real, public | tice = 273.16 |
set tice = 165. to trun off ice - phase phys (kessler emulator) More... | |
real, public | t_min = 178. |
min temp to freeze - dry all water vapor More... | |
real, public | t_sub = 184. |
min temp for sublimation of cloud ice More... | |
real, public | mp_time = 150. |
maximum micro - physics time step (sec) More... | |
real, public | rh_inc = 0.25 |
rh increment for complete evaporation of cloud water and cloud ice More... | |
real, public | rh_inr = 0.25 |
rh increment for minimum evaporation of rain More... | |
real, public | rh_ins = 0.25 |
rh increment for sublimation of snow More... | |
real, public | tau_r2g = 900. |
rain freezing during fast_sat More... | |
real, public | tau_smlt = 900. |
snow melting More... | |
real, public | tau_g2r = 600. |
graupel melting to rain More... | |
real, public | tau_imlt = 600. |
cloud ice melting More... | |
real, public | tau_i2s = 1000. |
cloud ice to snow auto-conversion More... | |
real, public | tau_l2r = 900. |
cloud water to rain auto-conversion More... | |
real, public | tau_v2l = 150. |
water vapor to cloud water (condensation) More... | |
real, public | tau_l2v = 300. |
cloud water to water vapor (evaporation) More... | |
real, public | tau_g2v = 900. |
graupel sublimation More... | |
real, public | tau_v2g = 21600. |
graupel deposition – make it a slow process More... | |
real, public | dw_land = 0.20 |
base value for subgrid deviation / variability over land More... | |
real, public | dw_ocean = 0.10 |
base value for ocean More... | |
real, public | ccn_o = 90. |
ccn over ocean (cm^ - 3) More... | |
real, public | ccn_l = 270. |
ccn over land (cm^ - 3) More... | |
real, public | rthresh = 10.0e-6 |
critical cloud drop radius (micro m) More... | |
real, public | sat_adj0 = 0.90 |
adjustment factor (0: no, 1: full) during fast_sat_adj More... | |
real, public | qc_crt = 5.0e-8 |
mini condensate mixing ratio to allow partial cloudiness More... | |
real, public | qi_lim = 1. |
cloud ice limiter to prevent large ice build up More... | |
real, public | ql_mlt = 2.0e-3 |
max value of cloud water allowed from melted cloud ice More... | |
real, public | qs_mlt = 1.0e-6 |
max cloud water due to snow melt More... | |
real, public | ql_gen = 1.0e-3 |
max cloud water generation during remapping step if fast_sat_adj = .t. More... | |
real, public | qi_gen = 1.82e-6 |
max cloud ice generation during remapping step More... | |
real, public | ql0_max = 2.0e-3 |
max cloud water value (auto converted to rain) More... | |
real, public | qi0_max = 1.0e-4 |
max cloud ice value (by other sources) More... | |
real, public | qi0_crt = 1.0e-4 |
cloud ice to snow autoconversion threshold (was 1.e-4); qi0_crt is highly dependent on horizontal resolution More... | |
real, public | qr0_crt = 1.0e-4 |
rain to snow or graupel/hail threshold More... | |
real, public | qs0_crt = 1.0e-3 |
snow to graupel density threshold (0.6e-3 in purdue lin scheme) More... | |
real, public | c_paut = 0.55 |
autoconversion cloud water to rain (use 0.5 to reduce autoconversion) More... | |
real, public | c_psaci = 0.02 |
accretion: cloud ice to snow (was 0.1 in zetac) More... | |
real, public | c_piacr = 5.0 |
accretion: rain to ice: More... | |
real, public | c_cracw = 0.9 |
rain accretion efficiency More... | |
real, public | c_pgacs = 2.0e-3 |
snow to graupel "accretion" eff. (was 0.1 in zetac) More... | |
real, public | alin = 842.0 |
"a" in lin1983 More... | |
real, public | clin = 4.8 |
"c" in lin 1983, 4.8 – > 6. (to ehance ql – > qs) More... | |
logical, public | const_vi = .false. |
if .t. the constants are specified by v * _fac More... | |
logical, public | const_vs = .false. |
if .t. the constants are specified by v * _fac More... | |
logical, public | const_vg = .false. |
if .t. the constants are specified by v * _fac More... | |
logical, public | const_vr = .false. |
if .t. the constants are specified by v * _fac More... | |
real, public | vi_fac = 1. |
if const_vi: 1 / 3 More... | |
real, public | vs_fac = 1. |
if const_vs: 1. More... | |
real, public | vg_fac = 1. |
if const_vg: 2. More... | |
real, public | vr_fac = 1. |
if const_vr: 4. More... | |
real, public | vi_max = 0.5 |
max fall speed for ice More... | |
real, public | vs_max = 5.0 |
max fall speed for snow More... | |
real, public | vg_max = 8.0 |
max fall speed for graupel More... | |
real, public | vr_max = 12. |
max fall speed for rain More... | |
logical, public | fast_sat_adj = .false. |
has fast saturation adjustments More... | |
logical, public | z_slope_liq = .true. |
use linear mono slope for autocconversions More... | |
logical, public | z_slope_ice = .false. |
use linear mono slope for autocconversions More... | |
logical, public | use_ccn = .false. |
must be true when prog_ccn is false More... | |
logical, public | use_ppm = .false. |
use ppm fall scheme More... | |
logical, public | mono_prof = .true. |
perform terminal fall with mono ppm scheme More... | |
logical, public | mp_print = .false. |
cloud microphysics debugging printout More... | |
real | log_10 |
real | tice0 |
real | t_wfr |