CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
gfdl_cloud_microphys_mod Module Reference

This module contains the column GFDL Cloud microphysics scheme.

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.
 
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) [119] and Rutledge and Hobbs (1984) [172].
 
subroutine sedi_heat (ktop, kbot, dm, m1, dz, tz, qv, ql, qr, qi, qs, qg, cw)
 This subroutine calculates sedimentation of heat.
 
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.
 
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.
 
subroutine linear_prof (km, q, dm, z_var, h_var)
 Definition of vertical subgrid variability used for cloud ice and cloud water autoconversion.
 
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.
 
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.
 
subroutine revap_rac1 (hydrostatic, is, ie, dt, tz, qv, ql, qr, qi, qs, qg, den, hvar)
 This subroutine calculates rain evaporation.
 
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.
 
subroutine check_column (ktop, kbot, q, no_fall)
 The subroutine 'check_column' checks if the water species is large enough to fall.
 
subroutine implicit_fall (dt, ktop, kbot, ze, vt, dp, q, precip, m1)
 The subroutine computes the time-implicit monotonic fall scheme.
 
subroutine lagrangian_fall_ppm (ktop, kbot, zs, ze, zt, dp, q, precip, m1, mono)
 Lagrangian scheme.
 
subroutine cs_profile (a4, del, km, do_mono)
 
subroutine cs_limiters (km, a4)
 This subroutine perform positive definite constraint.
 
subroutine fall_speed (ktop, kbot, den, qs, qi, qg, ql, tk, vts, vti, vtg)
 The subroutine calculates vertical fall speed of snow/ice/graupel.
 
subroutine setupm
 The subroutine sets up gfdl cloud microphysics parameters.
 
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.
 
subroutine, public gfdl_cloud_microphys_mod_end ()
 The subroutine 'gfdl_cloud_microphys_init' terminates the GFDL cloud microphysics.
 
subroutine setup_con
 The subroutine 'setup_con' sets up constants and calls 'qsmith_init'.
 
real function acr3d (v1, v2, q1, q2, c, cac, rho)
 The function is an accretion function (Lin et al.(1983) [119] )
 
real function smlt (tc, dqs, qsrho, psacw, psacr, c, rho, rhofac)
 Melting of snow function (Lin et al.(1983) [119]) note: psacw and psacr must be calc before smlt is called.
 
real function gmlt (tc, dqs, qgrho, pgacw, pgacr, c, rho)
 Melting of graupel function (Eq.(47) in Lin et al. 1983 [119])
note: \(P_{gacw}\) and \(P_{gacr}\) must be calculated before gmlt is called.
 
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.
 
real function wqs1 (ta, den)
 The function 'wqs1' returns the saturation vapor pressure over pure liquid water for a given temperature and air density.
 
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.
 
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.
 
real function iqs1 (ta, den)
 The function 'iqs1' computes the saturated specific humidity for table iii.
 
real function iqs2 (ta, den, dqdt)
 The function 'iqs2' computes the gradient of saturated specific humidity for table iii.
 
real function qs1d_moist (ta, qv, pa, dqdt)
 The function 'qs1d_moist' computes the gradient of saturated specific humidity for table iii.
 
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.
 
real function wqsat_moist (ta, qv, pa)
 The function 'wqsat_moist' computes the saturated specific humidity for pure liquid water.
 
real function qs1d_m (ta, qv, pa)
 The function 'qs1d_m' computes the saturated specific humidity for table iii.
 
real function d_sat (ta, den)
 The function 'd_sat' computes the difference in saturation vapor * density * between water and ice.
 
real function esw_table (ta)
 The function 'esw_table' computes the saturated water vapor pressure for table ii.
 
real function es2_table (ta)
 The function 'es2_table' computes the saturated water vapor pressure for table iii.
 
subroutine esw_table1d (ta, es, n)
 The subroutine 'esw_table1d' computes the saturated water vapor pressure for table ii.
 
subroutine es2_table1d (ta, es, n)
 The subroutine 'es3_table1d' computes the saturated water vapor pressure for table iii.
 
subroutine es3_table1d (ta, es, n)
 The subroutine 'es3_table1d' computes the saturated water vapor pressure for table iv.
 
subroutine qs_tablew (n)
 saturation water vapor pressure table ii
 
subroutine qs_table2 (n)
 saturation water vapor pressure table iii
 
subroutine qs_table3 (n)
 saturation water vapor pressure table iv
 
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.
 
subroutine qs_table (n)
 saturation water vapor pressure table i
 
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.
 
subroutine neg_adj (ktop, kbot, pt, dp, qv, ql, qr, qi, qs, qg)
 The subroutine 'neg_adj' fixes negative water species.
 
subroutine interpolate_z (is, ie, js, je, km, zl, hgt, a3, a2)
 quick local sum algorithm
 
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.
 
subroutine refl10cm_gfdl (qv1d, qr1d, qs1d, qg1d, t1d, p1d, dbz, kts, kte, ii, jj, melti)
 This subroutine calculates radar reflectivity.
 

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
 
real, parameter rdgas = 287.05
 gfs: gas constant for dry air
 
real, parameter rvgas = 461.50
 gfs: gas constant for water vapor
 
real, parameter cp_air = 1004.6
 gfs: heat capacity of dry air at constant pressure
 
real, parameter hlv = 2.5e6
 gfs: latent heat of evaporation
 
real, parameter hlf = 3.3358e5
 gfs: latent heat of fusion
 
real, parameter pi = 3.1415926535897931
 gfs: ratio of circle circumference to diameter
 
real, parameter cp_vap = 4.0 * rvgas
 1846.0, heat capacity of water vapore at constnat pressure
 
real, parameter cv_air = cp_air - rdgas
 717.55, heat capacity of dry air at constant volume
 
real, parameter cv_vap = 3.0 * rvgas
 1384.5, heat capacity of water vapor at constant volume
 
real, parameter c_ice = 1972.0
 gfdl: heat capacity of ice at - 15 deg c
 
real, parameter c_liq = 4185.5
 gfdl: heat capacity of water at 15 deg c
 
real, parameter eps = rdgas / rvgas
 0.6219934995
 
real, parameter zvir = rvgas / rdgas - 1.
 0.6077338443
 
real, parameter t_ice = 273.16
 freezing temperature
 
real, parameter table_ice = 273.16
 freezing point for qs table
 
real, parameter e00 = 611.21
 ifs: saturation vapor pressure at 0 deg c
 
real, parameter dc_vap = cp_vap - c_liq
 
real, parameter dc_ice = c_liq - c_ice
 2213.5, isobaric heating / colling
 
real, parameter hlv0 = hlv
 gfs: evaporation latent heat coefficient at 0 deg c
 
real, parameter hlf0 = hlf
 gfs: fussion latent heat coefficient at 0 deg c
 
real, parameter lv0 = hlv0 - dc_vap * t_ice
 3.13905782e6, evaporation latent heat coefficient at 0 deg k
 
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
 
real, parameter qrmin = 1.e-8
 min value for rain
 
real, parameter qvmin = 1.e-20
 min value for water vapor (treated as zero)
 
real, parameter qcmin = 1.e-12
 min value for cloud condensates
 
real, parameter vr_min = 1.e-3
 min fall speed for rain
 
real, parameter vf_min = 1.e-5
 min fall speed for cloud ice, snow, graupel
 
real, parameter dz_min = 1.e-2
 use for correcting flipped height
 
real, parameter sfcrho = 1.2
 surface air density
 
real, parameter, public rhor = 1.e3
 density of rain water, lin83
 
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
 
real, dimension(3, 4) acco
 constants for accretions
 
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
 
real d0_vap
 the same as dc_vap, except that cp_vap can be cp_vap or cv_vap
 
real lv00
 the same as lv0, except that cp_vap can be cp_vap or cv_vap
 
integer, public icloud_f = 0
 cloud scheme
 
integer, public irain_f = 0
 cloud water to rain auto conversion scheme
 
logical, public de_ice = .false.
 to prevent excessive build - up of cloud ice from external sources
 
logical, public sedi_transport = .true.
 transport of momentum in sedimentation
 
logical, public do_sedi_w = .false.
 transport of vertical motion in sedimentation
 
logical, public do_sedi_heat = .true.
 transport of heat in sedimentation
 
logical, public prog_ccn = .false.
 do prognostic ccn (yi ming's method)
 
logical, public do_qa = .true.
 do inline cloud fraction
 
logical, public rad_snow = .true.
 consider snow in cloud fraciton calculation
 
logical, public rad_graupel = .true.
 consider graupel in cloud fraction calculation
 
logical, public rad_rain = .true.
 consider rain in cloud fraction calculation
 
logical, public fix_negative = .false.
 fix negative water species
 
logical do_setup = .true.
 setup constants and parameters
 
logical p_nonhydro = .false.
 perform hydrosatic adjustment on air density
 
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
 
real p_min = 100.
 minimum pressure (pascal) for mp to operate
 
real, public cld_min = 0.05
 minimum cloud fraction
 
real, public tice = 273.16
 set tice = 165. to trun off ice - phase phys (kessler emulator)
 
real, public t_min = 178.
 min temp to freeze - dry all water vapor
 
real, public t_sub = 184.
 min temp for sublimation of cloud ice
 
real, public mp_time = 150.
 maximum micro - physics time step (sec)
 
real, public rh_inc = 0.25
 rh increment for complete evaporation of cloud water and cloud ice
 
real, public rh_inr = 0.25
 rh increment for minimum evaporation of rain
 
real, public rh_ins = 0.25
 rh increment for sublimation of snow
 
real, public tau_r2g = 900.
 rain freezing during fast_sat
 
real, public tau_smlt = 900.
 snow melting
 
real, public tau_g2r = 600.
 graupel melting to rain
 
real, public tau_imlt = 600.
 cloud ice melting
 
real, public tau_i2s = 1000.
 cloud ice to snow auto-conversion
 
real, public tau_l2r = 900.
 cloud water to rain auto-conversion
 
real, public tau_v2l = 150.
 water vapor to cloud water (condensation)
 
real, public tau_l2v = 300.
 cloud water to water vapor (evaporation)
 
real, public tau_g2v = 900.
 graupel sublimation
 
real, public tau_v2g = 21600.
 graupel deposition – make it a slow process
 
real, public dw_land = 0.20
 base value for subgrid deviation / variability over land
 
real, public dw_ocean = 0.10
 base value for ocean
 
real, public ccn_o = 90.
 ccn over ocean (cm^ - 3)
 
real, public ccn_l = 270.
 ccn over land (cm^ - 3)
 
real, public rthresh = 10.0e-6
 critical cloud drop radius (micro m)
 
real, public sat_adj0 = 0.90
 adjustment factor (0: no, 1: full) during fast_sat_adj
 
real, public qc_crt = 5.0e-8
 mini condensate mixing ratio to allow partial cloudiness
 
real, public qi_lim = 1.
 cloud ice limiter to prevent large ice build up
 
real, public ql_mlt = 2.0e-3
 max value of cloud water allowed from melted cloud ice
 
real, public qs_mlt = 1.0e-6
 max cloud water due to snow melt
 
real, public ql_gen = 1.0e-3
 max cloud water generation during remapping step if fast_sat_adj = .t.
 
real, public qi_gen = 1.82e-6
 max cloud ice generation during remapping step
 
real, public ql0_max = 2.0e-3
 max cloud water value (auto converted to rain)
 
real, public qi0_max = 1.0e-4
 max cloud ice value (by other sources)
 
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
 
real, public qr0_crt = 1.0e-4
 rain to snow or graupel/hail threshold
 
real, public qs0_crt = 1.0e-3
 snow to graupel density threshold (0.6e-3 in purdue lin scheme)
 
real, public c_paut = 0.55
 autoconversion cloud water to rain (use 0.5 to reduce autoconversion)
 
real, public c_psaci = 0.02
 accretion: cloud ice to snow (was 0.1 in zetac)
 
real, public c_piacr = 5.0
 accretion: rain to ice:
 
real, public c_cracw = 0.9
 rain accretion efficiency
 
real, public c_pgacs = 2.0e-3
 snow to graupel "accretion" eff. (was 0.1 in zetac)
 
real, public alin = 842.0
 "a" in lin1983
 
real, public clin = 4.8
 "c" in lin 1983, 4.8 – > 6. (to ehance ql – > qs)
 
logical, public const_vi = .false.
 if .t. the constants are specified by v * _fac
 
logical, public const_vs = .false.
 if .t. the constants are specified by v * _fac
 
logical, public const_vg = .false.
 if .t. the constants are specified by v * _fac
 
logical, public const_vr = .false.
 if .t. the constants are specified by v * _fac
 
real, public vi_fac = 1.
 if const_vi: 1 / 3
 
real, public vs_fac = 1.
 if const_vs: 1.
 
real, public vg_fac = 1.
 if const_vg: 2.
 
real, public vr_fac = 1.
 if const_vr: 4.
 
real, public vi_max = 0.5
 max fall speed for ice
 
real, public vs_max = 5.0
 max fall speed for snow
 
real, public vg_max = 8.0
 max fall speed for graupel
 
real, public vr_max = 12.
 max fall speed for rain
 
logical, public fast_sat_adj = .false.
 has fast saturation adjustments
 
logical, public z_slope_liq = .true.
 use linear mono slope for autocconversions
 
logical, public z_slope_ice = .false.
 use linear mono slope for autocconversions
 
logical, public use_ccn = .false.
 must be true when prog_ccn is false
 
logical, public use_ppm = .false.
 use ppm fall scheme
 
logical, public mono_prof = .true.
 perform terminal fall with mono ppm scheme
 
logical, public mp_print = .false.
 cloud microphysics debugging printout
 
logical, public do_hail = .false.
 use hail parameters instead of graupel
 
real log_10
 
real tice0
 
real t_wfr
 
integer, public reiflag = 1
 
logical, public tintqs = .false.
 use temperature in the saturation mixing in PDF
 
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