5.1 Cloud Physics

Cloud physics examines the microphysical processes governing the formation, growth, and optical properties of cloud droplets and ice crystals. From the activation of aerosol particles as cloud condensation nuclei through diffusional growth to the development of precipitation-sized drops, these processes span scales from nanometers to kilometers and are fundamental to weather prediction, climate modeling, and the global water cycle.

Cloud Classification

The World Meteorological Organization (WMO) classifies clouds into 10 genera based on appearance and altitude of formation. These genera are further subdivided into species (shape and structure) and varieties (transparency and arrangement).

The 10 Cloud Genera by Altitude

High Clouds (above 6 km / 20,000 ft)

Cirrus (Ci)

Wispy, hair-like ice crystal clouds. Indicate upper-level moisture and approaching weather systems.

Cirrocumulus (Cc)

Small, white patches of ice crystals in rippled rows. Indicate instability at high levels.

Cirrostratus (Cs)

Transparent, whitish veil producing halo phenomena. Often precedes warm fronts by 12-24 hours.

Middle Clouds (2-6 km / 6,500-20,000 ft)

Altostratus (As)

Gray or bluish sheet, partially or totally covering the sky. Sun appears as through frosted glass. Mixed phase (water + ice).

Altocumulus (Ac)

White or gray patches, often in waves or rolls. Castellanus variety indicates mid-level instability and possible afternoon thunderstorms.

Low Clouds (below 2 km / 6,500 ft)

Stratus (St)

Uniform gray layer, often producing drizzle. Forms by cooling of moist air near the surface.

Stratocumulus (Sc)

Low, lumpy layer with darker patches. Most common cloud type globally, covering ~20% of Earth.

Nimbostratus (Ns)

Thick, dark rain-bearing layer. Produces continuous, steady precipitation over wide areas.

Vertical Development Clouds

Cumulus (Cu)

Detached, puffy clouds with flat bases (~LCL). Fair weather (humilis) to towering (congestus). Driven by surface heating and convection.

Cumulonimbus (Cb)

Towering thunderstorm cloud extending to tropopause. Produces lightning, heavy rain, hail, and tornadoes. Anvil top from upper-level wind shear.

Cloud Formation: Lifting Mechanisms

Clouds form when air is cooled to its dewpoint, causing water vapor to condense. The primary cooling mechanism is adiabatic expansion as air rises. Four main lifting mechanisms produce the ascent required for cloud formation:

Orographic Lifting

Air forced over topographic barriers (mountains). Produces persistent cloudiness and heavy precipitation on windward slopes, rain shadow on lee side. Responsible for some of the wettest places on Earth (e.g., Cherrapunji, India).

Frontal Lifting

Warm air glides over cold air at frontal boundaries. Warm fronts produce broad, layered clouds (Ci, Cs, As, Ns) over hundreds of kilometers. Cold fronts produce narrow bands of Cu and Cb with more intense precipitation.

Convective Lifting

Unequal surface heating creates buoyant thermals that rise, cool, and form cumulus clouds. Dominant in tropics and summer mid-latitudes. Produces diurnal cycle of fair-weather Cu to afternoon Cb.

Convergence Lifting

Low-level wind convergence forces air upward. Common in ITCZ, sea-breeze fronts, and low-pressure centers. Frictional convergence in cyclones creates large-scale ascent and widespread cloud cover.

Saturation Vapor Pressure and Humidity

The saturation vapor pressure is the maximum partial pressure of water vapor that air can hold at a given temperature. It increases exponentially with temperature, governed by the Clausius-Clapeyron equation -- the single most important thermodynamic relation in cloud physics.

Clausius-Clapeyron Equation

$$\frac{de_s}{dT} = \frac{L_v \, e_s}{R_v \, T^2}$$

where e_s is saturation vapor pressure (Pa), L_v is latent heat of vaporization (2.501 x 10^6 J/kg), R_v is the gas constant for water vapor (461.5 J/(kg K)), and T is absolute temperature (K).

Integration from a reference state (T_0 = 273.15 K, e_s0 = 611.2 Pa) yields:

Integrated Clausius-Clapeyron

$$e_s(T) = e_{s0} \exp\left[\frac{L_v}{R_v}\left(\frac{1}{T_0} - \frac{1}{T}\right)\right]$$

For practical computation, the Tetens formula provides an accurate empirical approximation:

Tetens Formula (T in degrees C)

$$e_s(T) = 6.112 \exp\left(\frac{17.67 \, T}{T + 243.5}\right) \quad \text{hPa}$$

Accurate to within 0.3% for -35 C to 35 C.

Humidity Variables

Relative Humidity

$$RH = \frac{e}{e_s(T)} \times 100\%$$

Ratio of actual to saturation vapor pressure. RH = 100% at saturation. Varies with both moisture content and temperature.

Dewpoint Temperature

$$T_d = \frac{243.5 \ln(e/6.112)}{17.67 - \ln(e/6.112)}$$

Temperature at which air becomes saturated at constant pressure. A direct measure of atmospheric moisture content.

Wet-Bulb Temperature

$$T_w \approx T - \frac{e_s(T) - e}{\gamma + \Delta}$$

Temperature of adiabatic evaporative cooling. Satisfies T_d ≤ T_w ≤ T. Used in heat stress assessment.

Kohler Theory and CCN Activation

In the atmosphere, homogeneous nucleation of pure water droplets would require supersaturations exceeding 300% -- never observed in nature. Instead, cloud droplets form on aerosol particles called cloud condensation nuclei (CCN) at supersaturations of only 0.1-1%. Kohler theory describes the equilibrium supersaturation over a solution droplet by combining two competing effects:

Kelvin (Curvature) Effect

Surface tension increases the equilibrium vapor pressure over a curved droplet surface relative to a flat surface. Smaller droplets have higher curvature and therefore require higher supersaturation. This effect opposes droplet growth at small sizes.

$$\text{Kelvin term} = \exp\left(\frac{2\sigma}{\rho_w R_v T r}\right) \approx 1 + \frac{a}{r}$$

Raoult (Solute) Effect

Dissolved solute lowers the saturation vapor pressure (Raoult's law). As the droplet grows, the solute becomes more dilute and this effect weakens. Dominates at small radii, promoting droplet formation.

$$\text{Solute term} \approx 1 - \frac{b}{r^3}$$

Kohler Equation (Supersaturation form)

$$S = \frac{e}{e_s} \approx 1 + \frac{a}{r} - \frac{b}{r^3}$$

where

$$a = \frac{2\sigma}{\rho_w R_v T} \approx 3.3 \times 10^{-7}/T \;\text{m}, \quad b = \frac{i \, m_s \, M_w}{(4/3)\pi \, \rho_w \, M_s}$$

Here sigma is surface tension (0.072 N/m), rho_w is water density (1000 kg/m^3), i is the van 't Hoff factor, m_s is solute mass, and M_w, M_s are molar masses of water and solute.

Critical Supersaturation and Radius

The Kohler curve has a maximum supersaturation (critical supersaturation S*) at the critical radius r*. Droplets that grow past r* are said to be activated and will continue growing spontaneously in a supersaturated environment:

Critical Radius and Supersaturation

$$r^* = \sqrt{\frac{3b}{a}}, \qquad S^* - 1 = \sqrt{\frac{4a^3}{27b}}$$

Larger, more soluble aerosol particles activate at lower supersaturations. Typical S* values: NaCl (0.1 um dry radius) ~ 0.13%, (NH4)2SO4 (0.1 um) ~ 0.15%.

CCN Number-Supersaturation Spectrum

The concentration of activated CCN depends on the ambient supersaturation following the Twomey power law:

$$N_{CCN} = C \cdot S^k$$

C is the CCN concentration at S = 1% (typically 100-3000 cm^-3) and k is the spectral slope (typically 0.3-1.3). Maritime air: C ~ 100, k ~ 0.5. Continental air: C ~ 1000, k ~ 0.9.

Cloud Droplet Growth by Vapor Diffusion

Once activated, cloud droplets grow by diffusion of water vapor toward the droplet surface. The growth rate is governed by a balance between vapor diffusion (supplying water molecules) and latent heat conduction (removing the heat released by condensation). The coupled diffusion equation is:

Diffusional Growth Equation

$$r \frac{dr}{dt} = \frac{S - 1}{F_k + F_d} \equiv G \cdot (S - 1)$$

where the thermodynamic and diffusion terms are:

$$F_k = \frac{L_v}{R_v T}\left(\frac{L_v}{K_a T} - 1\right)\frac{\rho_w}{e_s(T)}, \quad F_d = \frac{\rho_w R_v T}{D_v \, e_s(T)}$$

Here K_a is thermal conductivity of air (~0.024 W/(m K)) and D_v is the diffusivity of water vapor in air (~2.2 x 10^-5 m^2/s). The growth parameter G has units of m^2/s and is typically about 10^-10 m^2/s at cloud base conditions.

Solution: Parabolic Growth Law

For constant supersaturation S, the growth equation integrates to:

$$r(t) = \sqrt{r_0^2 + 2G(S-1)\,t}$$

This shows that droplet growth slows as r increases (dr/dt proportional to 1/r). Growing from 1 um to 10 um takes approximately 7 minutes at S = 0.5%, but growing from 10 um to 100 um would take approximately 12 hours -- far too slow to produce rain. This is the diffusion growth bottleneck, requiring collision-coalescence to produce precipitation.

Growth Time Estimates

Radius (um)Time (S=0.5%)Time (S=1.0%)Classification
1 → 5~1.5 min~45 sSmall cloud droplet
1 → 10~7 min~3.5 minTypical cloud droplet
1 → 20~28 min~14 minLarge cloud droplet
1 → 50~3 hours~1.5 hoursDrizzle drop

Droplet Size Distributions and Optical Properties

Cloud droplet size distributions describe the number of droplets per unit volume as a function of radius. Observations show that cloud droplets typically range from 2-25 um in radius, with a modal radius of 5-15 um depending on cloud type and CCN concentration.

Liquid Water Content (LWC)

$$\text{LWC} = \frac{4}{3}\pi \rho_w \int_0^\infty r^3 \, n(r) \, dr$$

Typical values: thin stratus ~ 0.1-0.3 g/m^3, cumulus ~ 0.5-2.0 g/m^3, cumulonimbus ~ 1-3 g/m^3.

Effective Radius

The effective radius is the area-weighted mean radius, crucial for radiative transfer calculations:

$$r_e = \frac{\int_0^\infty r^3 \, n(r) \, dr}{\int_0^\infty r^2 \, n(r) \, dr}$$

Typical values: maritime clouds ~ 10-15 um, continental clouds ~ 5-10 um. The difference arises because continental air has more CCN, producing more but smaller droplets.

Cloud Optical Depth

Cloud optical depth determines how much sunlight a cloud reflects (cloud albedo). It depends on LWC, cloud thickness, and effective radius:

$$\tau = \frac{3 \, \text{LWC} \cdot \Delta z}{2 \, \rho_w \, r_e}$$

This equation reveals the Twomey indirect aerosol effect: increasing CCN concentration decreases r_e (more, smaller droplets for the same LWC), increasing optical depth and cloud albedo. A 15% decrease in r_e can increase cloud albedo by ~0.05, with significant climate implications.

Cloud Albedo Approximation

$$\alpha \approx \frac{\tau}{\tau + 7.7}$$

For tau = 10 (thin cloud): alpha ~ 0.56. For tau = 50 (thick cloud): alpha ~ 0.87. Globally, clouds reflect about 77 W/m^2 back to space (shortwave cloud radiative effect).

Fortran: Cloud Droplet Growth by Diffusion

This Fortran program integrates the diffusional growth equation forward in time using an Euler scheme, tracking droplet radius evolution for different initial supersaturations.

program cloud_droplet_growth
  ! ============================================================
  ! Cloud droplet growth by vapor diffusion
  ! Integrates r dr/dt = G*(S-1) using forward Euler method
  ! Outputs radius vs time for multiple supersaturation values
  ! ============================================================
  implicit none

  ! Physical constants
  real(8), parameter :: Lv    = 2.501d6    ! Latent heat of vaporization (J/kg)
  real(8), parameter :: Rv    = 461.5d0    ! Gas constant for water vapor (J/(kg*K))
  real(8), parameter :: Ka    = 0.024d0    ! Thermal conductivity of air (W/(m*K))
  real(8), parameter :: Dv    = 2.21d-5    ! Diffusivity of water vapor (m^2/s)
  real(8), parameter :: rho_w = 1000.0d0   ! Density of liquid water (kg/m^3)
  real(8), parameter :: pi    = 3.14159265358979d0

  ! Environment
  real(8), parameter :: T_env = 283.15d0   ! Temperature (K) = 10 degC
  real(8) :: es_env, Fk, Fd, G_param

  ! Time integration
  integer, parameter :: nsteps = 100000
  real(8), parameter :: dt = 0.05d0        ! Time step (s)
  real(8) :: t_total

  ! Supersaturation cases
  integer, parameter :: n_cases = 3
  real(8) :: S_values(n_cases)
  real(8) :: r(nsteps), t
  integer :: i, ic
  character(len=64) :: fname

  ! Saturation vapor pressure (Tetens formula, T in Kelvin)
  es_env = 611.2d0 * exp(17.67d0 * (T_env - 273.15d0) / &
           (T_env - 273.15d0 + 243.5d0))

  ! Compute thermodynamic and diffusion terms
  Fk = (Lv / (Rv * T_env) - 1.0d0) * Lv * rho_w / (Ka * T_env * es_env)
  Fd = rho_w * Rv * T_env / (Dv * es_env)
  G_param = 1.0d0 / (Fk + Fd)

  t_total = nsteps * dt
  write(*,'(A)') '============================================='
  write(*,'(A)') 'Cloud Droplet Growth by Vapor Diffusion'
  write(*,'(A)') '============================================='
  write(*,'(A,F8.2,A)') 'Temperature     = ', T_env - 273.15d0, ' degC'
  write(*,'(A,F8.2,A)') 'e_s             = ', es_env, ' Pa'
  write(*,'(A,ES10.3,A)') 'G parameter     = ', G_param, ' m^2/s'
  write(*,'(A,F8.1,A)') 'Integration time = ', t_total, ' s'
  write(*,*)

  S_values = (/0.001d0, 0.005d0, 0.010d0/)  ! 0.1%, 0.5%, 1.0%

  do ic = 1, n_cases
    ! Initialize droplet at 1 um radius
    r(1) = 1.0d-6

    ! Forward Euler integration: r*dr = G*(S-1)*dt => r_new = sqrt(r_old^2 + 2*G*S*dt)
    do i = 2, nsteps
      r(i) = sqrt(r(i-1)**2 + 2.0d0 * G_param * S_values(ic) * dt)
    end do

    write(*,'(A,F6.3,A)') 'Supersaturation = ', S_values(ic)*100.0d0, '%'
    write(*,'(A,F8.2,A)') '  r(0)   = ', r(1)*1.0d6, ' um'
    write(*,'(A,F8.2,A)') '  r(10m) = ', r(int(600.0/dt))*1.0d6, ' um'
    write(*,'(A,F8.2,A)') '  r(30m) = ', r(int(1800.0/dt))*1.0d6, ' um'
    write(*,'(A,F8.2,A)') '  r(end) = ', r(nsteps)*1.0d6, ' um'
    write(*,*)

    ! Write output file for plotting
    write(fname,'(A,I1,A)') 'growth_S', ic, '.dat'
    open(unit=10+ic, file=trim(fname), status='replace')
    do i = 1, nsteps, 100
      t = (i - 1) * dt
      write(10+ic,'(F10.1, 2X, ES14.6)') t, r(i)*1.0d6
    end do
    close(10+ic)
  end do

  write(*,'(A)') 'Output files written: growth_S1.dat, growth_S2.dat, growth_S3.dat'

end program cloud_droplet_growth

Interactive Simulation: Cloud Droplet Growth

Python

Model condensational growth of a cloud droplet over time. Shows droplet radius vs time for different supersaturation values and the transition from condensation to collision-coalescence regime. Uses dr/dt = (S-1)/(Fd + Fk).

cloud_droplet_growth.py77 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server