CCPP Scientific Documentation
v5.0.0
subroutine module_mp_thompson::thompson_init ( real, dimension(:), intent(in), optional  nwfa2d,
real, dimension(:), intent(in), optional  nifa2d,
real, dimension(:,:), intent(in), optional  nwfa,
real, dimension(:,:), intent(in), optional  nifa,
integer, intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
integer, intent(in)  threads,
character(len=*), intent(inout)  errmsg,
integer, intent(inout)  errflg 
)

thompson_init General Algorithm

  • Allocate space for lookup tables (J. Michalakes 2009Jun08).
  • From Martin et al. (1994), assign gamma shape parameter mu for cloud drops according to general dispersion characteristics (disp=~0.25 for maritime and 0.45 for continental)
  • Compute Schmidt number to one-third used numerous times
  • Compute minimum ice diam from mass, min snow/graupel mass from diam
  • Compute constants various exponents and gamma() associated with cloud, rain, snow, and graupel
  • Simplify various rate equations
    • Compute rain collecting cloud water and cloud ice
    • Compute graupel collecting cloud water
    • Compute snow collecting cloud water
    • Compute snow collecting cloud ice
    • Compute evaporation of rain; ignore depositional growth of rain
    • Compute sublimation/depositional growth of snow
    • Compute melting of snow
    • Compute sublimation/depositional growth of graupel
    • Compute melting of graupel
    • Compute constants for helping find lookup table indexes
    • Create bins of cloud water (from min diameter up to 100 microns)
    • Create bins of cloud ice (from min diameter up to 5x min snow size)
    • Create bins of rain (from min diameter up to 5 mm)
    • Create bins of snow (from min diameter up to 2 cm)
    • Create bins of graupel (from min diameter up to 5 cm)
    • Create bins of cloud droplet number concentration (1 to 3000 per cc)
  • Create lookup tables for most costly calculations
    • Call table_ccnact() to read a static file containing CCN activation of aerosols. The data were created from a parcel model by Feingold & Heymsfield with further changes by Eidhammer and Kriedenweis
    • Call table_efrw() and table_efsw() to creat collision efficiency table between rain/snow and cloud water
    • Call table_dropevap() to creat rain drop evaporation table
    • Call radar_init() to initialize various constants for computing radar reflectivity
    • Call qr_acr_qg() to create rain collecting graupel & graupel collecting rain table
    • Call qr_acr_qs() to create rain collecting snow & snow collecting rain table
    • Call freezeh2o() to create cloud water and rain freezing (Bigg, 1953) table
    • Call qi_aut_qs() to create conversion of some ice mass into snow category

References am_g, am_i, am_r, am_s, av_g, av_r, av_s, bm_g, bm_i, bm_r, bm_s, bv_c, bv_g, bv_i, bv_r, bv_s, c_cube, c_sqrd, cce, ccg, cge, cgg, cie, cig, cre, crg, cse, csg, d0c, d0g, d0i, d0r, d0s, dc, dg, di, dr, ds, dtc, dtg, dti, dtr, dts, freezeh2o(), iiwarm, is_aerosol_aware, mpi_communicator, mu_c, mu_g, mu_i, mu_r, mu_s, n0g_exp, n0r_exp, nbc, nbg, nbi, nbr, nbs, nic1, nic2, nig2, nig3, nii2, nii3, niin2, nir2, nir3, nis2, nt_c, nt_i, nt_in, ntb_arc, ntb_ark, ntb_arr, ntb_art, ntb_arw, ntb_c, ntb_g, ntb_g1, ntb_i, ntb_i1, ntb_in, ntb_r, ntb_r1, ntb_s, ntb_t, oamg, oams, obmg, obmi, obmr, obms, ocg1, ocg2, ocmg, ocms, oge1, ogg1, ogg2, ogg3, oig1, oig2, olfus, ore1, org1, org2, org3, pi, qi_aut_qs(), qr_acr_qg(), qr_acr_qs(), r_c, r_g, r_i, r_r, r_s, module_mp_radar::radar_init(), readwrite_tables(), sc, sc3, t1_qg_me, t1_qg_qc, t1_qg_sd, t1_qr_ev, t1_qr_qc, t1_qr_qi, t1_qs_me, t1_qs_qc, t1_qs_qi, t1_qs_sd, t2_qg_me, t2_qg_sd, t2_qr_ev, t2_qr_qi, t2_qs_me, t2_qs_sd, t_efrw, t_efsw, t_nc, table_ccnact(), table_dropevap(), table_efrw(), table_efsw(), tcg_racg, tcr_gacr, tcr_sacr1, tcr_sacr2, tcs_racs1, tcs_racs2, thompson_table_writer, tmg_gacr, tmr_racg, tmr_racs1, tmr_racs2, tms_sacr1, tms_sacr2, tnc_wev, tnccn_act, tni_iaus, tni_qcfz, tni_qrfz, tnr_gacr, tnr_qrfz, tnr_racg, tnr_racs1, tnr_racs2, tnr_rev, tnr_sacr1, tnr_sacr2, tpc_wev, tpg_qrfz, tpi_ide, tpi_qcfz, tpi_qrfz, tps_iaus, wgamma(), module_mp_radar::xam_g, module_mp_radar::xam_r, module_mp_radar::xam_s, module_mp_radar::xbm_g, module_mp_radar::xbm_r, module_mp_radar::xbm_s, xdx, xm0g, xm0i, xm0s, module_mp_radar::xmu_g, module_mp_radar::xmu_r, and module_mp_radar::xmu_s.

Here is the call graph for this function: