CMAQ

From MetaCentrum
Jump to navigation Jump to search

Description

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.

License

open-source

Usage

Upcoming modulesystem change alert!

Due to large number of applications and their versions it is not practical to keep them explicitly listed at our wiki pages. Therefore an upgrade of modulefiles is underway. A feature of this upgrade will be the existence of default module for every application. This default choice does not need version number and it will load some (usually latest) version.

You can test the new version now by adding a line

source /cvmfs/software.metacentrum.cz/modulefiles/5.1.0/loadmodules

to your script before loading a module. Then, you can list all versions of cmaq and load default version of cmaq as

module avail cmaq/ # list available modules
module load cmaq   # load (default) module


If you wish to keep up to the current system, it is still possible. Simply list all modules by

module avail cmaq

and choose explicit version you want to use.

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
#!/bin/bash

## 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
cp -r $CMAQDIR $SCRATCHDIR
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 mydecriptionscript.sh

Documentation

Homepage

http://www.cmaq-model.org/