Common Community Physics Package (CCPP) Scientific Documentation  Version 2.0
subroutine fv_sat_adj::fv_sat_adj_work ( real, intent(in)  mdt,
real, intent(in)  zvir,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  ng,
logical, intent(in)  hydrostatic,
logical, intent(in)  consv_te,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(out)  te0,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  qv,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  ql,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  qi,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  qr,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  qs,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  qg,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(in)  hs,
real, dimension (is:ie, js:je), intent(in)  dpln,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(in)  delz,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  pt,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(in)  dp,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  q_con,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(inout)  cappa,
real (kind_grid), dimension (is - ng:ie + ng, js - ng:je + ng), intent(in)  area,
real, dimension (is:ie, js:je), intent(inout)  dtdt,
logical, intent(in)  out_dt,
logical, intent(in)  last_step,
logical, intent(in)  do_qa,
real, dimension (is - ng:ie + ng, js - ng:je + ng), intent(out)  qa 
)
private

GFDL Cloud Fast Physics General Algorithm

  • Define conversion scalar / factor.
  • Define heat capacity of dry air and water vapor based on hydrostatical property.
  • Define air density based on hydrostatical property.
  • Define heat capacity and latend heat coefficient.
  • Fix energy conservation.
  • Fix negative cloud ice with snow.
  • Melting of cloud ice to cloud water and rain.
  • Update latend heat coefficient.
  • Fix negative snow with graupel or graupel with available snow.
  • Fix negative cloud water with rain or rain with available cloud water.
  • Enforce complete freezing of cloud water to cloud ice below - 48 c.
  • Update latend heat coefficient.
  • Condensation/evaporation between water vapor and cloud water.
  • Update latend heat coefficient.
  • condensation/evaporation between water vapor and cloud water, last time step enforce upper (no super_sat) & lower (critical rh) bounds.
  • Update latend heat coefficient.
  • Homogeneous freezing of cloud water to cloud ice.
  • Update latend heat coefficient.
  • bigg mechanism (heterogeneous freezing of cloud water to cloud ice).
  • Update latend heat coefficient.
  • Freezing of rain to graupel.
  • Update latend heat coefficient.
  • Melting of snow to rain or cloud water.
  • Autoconversion from cloud water to rain.
  • Update latend heat coefficient.
  • Sublimation/deposition between water vapor and cloud ice.
  • Virtual temperature updated.
  • Fix negative graupel with available cloud ice.
  • Autoconversion from cloud ice to snow.
  • Fix energy conservation.
  • Update latend heat coefficient.
  • Compute cloud fraction.
    • If it is the last step, combine water species.
    • Use the "liquid - frozen water temperature" (tin) to compute saturated specific humidity.
      • higher than 10 m is considered "land" and will have higher subgrid variability
      • "scale - aware" subgrid variability: 100 - km as the base
      • calculate partial cloudiness by pdf; assuming subgrid linear distribution in horizontal; this is effectively a smoother for the binary cloud scheme; qa = 0.5 if qstar (i) == qpz

References iqs1(), iqs2(), wqs1(), and wqs2_vect().

Referenced by fv_sat_adj_run().

Here is the call graph for this function: