From MetaCentrum
Jump to: navigation, search


The EPA Community Multiscale Air Quality (CMAQ) modeling system is a third-generation air quality model. CMAQ is an active open-source development project of the U.S. EPA Atmospheric Science Modeling Division, which is designed for applications ranging from regulatory and policy analysis to understanding the complex interactions of atmospheric chemistry and physics. It is a three-dimensional Eulerian (i.e., gridded) atmospheric chemistry and transport modeling system that simulates ozone, particulate matter (PM), toxic airborne pollutants, visibility, and acidic and nutrient pollutant species throughout the troposphere. Designed as a “one-atmosphere” model, CMAQ can address the complex couplings among several air quality issues simultaneously across spatial scales ranging from local to hemispheric.


  • CMAQ version 5.0.1 (module cmaq-5.0.1): 64-bit, compiled with MPI support (system MPICH2).


Important: Because of the method the CMAQ is configured as well as performs computations (these are being defined in the CMAQ working directory), the prepared application module performs a symbolic subtree with symbolic links pointing to relevant files in the working directory. These link should be further adapted (by copying and editing) by users to comply with their needs.

1. Preparation of the working directory:

  • (necessary just once)
  • log in to a frontend and change the working directory to a directory, which you intend to use for CMAQ computations
  • load the CMAQ module
$ module add cmaq-5.0.1
  • the module creates a symbolic subtree (within the CMAQv5.0.1 directory) with symbolic links pointing to relevant files in the working directory
  • to adapt the computations to your need, besides other do:
    • copy (or link) your data to compute into the CMAQv5.0.1/data subdirectory
    • by copying and subsequent editing adapt the startup scripts to your needs (e.g., the run.cctm script)

2.1. Starting the computation -- Interactive mode:

  • ask the scheduler for an interactive job having with a desired number of nodes and processors (ppn attribute) reserved
$ qsub -I -l nodes=X:ppn=Y -l mem=Zg
Note: Do not forget to apppropriately set the amount of requested memory (mem attribute) and/or another job requirements.
  • change the working directory to a directory you intended to use for CMAQ (see section 1) and based on your needs adapt the startup scripts to your needs
    • besides other, appropriately set the variables NPCOL_NPROW and NPROC within the scripts/run.cctm script
  • start the computation (e.g., in the following order: ICON, BCON, JPROC, CCTM)

2.1. Starting the computation -- Batch mode:

  • prepare the job description script -- for example, in the following form

## set the location, where we have the CMAQ prepared (see section 1)
export CMAQDIR=/storage/brno2/home/$USER/CMAQv5.0.1/

## choose, whether you want to run CMAQ from /scratch or from the location above (CMAQ directory)
## 1. running from /scratch
export M3HOME="$SCRATCHDIR/CMAQv5.0.1/"

## 2. running from the working directory
# export M3HOME=$CMAQDIR

echo '======================== Running the ICON ========================'
( cd $M3HOME/scripts/icon && ./run.icon )

echo '======================== Running the BCON ========================'
( cd $M3HOME/scripts/bcon && ./run.bcon )

echo '======================== Running the JPROC ========================'
( cd $M3HOME/scripts/jproc && ./run.jproc )

echo '======================== Running the CCTM ========================'
( cd $M3HOME/scripts/cctm && ./run.cctm )

## if we used the /scratch, copy out the relevant output data and clean the $SCRATCHDIR
# cp ... /storage/...
rm -rf $SCRATCHDIR/*
  • pass the job description file to the scheduler together with (at least) the requested number of nodes and processors and the requested amount of memory
$ qsub -l nodes=X:ppn=Y -l mem=Zg




Program administrator