CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC

◆ cu_gf_deep_run()

subroutine cu_gf_deep::cu_gf_deep_run ( integer, intent(in)  itf,
integer, intent(in)  ktf,
integer, intent(in)  its,
integer, intent(in)  ite,
integer, intent(in)  kts,
integer, intent(in)  kte,
integer, intent(in)  dicycle,
integer, intent(in)  ichoice,
integer, intent(in)  ipr,
real(kind=kind_phys), dimension (its:ite), intent(inout)  ccn,
real(kind=kind_phys), intent(in)  ccnclean,
real(kind=kind_phys), intent(in)  dtime,
integer, intent(in)  imid,
integer, dimension (its:ite), intent(in)  kpbl,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  dhdt,
real(kind=kind_phys), dimension (its:ite), intent(in)  xland,
real(kind=kind_phys), dimension (its:ite,kts:kte)  zo,
real(kind=kind_phys), dimension(its:ite,10), intent(inout)  forcing,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  t,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  q,
real(kind=kind_phys), dimension (its:ite), intent(in)  z1,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  tn,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  qo,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  po,
real(kind=kind_phys), dimension (its:ite), intent(in)  psur,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  us,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  vs,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(in)  rho,
real(kind=kind_phys), dimension (its:ite), intent(in)  hfx,
real(kind=kind_phys), dimension (its:ite), intent(in)  qfx,
real(kind=kind_phys), dimension (its:ite), intent(in)  dx,
real(kind=kind_phys), dimension (its:ite), intent(inout)  mconv,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  omeg,
integer, dimension (its:ite), intent(in)  csum,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  cnvwt,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  zuo,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  zdo,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  zdm,
real(kind=kind_phys), dimension (its:ite)  edto,
real(kind=kind_phys), dimension (its:ite)  edtm,
real(kind=kind_phys), dimension (its:ite), intent(inout)  xmb_out,
real(kind=kind_phys), dimension (its:ite), intent(in)  xmbm_in,
real(kind=kind_phys), dimension (its:ite), intent(in)  xmbs_in,
real(kind=kind_phys), dimension (its:ite), intent(inout)  pre,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  outu,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  outv,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  outt,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  outq,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  outqc,
integer, dimension (its:ite), intent(inout)  kbcon,
integer, dimension (its:ite), intent(inout)  ktop,
real(kind=kind_phys), dimension (its:ite,kts:kte), intent(inout)  cupclw,
real(kind=kind_phys), dimension (its:ite), intent(out)  frh_out,
integer, dimension (its:ite), intent(inout)  ierr,
character*50, dimension(its:ite)  ierrc,
real(kind=kind_phys), dimension (its:ite), intent(in)  rand_mom,
real(kind=kind_phys), dimension (its:ite), intent(in)  rand_vmas,
real(kind=kind_phys), dimension (its:ite,4), intent(in)  rand_clos,
integer, intent(in)  nranflag,
integer, intent(in)  do_capsuppress,
real(kind=kind_phys), dimension(:), intent(in)  cap_suppress_j,
integer, dimension (its:ite)  k22,
integer, dimension (its:ite)  jmin,
integer, dimension (its:ite), intent(in)  tropics 
)

Grell-Freitas Deep Convection General Algorithm

  • Call cup_env() to calculate moist static energy, heights, qes
  • Call cup_env_clev() to calculate environmental values on cloud levels
  • Call get_partition_liq_ice() to calculate partition between liq/ice cloud contents
  • Compute the level where detrainment for downdraft starts (kdet)
  • Determine level with highest moist static energy content (k22)
  • call get_cloud_bc() and cup_kbcon() to determine the level of convective cloud base (kbcon)
  • Call cup_minimi() to increase detrainment in stable layers
  • Call get_cloud_bc() to initial conditions for updraft
  • Call get_inversion_layer() to get inversion layers for mid level cloud tops
  • Call rates_up_pdf() to get normalized mass flux, entrainment and detrainmentrates for updraft
  • Call get_lateral_massflux() to calculate mass entrainment and detrainment
  • Call cup_minimi() to calculate downdraft originating level (jmin)
  • Call cup_up_moisture() to calculate moisture properties of updraft
  • Compute downdraft moist static energy + moisture budget
  • Call cup_dd_moisture() to calculate moisture properties of downdraft
  • Call cup_up_aa0() to calculate workfunctions for updrafts
  • Call cup_up_aa1bl() to calculate ECMWF version diurnal cycle closure
  • Call cup_env() to calculate moist static energy, heights, qes, ... only by bl tendencies
  • Call cup_env_clev() to calculate environmental values on cloud levels only by bl tendencies
  • Call cup_ip_aa0() to calculate workfunctions for updrafts
  • Call cup_dd_edt() to determine downdraft strength in terms of windshear
  • Call get_melting_profile() to get melting profile
  • Call cup_env() to calculate moist static energy, heights, qes
  • Call cup_env_clev() to calculate environmental values on cloud levels
  • Call cup_up_aa0() to calculate workfunctions for updraft
  • Call cup_forcing_ens_3d() to calculate cloud base mass flux
  • Call rain_evap_below_cloudbase() to calculate evaporation below cloud base
  • Since kinetic energy is being dissipated, add heating accordingly (from ecmwf)

References cup_dd_edt(), cup_dd_moisture(), cup_env(), cup_env_clev(), cup_forcing_ens_3d(), cup_kbcon(), cup_maximi(), cup_minimi(), cup_output_ens_3d(), cup_up_aa0(), cup_up_aa1bl(), cup_up_moisture(), get_cloud_bc(), get_inversion_layers(), get_lateral_massflux(), get_melting_profile(), get_partition_liq_ice(), get_zu_zd_pdf_fim(), rain_evap_below_cloudbase(), and rates_up_pdf().

Referenced by cu_gf_driver::cu_gf_driver_run().

Here is the call graph for this function:
Here is the caller graph for this function: