Preliminary

It is recommended to add the variables in .bashrc:

nano ~/.bashrc

  M3HOME=/usr/local/app/CMAQv5.1
  M3SCRIPT=/usr/local/app/CMAQv5.1/scripts
  M3MODEL=/usr/local/app/CMAQv5.1/models
  M3DATA=/usr/local/app/CMAQv5.1/data
  M3LIB=/usr/local/app/CMAQv5.1/lib/x86_64/gcc

source ~/.bashrc

Benchmark Data

Download and copy benchmark data if $M3HOME/data is empty:

cd /usr/local/app
wget http://cloud.csiss.gmu.edu/CMAQ/DATA.CMAQv5.1.Nov2015.tar
tar xf DATA.CMAQv5.1.Nov2015.tar

Run CMAQ

ICON

cd $M3HOME/scripts/icon
./run.icon &> run.log

Run in background:

cd $M3HOME/scripts/icon
nohup ./run.icon > run.log 2>&1 &

BCON

cd $M3HOME/scripts/bcon
./run.bcon &> run.log

Run in background:

cd $M3HOME/scripts/bcon
nohup ./run.bcon > run.log 2>&1 &

CCTM

Run in MPI mode:

cd $M3SCRIPT/cctm
nano run.cctm

  ...

  set PROC     = mpi #> serial or mpi

  ...

  #> horizontal domain decomposition
  if ( $PROC == serial ) then
     setenv NPCOL_NPROW "1 1"; set NPROCS   = 1 # single processor setting
  else
     setenv NPCOL_NPROW "4 3"; set NPROCS   = 12
  endif

  ...

  #>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   source $BASE/outck.q

   ls -l $BLD/$EXEC; size $BLD/$EXEC
  # unlimit
   limit

  #> Executable call for single PE, uncomment to invoke
  # /usr/bin/time  $BLD/$EXEC

  #> Executable call for multi PE, configure for your system
   set MPI = /usr/bin
   set MPIRUN = $MPI/mpirun
  # time $MPIRUN -r ssh -np $NPROCS $BLD/$EXEC
   time $MPIRUN -np $NPROCS $BLD/$EXEC


   date
   exit

Run CCTM:

cd $M3HOME/scripts/cctm
./run.cctm &> run.log

Run in background:

cd $M3HOME/scripts/cctm
nohup ./run.cctm > run.log 2>&1 &

Verify Outputs

Download reference benchmark data:

cd /usr/local/app
mkdir CMAQ_DATA_REF
cd CMAQ_DATA_REF
wget http://cloud.csiss.gmu.edu/CMAQ/DATA_REF.CMAQv5.1.Nov2015.tar
tar xf DATA_REF.CMAQv5.1.Nov2015.tar

Display output data:

cd $M3DATA/cctm
ncview

FAQ

“Can’t remove limit” error when running the script

Solution: comment the “unlimit” in the script

No response when running the CCTM script

alt text

Solution: The script is running, however, the output log is being recorded in run.

Memory overflow

Solution: Extend SWAP size

sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
sudo dd if=/dev/zero of=/swapfile bs=1M count=16384
sudo mkswap /swapfile
sudo swapon /swapfile