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

◆ mpdrv()

subroutine gfdl_cloud_microphys_mod::mpdrv ( logical, intent(in)  hydrostatic,
real, dimension (is:, js:, ks:), intent(in)  uin,
real, dimension (is:, js:, ks:), intent(in)  vin,
real, dimension (is:, js:, ks:), intent(inout)  w,
real, dimension (is:, js:, ks:), intent(in)  delp,
real, dimension (is:, js:, ks:), intent(in)  pt,
real, dimension (is:, js:, ks:), intent(in)  qv,
real, dimension (is:, js:, ks:), intent(in)  ql,
real, dimension (is:, js:, ks:), intent(in)  qr,
real, dimension (is:, js:, ks:), intent(inout)  qi,
real, dimension (is:, js:, ks:), intent(inout)  qs,
real, dimension (is:, js:, ks:), intent(in)  qg,
real, dimension (is:, js:, ks:), intent(in)  qa,
real, dimension (is:, js:, ks:), intent(in)  qn,
real, dimension (is:, js:, ks:), intent(in)  dz,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  ks,
integer, intent(in)  ke,
integer, intent(in)  ktop,
integer, intent(in)  kbot,
integer, intent(in)  j,
real, intent(in)  dt_in,
integer, intent(in)  ntimes,
real, dimension (is:), intent(inout)  rain,
real, dimension (is:), intent(inout)  snow,
real, dimension (is:), intent(inout)  graupel,
real, dimension (is:), intent(inout)  ice,
real, dimension (is:, ks:), intent(out)  m2_rain,
real, dimension (is:, ks:), intent(out)  m2_sol,
real, dimension (is:), intent(inout)  cond,
real, dimension (is:), intent(in)  area1,
real, dimension (is:), intent(in)  land,
real, dimension (is:, js:, ks:), intent(inout)  u_dt,
real, dimension (is:, js:, ks:), intent(inout)  v_dt,
real, dimension (is:, js:, ks:), intent(inout)  pt_dt,
real, dimension (is:, js:, ks:), intent(inout)  qv_dt,
real, dimension (is:, js:, ks:), intent(inout)  ql_dt,
real, dimension (is:, js:, ks:), intent(inout)  qr_dt,
real, dimension (is:, js:, ks:), intent(inout)  qi_dt,
real, dimension (is:, js:, ks:), intent(inout)  qs_dt,
real, dimension (is:, js:, ks:), intent(inout)  qg_dt,
real, dimension (is:, js:, ks:), intent(inout)  qa_dt,
real, dimension (is:, js:), intent(out)  w_var,
real, dimension (is:, js:, ks:), intent(out)  vt_r,
real, dimension (is:, js:, ks:), intent(out)  vt_s,
real, dimension (is:, js:, ks:), intent(out)  vt_g,
real, dimension (is:, js:, ks:), intent(out)  vt_i,
real, dimension (is:, js:, ks:), intent(out)  qn2 
)
private

GFDL Cloud mpdrv General Algorithm

  • Prevent excessive build-up of cloud ice from external sources.
  • Convert moist mixing ratios to dry mixing ratios.
  • Calculate cloud condensation nuclei (ccn), following klein eq. 15
  • Calculate horizontal subgrid variability, which is used in cloud fraction, relative humidity calculation, evaporation and condensation processes. Horizontal sub-grid variability is a function of cell area and land/sea mask:
    Over land:

    \[ t_{land}=dw_{land}(\frac{A_{r}}{10^{10}})^{0.25} \]


    Over ocean:

    \[ t_{ocean}=dw_{ocean}(\frac{A_{r}}{10^{10}})^{0.25} \]

    where \(A_{r}\) is cell area. \(dw_{land}=0.16\) and \(dw_{ocean}=0.10\) are base value for sub-grid variability over land and ocean. The total horizontal sub-grid variability is:

    \[ h_{var}=t_{land}\times fr_{land}+t_{ocean}\times (1-fr_{land}) \]

    \[ h_{var}=min[0.2,max(0.01,h_{var})] \]

  • Calculate relative humidity increment.
  • If requested, call neg_adj() and fix all negative water species.
  • Do loop on cloud microphysics sub time step.
  • Define air density based on hydrostatical property.
  • Call warm_rain() - time-split warm rain processes: 1st pass.
  • Sedimentation of cloud ice, snow, and graupel.
  • Call fall_speed() to calculate the fall velocity of cloud ice, snow and graupel.
  • Call terminal_fall() to calculate the terminal fall speed.
  • Call sedi_heat() to calculate heat transportation during sedimentation.
  • Call warm_rain() to - time-split warm rain processes: 2nd pass
  • Call icloud(): ice-phase microphysics
  • Calculate momentum transportation during sedimentation.
  • Update moist air mass (actually hydrostatic pressure).
  • Update cloud fraction tendency.

References fall_speed(), icloud(), neg_adj(), sedi_heat(), terminal_fall(), and warm_rain().

Referenced by gfdl_cloud_microphys_mod_driver().

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