WRF模型CMake编译系统使用指南

WRF模型CMake编译系统使用指南

WRF The official repository for the Weather Research and Forecasting (WRF) model WRF 项目地址: https://gitcode.com/gh_mirrors/wr/WRF

概述

WRF(Weather Research and Forecasting)模型是一个广泛应用于气象研究和业务预报的中尺度数值天气预报系统。随着项目发展,WRF团队引入了基于CMake的现代化编译系统,相比传统编译方式提供了更灵活的配置选项和更清晰的构建流程。本文将详细介绍如何使用这套新的编译系统来构建和运行WRF模型。

基础编译流程

1. 配置阶段

在WRF源码目录下执行以下命令开始配置:

./configure_new

这个命令会执行以下操作:

  1. 检测系统中可用的编译器
  2. 生成_build/wrf_config.cmake配置文件
  3. 通过交互式对话框引导用户完成配置选择

重要注意事项

  • 必须确保所有子模块已正确克隆
  • 系统需要安装netCDF库,但不需要设置环境变量
  • 配置程序会自动检测路径中的nc-config来确定netCDF配置

2. 编译阶段

配置完成后,执行编译命令:

./compile_new [-j N]  # N为并行编译的线程数

编译成功后,会在install/bin/目录下生成realidealwrf可执行文件,同时这些文件也会被复制到相应的测试目录中。

3. 运行模型

根据不同的模拟类型,运行方式有所不同:

理想案例(如b_wave, hill2d_x等)
cd install/test/<case_name>/
./ideal  # 生成wrfinput_d01文件
./wrf    # 运行WRF模型
实际案例
cd install/test/<case_name>/
# 将WPS生成的met_em.*文件放入当前目录
./real  # 生成边界条件和输入文件
./wrf   # 运行WRF模型
MPI并行运行
mpirun -np <进程数> wrf

高级配置选项

configure_new脚本提供了多种高级配置选项:

./configure_new [选项] [-- <CMake配置选项>]

常用选项包括:

| 选项 | 描述 | |------|------| | -p | 预选配置描述(跳过交互式选择) | | -x | 跳过CMake选项提示 | | -d | 指定自定义构建目录 | | -i | 指定自定义安装目录 | | -- | 直接传递CMake选项 |

示例

./configure_new -p GNU -x -- -DWRF_CORE=ARW -DWRF_NESTING=BASIC -DWRF_CASE=EM_REAL

依赖管理

CMake系统支持通过*_ROOT变量指定依赖库路径,主要包含:

  • 必需依赖:netCDF_ROOT, netCDF-Fortran_ROOT, ZLIB_ROOT
  • 条件依赖:MPI_ROOT, OpenMP_ROOT, HDF5_ROOT

清理系统

cleanCMake.sh脚本提供了灵活的清理选项:

./cleanCMake.sh [选项]

主要清理模式:

| 选项 | 功能 | |------|------| | -c | 基本清理(默认) | | -b | 移除安装的二进制文件 | | -f | 移除构建和安装目录 | | -a | 执行完整清理(相当于-c -b -f) |

目录指定

./cleanCMake.sh -b -d _buildCustomDirectory

最佳实践建议

  1. 多配置管理:利用-d-i选项维护多个独立的构建配置
  2. 依赖隔离:对于系统中有多个版本依赖库的情况,使用*_ROOT变量明确指定路径
  3. 增量编译:小修改后直接重新运行compile_new即可增量编译
  4. 问题排查:遇到构建问题时,尝试cleanCMake.sh -a完全清理后重新构建

这套基于CMake的构建系统为WRF模型提供了更现代化、更灵活的编译管理方式,特别适合需要维护多个不同配置的研究人员和生产环境使用。通过掌握这些高级功能,用户可以更高效地管理WRF模型的编译和部署工作。

WRF The official repository for the Weather Research and Forecasting (WRF) model WRF 项目地址: https://gitcode.com/gh_mirrors/wr/WRF

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩烨琰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值