CCPP Scientific Documentation
v4.0
subroutine module_mp_thompson::thompson_init ( real, dimension(ims:ime,jms:jme), intent(in), optional  nwfa2d,
real, dimension(ims:ime,jms:jme), intent(in), optional  nifa2d,
real, dimension(ims:ime,kms:kme,jms:jme), intent(in), optional  nwfa,
real, dimension(ims:ime,kms:kme,jms:jme), intent(in), optional  nifa,
integer, intent(in)  ids,
integer, intent(in)  ide,
integer, intent(in)  jds,
integer, intent(in)  jde,
integer, intent(in)  kds,
integer, intent(in)  kde,
integer, intent(in)  ims,
integer, intent(in)  ime,
integer, intent(in)  jms,
integer, intent(in)  jme,
integer, intent(in)  kms,
integer, intent(in)  kme,
integer, intent(in)  its,
integer, intent(in)  ite,
integer, intent(in)  jts,
integer, intent(in)  jte,
integer, intent(in)  kts,
integer, intent(in)  kte,
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.

Referenced by mp_thompson::mp_thompson_init().

Here is the call graph for this function: