第四部分:WRF3.3+WPS3.3的安装
Wrf3.3模式的下载地址是: 也是要注册下才可下载 http://www.mmm.ucar.edu/wrf/users/wrfv3.3/known-prob-3.3.html 在/home自己的用户下面建立一个model的文件夹来存放wrf 如我的是:/home/jie/model 然后就可以进行编译了。 在ubuntu里,比较诡异的是,即使用root超级用户登录使用wrf的编译命令还是提示没有权限,无法执行。所以,先给configure和compile执行文件加权限,在终端输入: #cd /home/jie/model/WRFV3进入wrf主程序文件夹 #chmod u+x configure 加权限 # chmod u+x compile 现在就可以敲入命令开始编译了 #./configure 会出现如下界面: 关于选项问题,在这里,对于一般单机来讲,我们就选serial(单核)吧,其他选项的意思是: serial meanssingle processor 单核
smpar means Symmetric Multi-Processing/Shared Memory Parallel (OpenMP) 多核
dmpar means Distributed Memory Parallel (MPI) 分布式计算
dm+sm means Distributed Memory with Shared Memory 多核+分布式计算 所以,我们键入:15 then enter 然后会探测C、FORTRAN编译器和测试NETCDF 在测试NETCDF这会报个错,提示:no entry nc.o什么的 这个,我在网上查的原因有大侠说是老版的netcdf有这个,新版的有些netcdf里没有这个的,对模式没有什么影响的 在这里,我们修改WRFV3下的configure执行文件,打开configure,定位到第595行,如图: 将此行中的nc.o删去,然后保存,返回终端重新执行#./configure命令,此时,会出现如下图界面: configure完成! 开始执行编译命令: #./compile em_real>& wrfcompile.log 这里,一般做天气预报选test里面的em_real,做研究的话可选对应的其他的,好了,现在就静静的等待计算机完成。 我们在WRFV3的文件夹里会看到有个wrfcompile.log的记录文件生成,而且计算机在不断向里面写记录,这里一般不会出现什么错误,会顺利完成的。等到全部编译完成,这个log文件的大小正常情况下应该是506KB左右。编译完成,光标返回后,打开wrfcompile.log文件,点搜索,输入:错误,查看是否有错。如果在状态栏看到“错误未找到”提示,那么,恭喜你,WRF主程序编译OK了!
下面介绍WPS3.3的安装 #cd /home/jie/model/WPS进入WPS程序文件夹 与wrf一样要先给configure和compile执行文件加权限,在终端输入: #chmod u+x configure 加权限 # chmod u+x compile #./configure 会出现如下界面: 选择6,enter 在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.04是没有的。在ubuntu11.04里,libX11库是放在/usr/lib/x86_64-linux-gnu下的。 configure.wps修改后的设置如下图: 修改完成后,就可以进行编译了 #./compile>& wpscompile.log 编译完成后,我们打开wpscompile.log记录文件会查到出现一些错误,如下图所示: 和
错误主要是两方面的: 1、是未生成stringutil.mod文件 2、是找不到生成的libw3.a和libg2_4.a两个库文件 下载stringutil.mod文件 对于第二个问题,其实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/"去掉。” 他的意思如图所示: 下面是一直在纠结的所在地: 好了,现在问题的解决方法都有了,在其他文件夹下新建一个back的文件夹,将刚才修改过:configure.wps文件、WPS/ungrib/src/ngl下的Makefile文件、还有其实在/WPS/ungrib/src/ngl里的g2和w3文件夹里是生成了的libw3.a和libg2_4.a两个库文件、还有从网上下载到的stringutil.mod文件都提取到新建的back文件夹里。 然后,将model里的WPS文件夹改名(随便,只要不叫WPS就可以,呵呵),重新将下载的WPS3.3的tar文件解压缩到model文件夹下, 其实就是重复刚开始时的那些步骤 #cd /home/jie/model/WPS进入WPS程序文件夹 与wrf一样要先给configure和compile执行文件加权限,在终端输入: #chmod u+x configure 加权限 # chmod u+x compile #./configure
完了后,用back文件夹里备份的文件去替换新的WPS文件夹下相应的文件。 1、back文件夹里备份的stringutil.mod文件放入/WPS/geogrid/src下 2、back文件夹里备份的configure.wps文件覆盖/WPS的对应文件 3、back文件夹里备份的Makefile文件覆盖/WPS/ungrib/src/ngl的对应文件 4、back文件夹里备份的libw3.a库文件放入/WPS/ungrib/src/ngl里的w3文件夹里 5、back文件夹里备份的libg2_4.a库文件放入/WPS/ungrib/src/ngl里的g2文件夹里 6、将back文件夹里备份的libw3.a和libg2_4.a两个库文件在/WPS/ungrib/src/ngl里再存一份,这样做,是我想:如果在这里生成的libw3.a和libg2_4.a两个库文件的链接不可用,还不如直接将这两个文件放入的这里呢 OK了,以上这些做完后,我们就可以再次编译WPS了 #./compile >& wpscompile2.log 通过前面处理后,这次编译基本可以顺利进行了,主要的几个exe文件都可生成,但是还是存在一些可忽略的警告,如下图所示: 这样,WPS3.3就算是在曲曲折折中编译完成了,至于上面的一些可忽略的警告,其实我以前在redhat9上编译WRFV2.2.1时也遇到过,是可以解决的,网上也有相关的解决办法,等后面有时间吧,再补充下,争取做到编译全程一个警告都不出的效果,呵呵,现在就先到此为止吧!谢谢围观!
最后附上相关的一些库文件和修改后的文件:
configure---WRFV3.3
(24.09 KB, 下载次数: 47)
|