上一篇已经将全部WRF-DA模块所须要的依赖库都编译安装成功。接下来的步骤就是WRF-DA模块的编译与安装。笔者已经事先从WRF官网下载了该模块的源码(版本为最新的3.8.1)。 首先在设置个目录专门来存放WRF的主程序。选择在Home下面新建一个mode。命令以下:html
$ sudo mkdir mode
先进入管理员模式(sudo su命令),而后将WRFDA的压缩包所有复制到刚刚建好的文件夹中。分布式
cp -r WRFDA_V3.8.1.tar.gz /home/mode/
到刚刚建好的WRF文件夹里,一样进入管理员模式,并解压文件夹,到WRFDA目录中,配置环境变量,并设置编译类型。其中,rttov看是否须要,也能够不考虑安装。如若要安装,环境变量配置的路径为能够找到lib/librttov11.*.a的文件目录。ide
tar zxf WRFDA_V3.8.1.tar.gz cd WRFDA export NETCDF=/usr/local/NETCDF/ export hdf5=/usr/local/hdf5/ export rttov=/usr/rttov/ ./configure wrfda
而后出现了不少选项。 选择 x86_64 Linux, gfortran compiler with gcc (serial),键入32,回车。 32到35分别表明 32为serial 表示串行计算; 33为smpar 表示内存共享并行计算(shared memory option),即便用openMP,大部分多核电脑都支持这项功能; 34为dmpar 表示分布式并行计算(distributed memory option),即便用MPI 进行并行计算,主要用在计算集群,单个电脑就不必用了; 35为dm+sm 表示同时使用openMP与MPI两种并行方式. 根据实际须要选择便可,最保险的方法就是选择 serial,不过这样编译出来的程序运行最慢(引自xg1990的博客)。笔者初步测试,选择串行计算的版本,并且根据官方文档和编译结果,其余模式还须要有其余相关的依赖库。选择完编译选项后,会出现提示选择嵌套选项,通常就选 basic 选项便可。固然,这边编译器不一样的话,序号也有所不一样。同时官方文档已声明3.8.1版本不支持dm和dm+sm版本。
搞定以后,看到一条振奋人心的消息。
接下来,就输入以下命令:测试
./compile all_wrfvar>&checkwrfda.log
而后等它编译完成就行了。 固然,到这一步我仍是有问题,由于我只编译安装了43个exe,彻底成功应该有44个exe。而且发现这个缺乏的exe是主程序,da_wfrda.exe。 查看生成exe的命令。ui
ls -l var/build/*exe var/obsproc/src/obsproc.exe
接着就回头去看log文件以及官方编译要求。 发现大部分是路径错误。因而从新配置安装依赖库,并将WRF所需的其余库一并安装,从新编译。终于成功。 .net
以上就是WRF-DA模块的编译与安装。 后面会更新WRF主程序的编译与安装方面的内容(具体时间待定)。 最后再次感谢如下博客文档的帮助。code
https://wenku.baidu.com/view/58851bc269eae009591bec0a.html https://nwpsaf.eu/site/software/rttov/rttov-v12/ http://www2.mmm.ucar.edu/wrf/users/wrfda/updates-3.8.1.html https://xg1990.com/blog/archives/190 http://blog.csdn.net/luoying_1993/article/details/53228473 https://wenku.baidu.com/view/57e27fd14a7302768e9939f4.html?re=view http://www2.mmm.ucar.edu/wrf/users/wrfda/Docs/user_guide_V3.8.1/users_guide_chap6.htm#_Installing_WRF-Varhtm