CCPP Scientific Documentation
v5.0.0
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 c_air, c_ice, c_liq, c_paut, c_vap, ccn_l, ccn_o, cp_air, de_ice, do_qa, do_sedi_heat, do_sedi_w, dw_land, dw_ocean, fall_speed(), fix_negative, grav, icloud(), neg_adj(), p_nonhydro, prog_ccn, qi0_max, rdgas, rgrav, rh_inc, rh_inr, rhor, sedi_heat(), sedi_transport, sfcrho, terminal_fall(), use_ccn, and warm_rain().

Referenced by gfdl_cloud_microphys_mod_driver().

Here is the call graph for this function: