WRF 安装备忘
▶ n 年前在笔记本上安装 WRF 的一个过程
● 安装 cpp,csh,m4,quota,samba
# apt-get install cpp csh m4 quota samba
● 网上教程有安装hdf5(.nc查看软件),并且版本与 netcdf 有关,不装的话 netcdf 安装时会报错 Error "Can't find or link to the hdf5 library",实测不安装 hdf5 也没有报错
● 查看 glibc 安装状态,否则补装
# ldd --version
# apt-get install glibc
● 安装 zlib,解压zlib-XXX.tar.gz到主目录下,名字改成zlib
# cd zlib
# ./configure --prefix=/usr/local/zlib
# make
# make install
● 修改 /root/.bashrc,添加以下内容(当年不懂 Linux,居然是安装在 root 账号里?),保存退出后 # source /root/.bashrc
# for zlib
export ZLIB = /usr/local/zlib
export ZLIBLIB = /usr/local/zlib/lib
export ZLIBINC = /usr/local/zlib/include
● 安装 libpng,解压libpng-XXX.tar.gz到主目录下,名字改成 libpng
# cd libpng
# export LDFLAGS="-L /usr/local/zlib/lib"
# export CPPFLAGS="-I /usr/local/zlib/include"
# ./configure --prefix=/usr/local/libpng
# make
# make install
● 修改 /root/.bashrc,添加以下内容,保存退出后 # source /root/.bashrc
# for libpng
export LIBPNG=/usr/local/libpng
export LIBPNGLIB=/usr/local/libpng/lib
export LIBPNGINC=/usr/local/libpng/includ
● 安装jasper,解压 jasper-XXX.tar.gz 到主目录下,名字改成 jasper
# cd jasper
# ./configure --prefix=/usr/local/jasper
# make
# make install
● 修改 /root/.bashrc,添加以下内容,保存退出后 # source /root/.bashrc
#for jasper
JASPER=/usr/local/jasper;export JASPER
JASPERLIB=/usr/local/jasper/lib;export JASPERLIB
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 编译成功。
■ 新建大法:
# mkdir /usr/local/wps
# mkdir /usr/local/wps/include
# mkdir /usr/local/wps/lib
# cp /usr/local/zlib/include/* /usr/local/wps/include
# cp /usr/local/libpng/include/* /usr/local/wps/include
# cp /usr/local/jasper/include/* /usr/local/wps/include
# cp /usr/local/zlib/lib/* /usr/local/wps/lib
# cp /usr/local/libpng/lib/* /usr/local/wps/lib
# cp /usr/local/jasper/lib/* /usr/local/wps/lib
■ 修改 /root/.bashrc,添加以下内容,保存退出后 # source /root/.bashrc
# for WPS
export WPS=/usr/local/wps
export WPSLIB=/usr/local/wps/lib
export WPSINC=/usr/local/wps/include
■ 拷贝大法,同样需要修改 /root/.bashrc不过目录名是 jasper
# cp /usr/local/zlib/include/* /usr/local/jasper/include
# cp /usr/local/libpng/include/* /usr/local/jasper/include
# cp /usr/local/zlib/lib/* /usr/local/jasper/lib
# cp /usr/local/libpng/lib/* /usr/local/jasper/lib
● 安装 netcdf-4.1.2,解压 netcdf-XXX.tar.gz 到主目录下,名字改成 netcdf
# cd netcdf
# ./configure --disable-dap --disable-netcdf- --prefix=/usr/local/netcdf
■ 网上教程要求两个--disable 必须都加,也有说法较新版本(多新不知道)的 WRF 已经支持 netcdf-4 可以不用去除掉,并且需要安装 hdf5 以提供压缩能力
# make
# make check
# make install
● 修改 /root/.bashrc,添加以下内容(实测最后两行很重要,否则 WPS 的 configure 时报错:Your Fortran + NETCDF did not run successfully.
# for netcdf
export NETCDF=/usr/local/netcdf
export PATH=$PATH:$NETCDF/bin:$NETCDF/include:$NETCDF/lib
export MANPATH=$MANPATH:$NETCDF/share/man
export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}
export LD_RUN_PATH=${NETCDF}/lib:${LD_RUN_PATH}
● 保存退出后
# source /root/.bashrc
# ncdump # 测试是否成功,成功时返回ncdump命令用法的简单说明
● 安装 ncl,解压 ncl-XXX.tar.gz 到目录 /usr/local,名字改成 ncl
● 修改 /root/.bashrc,添加以下内容
export NCARG_ROOT=/usr/local/ncl
export PATH=$NCARG_ROOT/bin:$PATH
export NCARG_LIB=$NCARG_ROOT/lib
export NCARG_INC=$NCARG_ROOT/include
export MANPATH=$NCARG_ROOT/man:$MANPATH
export DISPLAY=:0.0
● 保存退出后
# source /root/.bashrc
# ncl # 返回ncl版本信息
# exit # 安全退出 ncl,网络教程说强行关闭可能导致下次无法正常启动
# ng4ex gsun01n -clean # 另一个测试,返回若干张图像,需要点击画图区自行加载下一张,不要强行点叉关闭画图窗口或终端,这之后测试文件会在目录 /usr/local 下生成一个叫 gsun01n 的文件,可以删除
● 安装 grib2,解压 grib2-XXX.tar.gz 到目录 /usr/local,名字改成grib2
# make
# ./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
# for WRF large file
export WRFIO_NCD_LARGE_FILE_SUPPORT=
● 解压WRF3-XXX.tar.gz到主目录下,名字改成WRFV3
# mkdir /home/cuan/WRF # 新建一个位置给WRF(注意文件路径)
# mv -rf /home/cuan/WRFV3 /home/cuan/WRF
# cd WRF/WRFV3
# ./configure # 注意选择编译设置
# ./compile em_real >& /home/cuan/WRF/wrfv3log.txt # 尝试编译 test 的一个程序em_real,将日志写入wrfv3log.txt中方便调试
# cat ../wrfv3log.txt | grep "error:" # 编译日志中查找报错(要加上“:”,因为可能有 *error.so 等文件干扰)
# 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,修改几个地方
NCARG_LIBS = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \
-L/usr/lib:-L/usr/lib/x86_64-linux-gnu -lX11
# 我的默认是“-L/usr/X16/lib -lX11”,可能安装程序针对的的其他linux版本,文件目录不一样 COMPRESSION_LIBS = -L/usr/local/jasper/lib -ljasper \
-L/usr/local/zlib/lib -lz \
-L/usr/local/libpng/lib -lpng
# 前面使用新建大法的可以尝试或者补上 -L/usr/local/wps/lib -lz -lpng -jasper
# 网络教程一般都是 /JASPER/lib -ljasper -lpng12 -lpng -lz 或者把 -lpng12 换成-lpng15,都报错“找不到 -lw3 -lpng12 -lpng -lz” COMPRESSION_INC = -I/usr/local/jasper/include \
-I/usr/local/zlib/include \
-I/usr/local/libpng/include
# 前面使用新建大法的可以尝试或者补上 -I/usr/local/wps/include
● 保存退出,
# ./configure # 注意选择编译设置
# ./compile wps >& wpslog.txt
# cat ../wpslog.txt | grep "error:" # 打开编译日志,查找“error:”报错(要加上“:”,因为可能有 *error.so 等文件干扰)
# ls -ls *.exe # 若没有报错,并找到 geogrid.exe,metgrid.exe,ungrib.exe 三个可执行文件的硬链接,则说明成功,否则 debug
● 编译WPS自带的画图模块(可选,也可用 WPS 输出的数据用 ncl 或 grap 画图)
# ./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 exit status
Makefile:: recipe for target 'plotfmt.exe' failed
make[]: [plotfmt.exe] Error (ignored)
...
/usr/bin/ld: 找不到 -lX11
collect2: error: ld returned exit status
Makefile:: recipe for target 'plotgrids.exe' failed
make[]: [plotgrids.exe] Error (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】
WRF 安装备忘的更多相关文章
- 安装 CentOS 后的系统配置及软件安装备忘
安装 CentOS 后的系统配置及软件安装备忘 // */ // ]]> 安装 CentOS 后的系统配置及软件安装备忘 Table of Contents 1 Linux 自举过程 1.1 ...
- MSDE2008安装备忘
MSDE2008安装备忘(适用于WIN7 8 10) 1.系统中必须要VC8.0,即VC2005运行库.2.系统中必须要有.net framework2.0.3.5.4.6运行库.3.windows防 ...
- CentOS安装备忘2
CentOS7安装备忘2 安装过程中不联网,安装完成也不要立刻联网,先关闭远程的服务后再联网更新.安装默认使用English,目的是生成的Home下所有文件夹都是英文的,方便使用. ========= ...
- Sublime Text4(Build 4126) 安装备忘
Sublime Text4(Build 4126) 安装备忘 sublime text 4126 PJ已测可用 打开浏览器进入网站https://hexed.it 打开sublime text4安装目 ...
- windows下matplotlib编译安装备忘
windows下,codeblocks,mingw安装matplotlib. python下一些源码的编译安装,备忘. matplotlib官网编译好的版本只支持到3.3.我不慎刚下了python3. ...
- CentOS7安装备忘
======1 下载CentOS镜像文件:https://www.centos.org/download/http://isoredirect.centos.org/centos/7/isos/x86 ...
- Mint17 一些安装备忘
1,中文输入法: sudo apt-add-repository ppa:fcitx-team/dailybuild-fcitx-master sudo apt-get update sudo apt ...
- centos,nginx安装备忘
# ssh 登录慢解决 vim /etc/ssh/sshd_config UseDNS no # add limitsvi /etc/security/limits.conf* soft nproc ...
- oracle 驱动安装备忘
ubuntu 从oracle官网下载两个必须的rpm包(这里选择的是version12.1.0.2.0, 64位操作系统) oracle-instantclient12.1-basic-12.1.0. ...
随机推荐
- .NET第一章
1.介绍了.NET的作用和软件前景趋势 2.Visual studio .net 编程 3.介绍.net可以多种编程语言,通过公共语言类库存放 2.介绍C# 数据类型和变量设置,以及函数的使用 3.继 ...
- Java中如何拆分字符串为字符数组
题目:输入一串字符,由(){}[]组成,判断是否所有的括号都是闭括号,是的返回TRUE,不是返回FALSE. /*输入字符串,拆解为字符数组 * 用函数s.charAt(i)来完成 * * */imp ...
- Java面试题2
类加载机制 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的加载机制. 类从被加载到虚拟机内存中开 ...
- 【译著】Code First :使用Entity. Framework编程(5)
第五章 对数据库映射使用默认规则与配置 到目前为止我们已经领略了Code First的默认规则与配置对属性.类间关系的影响.在这两个领域内,Code First不仅影响模型也影响数据库.在这一章,你将 ...
- admin-7
Admin07 root tmooc 还原三台虚拟机[root@room9pc13 ~]# rht-vmctl reset classroom[root@room9pc13 ~]# rht-vmctl ...
- 去重和分类后缀asp、php等路径 用python3写的
我们在做渗透的时候肯定会用上扫描器的,本人一般会用御剑,当然你也会喜欢别的工具. 很多时候,能否渗透成功其实还挺依赖与字典的,如果把后台给扫出来了,恰好还弱口令,那么岂不是美滋滋. 因此,有一个好的字 ...
- WMware Vsphere取消某虚机的漂移
由于一些业务特性,有一些虚机不应该完全受集群DSR控制.下面记录一下如何更改某一虚机的漂移属性. 1.环境 VMware Vsphere web client 6.5 2.点击需要配置虚机所在的集群, ...
- VMware vSphere Client 语言切换
vpxclient -locale en_US 英语 vpxclient -locale zh_CN 汉语 vpxclient -locale ja 日语 vpxclient -locale de ...
- find命令简单使用
find命令是Linux系统查找文件的命令,能帮助用户在使用.管理Linux的日常事务时方便的查找出用户所需要的文件,find命令基本格式是:find [路径] [选项] [操作]. 列举一下find ...
- C++——volatile关键字的学习
首先声明一点,本文是关于volatile关键字的学习,学习内容主要是来自一些大牛的网络博客. 一篇是何登成先生的C/C++ Volatile关键词深度剖析(http://hedengcheng.com ...