Intel OneAPI 2022.2 CMAQ-5.3.2 环境配置CentOS/Ubuntu 双系统 7 步避坑指南在空气质量模型研究领域CMAQCommunity Multiscale Air Quality Modeling System作为美国环保署开发的旗舰模型其复杂的依赖环境配置一直是科研人员的痛点。本文将基于Intel OneAPI 2022.2编译器套件在CentOS/Ubuntu双系统环境下通过7个关键步骤实现CMAQ-5.3.2的高效部署特别针对netCDF和IOAPI安装中的典型错误提供修复方案。1. 环境准备与目录规划1.1 系统基础要求CentOS 7/8或Ubuntu 20.04/22.04需已安装基础开发工具链至少50GB可用磁盘空间建议SSD存储16GB以上内存编译netCDF-Fortran时需要1.2 推荐目录结构|-- $HOME |-- Build_CMAQ |-- LIBRARIES # 存放所有依赖库 |-- src # 存放源码压缩包 |-- CMAQ_Project # CMAQ主项目目录提示所有路径建议避免包含空格或中文字符否则可能导致编译错误2. Intel OneAPI 2022.2 安装与配置2.1 基础工具包安装cd $HOME/Build_CMAQ/src wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18673/l_BaseKit_p_2022.2.0.262_offline.sh bash l_BaseKit_p_2022.2.0.262_offline.sh -a -s --components intel.oneapi.lin.ifort-compiler:intel.oneapi.lin.icc-compiler2.2 HPC工具包安装wget https://registrationcenter-download.intel.com/akdlm/irc_nas/18679/l_HPCKit_p_2022.2.0.191_offline.sh bash l_HPCKit_p_2022.2.0.191_offline.sh -a -s2.3 环境变量配置在~/.bashrc末尾添加# Intel OneAPI source /opt/intel/oneapi/setvars.sh --force export CCicc CXXicpc FCifort验证安装source ~/.bashrc ifort -v # 应显示2022.2版本号3. 并行环境部署MPICH-3.4.23.1 源码编译安装cd $HOME/Build_CMAQ/src wget https://www.mpich.org/static/downloads/3.4.2/mpich-3.4.2.tar.gz tar xzvf mpich-3.4.2.tar.gz cd mpich-3.4.2 ./configure --prefix$HOME/Build_CMAQ/LIBRARIES/mpich \ --with-devicech3 \ CCicc CXXicpc FCifort \ CPPFLAGS-fPIC \ CFLAGS-fPIC \ FFLAGS-fPIC make -j$(nproc) make install3.2 环境变量配置在~/.bashrc中添加# MPICH export PATH$HOME/Build_CMAQ/LIBRARIES/mpich/bin:$PATH export LD_LIBRARY_PATH$HOME/Build_CMAQ/LIBRARIES/mpich/lib:$LD_LIBRARY_PATH验证安装which mpicc # 应显示自定义路径下的mpicc4. 关键依赖库安装4.1 压缩库安装对比库名称版本配置参数特殊要求zlib1.2.11--prefix$HOME/Build_CMAQ/LIBRARIES/zlib需最先安装libpng1.6.37--with-zlib$HOME/Build_CMAQ/LIBRARIES/zlib依赖zlib头文件和库文件典型安装流程以zlib为例cd $HOME/Build_CMAQ/src wget http://www.zlib.net/fossils/zlib-1.2.11.tar.gz tar xzvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix$HOME/Build_CMAQ/LIBRARIES/zlib make -j$(nproc) make install4.2 cURL库安装cd $HOME/Build_CMAQ/src wget https://curl.se/download/curl-7.77.0.tar.gz tar xzvf curl-7.77.0.tar.gz cd curl-7.77.0 ./configure --prefix$HOME/Build_CMAQ/LIBRARIES/curl \ --with-zlib$HOME/Build_CMAQ/LIBRARIES/zlib \ --without-ssl make -j$(nproc) make install5. netCDF双组件安装与排错5.1 netCDF-C 4.8.0安装cd $HOME/Build_CMAQ/src wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.8.0.tar.gz tar xzvf netcdf-c-4.8.0.tar.gz cd netcdf-c-4.8.0 CPPFLAGS-I$HOME/Build_CMAQ/LIBRARIES/curl/include -fPIC \ LDFLAGS-L$HOME/Build_CMAQ/LIBRARIES/curl/lib -L$HOME/Build_CMAQ/LIBRARIES/zlib/lib \ ./configure --prefix$HOME/Build_CMAQ/LIBRARIES/netcdf \ --disable-dap \ --disable-netcdf-4 make -j$(nproc) make install常见错误1Cant find or link to the z library解决方案确认zlib库路径正确或显式添加--disable-hdf5 --disable-dap5.2 netCDF-Fortran 4.5.3安装cd $HOME/Build_CMAQ/src wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.5.3.tar.gz tar xzvf netcdf-fortran-4.5.3.tar.gz cd netcdf-fortran-4.5.3 CPPFLAGS-I$HOME/Build_CMAQ/LIBRARIES/netcdf/include -fPIC \ LDFLAGS-L$HOME/Build_CMAQ/LIBRARIES/netcdf/lib \ LD_LIBRARY_PATH$HOME/Build_CMAQ/LIBRARIES/netcdf/lib:$LD_LIBRARY_PATH \ ./configure --prefix$HOME/Build_CMAQ/LIBRARIES/netcdf make -j$(nproc) make install环境变量配置# netCDF export PATH$HOME/Build_CMAQ/LIBRARIES/netcdf/bin:$PATH export NETCDF$HOME/Build_CMAQ/LIBRARIES/netcdf export LD_LIBRARY_PATH$HOME/Build_CMAQ/LIBRARIES/netcdf/lib:$LD_LIBRARY_PATH6. IOAPI-3.2 安装与调试6.1 源码准备与目录设置cd $HOME/Build_CMAQ/src wget https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz mkdir ioapi cd ioapi tar -xvzf ../ioapi-3.2.tar.gz export BINLinux2_x86_64ifort mkdir $BIN ln -sf $HOME/Build_CMAQ/LIBRARIES/netcdf/lib/*.so $BIN/6.2 Makefile关键配置修改ioapi/Makeinclude.Linux2_x86_64ifort# 编译器设置 CC mpiicc CXX mpiicpc FC mpiifort -auto -warn notruncated_source -static-intel # OpenMP设置 OMPFLAGS -qopenmp OMPLIBS -qopenmp6.3 常见编译错误解决错误1option -openmp is not supported解决方案将所有-openmp替换为-qopenmp错误2undefined reference tonc_*解决方案在m3tools/Makefile中添加LIBS -L${OBJDIR} -lioapi -L$(NETCDF)/lib -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz完整编译命令make configure make all make install7. CMAQ-5.3.2 最终部署7.1 项目初始化cd $HOME/Build_CMAQ/src unzip CMAQ-5.3.2.zip cd CMAQ-5.3.2 sed -i s|^set CMAQ_HOME.*|set CMAQ_HOME $HOME/Build_CMAQ/CMAQ_Project| bldit_project.csh ./bldit_project.csh7.2 配置文件修改编辑$HOME/Build_CMAQ/CMAQ_Project/config_cmaq.cshcase intel: setenv IOAPI_INCL_DIR $HOME/Build_CMAQ/src/ioapi/ioapi/fixed_src setenv IOAPI_LIB_DIR $HOME/Build_CMAQ/LIBRARIES/ioapi/Linux2_x86_64ifort setenv NETCDF_LIB_DIR $HOME/Build_CMAQ/LIBRARIES/netcdf/lib setenv NETCDF_INCL_DIR $HOME/Build_CMAQ/LIBRARIES/netcdf/include setenv myLINK_FLAG -qopenmp7.3 组件编译验证cd $HOME/Build_CMAQ/CMAQ_Project/CCTM/scripts ./bldit_cctm.csh intel | tee build.log ls -l BLD_CCTM_v532_intel/CCTM_v532.exe # 验证可执行文件针对Ubuntu系统的特别注意事项需额外安装libgfortran-10-dev修改IOAPI的Makeinclude文件移除-static-intel选项使用update-alternatives配置默认编译器优先级