当前位置: 首页 > news >正文

【WRF-CMAQ第二期】WRF-CMAQ 测试案例安装与运行

WRF-CMAQ Benchmarking Tutorial

  • WRF-CMAQ Benchmarking Tutorial
    • 系统检查(System Checks)
    • 安装 WRF-CMAQ(Installing WRF-CMAQ)
    • 克隆 CMAQ 仓库(Clone CMAQ Repository)
    • 创建自己的分支(Check Out a New Branch)
    • 在仓库外部构建和运行(Building Outside the Repo)
    • 合并 netCDF-C 与 netCDF-Fortran 库(Combining the netCDF-C and netCDF-Fortran libraries)
      • 配置 WRF-CMAQ 编译环境(Configuring the WRF-CMAQ Environment)
    • 编译 WRF-CMAQ(Compiling WRF-CMAQ)
      • 编辑 bldit_cctm.csh 脚本
  • 参考

本博客结合 WRF-CMAQ Benchmarking Tutorial,详细解释WRF-CMAQ 测试案例的安装与运行。
在这里插入图片描述

WRF-CMAQ Benchmarking Tutorial

教程目的(Purpose)

本指南的目标是帮助用户完成 WRF-CMAQ 测试案例 的安装与运行,具有以下两个主要目的:

  1. 熟悉 WRF-CMAQ 套件的工作流程
    让用户了解 WRF(Weather Research and Forecasting Model)与 CMAQ(Community Multiscale Air Quality Model)如何协同工作。

  2. 验证软件安装是否成功(Benchmarking)
    通过运行标准化测试案例,确认在当前系统中 WRF-CMAQ 是否正确编译并能正常运行。

📝 建议:强烈建议用户先完成以下内容以了解各个程序模块:

  • CMAQ Benchmark Tutorial(CMAQ 基准测试教学)
  • WRF Installation Guide(WRF 安装指南)

系统检查(System Checks)

CMAQ 运行需要特定的硬件与软件配置,包括编译器、库文件、系统设置等。

👉 应查阅官方教程:Preparing Your Compute Environment for CMAQ Simulations 来确保你的计算环境已满足 CMAQ 的要求。

安装 WRF-CMAQ(Installing WRF-CMAQ)

⚠️ 如果你已经按照 CMAQ_UG_tutorial_build_library_gcc_support_nc4.md 教程成功安装了 netCDF-CnetCDF-Fortran 库,并放在同一个目录下,那么可以跳过库安装部分,直接跳到 配置环境部分(Configuring the WRF-CMAQ environment)。

克隆 CMAQ 仓库(Clone CMAQ Repository)

在希望安装 WRF-CMAQ 的目录下,运行以下命令从 EPA 的 GitHub 上获取 CMAQv5.5 的代码:

git clone -b main https://github.com/USEPA/CMAQ.git CMAQ_REPO

这会创建一个名为 CMAQ_REPO 的文件夹,里面包含 CMAQ 的全部源代码与资源。

创建自己的分支(Check Out a New Branch)

即使你不打算修改代码,也建议你在仓库中创建一个新的分支:

cd CMAQ_REPO
git checkout -b my_branch

📌 这样做的好处是:

  • 保持 main 分支干净无修改,方便将来拉取更新。
  • my_branch 中修改不会影响原始代码,也不影响版本控制。

在仓库外部构建和运行(Building Outside the Repo)

仓库顶层有一个脚本:bldit_project.csh,它的作用是:

  • 自动复制 CMAQ 的文件夹结构;
  • 将构建脚本和运行脚本从仓库复制到你指定的目录中;
  • 这样,你可以在不影响 Git 仓库的情况下自由修改脚本

设置安装路径:

打开 bldit_project.csh,查找并设置如下变量:

set CMAQ_HOME = [your_install_path]/CMAQv5.5

[your_install_path] 替换为你希望放置 CMAQ 的绝对路径,如:

set CMAQ_HOME = /home/user/models/CMAQv5.5

执行脚本:

./bldit_project.csh

这个脚本会在你指定的 $CMAQ_HOME 目录下创建一个完整的 WRF-CMAQ 项目文件夹结构,从那里你将进行模型编译与运行。

合并 netCDF-C 与 netCDF-Fortran 库(Combining the netCDF-C and netCDF-Fortran libraries)

构建 WRF-CMAQ 需要多个库文件和头文件(include files)。由于这些文件通常不在系统默认路径,你必须通过环境变量(environment variables)显式指定它们的位置

这些环境变量在项目根目录中的脚本 config_cmaq.csh 中设置。


创建合并目录步骤

WRF 源代码要求你已经将 netCDF-CnetCDF-Fortran 合并至一个目录中。如果尚未完成,请按照以下指令操作:

cd /[your_install_path]/LIBRARIES_gcc
mkdir netcdf_combined
cp -rp ./netcdf-fortran-4.4.5-gcc9.1.0/* ./netcdf_combined/
cp -rp ./netcdf-c-4.7.0-gcc9.1.0/* ./netcdf_combined/

📌 说明:

  • cp -rp 表示复制文件夹及其内容并保留权限。
  • 你可以根据自己实际安装的版本修改文件夹名称。

配置 WRF-CMAQ 编译环境(Configuring the WRF-CMAQ Environment)

你需要编辑 config_cmaq.csh 脚本(位于 WRF-CMAQ 项目根目录)来设置环境变量。

设置 NETCDF、IOAPI 和 WRF_ARCH:

找到大约在 第 148 行 的区域:

#> I/O API and netCDF for WRF-CMAQ 
setenv NETCDF [your_install_path]/LIBRARIES_gcc/netcdf_combined
setenv IOAPI  [your_install_path]/LIBRARIES_gcc/ioapi-3.2
setenv WRF_ARCH 34
  • NETCDF: 指向你刚刚合并的 netCDF 文件夹。
  • IOAPI: 指向你安装的 I/O API 目录。
  • WRF_ARCH: 设置为 34 表示你使用的是 GNU 编译器(gfortran/gcc)+ dmpar 并行模式

📌 WRF_ARCH 的编号代表不同的平台与编译器组合,编号 34 是:

GNU (gfortran/gcc) + dmpar(分布式内存并行)

  1. (serial)    2. (smpar)   3. (dmpar)      4. (dm+sm)   PGI (pgf90/gcc)5. (serial)    6. (smpar)   7. (dmpar)      8. (dm+sm)   PGI (pgf90/pgcc): SGI MPT9. (serial)   10. (smpar)  11. (dmpar)     12. (dm+sm)   PGI (pgf90/gcc): PGI accelerator13. (serial)   14. (smpar)  15. (dmpar)     16. (dm+sm)   INTEL (ifort/icc)17. (dm+sm)   INTEL (ifort/icc): Xeon Phi (MIC architecture)18. (serial)  19. (smpar)  20. (dmpar)      21. (dm+sm)   INTEL (ifort/icc): Xeon (SNB with AVX mods)22. (serial)  23. (smpar)  24. (dmpar)      25. (dm+sm)   INTEL (ifort/icc): SGI MPT26. (serial)  27. (smpar)  28. (dmpar)      29. (dm+sm)   INTEL (ifort/icc): IBM POE30. (serial)               31. (dmpar)                    PATHSCALE (pathf90/pathcc)32. (serial)  33. (smpar)  34. (dmpar)      35. (dm+sm)   GNU (gfortran/gcc)36. (serial)  37. (smpar)  38. (dmpar)      39. (dm+sm)   IBM (xlf90_r/cc_r)40. (serial)  41. (smpar)  42. (dmpar)      43. (dm+sm)   PGI (ftn/gcc): Cray XC CLE44. (serial)  45. (smpar)  46. (dmpar)      47. (dm+sm)   CRAY CCE (ftn $(NOOMP)/cc): Cray XE and XC48. (serial)  49. (smpar)  50. (dmpar)      51. (dm+sm)   INTEL (ftn/icc): Cray XC52. (serial)  53. (smpar)  54. (dmpar)      55. (dm+sm)   PGI (pgf90/pgcc)56. (serial)  57. (smpar)  58. (dmpar)      59. (dm+sm)   PGI (pgf90/gcc): -f90=pgf9060. (serial)  61. (smpar)  62. (dmpar)      63. (dm+sm)   PGI (pgf90/pgcc): -f90=pgf9064. (serial)  65. (smpar)  66. (dmpar)      67. (dm+sm)   INTEL (ifort/icc): HSW/BDW68. (serial)  69. (smpar)  70. (dmpar)      71. (dm+sm)   INTEL (ifort/icc): KNL MIC72. (serial)  73. (smpar)  74. (dmpar)      75. (dm+sm)   FUJITSU (frtpx/fccpx): FX10/FX100 SPARC64 IXfx/XlfxEnter selection [1-75] : ------------------------------------------------------------------------

编译 WRF-CMAQ(Compiling WRF-CMAQ)

⚠️ 注意:ICON 和 BCON 是处理初始和边界条件的预处理器,但在本测试案例中,这些数据已经提供,因此可以跳过编译 ICON 和 BCON。

编辑 bldit_cctm.csh 脚本

步骤 1:复制原始构建脚本并重命名

cd CCTM/scripts
cp bldit_cctm.csh bldit_wrf4.5.1_cctmv55.csh

步骤 2:启用 WRF-CMAQ 双向耦合构建选项

编辑 bldit_wrf4.5.1_cctmv55.csh

找到并取消注释下面这行:

#> Two-way WRF-CMAQ 
set build_twoway                      #> uncomment to build WRF-CMAQ twoway;

步骤 3:确保启用了 WRF_CMAQ 环境变量

执行:

grep WRF_CMAQ bldit_wrf4.5.1_cctmv55.csh

应输出:

setenv WRF_CMAQ 1

步骤 4:设置使用的 WRF 版本

确认以下代码块存在并设置为 release-v4.5.1

if ( $?build_twoway ) thenset WRF_VRSN = release-v4.5.1
endif

步骤 5:设置构建目录名称(避免覆盖)

确保 build 目录名包含 wrfcmaq

if ( $?Debug_CCTM ) thenset Bld = $CMAQ_HOME/CCTM/scripts/BLD_CCTM_${VRSN}_${compilerString}_${Mechanism}_${DepMod}_wrfcmaq_debug
elseset Bld = $CMAQ_HOME/CCTM/scripts/BLD_CCTM_${VRSN}_${compilerString}_${Mechanism}_${DepMod}_wrfcmaq
endif

配置科学模块参数(Configure CMAQ Benchmark Science Modules)

基准测试案例使用以下模块设置:

模块类型选项
并行方式Multiprocessor Simulation
三维平流方案wrf_cons
水平扩散Multiscale
垂直扩散ACM2_M3Dry
干沉降M3Dry
化学求解器EBI
气溶胶模块AERO7
云模块ACM_AE7
化学机制cb6r3_ae7_aq
联机生物源排放启用
烟流上升启用

在编译脚本中设置这些:

打开你复制的脚本 bldit_wrf4.5.1_cctmv55.csh,根据注释指引设置以下变量:

  • ChemMech = cb6r3_ae7_aq
  • AeroMech = aero7
  • CloudMech = acm_ae7
  • DepMod = m3dry
  • InlineBio = Y
  • PlumeRise = Y

这些配置将确保构建出来的模型与官方基准测试一致。

INCLUDE_MODULES =    $(MODULE_SRCH_FLAG) \$(ESMF_MOD_INC) $(ESMF_LIB_FLAGS) \-I$(WRF_SRC_ROOT_DIR)/main \-I$(WRF_SRC_ROOT_DIR)/external/io_netcdf \-I$(WRF_SRC_ROOT_DIR)/external/io_int \-I$(WRF_SRC_ROOT_DIR)/frame \-I$(WRF_SRC_ROOT_DIR)/share \-I$(WRF_SRC_ROOT_DIR)/phys \-I$(WRF_SRC_ROOT_DIR)/wrftladj \-I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \-I$(NETCDFPATH)/include \-I$(MPIPATH)/include \REGISTRY        =    Registry
CC_TOOLS_CFLAGS = -DNMM_CORE=$(WRF_NMM_CORE)LIB             =    $(LIB_BUNDLED) $(LIB_EXTERNAL) $(LIB_LOCAL) $(LIB_WRF_HYDRO)  $(NETCDF4_DEP_LIB)
LDFLAGS         =    $(OMP) $(FCFLAGS) $(LDFLAGS_LOCAL)
ENVCOMPDEFS     =     -DWRF_CMAQ
WRF_CHEM        =       0
CPPFLAGS        =    $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG)
NETCDFPATH      =    /proj/ie/proj/CMAS/CMAQ/WRF-CMAQv5.5/build/LIBRARIES_gcc11.2
MPIPATH         =    /nas/sycamore/apps/openmpi/5.0.5/
HDF5PATH        =
WRFPLUSPATH     =
RTTOVPATH       =
PNETCDFPATH     =
ADIOS2PATH      =

参考

http://www.dtcms.com/a/498983.html

相关文章:

  • 汕头seo网站排名免费制作网页的软件有哪些
  • 韩国设计网站推荐yandex搜索引擎入口
  • 2025年机器视觉软件平台哪个好?场景适配视角下的优质实例解析
  • 【C++/Lua联合开发】 (一) Lua基础知识
  • 从前序与中序遍历序列构造二叉树
  • 学习go语言
  • Linux中工作队列使用
  • 金融工程(一)
  • LeetCode 每日一题 2025/10/13-2025/10/19
  • C++ 面试基础考点 模拟题 力扣 38. 外观数列 题解 每日一题
  • 辽阳企业网站建设费用企业推广软文
  • 天津实体店网站建设深圳宝安区住建局官网
  • shell编程语言---sed
  • iframe实战:跨域通信与安全隔离
  • 购物网站的建设意义html可视化编辑软件
  • Bootstrap 字体图标
  • PVE 9.0 定制 Debian 13 镜像 支持 Cloud-Init 快速部署虚拟机【模板篇】
  • 长春建站模板搭建高端品牌包包都有哪些
  • ai周公解梦抖音快手微信小程序看广告流量主开源
  • 【无标题】大模型-高效优化技术全景解析:微调 量化 剪枝 梯度裁剪与蒸馏 下
  • 自动化信息交付:深度解析AI驱动的每日简报系统架构与实现
  • 做微信公众号第三网站男女做视频观看网站
  • 定时任务Quartz原理详解
  • Rethinking SSIM-Based Optimization in Neural Field Training
  • rocketmq和kafka的区别之顺序消费
  • 套路有*道龙激光-乐多刀销*游戏程序系统方案
  • Angular 2 数据显示
  • 如何快速做单页面网站怎么查网站建设是哪家公司
  • 外国网站备案网站板块设置
  • 从 ClickHouse 到 StarRocks 存算分离: 携程 UBT 架构升级实践