GMTB Common Community Physics Package (CCPP) Scientific Documentation  Version 1.0
GFS gscond Main

This subroutine computes grid-scale condensation and evaporation of cloud condensate. More...

Detailed Description

Argument Table

local_name standard_name long_name units rank type kind intent optional
im horizontal_loop_extent horizontal loop extent count 0 integer in F
ix horizontal_dimension horizontal dimension count 0 integer in F
km vertical_dimension vertical layer dimension count 0 integer in F
dt time_step_for_physics physics time step s 0 real kind_phys in F
dtf time_step_for_dynamics dynamics time step s 0 real kind_phys in F
prsl air_pressure layer mean air pressure Pa 2 real kind_phys in F
ps surface_air_pressure surface pressure Pa 1 real kind_phys in F
q water_vapor_specific_humidity_updated_by_physics water vapor specific humidity kg kg-1 2 real kind_phys inout F
clw1 cloud_ice_specific_humidity cloud ice specific humidity kg kg-1 2 real kind_phys in F
clw2 cloud_liquid_water_specific_humidity cloud water specific humidity kg kg-1 2 real kind_phys in F
cwm cloud_condensed_water_specific_humidity_updated_by_physics cloud condensed water specific humidity kg kg-1 2 real kind_phys out F
t air_temperature_updated_by_physics layer mean air temperature K 2 real kind_phys inout F
tp air_temperature_two_time_steps_back air temperature two time steps back K 2 real kind_phys inout F
qp water_vapor_specific_humidity_two_time_steps_back water vapor specific humidity two time steps back kg kg-1 2 real kind_phys inout F
psp surface_air_pressure_two_time_steps_back surface air pressure two time steps back Pa 1 real kind_phys inout F
tp1 air_temperature_at_previous_time_step air temperature at previous time step K 2 real kind_phys inout F
qp1 water_vapor_specific_humidity_at_previous_time_step water vapor specific humidity at previous time step kg kg-1 2 real kind_phys inout F
psp1 surface_air_pressure_at_previous_time_step surface air surface pressure at previous time step Pa 1 real kind_phys inout F
u critical_relative_humidity critical relative humidity frac 2 real kind_phys in F
lprnt flag_print flag for printing diagnostics to output flag 0 logical in F
ipr horizontal_index_of_printed_column horizontal index of printed column index 0 integer in F
errmsg error_message error message for error handling in CCPP none 0 character len=* out F
errflg error_flag error flag for error handling in CCPP flag 0 integer out F

Zhao-Carr Grid-scale Condensation and Evaporation Scheme General Algorithm

  1. Calculate ice-water identification number \(IW\) in order to make a distinction betwee cloud water and cloud ice (table2 of [90]).
  2. Calculate the changes in \(t\), \(q\) and \(p\) due to all the processes except microphysics.
  3. Calculate cloud evaporation rate ( \(E_c\), eq. 19 of [90])
  4. Calculate cloud condensation rate ( \(C_g\), eq.8 of [90])
  5. update t,q,cwm due to cloud evaporation and condensation process

Detailed Algorithm

Functions/Subroutines

subroutine zhaocarr_gscond::zhaocarr_gscond_run (im, ix, km, dt, dtf, prsl, ps, q, clw1, clw2, cwm, t, tp, qp, psp , tp1, qp1, psp1, u, lprnt, ipr, errmsg, errflg)
 

Function/Subroutine Documentation

subroutine zhaocarr_gscond::zhaocarr_gscond_run ( integer, intent(in)  im,
integer, intent(in)  ix,
integer, intent(in)  km,
real(kind=kind_phys), intent(in)  dt,
real(kind=kind_phys), intent(in)  dtf,
real(kind=kind_phys), dimension(ix,km), intent(in)  prsl,
real(kind=kind_phys), dimension(im), intent(in)  ps,
real(kind=kind_phys), dimension(ix,km), intent(inout)  q,
real(kind=kind_phys), dimension(ix,km), intent(in)  clw1,
real(kind=kind_phys), dimension(ix,km), intent(in)  clw2,
real(kind=kind_phys), dimension(ix,km), intent(out)  cwm,
real(kind=kind_phys), dimension(ix,km), intent(inout)  t,
real(kind=kind_phys), dimension(ix,km), intent(inout)  tp,
real(kind=kind_phys), dimension(ix,km), intent(inout)  qp,
real(kind=kind_phys), dimension(im), intent(inout)  psp,
real(kind=kind_phys), dimension(ix,km), intent(inout)  tp1,
real(kind=kind_phys), dimension(ix,km), intent(inout)  qp1,
real(kind=kind_phys), dimension(im), intent(inout)  psp1,
real(kind=kind_phys), dimension(im,km), intent(in)  u,
logical, intent(in)  lprnt,
integer, intent(in)  ipr,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)
  1. Begining of grid-scale condensation/evaporation loop (start of k-loop, i-loop)
  2. Compute ice-water identification number IW.
    The distinction between cloud water and cloud ice is made by the cloud identification number IW, which is zero for cloud water and unity for cloud ice (Table 2 in [90]):
    • All clouds are defined to consist of liquid water below the freezing level ( \(T\geq 0^oC\)) and of ice particles above the \(T=-15^oC\) level.
    • In the temperature region between \(-15^oC\) and \(0^oC\), clouds may be composed of liquid water or ice. If there are cloud ice particles above this point at the previous or current time step, or if the cloud at this point at the previous time step consists of ice particles, then the cloud substance at this point is considered to be ice particles because of the cloud seeding effect and the memory of its content. Otherwise, all clouds in this region are considered to contain supercooled cloud water.
  3. Condensation and evaporation of cloud
    • Compute the changes in t, q and p ( \(A_{t}\), \(A_{q}\) and \(A_{p}\)) caused by all the processes except grid-scale condensation and evaporation.

      \[ A_{t}=(t-tp)/dt \]

      \[ A_{q}=(q-qp)/dt \]

      \[ A_{p}=(prsl-\frac{prsl}{ps} \times psp)/dt \]

    • Calculate the saturation specific humidity \(q_{s}\) and the relative humidity \(f\) using IW.
    • According to [80], estimate cloud fraction \(b\) at a grid point from relative humidity \(f\) using the equation

      \[ b=1-\left ( \frac{f_{s}-f}{f_{s}-u} \right )^{1/2} \]

      for \(f>u\); and \(b=0\) for \(f<u\). where \(f_{s}=1.0\) is the relative humidity in a cloud region and \(u\) ,which is an input parameter accounts for the effects of subgrid-scale variations in moisture on large-scale condensation. Since both temperature and moisture may vary at scales smaller than the model grid scale, it is possible for condensation to occur before the grid-average relative humidity reaches 100%. Therefore \(u\) needs to be less than 1.0 to account for the subgrid-scale variation of temperature and moisture fields and allow subgrid-scale condensation.
    • If cloud fraction \(b\leq 1.0\times10^{-3}\), then evaporate any existing cloud condensate using evaporation rate \(E_{c}\) as computed below.
      If \(q_{0}\) represents the specific humidity at relative humidity \(u\), then

      \[ q_{0}=uq_{s} \]


      if the cloud water/ice at this point is enough to be evaporated until \(u\) is reached, then the evaporation rate \(E_{c}\), assuming that the evaporation process occurs in one time step, is determined by

      \[ E_{c}=\frac{q_{0}-q}{dt} \]


      Using \(q_{0}=uq_{s}\) and the equation \(q=fq_{s}\), \(E_{c}\) then becomes

      \[ E_{c}=\frac{q_{s}}{dt}(u-f) \]

      where \(dt\) is the time step for precipitation calculation in the model. It is a simplified version of a higher-order cloud evaporation algorithm ( [76]). In the case where all clouds will evaporate before \(u\) is reached, the following equation is used:

      \[ E_{c}=\frac{cwm}{dt} \]

    • If cloud fraction \(b>1.0\times10^{-3}\), condense water vapor into cloud condensate ( \(C_{g}\)).
      Using \(q=fq_{s}\), \(q_{s}=\epsilon e_{s}/p\), and the Clausius-Clapeyron equation \(de_{s}/dT=\epsilon Le_{s}/RT^{2}\), where \(q_{s}\) is the saturation specific humidity, \(e_{s}\) is the saturation vapor pressure, \(R\) is the specific gas constant for dry air, \(f\) is the relative humidity, and \(\epsilon=0.622\), the expression for \(C_{g}\) has the form

      \[ C_{g}=\frac{M-q_{s}f_{t}}{1+(f\epsilon L^{2}q_{s}/RC_{p}T^{2})}+E_{c} \]

      where

      \[ M=A_{q}-\frac{f\epsilon Lq_{s}}{RT^{2}}A_{t}+\frac{fq_{s}}{p}A_{p} \]

      To close the system, an equation for the relative humidity tendency \(f_{t}\) was derived by [80] using the hypothesis that the quantity \(M+E_{c}\) is divided into one part, \(bM\),which condenses in the already cloudy portion of a grid square, and another part, \((1-b)M+E_{c}\),which is used to increase the relative humidity of the cloud-free portion and the cloudiness in the square. The equation is written as

      \[ f_{t}=\frac{2(1-b)(f_{s}-u)[(1-b)M+E_{c}]}{2q_{s}(1-b)(f_{s}-u)+cwm/b} \]

    • Check and correct if over condensation occurs.
    • Update t, q and cwm (according to Eqs(6) and (7) in [90])

      \[ cwm=cwm+(C_{g}-E_{c})\times dt \]

      \[ q=q-(C_{g}-E_{c})\times dt \]

      \[ t=t+\frac{L}{C_{p}}(C_{g}-E_{c})\times dt \]


      where \(L\) is the latent heat of condensation/deposition, and \(C_{p}\) is the specific heat of air at constant pressure.
  4. End of the condensation/evaporation loop (end of i-loop,k-loop).
  5. Store \(t\), \(q\), \(ps\) for next time step.