CCPP SciDoc for UFS-SRW v2.2.0  SRW v2.2.0
Common Community Physics Package Developed at DTC
gfdl_cloud_microphys_mod Module Reference

Functions/Subroutines

subroutine, public gfdl_cloud_microphys_mod_driver (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, p, lradar, refl_10cm, reset, pfils, pflls)
 This subroutine is the driver of the GFDL cloud microphysics. More...
 
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) [120] and Rutledge and Hobbs (1984) [170]. 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)
 
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...
 
subroutine, public gfdl_cloud_microphys_mod_init (me, master, nlunit, input_nml_file, logunit, fn_nml, errmsg, errflg)
 The subroutine 'gfdl_cloud_microphys_init' initializes the GFDL cloud microphysics. More...
 
subroutine, public gfdl_cloud_microphys_mod_end ()
 The subroutine 'gfdl_cloud_microphys_init' terminates the GFDL cloud microphysics. More...
 
subroutine setup_con
 The subroutine 'setup_con' sets up constants and calls 'qsmith_init'. More...
 
real function acr3d (v1, v2, q1, q2, c, cac, rho)
 The function is an accretion function (Lin et al.(1983) [120] ) More...
 
real function smlt (tc, dqs, qsrho, psacw, psacr, c, rho, rhofac)
 Melting of snow function (Lin et al.(1983) [120]) 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 [120])
note: \(P_{gacw}\) and \(P_{gacr}\) must be calculated before gmlt is called. More...
 
subroutine qsmith_init
 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, public cloud_diagnosis (is, ie, ks, ke, den, delp, lsm, qmw, qmi, qmr, qms, qmg, t, rew, rei, rer, res, reg)
 The subroutine 'cloud_diagnosis' diagnoses the radius of cloud species. More...
 
subroutine refl10cm_gfdl (qv1d, qr1d, qs1d, qg1d, t1d, p1d, dBZ, kts, kte, ii, jj, melti)
 This subroutine calculates radar reflectivity. More...
 

Variables

real missing_value = - 1.e10
 
logical module_is_initialized = .false.
 
logical qsmith_tables_initialized = .false.
 
character(len=17) mod_name = 'gfdl_cloud_microphys'
 
real, parameter n0r = 8.0e6
 
real, parameter n0s = 3.0e6
 
real, parameter n0g = 4.0e6
 
real, parameter, public rhos = 0.1e3
 
real, parameter, public rhog = 0.4e3
 
real, parameter grav = 9.80665
 gfs: acceleration due to gravity More...
 
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, public rhor = 1.e3
 density of rain water, lin83 More...
 
real, parameter, public rnzr = 8.0e6
 
real, parameter, public rnzs = 3.0e6
 
real, parameter, public rnzg = 4.0e6
 
real, parameter, public rnzh = 4.0e4
 
real, parameter, public rhoh = 0.917e3
 
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 rgrav
 
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 do_setup = .true.
 setup constants and parameters 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
 
logical tables_are_initialized = .false.
 
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...
 
logical, public do_hail = .false.
 use hail parameters instead of graupel More...
 
real log_10
 
real tice0
 
real t_wfr
 
integer, public reiflag = 1
 
logical, public tintqs = .false.
 use temperature in the saturation mixing in PDF More...
 
real, public rewmin = 5.0
 
real, public rewmax = 10.0
 
real, public reimin = 10.0
 
real, public reimax = 150.0
 
real, public rermin = 10.0
 
real, public rermax = 10000.0
 
real, public resmin = 150.0
 
real, public resmax = 10000.0
 
real, public regmin = 300.0
 
real, public regmax = 10000.0