【CMAQ 模型第二期】运行 CMAQ 基准测试(Benchmark Case)
目录
- 教程结构及详解
- 参考
本博客对美国环保署(US EPA)CMAQ 官方 GitHub 文档中 基准测试教程文件(CMAQ_UG_tutorial_benchmark.md
) 进行详细的分步解读与说明,适用于希望验证 CMAQ 正确安装与运行的用户。
GiHub-CMAQ Installation & Benchmarking Tutorial for CB6R5
教程目的:运行 CMAQ 基准测试(Benchmark Case)
该教程旨在帮助用户运行一个**为期两天(2-day)**的 CMAQ 模拟案例,验证其 CMAQ 安装是否成功、配置是否正确,并提供一个标准输出参考。
教程结构及详解
步骤 | 内容 |
---|---|
Step 1 | 下载并解压基准输入包 |
Step 2 | 设置环境变量和路径 |
Step 3 | 构建 CMAQ 可执行文件 |
Step 4 | 配置运行脚本 |
Step 5 | 启动模拟运行 |
Step 6 | 检查输出文件 |
Step 7 | 对比基准结果 |
Step 8 | 故障排查与调试 |
Install CMAQ
git clone -b main https://github.com/USEPA/CMAQ.git CMAQ_REPO
Step 1: 获取基准测试数据
- 下载输入数据包(通常为
.tar.gz
格式):- 包含气象文件、排放文件、初始边界条件等;
- 文件可从 EPA 官方 CMAQ 数据发布页面或 CMAS Center 获取。
cd $CMAQ_DATA
wget https://cmaq-release-benchmark-data-for-easy-download.s3.amazonaws.com/v5_5/CMAQv5.4_2018_12NE3_Benchmark_2Day_Input.tar.gz
tar -xzvf CMAQv5.4_2018_12NE3_Benchmark_2Day_Input.tar.gzmkdir ref_output
cd ref_output
wget https://cmaq-release-benchmark-data-for-easy-download.s3.amazonaws.com/v5_5/output_CCTM_v55_gcc_Bench_2018_12NE3_cb6r5_ae7_aq_m3dry.tar.gz
tar -xzvf output_CCTM_v55_gcc_Bench_2018_12NE3_cb6r5_ae7_aq_m3dry.tar.gz
- 解压数据包至一个工作目录,如:
tar -xzvf CMAQv5.5_Benchmark_Inputs.tar.gz
Step 2: 设置环境变量和路径
-
设置
CMAQ_HOME
环境变量(你的 CMAQ 安装主目录):export CMAQ_HOME=/path/to/CMAQ
-
设置
CMAQ_BLD
(构建目录)、CMAQ_DATA
(数据目录)等变量。 -
加载所需的模块(例如编译器、MPI、NetCDF):
module load intel/19.0.5 module load openmpi module load netcdf
Step 3: 构建 CMAQ 可执行文件
如果尚未构建 CMAQ:
-
进入构建目录:
cd $CMAQ_HOME/CCTM/scripts
-
编辑构建脚本
bldit_cctm.csh
:- 指定编译器类型(如
intel
或gnu
) - 设置 I/O API 和 NetCDF 路径
- 指定编译器类型(如
-
运行构建脚本生成
CCTM_v55.exe
:./bldit_cctm.csh intel
Step 4: 设置运行脚本
-
复制并编辑运行脚本模板
run_cctm_Bench_2016_12US1.csh
-
修改以下内容:
- 设置运行起止时间(如
START_DATE
,END_DATE
) - 设置输入数据路径(
MET_PATH
,EMIS_PATH
,ICON_PATH
,BCON_PATH
) - 设置输出路径(
OUTDIR
) - 设置并行计算核心数(如
nprocs
)
- 设置运行起止时间(如
-
示例设置:
setenv START_DATE 20160701 setenv END_DATE 20160702 setenv OUTDIR /path/to/output setenv MET_PATH /path/to/met
Step 5: 执行运行脚本
运行测试:
./run_cctm_Bench_2016_12US1.csh >& cctm_benchmark.log &
- 日志文件将记录所有运行信息;
- 可使用
tail -f cctm_benchmark.log
实时查看进程。
Step 6: 检查输出结果
-
输出文件包括:
- 模拟结果(如
CCTM_OUTPUT_CONC_v55_20160701.nc
) - 日志文件(如
CTM_LOG_000.v55
)
- 模拟结果(如
-
可使用
ncdump
或 Python(如xarray
)查看 NetCDF 输出:ncdump -h CCTM_OUTPUT_CONC_v55_20160701.nc
Step 7: 与基准结果对比
- 下载官方提供的 benchmark 输出文件;
- 使用工具对比模拟输出与基准结果(如差值百分比):
- 可使用 Python 脚本或 NCO 工具(如
ncdiff
、ncks
);
- 可使用 Python 脚本或 NCO 工具(如
- 主要比较变量包括:
- PM2.5、O₃、NOx、SO₂ 等浓度值;
- 模拟稳定性(如无 NaN 或错误退出)。
Step 8: 故障排查(Debugging)
如运行失败,请检查:
- 日志文件是否有 fatal error;
- 是否缺失输入文件;
- 环境变量是否正确加载;
- 编译器和库版本是否兼容;
- 并行设置是否正确(如 OpenMPI 设置);