本文共 1418 字,大约阅读时间需要 4 分钟。
上一篇已经将所有WRF-DA模块所需要的依赖库都编译安装成功。接下来的步骤就是WRF-DA模块的编译与安装。笔者已经事先从WRF官网下载了该模块的源码(版本为最新的3.8.1)。
首先在设置个目录专门来存放WRF的主程序。选择在Home下面新建一个mode。命令如下:$ sudo mkdir mode
先进入管理员模式(sudo su命令),然后将WRFDA的压缩包全部复制到刚刚建好的文件夹中。
cp -r WRFDA_V3.8.1.tar.gz /home/mode/
到刚刚建好的WRF文件夹里,同样进入管理员模式,并解压文件夹,到WRFDA目录中,配置环境变量,并设置编译类型。其中,rttov看是否需要,也可以不考虑安装。如若要安装,环境变量配置的路径为可以找到lib/librttov11.*.a的文件目录。
tar zxf WRFDA_V3.8.1.tar.gz cd WRFDAexport 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
然后等它编译完成就好了。
ls -l var/build/*exe var/obsproc/src/obsproc.exe
接着就回头去看log文件以及官方编译要求。
发现大部分是路径错误。于是重新配置安装依赖库,并将WRF所需的其他库一并安装,重新编译。终于成功。以上就是WRF-DA模块的编译与安装。
后面会更新WRF主程序的编译与安装方面的内容(具体时间待定)。 最后再次感谢以下博客文档的帮助。