zoukankan      html  css  js  c++  java
  • WRF 安装备忘

    ▶ n 年前在笔记本上安装 WRF 的一个过程

    ● 安装 cpp,csh,m4,quota,samba

    1 # apt-get install cpp csh m4 quota samba

    ● 网上教程有安装hdf5(.nc查看软件),并且版本与 netcdf 有关,不装的话 netcdf 安装时会报错 Error "Can't find or link to the hdf5 library",实测不安装 hdf5 也没有报错

    ● 查看 glibc 安装状态,否则补装

    1 # ldd --version
    2 # apt-get install glibc

    ● 安装 zlib,解压zlib-XXX.tar.gz到主目录下,名字改成zlib

    1 # cd zlib
    2 # ./configure --prefix=/usr/local/zlib
    3 # make
    4 # make install

    ● 修改 /root/.bashrc,添加以下内容(当年不懂 Linux,居然是安装在 root 账号里?),保存退出后  # source /root/.bashrc 

    1 # for zlib
    2 export ZLIB = /usr/local/zlib
    3 export ZLIBLIB = /usr/local/zlib/lib
    4 export ZLIBINC = /usr/local/zlib/include

    ● 安装 libpng,解压libpng-XXX.tar.gz到主目录下,名字改成 libpng

    1 # cd libpng
    2 # export LDFLAGS="-L /usr/local/zlib/lib"
    3 # export CPPFLAGS="-I /usr/local/zlib/include"
    4 # ./configure --prefix=/usr/local/libpng
    5 # make
    6 # make install

    ● 修改 /root/.bashrc,添加以下内容,保存退出后  # source /root/.bashrc 

    1 # for libpng
    2 export LIBPNG=/usr/local/libpng
    3 export LIBPNGLIB=/usr/local/libpng/lib
    4 export LIBPNGINC=/usr/local/libpng/includ

    ● 安装jasper,解压 jasper-XXX.tar.gz 到主目录下,名字改成 jasper

    1 # cd jasper
    2 # ./configure --prefix=/usr/local/jasper
    3 # make
    4 # make install

    ● 修改 /root/.bashrc,添加以下内容,保存退出后  # source /root/.bashrc 

    1 #for jasper
    2 JASPER=/usr/local/jasper;export JASPER
    3 JASPERLIB=/usr/local/jasper/lib;export JASPERLIB
    4 JASPERINC=/usr/local/jasper/include;export JASPERIN

    ● 安装 WPS 的一个综合库。就是简单的把 zlib、libpng、jasper 的 include 和 lib 合在一起,方便 WPS 编译时调用。新建一个目录 wps(网站教程上一般取名为 JASPER,以区分前面刚安装的的 jasper),下设子目录 include 和 lib)。当时对目录的引用可能有点问题,新建的 wps 似乎没有用上,最终方案是把 zlib 和 libpng 下的 include 和 lib 中的东西全部拷进 jasper 下 include 和 lib 中,才使 WPS 编译成功。

    ■ 新建大法:

    1 # mkdir /usr/local/wps
    2 # mkdir /usr/local/wps/include
    3 # mkdir /usr/local/wps/lib
    4 # cp /usr/local/zlib/include/* /usr/local/wps/include
    5 # cp /usr/local/libpng/include/* /usr/local/wps/include
    6 # cp /usr/local/jasper/include/* /usr/local/wps/include
    7 # cp /usr/local/zlib/lib/* /usr/local/wps/lib
    8 # cp /usr/local/libpng/lib/* /usr/local/wps/lib
    9 # cp /usr/local/jasper/lib/* /usr/local/wps/lib

    ■ 修改 /root/.bashrc,添加以下内容,保存退出后  # source /root/.bashrc

    1 # for WPS
    2 export WPS=/usr/local/wps
    3 export WPSLIB=/usr/local/wps/lib
    4 export WPSINC=/usr/local/wps/include

    ■ 拷贝大法,同样需要修改 /root/.bashrc不过目录名是 jasper

    1 # cp /usr/local/zlib/include/* /usr/local/jasper/include
    2 # cp /usr/local/libpng/include/* /usr/local/jasper/include
    3 # cp /usr/local/zlib/lib/* /usr/local/jasper/lib
    4 # cp /usr/local/libpng/lib/* /usr/local/jasper/lib

    ● 安装 netcdf-4.1.2,解压 netcdf-XXX.tar.gz 到主目录下,名字改成 netcdf

    1 # cd netcdf
    2 # ./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf

    ■ 网上教程要求两个--disable 必须都加,也有说法较新版本(多新不知道)的 WRF 已经支持 netcdf-4 可以不用去除掉,并且需要安装 hdf5 以提供压缩能力

    1 # make
    2 # make check
    3 # make install

    ● 修改 /root/.bashrc,添加以下内容(实测最后两行很重要,否则 WPS 的 configure 时报错:Your Fortran + NETCDF did not run successfully.

    1 # for netcdf
    2 export NETCDF=/usr/local/netcdf
    3 export PATH=$PATH:$NETCDF/bin:$NETCDF/include:$NETCDF/lib
    4 export MANPATH=$MANPATH:$NETCDF/share/man
    5 export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
    6 export LD_RUN_PATH=${NETCDF}/lib:${LD_RUN_PATH}

    ● 保存退出后

    1 # source /root/.bashrc
    2 # ncdump                # 测试是否成功,成功时返回ncdump命令用法的简单说明

    ● 安装 ncl,解压 ncl-XXX.tar.gz 到目录 /usr/local,名字改成 ncl

    ● 修改 /root/.bashrc,添加以下内容

    1 export NCARG_ROOT=/usr/local/ncl
    2 export PATH=$NCARG_ROOT/bin:$PATH
    3 export NCARG_LIB=$NCARG_ROOT/lib
    4 export NCARG_INC=$NCARG_ROOT/include
    5 export MANPATH=$NCARG_ROOT/man:$MANPATH
    6 export DISPLAY=:0.0

    ● 保存退出后

    1 # source /root/.bashrc
    2 # ncl                   # 返回ncl版本信息
    3 # exit                  # 安全退出 ncl,网络教程说强行关闭可能导致下次无法正常启动
    4 # ng4ex gsun01n -clean  # 另一个测试,返回若干张图像,需要点击画图区自行加载下一张,不要强行点叉关闭画图窗口或终端,这之后测试文件会在目录 /usr/local 下生成一个叫 gsun01n 的文件,可以删除

    ● 安装 grib2,解压 grib2-XXX.tar.gz 到目录 /usr/local,名字改成grib2

    1 # make 
    2 # ./wgrib -s /usr/local/grib2/fnl_20130313_18_00_c # 测试是否正确安装

    ■ 输出显示如下,表示安装成功

    327:30587020:d=13031318:GPA:500 mb:anl:NAve=0

    328:30725568:d=13031318:5WAVA:500 mb:anl:NAve=0

    ...

    ● 安装 WRFV,修改 /root/.bashrc,添加以下内容,保存退出后  # source /root/.bashrc 

    1 # for WRF large file
    2 export WRFIO_NCD_LARGE_FILE_SUPPORT=1

    ● 解压WRF3-XXX.tar.gz到主目录下,名字改成WRFV3

    1 # mkdir /home/cuan/WRF                              # 新建一个位置给WRF(注意文件路径)
    2 # mv -rf /home/cuan/WRFV3 /home/cuan/WRF
    3 # cd WRF/WRFV3             
    4 # ./configure                                       # 注意选择编译设置
    5 # ./compile em_real >& /home/cuan/WRF/wrfv3log.txt  # 尝试编译 test 的一个程序em_real,将日志写入wrfv3log.txt中方便调试
    6 # cat ../wrfv3log.txt | grep "error:"               # 编译日志中查找报错(要加上“:”,因为可能有 *error.so 等文件干扰)
    7 # ls -ls /main/*.exe                                # 若没有报错,并在./main中找到ndown.exe,real.exe,tc.exe,wrf.exe 四个可执行文件,则说明成功,否则 debug

    ● 安装 WPS,解压 WPS-XXX.tar.gz 到主目录下,名字改成 WPS,放进 WRF 文件夹中,打开 /home/cuan/WRF/WPS/configure.wps,修改几个地方

     1 NCARG_LIBS        =    -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c 
     2                        -L/usr/lib:-L/usr/lib/x86_64-linux-gnu -lX11
     3     # 我的默认是“-L/usr/X16/lib -lX11”,可能安装程序针对的的其他linux版本,文件目录不一样
     4 
     5 COMPRESSION_LIBS    =  -L/usr/local/jasper/lib -ljasper 
     6                        -L/usr/local/zlib/lib -lz        
     7                        -L/usr/local/libpng/lib -lpng
     8     # 前面使用新建大法的可以尝试或者补上 -L/usr/local/wps/lib -lz -lpng -jasper
     9     # 网络教程一般都是 /JASPER/lib -ljasper -lpng12 -lpng -lz 或者把 -lpng12 换成-lpng15,都报错“找不到 -lw3 -lpng12 -lpng -lz”
    10 
    11 COMPRESSION_INC        =  -I/usr/local/jasper/include 
    12                           -I/usr/local/zlib/include   
    13                           -I/usr/local/libpng/include
    14     # 前面使用新建大法的可以尝试或者补上 -I/usr/local/wps/include

    ● 保存退出,

    1 # ./configure                               # 注意选择编译设置
    2 # ./compile wps >& wpslog.txt               
    3 # cat ../wpslog.txt | grep "error:"         # 打开编译日志,查找“error:”报错(要加上“:”,因为可能有 *error.so 等文件干扰)
    4 # ls -ls *.exe                              # 若没有报错,并找到 geogrid.exe,metgrid.exe,ungrib.exe 三个可执行文件的硬链接,则说明成功,否则 debug

    ● 编译WPS自带的画图模块(可选,也可用 WPS 输出的数据用 ncl 或 grap 画图)

    1 # ./compile util >& utillog.txt

    ■ 报错信息如下,原因是没有找到 libX11.so 文件,但是我的lib X11.so.6,libX11.so.6.3.0,libX11.so.6,libX11-xcb.so.1,libX11-xcb.so.1.0.0 都在已经在 /usr/lib/x86_64-linux-gnu 下了;而且 /usr/bin/ld 是某个应用程序的硬链接,所以没有办法在/usr/bin下新建ld目录让WPS来读取

    /usr/bin/ld: 找不到 -lX11
    collect2: error: ld returned 1 exit status
    Makefile:59: recipe for target 'plotfmt.exe' failed
    make[1]: [plotfmt.exe] Error 1 (ignored)
    ...
    /usr/bin/ld: 找不到 -lX11
    collect2: error: ld returned 1 exit status
    Makefile:22: recipe for target 'plotgrids.exe' failed
    make[1]: [plotgrids.exe] Error 1 (ignored)

    ■ 网络教程指出 Programs 'plotgrids.exe' and 'plotfmt.exe' are no longer automatically compiled with WPS. The reason is that, instead of 'plotgrids.exe,'there is a program called 'plotgrids.ncl' that is compiled, and serves the exact same purpose. 发现 /WRF/WPS/util 下已经有了 plotgrids.ncl,所以放弃编译和安装 plotfmt.exe 和 plotgrids.exe

    ● 其他可能的报错:
    ■ 找不到 png.h。原因是 zlib,libpng 和 jasper 的头文件位置错误,参见日志中这个报错信息上一行的路径,把这三个文件夹下 include 内的所有内容拷贝一份放进去(例如我的日志中显示的路径是 /usr/local/jasper/include)
    ■ 找不到 -lpng -lw3 -lpng12 -lz。同上,这个是 lib 位置错误,同样需要合并

    ● 总结:WRFDA没有装,ARWpost没有装,WRFDomainWizard没有安装,GrADS没有装,RIP4没有装

    ● 参考网络教程

    【http://bbs.06climate.com/forum.php?mod=viewthread&tid=32817】【http://bbs.06climate.com/forum.php?mod=viewthread&tid=33557】【http://bbs.06climate.com/forum.php?mod=viewthread&tid=3202】【http://bbs.06climate.com/forum.php?mod=viewthread&tid=20885】【http://bbs.06climate.com/archiver/?tid-19021.html】【http://bbs.06climate.com/forum.php?mod=viewthread&tid=32817】【http://blog.sina.com.cn/s/blog_3eac55fd010168ds.html】【http://bbs.06climate.com/forum.php?mod=viewthread&tid=29482】


  • 相关阅读:
    python实现对单机游戏内存修改
    python_turtle模板画图
    Android向Rest服务Post数据遇到的Date类型数据问题
    Jquery根据字段内容设置字段宽度
    LLVM安装
    impala编译
    JS一些简单的问题
    小三角形的制作方法
    js中的一些简单问题
    另一部分页面
  • 原文地址:https://www.cnblogs.com/cuancuancuanhao/p/10711140.html
Copyright © 2011-2022 走看看