MATCH (Model for Atmospheric Transport and CHemistry) is a global offline chemical transport model driven by meteorological reanalysis data. It is used within the NASA CERES project to produce global aerosol datasets via assimilation of satellite observations (MODIS).
The model reads NCEP reanalysis fields, advects trace species on a Gaussian grid, and applies aerosol source/sink processes including emission, dry and wet deposition, and chemistry. MODIS aerosol optical depth observations are assimilated using a 3-D optimal interpolation scheme.
src/ Main model core: dynamics, physics, I/O, grid
slt/ Semi-Lagrangian transport advection
spitfire/ Spitfire spectral advection (FFT-based)
dst/ Mineral dust aerosol module (mobilization, transport, deposition)
src_scyc/ Sulfur cycle chemistry (DMS, SO2, sulfate)
src_assim/ 3-D aerosol optical depth assimilation
readers/ Meteorological input readers
ncep/ NCEP GRIB format reader
netcdf/ NetCDF format reader
utils/ Post-processing utilities (ccm2nc, hsum)
build/ Build system (Makefile, dependency generation)
control/ Run scripts (csh) and run generation tools (Python)
grib/ GRIB field listing tables for NCEP reanalysis
reform/ SAGE aerosol data reformatting tools
The build is configured via CPP defines that enable aerosol and
process modules. These are set in build/Makefile via usrCPP_DEFS_AER:
| Flag | Module | Purpose |
|---|---|---|
-DDST |
dst/ |
Mineral dust aerosol |
-DCAER |
src/caer.F90, src/caerbnd.F90 |
Carbonaceous aerosol (black/organic carbon) |
-DSCYC |
src_scyc/ |
Sulfur cycle (DMS, SO2, sulfate) |
-DWETDEP |
src/wetdepdr.F |
Wet deposition |
-DDRYDEP |
src/drydep.F, src/drydepdr.F |
Dry deposition |
-DASSIM |
src_assim/ |
AOD assimilation |
-DLINUX |
(always set) | Platform conventions |
Precision is controlled separately via usrCPP_DEFS_PRC:
-DRPREC=12and-DREALSIZE=8select double precision (r8).
main.F— Program entry, time stepping loopdyninp.F— Reads and interpolates meteorological inputmass.F,drymass.F— Mass diagnostics and conservationetadot.F— Vertical velocity computationdiv.F— Divergenceslt/advect.F— Semi-Lagrangian advectionspitfire/— Spectral advection (FFT, Lagrangian transport)advfix.F— Advection mass fixer
aphys.F— Column physics drivercldfrc.F— Cloud fractioncldwat.F— Prognostic cloud watercloud.F— Cloud processesconv_zhang.F,conv_hack.F,conv_pjr.F— Convection schemesvdiff_mod.F— Vertical diffusion
srcsnk.F— Tracer source/sink driverdst/— Dust: mobilization (dstmbl), chemistry (dstchm), deposition (dstdpsdry,dstdpswet), radiation (dstrad)src_scyc/— Sulfur: emissions (sulemis), chemistry (sulchem), boundary conditions (sulbnd,soxbnd,dmsbnd,acbnd)caer.F90,caerbnd.F90— Carbonaceous aerosol emission and transportgetsslt.F— Sea salt aerosoloptDepth.F— Aerosol optical depth computation
aod_assim_3d.F90— Main assimilation driveranalysis_3d.F90— 3-D analysis updatecovariances_3d.F90— Background error covariancesobs_operator.F90— Observation operator (model-to-obs mapping)sat_obs.F90— Satellite observation ingestionavg_kernel.F90— Averaging kernels
ccmhist.F,histout.F— History file output (CCM format)mass2nc.F,ncUtil.F— NetCDF outputrec_io.F— Record I/Orestart.F— Checkpoint/restartcontrol.F— Namelist and run controlgrid.F— Gaussian grid setupcalendar.F— Date/time management
readers/ncep/dyninp.F+grib.c,gribr.c— Read NCEP GRIB reanalysisreaders/netcdf/dyninp.F— Read NetCDF reanalysisrgi.c,rgip.F— Grid interpolationutim.c— Time utilities
ccm2nc— Convert CCM history files to netCDFhsum— Compute hash checksums of history files
Two types of include files are used throughout the Fortran source:
.hheaders — Preprocessor parameter definitions and derived-type declarations (e.g.,pmgrid.hdefines grid dimensions,dst.hdefines dust preprocessor tokens).comfiles — Fortran COMMON block declarations shared across compilation units (e.g.,control.com,grid.com,calendar.com)
Both are pulled in via #include and are required for compilation.
MATCH uses a global Gaussian grid. Grid dimensions are set at compile
time via pmgrid.h and params.h in the build directory. The standard
CERES configuration uses the NCEP T62 resolution.