爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16899|回复: 12

WRF在Linux环境下的安装

[复制链接]

新浪微博达人勋

发表于 2020-5-5 18:06:43 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
在此之前说一段和本文无关的话,很早之前就想写一下自己的心得体会了,但是一直没有机会(主要是不知道怎么发帖),前两天在B站上写了一点心得,但是没有啥粉丝,也不太容易被关注到,和我想分享的初衷相悖,所以特意把自己的小小经验转移到了家园里,我在写的过程中,发现图片不太清晰,大家也可以到B站看一下,里面的图还算清晰。B站账号:我的眼中有一片为你的蓝

        本文主要介绍如何在Linux的发行版Ubuntu18下安装WRF模式。近地层温度反映局部地热循环的特征以及空气质量模型中污染物的分布特征,近地层温度是全球气候变化研究的重要指标之一,对其进行准确的定量反演具有重要的科学研究价值[1-2]。WRF (Weather Research and Forecast) 模式系统是由许多美国研究部门及大学共同参与开发研究的新一代中尺度预报模式和同化系统,有助于开展针对我国不同类型、不同地域天气过程的高分辨率数值预报和模拟研究[3]。
1 WRF模式的组成
       WRF模式的组成可以分为三个部分:预处理部分(WPS)、主程序(WRFV3)、后处理。
        预处理部分WPS(WRF Pre-processing System,WPS)又包含了三个模块:geogrid.exe、ungrib.exe、metgrid.exe。主程序WRFV3包括两个部分:real.exe 、wrf.exe。关于后处理的工具比较多,但是由于WRF程序运行的结果数据是netcdf(nc格式),所以一般都是能够处理nc格式的气象绘图软件,例如NCL(NCAR Command Language)、ARWpost、cdo(Climate Data Operators)等。
2预处理WPS功能介绍
2.1 geogrid.exe
        预处理的第一块儿——geogrid.exe的最大作用是确定模拟区域的参数设置,包括网格数、网格大小、模拟起始时间。与之对应的是namelist.wps中的“share”、“&geogrid”部分的设置。

                               
登录/注册后可看大图
图2-1 预处理部分—geogrid.exe
2.2ungrib.exe
        预处理的第二块儿——ungrib.exe的最大作用是链接Vtable表格。将下载的初始气象场格式对应,并且能够将气象场中所需要的数据进行提取,生成能够被Metgrid.exe所识别的中间过渡文件——FILE:yyy-mm-dd_hh

                               
登录/注册后可看大图
图2-2 预处理部分—ungrib.exe
2.3metgrid.exe        
        预处理的最后一块儿——metgrid.exe的最大作用是:提取气象场要素并且水平插值到geodrid.exe部分确定的模拟区域,并且生成能够被主程序所识别的中间结果文件——met_em.dxx.YYY-MMM-DDD_HH:00:00.nc

                               
登录/注册后可看大图
图2-3 预处理部分—metgrid.exe
3 主程序WRFV3功能介绍
3.1real.exe
        主程序的第一部分—real.exe,目的是为了消除下垫面差异的影响。生成的结果文件:wrfinput_dxx 和 wrfbdy_d01

                               
登录/注册后可看大图
图3-1 主程序—real.exe

3.2wrf.exe
        这一步也是主程序的最后一步,运行时间缓慢,值得欣慰的是,这并非是守株待兔般的等待,这是耕耘后的期待。最终会生成wrfoutd01、wrfoutd0x等文件。

                               
登录/注册后可看大图
图3-2 最终的生成结果—wrfoutd0x文件


4WRF模式的安装
4.1 安装编译器
(1)首先安装必要的编译器:sudo apt-get install csh gfortran m4 build-essential当然也可以先进行检查,若存在,则不需要继续安装。

                               
登录/注册后可看大图
图4-1 安装编译器

(2) 接着检查是否安装完毕
wzz@wzz:~$ which gfortran

wzz@wzz:~$ which cpp

wzz@wzz:~$ which m4

wzz@wzz:~$ which csh

wzz@wzz:~$ which gcc

wzz@wzz:~$ which g++

wzz@wzz:~$ which c++


                               
登录/注册后可看大图
图4-2 检查安装位置(确保已经安装)

(3 )接着检查版本其实这一步没有什么用
wzz@wzz:~$ gcc  --version
wzz@wzz:~$ gfortran  --version
wzz@wzz:~$ m4  --version
wzz@wzz:~$ g++  --version
wzz@wzz:~$ csh  --version
wzz@wzz:~$ cpp  --version
wzz@wzz:~$ c++  --version

                               
登录/注册后可看大图
图4-3 检查版本

(4) 进行测试
Cd /Build_WRF/TESTS解压文件 tar -xvf Fortran_C_tests.tar(提前下载好测试文件)
测试一:
gfortran TEST_1_fortran_only_fixed.f
./a.out
测试二:
gfortran TEST_2_fortran_only_free.f90
./a.out
测试三:
gcc TEST_3_c_only.c
./a.out
测试四:
gcc -c -m64 TEST_4_fortran+c_c.c
gfortran -c -m64 TEST_4_fortran+c_f.f90
gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
./a.out

                               
登录/注册后可看大图
图4-4 测试成功


(5) 接着设置环境变量

                               
登录/注册后可看大图
图4-5 环境变量设置

(6) 安装netcdf-4.1.3
解压文件
wzz@wzz:~/Build-WRF/LIBRARIES$ tar -zxvf netcdf-4.1.3.tar.gz
wzz@wzz:~/Build-WRF/LIBRARIES$ cd netcdf-4.1.3/
wzz@wzz:~/Build-WRF/LIBRARIES/netcdf-4.1.3$ ./configure --prefix=$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared
wzz@wzz:~/Build-WRF/LIBRARIES/netcdf-4.1.3$ make
wzz@wzz:~/Build-WRF/LIBRARIES/netcdf-4.1.3$ make install
wzz@wzz:~/Build-WRF/LIBRARIES/netcdf-4.1.3$ sudo nano ~/.bashrc
export PATH=$DIR/netcdf/bin:$PATH
export NETCDF=$DIR/netcdf
wzz@wzz:~/Build-WRF/LIBRARIES/netcdf-4.1.3$ source ~/.bashrc
在安装mpich之前再次设置环境变量

                               
登录/注册后可看大图
图4-6 环境变量设置




(7) mpich安装
wzz@wzz:~/Build-WRF/LIBRARIES$ tar xzvf mpich-3.0.4.tar.gz
wzz@wzz:~/Build-WRF/LIBRARIES$ cd mpich-3.0.4
wzz@wzz:~/Build-WRF/LIBRARIES/mpich-3.0.4$ ./configure --prefix=$DIR/mpich
wzz@wzz:~/Build-WRF/LIBRARIES/mpich-3.0.4$ make
wzz@wzz:~/Build-WRF/LIBRARIES/mpich-3.0.4$ make install
wzz@wzz:~/Build-WRF/LIBRARIES/mpich-3.0.4$ sudo nano ~/.bashrcexport PATH=$DIR/mpich/bin:$PATH
wzz@wzz:~/Build-WRF/LIBRARIES/mpich-3.0.4$ source ~/.bashrc

                               
登录/注册后可看大图
图4-7 环境变量设置

(8) zlib安装
wzz@wzz:~/Build-WRF/LIBRARIES$ sudo nano ~/.bashrcexport LDFLAGS=-L$DIR/grib2/libexport CPPFLAGS=-I$DIR/grib2/include
wzz@wzz:~/Build-WRF/LIBRARIES$ source ~/.bashrc
wzz@wzz:~/Build-WRF/LIBRARIES$ cd zlib-1.2.7
wzz@wzz:~/Build-WRF/LIBRARIES/zlib-1.2.7$ ./configure --prefix=$DIR/grib2
wzz@wzz:~/Build-WRF/LIBRARIES/zlib-1.2.7$ make
wzz@wzz:~/Build-WRF/LIBRARIES/zlib-1.2.7$ make install

                               
登录/注册后可看大图
图4-8 环境变量设置

(9)libpng安装
wzz@wangzz:~/Build-WRF/LIBRARIES$ tar xzvf libpng-1.2.50.tar.gz
wzz@wangzz:~/Build-WRF/LIBRARIES$ cd libpng-1.2.50
wzz@wangzz:~/Build-WRF/LIBRARIES/libpng-1.2.50$ ./configure --prefix=$DIR/grib2
wzz@wangzz:~/Build-WRF/LIBRARIES/libpng-1.2.50$ make
wzz@wangzz:~/Build-WRF/LIBRARIES/libpng-1.2.50$ make install
(10)jasper安装
tar xzvf jasper-1.900.1.tar.gz
cd jasper-1.900.1
./configure --prefix=$DIR/grib2
make
make install
依赖库兼容性测试
wzz@wzz:~$ cd TESTS/(文件解压部分)
wzz@wzz:~/TESTS$ tar xvf Fortran_C_NETCDF_MPI_tests.tar(提前下载好测试文件)
./._01_fortran+c+netcdf_c.c
01_fortran+c+netcdf_c.c
./._01_fortran+c+netcdf_f.f
01_fortran+c+netcdf_f.f
./._02_fortran+c+netcdf+mpi_c.c
02_fortran+c+netcdf+mpi_c.c
./._02_fortran+c+netcdf+mpi_f.f
02_fortran+c+netcdf+mpi_f.f
开始测试
wzz@wzz:~/TESTS$ cp ${NETCDF}/include/netcdf.inc .
wzz@wzz:~/TESTS$ gfortran -c 01_fortran+c+netcdf_f.f
wzz@wzz:~/TESTS$ gcc -c 01_fortran+c+netcdf_c.c
wzz@wzz:~/TESTS$ gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o \
>      -L${NETCDF}/lib -lnetcdff -lnetcdf
wzz@wzz:~/TESTS$ ./a.out   
C function called by Fortran   
Values are xx =  2.00 and ii = 1
SUCCESS test 1 fortran + c + netcdf
wzz@wzz:~/TESTS$ cp ${NETCDF}/include/netcdf.inc .
wzz@wzz:~/TESTS$ mpif90 -c 02_fortran+c+netcdf+mpi_f.f
wzz@wzz:~/TESTS$ mpicc -c 02_fortran+c+netcdf+mpi_c.c
wzz@wzz:~/TESTS$ mpif90 02_fortran+c+netcdf+mpi_f.o \> 02_fortran+c+netcdf+mpi_c.o \>      -L${NETCDF}/lib -lnetcdff -lnetcdf
wzz@wzz:~/TESTS$ mpirun ./a.out   
C function called by Fortran   
Values are xx =  2.00 and ii = 1
status =            2
SUCCESS test 2 fortran + c + netcdf + mpi

                               
登录/注册后可看大图
图4-9 测试

4.2编译WRF
wzz@wzz:~$ cd Build-WRF/
wzz@wzz:~/Build-WRF$ cd WRFV3/
wzz@wzz:~/Build-WRF/WRFV3$ ./configure
wzz@wzz:~/Build-WRF/WRFV3$ ./compile em_real >& log.compile
wzz@wzz:~/Build-WRF/WRFV3$ ls -ls main/*.exe


                               
登录/注册后可看大图
图4-10 WRF编译安装

4.3编译WPS
tar -xf WPSV3.9.1.TAR
cd WPS
./clean
export JASPERLIB=$DIR/grib2/lib
export JASPERINC=$DIR/grib2/include
./configure
./compile >& log.compile

                               
登录/注册后可看大图
图4-11 编译结果

以上是WRF模式的简单的安装流程以及部分介绍,希望能够帮助到一部分朋友。
参考文献:
[1] 曲培青,施润和,刘朝顺,钟洪麟.基于MODIS地表参数产品和地理数据的近地层气温估算方法评价——以安徽省为例[J].国土资源遥感,2011(04):78-82.
[2] 邱贵强,李华,张宇,罗斯琼,王少影,尚伦宇.高寒草原地区边界层参数化方案的适用性评估[J].高原气象,2013,32(01):46-55.
[3] 章国材.美国WRF模式的进展和应用前景[J].气象,2004(12):27-31.















密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2020-5-5 18:12:10 | 显示全部楼层
第一次发帖,才注意到分类有点不合适(尴尬😅)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-6 12:09:46 | 显示全部楼层
谢谢楼主,但是没看到图,尴尬
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-6 16:59:32 | 显示全部楼层
我发帖的时候显示的是有图的(,,ԾㅂԾ,,),要不你可以去B站看我写的文章,图片比较清晰
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-6 17:05:33 | 显示全部楼层
Rainzmh 发表于 2020-5-6 12:09
谢谢楼主,但是没看到图,尴尬

不知为什么我的视角是有图片的(可能我的操作有些问题),不过我在B站也写过,可以的话,你也可以去看一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-10 09:26:49 | 显示全部楼层
请问下LZ,编译的时候选的dmpr并行,运行wrf时是不是要输入 mpirun –np 8 ./wrf.exe 这样才能让他并行运算?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

0
早起挑战累计收入
发表于 2020-5-10 20:56:45 | 显示全部楼层
可以发一个带图的,然后附件pdf放高清的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-13 08:41:40 | 显示全部楼层
写的很好,就是没有图片,后期的WRF运行可以出一个帖子吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-5-25 19:45:12 | 显示全部楼层
Gorgeous 发表于 2020-5-13 08:41
写的很好,就是没有图片,后期的WRF运行可以出一个帖子吗

我发现我怎么发都发不出去,要不你去我的B站上去看的吧,文章的开头提了一嘴账号名,里面有图片,基本上能够看清楚
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-5-27 14:45:18 | 显示全部楼层
好帖,楼主介绍的简单直接好用!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表