WRF4.2安装避坑指南:从环境配置到编译成功的完整流程

张开发
2026/4/5 12:47:03 15 分钟阅读

分享文章

WRF4.2安装避坑指南:从环境配置到编译成功的完整流程
1. 环境准备从零搭建WRF4.2的基石第一次安装WRF4.2时我在环境配置环节卡了整整三天。后来才发现90%的编译失败都源于基础环境没打好。咱们先搞定这个地基后面才能稳如磐石。1.1 编译器全家桶安装gcc、gfortran这些编译器就像盖房子的工具缺一锤子都砌不好墙。实测在Ubuntu 20.04上最稳的组合是sudo apt update sudo apt install gfortran-9 gcc-9 g-9 cpp-9 make m4这里有个坑别直接用默认的gcc版本我遇到过gcc-11不兼容的情况。强制指定版本更保险sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 60 sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-9 60验证是否装对gcc --version # 应该显示9.x版本 gfortran --version1.2 目录结构规划见过太多人把WRF装得乱七八糟最后自己都找不到文件。推荐这样建目录mkdir -p ~/WRF_WorkStation/{Libraries,WRFV4.2,WPSV4.2,test}这个结构优势在于Libraries集中存放所有依赖库WRFV4.2和WPSV4.2并列放置必须同级目录test文件夹专门放测试用例2. 依赖库安装最容易翻车的重灾区去年帮学弟调试时发现netCDF库装错版本会导致后续连环报错。这些库就像房子的钢筋骨架必须精确到位。2.1 netCDF编译实战先下载netcdf-4.1.3.tar.gz到Libraries目录然后tar xzf netcdf-4.1.3.tar.gz cd netcdf-4.1.3 ./configure --prefix$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared make -j$(nproc) # 启用多核编译 make install关键点--disable-shared必须加否则WRF编译时会报符号冲突遇到权限问题别急着sudo先检查$DIR路径权限最后一定要看到Congratulations!提示才算成功2.2 MPI环境配置技巧推荐用mpich-3.0.4而不是openmpi兼容性更好./configure --prefix$DIR/mpich --with-devicech3 FFLAGS-fallow-argument-mismatch make make install注意这个-fallow-argument-mismatch参数是关键新版本gfortran对参数检查更严格不加这个会报类型不匹配错误。3. 环境变量配置那些手册没告诉你的细节.bashrc文件就像控制中心的开关面板我见过有人因为漏配变量导致编译通过但运行时崩溃。3.1 完整环境变量模板把这组配置加到~/.bashrc末尾export DIR~/WRF_WorkStation/Libraries export NETCDF$DIR/netcdf export PATH$NETCDF/bin:$PATH export WRFIO_NCD_LARGE_FILE_SUPPORT1 export LD_LIBRARY_PATH$DIR/netcdf/lib:$DIR/mpich/lib:$LD_LIBRARY_PATH重点检查所有路径必须使用绝对路径变量名严格区分大小写改完后执行source ~/.bashrc立即生效3.2 验证环境是否健全运行这套测试命令缺一不可# 基础编译器测试 gfortran TEST_1_fortran_only_fixed.f ./a.out # MPInetCDF联合测试 mpif90 -c 02_fortrancnetcdfmpi_f.f mpirun -np 4 ./a.out # 应该看到4个进程的输出如果这里报libmpi.so找不到基本是LD_LIBRARY_PATH没配好。4. WRF本体编译从configure到成功的全流程终于来到重头戏这里我总结出三个关键checkpoint。4.1 configure选项的玄机进入WRFV4.2目录后./configure # 选34(dmpar) 1(basic)常见报错解决方案如果提示missing netcdf.h检查NETCDF变量是否导出报libimf.so错误执行export LD_PRELOAD/usr/lib/x86_64-linux-gnu/libgfortran.so.54.2 compile的监控技巧别傻等编译完成用这个命令实时监控./compile em_real log.compile 21 tail -f log.compile | grep Error -A10 -B10正常情况应该看到没有fatal error进度从depend - convert_em - 各模块编译最终生成wrf.exe等可执行文件4.3 验证编译成果检查三个关键文件ls -lh main/wrf.exe # 应该50MB ls -lh main/real.exe # 应该20MB ls -lh main/ndown.exe # 应该10MB如果文件大小明显偏小肯定是编译过程有错误被忽略了。5. WPS编译最后一道关卡WPS就像给WRF配的钥匙没它就跑不了实际案例。5.1 必须的清理操作先进入WPS目录执行./clean -a # 比单纯./clean更彻底我曾经因为没清理干净导致新旧对象文件混用结果geo_em文件死活生成不了。5.2 编译选项的坑关键配置步骤export WRF_DIR../WRFV4.2 ./configure # 选3(gfortrandmpar)这里有个隐藏技巧如果configure列表里没有出现gfortran选项说明前面的环境变量没生效回去检查.bashrc。5.3 成功标志验证编译完成后应该看到ls -l *.exe # 要有geogrid.exe、ungrib.exe、metgrid.exe文件大小参考geogrid.exe约15MBungrib.exe约8MBmetgrid.exe约12MB如果遇到链接错误试试重新编译WPS前先执行export LDFLAGS-L$NETCDF/lib -lnetcdff -lnetcdf从第一次安装WRF到现在我至少重装了二十次。最深刻的体会是严格按步骤来别自作聪明跳步。曾经为了省事跳过测试环节结果debug花的时间反而更多。现在每次装新环境都会把这篇指南当checklist用目前为止还没失手过。

更多文章