Physical Processes
Detailed description of the physical processes simulated in the Canopy-App model.
Aerosol Dry Deposition
Vegetated Areas
- Sub-canopy aerosol dry deposition velocity is calculated using a selectable resistance parameterization (see
aeroddep_opt):- Katul et al. (2010) [default]
- Zhang et al. (2001)
- Petroff et al. (2008)
The resistance formulas for laminar, impaction, and interception terms are chosen based on
aeroddep_opt(see README for details).
Urban/Non-Vegetated Areas
- Urban and bare soil aerosol dry deposition velocity is calculated using Pleim et al. (2022) equations. See subroutine
canopy_aero_ddep_pleim2022and output variableddep_aero_urban_3d. - The calculation and output are enabled/disabled by the
ifcanaeroddepoption in the namelist file. Set to.TRUE.to activate urban/non-vegetated aerosol dry deposition routines and output.
Canopy Meteorology
Wind Flow Through Vegetation
Above-Canopy Flow
The wind profile above the canopy follows Monin-Obukhov similarity theory:
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:
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:
Where:
- K_par: PAR extinction coefficient
- LAI_cumulative: Cumulative LAI from canopy top
Implementation
See module canopy_rad_mod.F90:
calc_par_profile()- PAR calculationscalc_extinction_coeff()- Light extinctioncanopy_fsun_clu()- Main radiation routine
Boundary Layer Processes
canopy_eddyx()- Main turbulence routine
Roughness Parameters
Calculated from canopy structure:
Where h is canopy height.
Canopy-Atmosphere Coupling
Feedback Mechanisms
- Canopy modification of atmospheric profiles
- Surface flux responses to atmospheric forcing
- Momentum absorption by vegetation
- 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² |
Navigation
- Model Description - Overall model framework
- Chemical Processes - Chemistry and emissions
- Parameterizations - Mathematical details
- API Reference - Implementation details