在已有WRF环境的服务器上,5分钟搞定Flexpart-WRF的编译与配置

张开发
2026/4/17 9:19:17 15 分钟阅读

分享文章

在已有WRF环境的服务器上,5分钟搞定Flexpart-WRF的编译与配置
在已有WRF环境的服务器上5分钟搞定Flexpart-WRF的编译与配置当WRF模型已经成为你研究大气扩散或污染物传输的日常工具时Flexpart-WRF作为其配套的后处理模块能快速实现粒子轨迹追踪和源反演计算。但很多研究者卡在了环境配置环节——其实如果你已经成功运行过WRF90%的依赖环境都已就绪。下面这个方案能让你用现有资源快速完成部署。1. 环境检查与源码准备首先确认你的WRF环境是否包含这三个关键要素NetCDF库检查~/.bashrc中NETCDF环境变量指向的路径编译器套件记录之前编译WRF使用的编译器类型gnu/pgi/intelMPI环境如果WRF以并行模式运行确保which mpif90能返回有效路径提示用nc-config --has-nc4命令可快速确认NetCDF是否支持HDF5格式获取Flexpart-WRF源码推荐使用官方仓库的最新版本wget https://git.nilu.no/flexpart/flexpart-wrf/-/archive/master/flexpart-wrf-master.zip unzip flexpart-wrf-master.zip cd flexpart-wrf-master2. Makefile精准配置技巧核心配置文件makefile.mom需要修改以下关键参数参数项配置要点NETCDF直接复用WRF的库路径通常类似/path/to/netcdf不带/lib后缀NETCDFVERSION根据nc-config --has-nc4结果选择支持HDF5填4否则填3COMPILER必须与WRF编译环境一致查看原WRF编译日志确认EXECNAME建议保留默认flexwrf33避免后续脚本适配问题典型配置示例# 关键参数配置段 EXECNAME flexwrf33 NETCDF /opt/WRF_LIBRARIES/netcdf # 与WRF环境一致 NETCDFVERSION 4 # 现代系统通常选4 COMPILER gnu # 与WRF编译器匹配3. 编译模式选择与优化根据硬件资源选择合适的并行模式MPIOpenMP混合模式适合集群节点make -f makefile.mom mpi纯OpenMP模式适合多核单机export OMP_NUM_THREADS8 # 设置线程数 make -f makefile.mom omp串行模式调试推荐make -f makefile.mom serial编译完成后会生成对应版本的可执行文件命名规则为flexwrf33_[编译器类型]_[并行模式]4. 常见问题诊断手册针对不同编译器环境的典型报错解决方案GNU编译器套件gfortran# 修改makefile.mom的GNU_FFLAGS行 - GNU_FFLAGS -O2 -fconvertbig-endian -fno-range-check GNU_FFLAGS -O2 -fconvertbig-endian -fno-range-check -fallow-argument-mismatch -fallow-invalid-bozIntel编译器ifort# 修改makefile.mom的INTEL_FFLAGS行 - INTEL_FFLAGS -O2 -convert big_endian INTEL_FFLAGS -O2 -convert big_endian -standard-semantics库链接问题若出现netcdf.mod找不到的错误在对应编译器段的LDFLAGS末尾添加-lnetcdf -lnetcdff # 确保fortran接口库被链接5. 验证与集成工作流编译成功后建议进行快速验证# 创建测试目录 mkdir test_run cd test_run cp ../flexwrf33_* . ./flexwrf33_gnu_serial # 根据实际文件名调整正常情况会输出初始化日志并等待输入文件配置。将Flexpart-WRF集成到现有工作流时注意在作业脚本中设置export FLEXPART_DIR/path/to/flexpart-wrf-master预处理脚本需输出WRF格式的wrfout文件粒子释放参数文件RELEASES需要与WRF坐标系统一致最后记得将可执行文件路径加入环境变量echo export PATH$PATH:/path/to/flexpart-wrf-master ~/.bashrc

更多文章