CCPP SciDoc for UFS-SRW v3.0.0  SRW v3.0.0
Common Community Physics Package Developed at DTC

◆ mp_thompson_run()

subroutine, public mp_thompson::mp_thompson_run ( integer, intent(in)  ncol,
integer, intent(in)  nlev,
real(kind_phys), intent(in)  con_g,
real(kind_phys), intent(in)  con_rd,
real(kind_phys), intent(in)  con_eps,
logical, intent(in)  convert_dry_rho,
real(kind_phys), dimension(:,:), intent(inout)  spechum,
real(kind_phys), dimension(:,:), intent(inout)  qc,
real(kind_phys), dimension(:,:), intent(inout)  qr,
real(kind_phys), dimension(:,:), intent(inout)  qi,
real(kind_phys), dimension(:,:), intent(inout)  qs,
real(kind_phys), dimension(:,:), intent(inout)  qg,
real(kind_phys), dimension(:,:), intent(inout)  ni,
real(kind_phys), dimension(:,:), intent(inout)  nr,
logical, intent(in)  is_aerosol_aware,
logical, intent(in)  merra2_aerosol_aware,
real(kind_phys), dimension(:,:), intent(inout), optional  nc,
real(kind_phys), dimension(:,:), intent(inout), optional  nwfa,
real(kind_phys), dimension(:,:), intent(inout), optional  nifa,
real(kind_phys), dimension(:), intent(in), optional  nwfa2d,
real(kind_phys), dimension(:), intent(in), optional  nifa2d,
logical, intent(in), optional  aero_ind_fdb,
real(kind_phys), dimension(:,:), intent(inout)  tgrs,
real(kind_phys), dimension(:,:), intent(in)  prsl,
real(kind_phys), dimension(:,:), intent(in)  phii,
real(kind_phys), dimension(:,:), intent(in)  omega,
logical, intent(in)  sedi_semi,
integer, intent(in)  decfl,
integer, dimension(:), intent(in)  islmsk,
real(kind_phys), intent(in)  dtp,
real, intent(in)  dt_inner,
logical, intent(in)  first_time_step,
integer, intent(in)  istep,
integer, intent(in)  nsteps,
real(kind_phys), dimension(:), intent(inout)  prcp,
real(kind_phys), dimension(:), intent(inout)  rain,
real(kind_phys), dimension(:), intent(inout)  graupel,
real(kind_phys), dimension(:), intent(inout)  ice,
real(kind_phys), dimension(:), intent(inout)  snow,
real(kind_phys), dimension(:), intent(out)  sr,
real(kind_phys), dimension(:,:), intent(inout)  refl_10cm,
logical, intent(in)  fullradar_diag,
logical, intent(in)  do_radar_ref,
real(kind_phys), dimension(:,:,:), intent(in)  aerfld,
integer, intent(in)  mpicomm,
integer, intent(in)  mpirank,
integer, intent(in)  mpiroot,
integer, intent(in)  blkno,
logical, intent(in)  ext_diag,
real(kind_phys), dimension(:,:,:), intent(inout), target  diag3d,
logical, intent(in)  reset_diag3d,
real(kind_phys), dimension(:,:), intent(in)  spp_wts_mp,
integer, intent(in)  spp_mp,
integer, intent(in)  n_var_spp,
real(kind_phys), dimension(:), intent(in)  spp_prt_list,
character(len=3), dimension(:), intent(in)  spp_var_list,
real(kind_phys), dimension(:), intent(in)  spp_stddev_cutoff,
logical, intent(in)  cplchm,
real(kind=kind_phys), dimension(:,:), intent(inout)  pfi_lsan,
real(kind=kind_phys), dimension(:,:), intent(inout)  pfl_lsan,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

Thompson MP General Algorithm

  • Convert specific humidity to water vapor mixing ratio.
    • Also, hydrometeor variables are mass or number mixing ratio
    • either kg of species per kg of dry air, or per kg of (dry + vapor).
  • Density of air in kg m-3
  • Convert omega in Pa s-1 to vertical velocity w in m s-1
  • Layer width in m from geopotential in m2 s-2
  • Call mp_gt_driver() with or without aerosols, with or without effective radii, ...
  • Convert water vapor mixing ratio back to specific humidity
  • Convert rainfall deltas from mm to m (on physics timestep); add to inout variables

References module_mp_thompson::mp_gt_driver().

Here is the call graph for this function: