爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7306|回复: 8

WRF3.9.1安装错误小结

[复制链接]

新浪微博达人勋

发表于 2017-9-15 23:09:06 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
http://bbs.06climate.com/forum.p ... &extra=page%3D1发现了WindowsLinuxSystem的好处,尝试着在我的新电脑+Win10——64bit+WSL(Ubuntu16.04)上安装WRF。
我每个版本的WRF都是安装3个,basic、preset、vortex分别编译,configure时均选择“33”——gfortran编译器+sm(共享内存并行),compile选择“-j 4 em_real”。
这回,basic成功编译,preset和vortex均报错,不能正常生成wrf.exe,可以生成real.exe, ndown.exe,tc.exe。后来仔细查找编译日志,找到最近的一处错误,如下:
time gfortran -o wrf.exe -fopenmp -O2 -ftree-vectorize -funroll-loops -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4    wrf.o ../main/module_wrf_top.o libwrflib.a /app/modeling/WRFV3-3.9.1/WRFV3-preset/external/fftpack/fftpack5/libfftpack.a /app/modeling/WRFV3-3.9.1/WRFV3-preset/external/io_grib1/libio_grib1.a /app/modeling/WRFV3-3.9.1/WRFV3-preset/external/io_grib_share/libio_grib_share.a /app/modeling/WRFV3-3.9.1/WRFV3-preset/external/io_int/libwrfio_int.a -L/app/modeling/WRFV3-3.9.1/WRFV3-preset/external/esmf_time_f90 -lesmf_time /app/modeling/WRFV3-3.9.1/WRFV3-preset/external/RSL_LITE/librsl_lite.a /app/modeling/WRFV3-3.9.1/WRFV3-preset/frame/module_internal_header_util.o /app/modeling/WRFV3-3.9.1/WRFV3-preset/frame/pack_utils.o  -L/app/modeling/WRFV3-3.9.1/WRFV3-preset/external/io_netcdf -lwrfio_nf -L/app/software/netcdf-3.6.3/lib  -lnetcdf        
Makefile:16: recipe for target 'em_wrf' failed


(1)进入WRFV3-preset/main目录,输入上面蓝色字体命令,得到如下结果:
libwrflib.a(mediation_nest_move.o):在函数‘med_nest_move_’中:
mediation_nest_move.f90:(.text+0xf12):对‘wrf_dm_move_nest_’未定义的引用
collect2: error: ld returned 1 exit status



(2)定位到WRFV3-preset/share/mediation_nest_move.F文件,其中第12行首次出现wrf_dm_move_nest,如下:
#if defined(DM_PARALLEL) && ! defined(STUBMPI)
   USE module_dm, ONLY : wrf_dm_move_nest,nest_task_offsets,mpi_comm_to_kid,mpi_comm_to_mom, which_kid
#endif

(3)定位到WRFV3-preset/frame/module_dm.F文件,其中2203-2209行对上述函数做了定义,如下:

   SUBROUTINE wrf_dm_move_nest ( parent, nest, dx, dy )
      USE module_domain, ONLY : domain
      IMPLICIT NONE
      TYPE (domain), INTENT(INOUT) :: parent, nest
      INTEGER, INTENT(IN)          :: dx,dy
      RETURN
   END SUBROUTINE wrf_dm_move_nest


(4)再反过来分析第(2)步,既然是只有采用DM_PARALLEL的情况下才调用wrf_dm_move_nest函数,编译报错的原因就是对该函数没有定义。
(5)再回到最初configure,选择35——gfortran+SM+DM。(在此之前先执行“sudo apt install mpich mpich-doc”安装mpi并行环境)
最后运行./clean; ./compile -j 4 em_real 1>compile.log 2>compile.err
终于出现了久违的wrf.exe, real.exe, tc.exe, ndown.exe
按理说,这个错误并不符合逻辑。既然configure的时候选了33,就不应该调用dm相关的函数,至少WRFV3-3.8之前的版本我没有遇到这个问题,或许是3.9.1版本的bug,或许以后的版本WRF移动嵌套网格必须采用DM分布式并行??
希望能够大牛给予深刻解读~~


密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2017-9-16 00:58:21 | 显示全部楼层
666..前排围观,以前安装wrf时候简直就是来玩大家来找茬。。膜拜lz找错误的能力
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-16 13:47:46 | 显示全部楼层
WRF主要还是采用mpi编译的,所以官方估计没有测试串行和smpar,楼主可以选dmpar+smpar编译,
然后设置OMP_NUM_THREADS环境变量就行。或者mpirun这种,更加能灵活的选择并行方式。就算是单机,也一样可以用OMP或MPI。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-20 11:27:03 | 显示全部楼层
楼主。能否加我QQ337405350.TOT。指导一下WRF3.6.1的安装~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-9-20 17:25:57 | 显示全部楼层
lorraineni 发表于 2017-9-20 11:27
楼主。能否加我QQ337405350.TOT。指导一下WRF3.6.1的安装~

看你在什么平台了,如果是可联网的Linux系统,那就好办了~
否则的话,不好说了~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-21 07:14:10 | 显示全部楼层
{:5_213:}{:5_213:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-22 06:47:33 | 显示全部楼层
感谢分享!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-9-22 10:11:49 | 显示全部楼层
感谢分享!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-11-25 16:42:23 | 显示全部楼层

感谢分享!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表