CMAQ version 5.2beta (February 2017 release) Technical Documentation
Release Notes for CMAQv5.2beta - February 2017
The Community Multiscale Air Quality (CMAQ) modeling system Version 5.2 (CMAQv5.2) is scheduled for release in summer 2017. To facilitate community contributions to this model release, a “Beta” version was created and made available to external collaborators/developers in February 2017. This Beta-version will undergo extensive application and evaluation over the next few months, which may lead to additional changes before the final release this summer.
The CMAQv5.2beta repository is available from the U.S. EPA GitHub CMAQ repository.
Complete documentation for CMAQv5.2beta, including build instructions and technical features are available from the CMAQv5.2beta GitHub page.
Release Testing
The CMAS Center tested the CMAQv5.2beta release package with several versions and configurations of the Portland Group, Intel, and GNU Fortran compilers. In addition to different serial and parallel configurations, the release was tested under different science configurations. The results of the CMAS Center tests including run times for different compilers and configurations are provided below. All tests were conducted with the U.S. EPA Calnex 12km domain July 2, 2011 testing dataset. This dataset is distributed with CMAQv5.2beta to use for benchmarking the model installation.
Two classes of tests:
- Compiler tests used the default benchmark configuration with different compilers and MPI configurations.
- Configuration tests used the Portland Group 15.7 OpenMPI compiler to generate executables that exercise different scientific configurations of the release software.
Compiler flags:
- PGI: -Mfixed -O3 -Mextend
- GCC: -ffixed-form -ffixed-line-length-132 -O3 -funroll-loops -finit-character=32
- Intel: -fixed -132 -O3 -override-limits -fno-alias -mp1 -fp-model precise -fp-model source -shared-intel -openmp
- In the Intel Basic Test: -fixed -132 -O3 -openmp
- In the NoOpt Tests: -O0 with extend source and fixed line length flags
| Scenario | Compiler | netCDF | I/O API | MPI_YN (#P) | MPI | CMAQv5.2beta Timing (HH:MM:SS) |
CMAQv5.1 Timing (HH:MM:SS) |
Notes |
|---|---|---|---|---|---|---|---|---|
| Gfortran Serial | Gfortran version 4.8.1 | 4.3.3 | 3.1 (Nov 2015) | N | N/A | 8:19:51 | 7:35:30 | UNC module gcc/4.8.1 |
| Gfortran MVAPICH2 | Gfortran version 4.8.1 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | mvapich2-1.7 | 0:45:55 | 0:42:40 | |
| Intel Serial | Intel Fortran version 16.2.0 | 4.3.2 | 3.1 (Nov 2015) | N | N/A | 6:01:42 | 5:10:16 | UNC module intel/16.2 |
| Intel OpenMPI (EPA Config) | Intel Fortran version 15.0.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:34:27 | UNC module openmpi_intel/15.0 | |
| Intel OpenMPI | Intel Fortran version 16.2.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:35:29 | UNC module openmpi_intel/16.2 | |
| Intel MVAPICH2 | Intel Fortran version 16.2.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | mvapich2-1.7 | 0:36:34 | UNC module mvapich2_intel/16.2 | |
| Portland Serial | PG Fortran version 16.1 | 4.3.2 | 3.1 (Nov 2015) | N | N/A | 7:33:36 | 6:26:31 | UNC module pgi/16.1 |
| Portland OpenMPI | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:40:20 | 0:36:16 | UNC module openmpi_pgi/15.7 |
| Portland MVAPICH2 | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | mvapich2-1.7 | 0:41:43 | 0:36:16 | UNC module mvapich2_pgi/15.7 |
| Intel OpenMPI (Basic) | Intel Fortran version 15.0.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:34:27 | UNC module openmpi_intel/15.0; basic compiler flags for comparison to PGI and GCC | |
| PGI OpenMPI (NoOpt) | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 1:06:457 | UNC module openmpi_pgi/15.7; optimization -O0 | |
| Intel OpenMPI (NoOpt) | Intel Fortran version 15.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 2:00:09 | UNC module openmpi_intel/15.0; optimization -O0 | |
| Gfortran OpenMPI (NoOpt) | Gfortran version 4.8.1 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | UNC module openmpi_gcc/4.8.1; optimization -O0 | ||
| Portland OpenMPI - Gamma | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:32:33 | Gamma release with BC Fix | |
| Intel OpenMPI - Gamma | Intel Fortran version 15.0.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:27:00 | Gamma release with BC Fix | |
| Gfortran OpenMPI - Gamma | Gfortran version 4.8.1 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 1:02:36 | Gamma release with BC Fix | |
| Portland OpenMPI - Delta | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:32:12 | Gamma release with BC/IC & memory leak fix; OpenMPI with 16 CPU | |
| Portland OpenMPI - Delta | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | Y (1) | openMPI-1.4.2 | 6:09:21 | Gamma release with BC/IC & memory leak fix; OpenMPI with 1 CPU | |
| Portland Serial - Delta | PGI Fortran version 15.7 | 4.3.2 | 3.1 (Nov 2015) | N | 6:06:24 | Gamma release with BC/IC & memory leak fix; serial | ||
| Intel OpenMPI - Delta | Intel Fortran version 15.0.0 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:24:29 | Gamma release with BC/IC & memory leak fix; OpenMPI with 16 CPU | |
| Gfortran OpenMPI - Delta | Gfortran version 4.8.1 | 4.3.2 | 3.1 (Nov 2015) | Y (16) | openMPI-1.4.2 | 0:46:32 | Gamma release with BC/IC & memory leak fix; OpenMPI with 16 CPU |
| Scenario | Description | Mechanism | Notes | Timing (16 PE) |
|---|---|---|---|---|
| Benchmark Case | Online emissions processing, inline photolysis, inline lightning from MCIP RC, no windblown dust, surface HONO, bidirectional NH3 and Hg, no potential vorticity scaling | cb05e51_ae6_aq | Done; LTNGNO InLine, LTNGPARM = N, LOG_START = 2.0 | 0:40:20 |
| Halogen Chemistry | Same as Benchmark case with halogen chemistry enabled | cb05eh51_ae6_aq | Done. Turned off the diagnostic file logging. | 0:47:40 |
| No Bidi | Same as Benchmark with Hg and NH3 BiDi deactivated | cb05e51_ae6_aq | Done. set CTM_HGBIDI = N; set ABFLUX = N | 0:37:21 |
| Process Analysis | Benchmark case with IPR and IRR | ros3 | Done. Switch to Rosenbrock solver because EBI solver not supported by PA module; ran with inline process analysis | 0:54:10 |
| MOSAIC | Benchmark case with MOSAIC and additional stomatal flux files activated | cb05e51_ae6_aq | Done. set CTM_MOSAIC = Y; set CTM_FST = Y | 0:44:02 |
| New Mechanism Test | Benchmark case with toluene and chlorine chemistry | cb05tucl_ae6_aq | Done. | 0:40:30 |
| Potential vorticity UTLS exchange | Benchmark case with scaling for STE | cb05e51_ae6_aq | Uncomment potvortO3 in build. Need PV variable in METCRO3D file | 0:38:03 |
| Dust | Benchmark case with dust, including new MODIS FP input | cb05e51_ae6_aq | Done. setenv CTM_WB_DUST Y; setenv CTM_ERODE_AGLAND Y; setenv CTM_WBDUST_BELD BELD3 | 0:38:28 |
| Hourly NLDN | Benchmark with lightning NOx calculated using hourly bNLDN strikes | cb05e51_ae6_aq | Done; LTNGNO InLine, LTNGPARM = Y, USE_NLDN Y | 0:40:18 |
| POA Sensitivity | Benchmark with new POA mechanism | cb05e51_ae6nvPOA_aq | Done; | 0:34:42 |