登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 lzs04 于 2012-3-26 21:39 编辑
WRFV3.3.1 + WPSV3.3.1+WRFDAV3.3.1i686机器 Ubuntu11.10下用 gcc 4.4.6 + gfortran 编译安装 感谢ztftom 和 随缘 两位大神,下文大部分材料都是参考了他们两位的攻略,略有补充。折腾了两天之后,终于完成了WRF的安装,为了方便后来者参考,写下此文。——lzs04 主要心得: 1、编译器要固定,一开始先配置好,之后不变。版本很重要,选择4.4最好,不要选择最新的。 2、各种包的兼容性很重要(不是越新越好,合理选择好版本,多看readme) 3、各种包的安装位置很重要(各种export,各种修改~/.bashrc,各种配置configure) 4、这是一个考验耐心的工作,要有信心,多看compile后的log,有问题google,一点点解决,摸索。 5、及时记录下自己的发现,总结分享。 6、bbs.06climate.com是个好地方。 1、 装Ubuntu11.10 刚安装完经常会出现屏幕的假死状态,需要对软件进行更新后就好了。 如果出现屏幕假死,可用Ctrl+alt+f2切换到命令行模式,输入用户名密码后,用 命令 killall gnome-session 重新启动桌面。Ctrl+alt+f7切换回桌面系统。 2、 配置系统 掌握基本的linux命令。 配置更新源。 sudo gedit /etc/apt/sources.list 把源放在了原来源的前面,这样会优先使用。 3、 gcc + gfortran + g++ 安装 重点: 一定要装4.4版本。 如果之前装过其他版本,建议参考“随缘”兄的文章: 之所以要先确定编译器的版本,是因为后面装的各种包,和WRF,WPS编译器最好一样,不一样会带来很多问题。我的机器就是因为更新过,所以又重新装了一遍gcc 4.4.6 先输入命令: #gcc –version #gfortran --version 来检查gcc和gfortran的版本或是否安装。 对于为什么用4.4版本,是因为我用最新版编译的时候gcc4.5.2出现了bug,wrf没有编译成功,而换4.4编译完成,gcc4.5.2的bug好像是通过#upgrade gcc可以来补的,我没再深究。 正常情况下,ubuntu11的bin执行文件是放在/usr/bin文件里面的,系统默认安装是gcc4.5.2版本和不安装gfortran。ubuntu11自带的新立得软件是个很不错的软件安装系统,打开新立得,点搜索,在里面输入gfortran-4.4,它会自动在源里搜到关于gfortran-4.4的安装包,选择好安装包,双击就会标记,然后点应用,新立得就会自动处理依赖关系下载安装了,(装g++也一样的程序)。安装gcc4.4也是一样的,有趣的是,Java程序的安装依赖于gcc4.4,Java也是我们后面要用到的,所以直接搜Java,找到Java-common什么的安装包,标记,应用后,系统会提示需要安装哪些依赖系统,在里面就可以看到有gcc4.4的安装包在里面。 当然,如果你想把编译器更新到最新版,可以使用命令: #apt-get install gcc gfortan g++ m4 csh (这里csh也要更新,否则后面编译wrf时./configure ./compile会有提示不可用) 或者是#apt-get install build-essential 以上做完后,我们打开/usr/bin文件,会看到有4.5和4.4两个版本的编译器,现在/usr/bin/gcc和/usr/bin/gfortran、g++的链接是指向系统默认4.5最新版本的。我们需要做个新的链接指向4.4版本,先把原各链接后改名加back,然后执行建立链接命令: #ln -s/usr/bin/gcc-4.4 /usr/bin/gcc Gfortran和g++都一样做这样的链接,完成后再查看版本: #gcc --version(gfortran、g++一样) 就可以看到编译器都是4.4版本的了 4、 一些必要的包的安装:zlib libpng jasper 三个库的安装顺序是zlib---libpng----jasper 一般都是安装在/usr/local下面,如安装zlib是这样: 解压缩的这些就不多说了,直接右键解压缩,可以不用命令,与windows下面是一样的 #./configure --prefix=/usr/local/zlib #make #make install 只要前面编译器设置正确,这里应该不会有什么问题的,很顺利的通过了。Libpng和jasper与zlib安装是一样的,不重复了。 都安装完后,要在/root/bashrc里设置jasper的lib和include路径,以备wrf调用 打开bashrc,加入以下几行: #for JASPER export=JASPER=/usr/local/jasper export=JASPERLIB=/usr/local/jasper/lib export=JASPERINC=/usr/local/jasper/include 然后 #cd #source .bashrc就可以了。 建议安装版本:(这个是WPS安装文件下 ungrib下 README_LIBS 建议安装的版本,具体的话google或者到各自的官方网站上去找就能找到) 不建议通过如下命令安装: apt-get install zlib1g-dev apt-get install libjasper-dev apt-get install libpng12-dev 因为在安装WPS的时候,需要把include和lib文件放到一起(其实也可以不用,但是这样方便)。同时,通过以上命令安装,版本不好控制,可能出现兼容性问题。 5、 安装 netcdf 4.0.1 重点:建议安装netcdf4.0.1,更高的版本可能会导致安装有问题。 netcdf4.1.3新版的会出现no entry nc.o in archive的错误了。 具体见文章: 下载netcdf的地址是 http://www.unidata.ucar.edu/downloads/netcdf/index.jsp 下载:netcdf-4.0.1.tar.gz “ztftom”大侠在其[原创搞定Ubuntu:单机WRF安装 的帖子中 说: “进入解压缩后得到的文件夹, ./configure --disable-dap --disable-netcdf-4 --prefix=/home/ztftom/util/netcdf 注意:上面红色高亮的两个选项是很多次实验后证明必须的。--disable-dap的原因是缺少一个‘curl’的lib, --disable-netcdf-4是因为WRF暂时不支持netcdf 4” 也可以选在通过如下命令安装libcurl3包: Sudo apt-get install libcurl3-openssl-dev 这样就只需设置一个不支持hdf5的参数就可以了: Cd到netcdf路径下,使用命令: #./configure --disable-netcdf-4 --prefix=/usr/local/netcdf 还是安装在/usr/local下面,方便不同用户都可以调用 #make #make install 这里应该也是很顺的,不会有什么错误。 同样也是要在bashrc文件里设置环境变量 #gedit ~./bashrc 打开bashrc,加入下面几行: #for netcdf export NETCDF=/usr/local/netcdf export PATH=.:$NETCDF/bin:$PATH export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH} export LD_RUN_PATH=${NETCDF}/lib:${LD_RUN_PATH 应WRF需要,再加入一行开启支持WRF输出大文件的选项设置: export WRFIO_NCD_LARGE_FILE_SUPPORT=1 然后#cd #source .bashrc 我们可以验证下netcdf安装成功与否,在终端中输入: #ncdump 6、 安装NCL6.0 下载NCL6.0的地址是: http://www.ncl.ucar.edu/Download/ http://www.earthsystemgrid.org/dataset/ncl.html http://www.earthsystemgrid.org/dataset/ncl.6.0.0.0.bin.nodap.html 要在www.earthsystemgrid.org注册下,然后登入后才可下载 我们这里下载已经在Linux_Debian下编译好的包,如图中选择: 具体可以用 命令: #uname -m #gcc –version 来查看自己的该下哪一个版本。 我选择的是编译好了的包。 将其解压缩后,将原文件名改为ncl_ncarg-6,然后复制到/usr/local/下, 打开bashrc文件加入ncarg的环境变量设置,加入如下几行: #for ncarg export NCARG_ROOT=/usr/local/ncl_ncarg-6 export PATH=$NCARG_ROOT/bin:$PATH export MANPATH=$NCARG_ROOT/man:$MANPATH export DISPLAY=:0.0 然后#cd #source .bashrc 验证NCL安装成功与否: #ncargversion 7、 WRF3.3.1的安装 Wrf3.3.1模式的下载地址是: http://www.mmm.ucar.edu/wrf/users/download/get_sources.html 也是要注册下才可下载 WRF要用WRFV3.3.1.TAR.gz版本,WRFV3.3.TAR.gz有一些错误,据说有补丁,但我没用过。 在/home自己的用户下面建立一个model的文件夹来存放wrf 如我的是:/home/jie/model 将wrf3.3解压缩在这个文件夹下,然后就可以进行编译了。 在ubuntu里,现在就可以敲入命令开始编译了 #./configure 选择合适的平台。 根据自己的系统选择1-4中的一个。我的理解是:1为单核,2为多核,3为内存共享,多cpu? 4为多cpu多核 如果出现找不到libcloog-ppl0的提示,可以用如下命令安装: Sudo apt-get install libcloog-ppl0 注:如果用gcc\g++\gfortran 4.6 编译的时候出现错误, "Error: Size of 'put' argument of 'random_seed' intrinsic at (1) too small (8/12)"的错误 改成gcc\g++\gfortran 4.4 编译后,错误消失。 这也就是为什么建议装gcc\g++\gfortran 4.4.6的原因。 开始执行编译命令: #./compile em_real >& log 这里,一般做天气预报选test里面的em_real,做研究的话可选对应的其他的,好了,现在就静静的等待计算机完成。 我们在WRFV3的文件夹里会看到有个log的记录文件生成,而且计算机在不断向里面写记录,这里一般不会出现什么错误,会顺利完成的。等到全部编译完成,这个log文件的大小正常情况下应该是506KB左右。编译完成,光标返回后,打开log文件,点搜索,输入:错误,查看是否有错。如果在状态栏看到“错误未找到”提示,那么,恭喜你,WRF主程序编译OK了! 8、 WPS3.3.1的安装 WPS3.3.1解压后的文件夹要和WRFV3放在一个文件下面。 配置编译。 #./configure 想配置WRF一样,选择带grib2的合适的平台。 在WPS文件夹下会生成configure.wps文件。在这里,我们需修改下此文件内的相关库的本机化路径。 首先,我们在/usr/local下建立wpslib和wpsinclude两个文件夹来存放相关文件将/usr/local下安装的zlib、libpng、jasper文件夹下的各lib文件夹内的东西复制到wpslib内,这里绕了点,说白了,就是把zlib、libpng、jasper生成的lib库文件统一放入wpslib内便于管理调用和修改设置。关于include头文件和刚才做相同的处理,统一放入wpsinclude文件夹内。 还有一个libX11的库文件路径需要修改,configure.wps的默认搜寻路径在ubuntu11.10是没有的。见下图: 其实libw3.a和libg2_4.a两个库文件在/WPS/ungrib/src/ngl里的g2和w3文件夹里是生成了的,但是好像生成的链接不可用似的,对于这个问题的解决我主要是参考了“Ice & Cream”大侠在网上的一篇博文: http://hi.baidu.com/longlivehejian/blog/item/702dfaeb2f52fccad439c92b.html 文中讲到“3. wps的编译过程会有几个被忽略的错误,提示找不到libw3.a和libg2_4.a,这是WPS/ungrib/src/ngl中Makefile中的相对路径问题,用gedit打开该Makefile,将两个"$(RANLIB)"后面的路径中的"w3/"和"g2/"去掉。”下图已去掉。 文章中说到的另外一个错误,我没有碰到,可能是因为我用的是更新的版本V3.3.1,所以没有碰到。 成功编译后,应该在主目录里出现如下exe文件。 在util文件夹下出现如下exe文件 9、WRFDA3.3.1的安装 到网站下载WRFDA3.3.1 http://www.mmm.ucar.edu/wrf/users/download/get_source.html 解压后,和WRFV3及WPS放在同一个目录下。 #cd WRFDA #export BUFR=1 #export CRTM=1 #export gfortran:export GFORTRAN_CONVERT_UNIT="little_endian:94-99" ./configure wrfda 选择和前面WRF一样的类型即可。 ./compile all_wrfvar >& log 运行的时间比较长,耐心等待吧,log大概411KB,如果log中没有错误,恭喜你。 ls -ls var/build/*.exe 会看到很多exe,如da_wrfvar.exe等。 10、参考材料: 3、http://hi.baidu.com/longlivehejian/blog/item/59963ff2c250a3d20b46e029.html 4、http://hi.baidu.com/longlivehejian/blog/item/702dfaeb2f52fccad439c92b.html 5、http://hejianjun520520.blog.163.com/blog/static/41789395201072011110662/ 6、http://apps.hi.baidu.com/share/detail/31941939 7、http://www.mnmuc.org/thread-13-1-1.html
| |
|