WRF模型CMake编译系统使用指南
概述
WRF(Weather Research and Forecasting)模型是一个广泛应用于气象研究和业务预报的中尺度数值天气预报系统。随着项目发展,WRF团队引入了基于CMake的现代化编译系统,相比传统编译方式提供了更灵活的配置选项和更清晰的构建流程。本文将详细介绍如何使用这套新的编译系统来构建和运行WRF模型。
基础编译流程
1. 配置阶段
在WRF源码目录下执行以下命令开始配置:
./configure_new
这个命令会执行以下操作:
- 检测系统中可用的编译器
- 生成
_build/wrf_config.cmake
配置文件 - 通过交互式对话框引导用户完成配置选择
重要注意事项:
- 必须确保所有子模块已正确克隆
- 系统需要安装netCDF库,但不需要设置环境变量
- 配置程序会自动检测路径中的
nc-config
来确定netCDF配置
2. 编译阶段
配置完成后,执行编译命令:
./compile_new [-j N] # N为并行编译的线程数
编译成功后,会在install/bin/
目录下生成real
、ideal
和wrf
可执行文件,同时这些文件也会被复制到相应的测试目录中。
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
最佳实践建议
- 多配置管理:利用
-d
和-i
选项维护多个独立的构建配置 - 依赖隔离:对于系统中有多个版本依赖库的情况,使用
*_ROOT
变量明确指定路径 - 增量编译:小修改后直接重新运行
compile_new
即可增量编译 - 问题排查:遇到构建问题时,尝试
cleanCMake.sh -a
完全清理后重新构建
这套基于CMake的构建系统为WRF模型提供了更现代化、更灵活的编译管理方式,特别适合需要维护多个不同配置的研究人员和生产环境使用。通过掌握这些高级功能,用户可以更高效地管理WRF模型的编译和部署工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考