Common Community Physics Package (CCPP) Scientific Documentation  Version 2.0
subroutine gfdl_cloud_microphys::cs_profile ( real, dimension (4, km), intent(inout)  a4,
real, dimension (km), intent(in)  del,
integer, intent(in)  km,
logical, intent(in)  do_mono 
)
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 cs_limiters().

Referenced by lagrangian_fall_ppm().

Here is the call graph for this function: