Skip to content

Physical Processes

Detailed description of the physical processes simulated in the Canopy-App model.

Canopy Meteorology

Wind Flow Through Vegetation

Above-Canopy Flow

The wind profile above the canopy follows Monin-Obukhov similarity theory:

! Above-canopy wind profile
u(z) = (u_star / kappa) * [log((z - d) / z0) + psi_m(z/L)]

Parameters: - u_star: Friction velocity (m/s) - kappa: von Kármán constant (0.41) - d: Displacement height (m) - z0: Roughness length (m) - L: Obukhov length (m) - psi_m: Momentum stability function

Within-Canopy Flow

Wind speed decreases exponentially through the canopy:

! In-canopy wind profile
u(z) = u_h * exp(alpha * (z/h - 1.0))

Where: - alpha = LAD_profile * Cd * h (attenuation coefficient) - LAD_profile: Leaf area density profile (m²/m³) - Cd: Drag coefficient (~0.2-0.3) - h: Canopy height (m)

Implementation

See module canopy_wind_mod.F90: - calc_wind_most() - Main wind calculation routine

Temperature Profiles

Energy Balance

  • rho: Air density (kg/m³)

Radiation Transfer

Photosynthetically Active Radiation (PAR)

PAR calculation for photosynthesis and biogenic emissions:

! PAR attenuation through canopy
PAR(z) = PAR_top * exp(-K_par * LAI_cumulative(z))

Where: - K_par: PAR extinction coefficient - LAI_cumulative: Cumulative LAI from canopy top

Implementation

See module canopy_rad_mod.F90:

  • calc_par_profile() - PAR calculations
  • calc_extinction_coeff() - Light extinction
  • canopy_fsun_clu() - Main radiation routine

Boundary Layer Processes

  • canopy_eddyx() - Main turbulence routine

Roughness Parameters

Calculated from canopy structure:

! Roughness length
z0 = 0.1 * h

! Displacement height
d = 0.7 * h

Where h is canopy height.

Canopy-Atmosphere Coupling

Feedback Mechanisms

  1. Canopy modification of atmospheric profiles
  2. Surface flux responses to atmospheric forcing
  3. Momentum absorption by vegetation
  4. Scalar transport through canopy layers

Implementation

See modules: - canopy_profile_mod.F90 - Vertical profile calculations - canopy_utils_mod.F90 - Interpolation and utilities

Model Numerics

Vertical Grid

Layer Structure

  • Exponential spacing for fine resolution near ground
  • Uniform spacing through main canopy
  • Stretched grid above canopy

Grid Generation

! Exponential grid near surface
do k = 1, nlevs_surface
   z(k) = z_min * exp((k-1) * dz_factor)
end do

! Uniform grid in canopy
do k = nlevs_surface+1, nlevs_canopy
   z(k) = z_canbot + (k - nlevs_surface) * dz_uniform
end do

Time Integration

Stability Criteria

Time step limited by: - CFL condition: dt < dz / u_max - Diffusion condition: dt < dz² / (2 * K_max)

Validation Data

Field Observations

Model validated against measurements from: - AmeriFlux tower sites - FLUXNET database - Specialized canopy experiments

Typical Performance

Variable Correlation (R²) RMSE
Wind Speed 0.85-0.95 0.5-1.0 m/s
Temperature 0.90-0.98 1.0-2.0 K
Humidity 0.75-0.90 5-10%
Radiation 0.95-0.99 10-20 W/m²