保姆级教程:在Ubuntu 20.04上从源码编译WRF4.3和WPS(含依赖库完整配置)

张开发
2026/4/20 10:04:26 15 分钟阅读

分享文章

保姆级教程:在Ubuntu 20.04上从源码编译WRF4.3和WPS(含依赖库完整配置)
从零构建WRF4.3气象模型Ubuntu 20.04全栈编译指南当第一次接触WRFWeather Research and Forecasting模型时许多研究者都会面临一个现实问题如何在现代Linux系统上搭建完整的编译环境不同于直接安装二进制包从源码构建WRF及其前处理系统WPSWRF Preprocessing System需要处理复杂的依赖关系和环境配置。本文将基于Ubuntu 20.04 LTS带你一步步完成WRF4.3和WPS的完整部署特别针对新版Linux发行版中的依赖库冲突、编译器选择等实际问题提供解决方案。1. 系统环境准备与编译器配置在开始编译WRF之前确保系统环境满足基本要求是成功的第一步。Ubuntu 20.04默认提供的工具链已经足够新但仍需验证关键组件的兼容性。1.1 基础工具链验证打开终端执行以下命令检查基础编译器是否安装gcc --version gfortran --version理想情况下你应该看到类似这样的输出gcc (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0如果未安装可以通过以下命令安装完整工具链sudo apt update sudo apt install build-essential gfortran m4 csh1.2 测试编译器兼容性WRF对Fortran和C编译器的兼容性有严格要求。创建一个测试目录并下载官方测试套件mkdir WRF_TESTS cd WRF_TESTS wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar tar -xvf Fortran_C_tests.tar运行基础测试脚本./TEST_1_fortran_only_fixed.f ./TEST_2_fortran_only_free.f90 ./TEST_3_c_only.c所有测试应输出SUCCESS。如果遇到问题可能需要调整编译器选项或考虑使用不同版本的编译器。2. 依赖库的现代化安装方案WRF依赖多个科学计算库这些库在新版Ubuntu中的安装方式与旧版系统有所不同。我们采用分步安装策略确保各库版本兼容。2.1 依赖库安装矩阵依赖库推荐版本安装方式关键配置参数NetCDF4.7.4源码编译--disable-dap --enable-sharedMPICH3.3.2系统包源码--enable-fastallJasper2.0.14系统包N/Azlib1.2.11系统包N/Alibpng1.6.37系统包N/A2.2 分步安装指南首先安装可以通过系统包管理器获取的依赖sudo apt install libnetcdf-dev libnetcdff-dev mpich libjasper-dev zlib1g-dev libpng-dev对于需要源码编译的组件建议创建独立的构建环境export WRF_LIB_DIR$HOME/wrf_libs mkdir -p $WRF_LIB_DIRNetCDF自定义安装可选如果系统提供的NetCDF版本不兼容可以从源码编译wget https://github.com/Unidata/netcdf-c/archive/v4.7.4.tar.gz tar xzf v4.7.4.tar.gz cd netcdf-c-4.7.4 ./configure --prefix$WRF_LIB_DIR/netcdf --disable-dap make make install3. WRF核心编译流程3.1 源码获取与配置直接从官方Git仓库克隆最新代码git clone --branch release-v4.3 https://github.com/wrf-model/WRF.git cd WRF运行配置脚本时选择适合你系统的选项34. (dmpar) GNU/gfortran (gcc/gfortran) (ARCH: x86_64) 1. Basic nesting3.2 编译优化技巧在编译大型模型如WRF时合理利用并行编译可以显著缩短时间export J-j$(nproc) ./compile em_real $J log.compile编译过程中常见问题及解决方案内存不足添加交换空间或使用-j2减少并行度NetCDF链接错误检查NETCDF环境变量是否指向正确路径Fortran模块不兼容尝试使用--disable-fpe配置选项4. WPS系统集成与验证4.1 环境变量配置编译WPS前必须设置正确的WRF路径和库路径export WRF_DIR$HOME/WRF export JASPERLIB/usr/lib/x86_64-linux-gnu export JASPERINC/usr/include/jasper4.2 分步编译流程git clone https://github.com/wrf-model/WPS.git cd WPS ./clean ./configure # 选择与WRF相同的选项 ./compile log.compile验证生成的可执行文件ls -l *.exe # 应看到geogrid.exe、ungrib.exe和metgrid.exe5. 实战调试与性能优化5.1 常见错误排查表错误现象可能原因解决方案编译中途退出内存不足增加交换空间或减少并行度NetCDF相关链接错误路径配置错误检查NETCDF环境变量MPI函数未定义MPI库未正确链接重新配置并确认MPI路径执行时段错误(Segmentation Fault)编译器优化过激在configure.wrf中添加-O1优化选项5.2 性能调优建议编译器优化尝试不同的优化级别-O2或-O3并行配置根据CPU核心数调整numtiles参数内存管理对于大型模拟考虑使用external/ESMF模块在完成所有安装后建议运行标准测试案例验证系统稳定性。WRF用户官网提供了多个测试案例可以从简单案例开始逐步验证你的安装。

更多文章