登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
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.
|