请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10654|回复: 16

WRF4DVAR(带RTTOV)编译的问题

[复制链接]

新浪微博达人勋

发表于 2016-5-18 06:25:17 | 显示全部楼层 |阅读模式

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

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

x
今天在编译WRF4DVAR的时候出现了一下报错
makefile:58: warning: overriding recipe for target `.f90.o'
../../configure.wrf:352: warning: ignoring old recipe for target `.f90.o'
rm -f da_wrfvar.exe
/nuist/public/RTTOV/lib/librttov11_coef_io.a(rttov_read_coefs.o): In function `rttov_read_coefs_':
rttov_read_coefs.F90:(.text+0x244): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_open'
rttov_read_coefs.F90:(.text+0x25e): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_64bit_reals'
rttov_read_coefs.F90:(.text+0x26c): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
rttov_read_coefs.F90:(.text+0xf2e): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x123c): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
rttov_read_coefs.F90:(.text+0x1543): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x15b2): undefined reference to `__rttov_hdf_mod_MOD_close_hdf'
rttov_read_coefs.F90:(.text+0x2508): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2714): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2950): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2b5a): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2e50): undefined reference to `rttov_hdf_load_'
/nuist/public/RTTOV/lib/librttov11_coef_io.a(rttov_read_coefs.o):rttov_read_coefs.F90:(.text+0x318c): more undefined references to `rttov_hdf_load_' follow
/nuist/public/RTTOV/lib/librttov11_emis_atlas.a(mod_iratlas.o): In function `__mod_iratlas_MOD_rttov_uwiremis_init':
mod_iratlas.F90:(.text+0xd841): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_open'
mod_iratlas.F90:(.text+0xd85b): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_64bit_reals'
mod_iratlas.F90:(.text+0xd869): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
mod_iratlas.F90:(.text+0xe781): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
mod_iratlas.F90:(.text+0xf2da): undefined reference to `__rttov_hdf_mod_MOD_close_hdf'
collect2: error: ld returned 1 exit status


这个是什么原因,RTTOV的环境变量我是这样设置的
export RTTOV=[RTTOV的安装目录]
export LD_LIBRARY_PATH=[安装目录]/lib:LD_LIBRARY_PATH

是不是环境变量没设置对,应该如何设置
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-8-22 12:37:04 | 显示全部楼层
亲测可用使用HDF5编译RTTOV,本人用的是HDF5-1.10.2,RTTOV 11.3,和WRFDA 4.0。
在编译WRFDA前,./configure wrfda后需要在configure.wrf中的LIB_EXTERNAL添加-L/usr/local/soft/hdf5-1102/lib -lhdf5_fortran -lhdf5 -lm -lz -lhdf5hl_fortran -lhdf5_hl -L/usr/local/soft/rttov-113/lib -lrttov11_test -lrttov11_other -lrttov11_mw_scatt -lrttov11_coef_io -lrttov11_hdf -lrttov11_parallel -lrttov11_main,接着./compile all_wrfvar即可。
HDF5需要编译支持fortran,--enable-fortran。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2017-10-21 03:44:39 | 显示全部楼层
石破天惊 发表于 2017-10-17 20:31
netCDF库编译的时候也会用到hdf5的库,你用hdf5编译RTTOV可以编译过去,但是你再到WRFDA里调用hdf5的时候 ...

哦哦,这样啊,我还是没有编译通过,所以现在用的NETCDF编译的RTTOV,然后再编译WRFDA,顺利通过,没有毛病==
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2017-9-11 17:46:26 | 显示全部楼层
解决了吗?期待回复
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-11 17:52:58 | 显示全部楼层
不能用hdf5编译rttov
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-11 18:06:59 | 显示全部楼层

我试试,这有点不理解了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-21 08:28:35 | 显示全部楼层
官网推荐hdf5啊 一直安不上感觉好蒙啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-10 14:21:36 | 显示全部楼层
不知道楼主解决了吗?我装的3DVar,也不行,错误和楼主的差不多:
--------------------------------------error------------------------------------------
if fgrep -iq '!$OMP' da_wrfvar_main.f ; then \
          if [ -n "" ] ; then echo COMPILING da_wrfvar_main.f90 WITH OMP ; fi ; \
          time mpif90 -f90=gfortran -c -O2 -ftree-vectorize -funroll-loops -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4   -fdefault-real-8 -I../external/crtm_2.1.3/libsrc -I/*/*/*/software/RTTOV11/include -I/*/*/*/software/RTTOV11/mod -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/main -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/frame -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/share -I/*/*/*/software/NETCDF/include da_wrfvar_main.f ; \
        else \
          if [ -n "" ] ; then echo COMPILING da_wrfvar_main.f90 WITHOUT OMP ; fi ; \
          time mpif90 -f90=gfortran -c -O2 -ftree-vectorize -funroll-loops -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4  -fdefault-real-8 -I../external/crtm_2.1.3/libsrc -I/*/*/*/software/RTTOV11/include -I/*/*/*/software/RTTOV11/mod -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/main -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/frame -I/*/*/*/2014_7_30/wrf/DA/WRFPLUSV3/share -I/*/*/*/software/NETCDF/include da_wrfvar_main.f ; \
        fi
ranlib libwrfvar.a

real        1m39.999s
user        0m0.112s
sys        0m0.347s
rm -f da_wrfvar.exe
/*/*/*/software/RTTOV11/lib/librttov11_coef_io.a(rttov_read_coefs.o): In function `rttov_read_coefs_':
rttov_read_coefs.F90:(.text+0x21b): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_open'
rttov_read_coefs.F90:(.text+0x235): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_64bit_reals'
rttov_read_coefs.F90:(.text+0x243): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
rttov_read_coefs.F90:(.text+0xfd8): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x10b0): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
rttov_read_coefs.F90:(.text+0x11e9): undefined reference to `__rttov_hdf_mod_MOD_close_hdf'
rttov_read_coefs.F90:(.text+0x1a30): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x21ec): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2412): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2608): undefined reference to `rttov_hdf_load_'
rttov_read_coefs.F90:(.text+0x2a11): undefined reference to `rttov_hdf_load_'
/*/*/*/software/RTTOV11/lib/librttov11_coef_io.a(rttov_read_coefs.o):rttov_read_coefs.F90:(.text+0x2bda): more undefined references to `rttov_hdf_load_' follow
/*/*/*/software/RTTOV11/lib/librttov11_emis_atlas.a(mod_iratlas.o): In function `__mod_iratlas_MOD_rttov_uwiremis_init':
mod_iratlas.F90:(.text+0xb4df): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_open'
mod_iratlas.F90:(.text+0xb4f6): undefined reference to `__rttov_hdf_mod_MOD_is_hdf_64bit_reals'
mod_iratlas.F90:(.text+0xb504): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
mod_iratlas.F90:(.text+0xc844): undefined reference to `__rttov_hdf_mod_MOD_open_hdf'
mod_iratlas.F90:(.text+0xc86c): undefined reference to `__rttov_hdf_mod_MOD_close_hdf'
collect2: ld returned 1 exit status

real        3m28.771s
user        0m0.304s
sys        0m1.051s
make[1]: [da_wrfvar.exe] Error 1 (ignored)
make[1]: Leaving directory `/*/*/*/*/test_WRF/DA/WRFDA/var/build'
--------------------------------------error------------------------------------------
官网上推荐使用HDF5,但是一直装不上,到底是怎么回事呢?是不是有什么要注意的呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-10 14:22:47 | 显示全部楼层

求教~此话怎讲呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-17 20:31:05 | 显示全部楼层
问题少女 发表于 2017-10-10 14:22
求教~此话怎讲呢?

netCDF库编译的时候也会用到hdf5的库,你用hdf5编译RTTOV可以编译过去,但是你再到WRFDA里调用hdf5的时候,程序就弄不明白你到底要用哪个hdf5了,然后就会告诉你这个函数也不认识,那个模块也不认识,然而这些模块其实都是有的,所以想要在WRFDA里面用RTTOV,就不要用hdf5来编译RTTOV
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-10-18 07:36:18 | 显示全部楼层
涨见识了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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