WRFV2.2.1万文龙(整理)2008年11月10日CUIT目录1预备知识2Linux操作系统介绍3模式简介4编译器安装5WRF模块编译6WPS模块编译7模式运行8ARWPOST后处理编译9WRFDomainWizard10相关源代码及英文教程下载网业1预备知识常用linux、unix命令:打开终端,可以输入命令,如:cddirectory进入指定路径的工作目录cd..退到上一层目录ls显示目录下所有子目录与文件(包括隐藏文件)Vifile_name浏览和编辑文件gunzipfile_name.tar.gz解压文件(对于.tar.gz文件)tar–xvffile_name.tar解压文件(对于.tar文件)./configure连接./compile编译./install安装Chmod+xfile_name文件权限设置#echo$SHELL(查看所用计算机的shell)Bsh设置环境变量命令:例如:NETCDF=/usr/local;exportNETCDFCsh设置环境变量命令:例如:setenvNETCDF/usr/local/netcdf2Linux操作系统介绍(摘自于百度)Linux操作系统核心最早是由芬兰的LinusTorvalds1991年8月在芬兰赫尔辛基大学上学时发布的[那年Torvals25岁],后来经过众多世界顶尖的软件工程师的不断修改和完善,Linux得以在全球普及开来,在服务器领域及个人桌面版得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势,并以每年100%的用户递增数量显示了Linux强大的力量。Linux的是一套免费的32位多人多工的操作系统,运行方式同UNIX系统很像,但Linux系统的稳定性、多工能力与网络功能已是许多商业操作系统无法比拟的,Linux还有一项最大的特色在于源代码完全公开,在符合GNUGPL(GeneralPublicLicense)的原则下,任何人皆可自由取得、散布、甚至修改源代码。与其它操作系统相比,Linux还具有以下特色:①采用阶层式目录结构,文件归类清楚、容易管理②支持多种文件系统,如Ext2FS,ISOFS以及Windows的文件系统FAT16,FAT32,NTFS等③具有可移植性,系统核心只有小于10%的源代码采用汇编语言编写,其余均是采用C语言编写,因此具备高度移植性④可与其它的操作系统如Windows98/2000/xp等并存于同一台计算机上现在linux版本很多,应用比较广泛的是redhat以及开源的fedora。本文模式的安装是在redhat企业版5.0为例。NOTES:经陈功同学测试,fedora最新版本(指9版)在超线程奔腾Ⅳ单机上要比redhat运算快1倍;PGI编译使用f95比f90快25%。感谢陈功同学在模式编译运算优化上的试验支持!3模式简介WRF(WeatherResearchandForecastingModel)模式是由美国环境预测中心(NCEP),美国国家大气研究中心(NCAR)等美国科研机构中心着手开发的一种统一的中尺度天气预报模式。模式分为ARW(theAdvancedResearchWRF)和NMM(theNonhydrostaticMesoscaleModel)两种,即研究用和业务用两种形式,本文介绍的是ARWWRF。3.1模式特点WRF模式系统具有可移植,易维护,可扩充,高效率,方便等许多特点,将成为改进从云尺度到各种不同天气尺度的重要天气特征预报精度的工具。WRF模式为完全可压缩以及非静力模式,采用F90语言编写。水平方向采用ArakawaC(荒川C)网格点(重点考虑1-10km),垂直方向则采用地形跟随质量坐标。WRF模式在时间积分方面采用三阶或者四阶的Runge-Kutta算法。WRF模式不仅可以用于真实天气的个案模拟,也可以用其包含的模块组作为基本物理过程探讨的理论根据。此外,WRF模式还具有多重嵌套和方便的定位于不同地理位置的能力。Arakawa-C特点运用Arakawa-C交错格点假设所有3维变量(U,V,和质量)关于这些点是交错格点。对于定义的非交错格点,U格点向上交错了0.5个格点,V格点向右交错了0.5个格点,质量网格分别向上向右交错了0.5个格点。为了便于说明,下面给出一个(XDIM,YDIM)=(4,4)的例子:(+)为根据参数定义的点。(T)为由WRF预报模式提供和输出的质量变量的格点位置。(U)点为由WRF模式提供和输出的U动量变量的格点位置。(V)点为由WRF模式提供和输出的V动量变量的格点位置。这样,如果使用维数(XDIM,YDIM),则模式输出如下:(XDIM-1,YDIM-1)维的质量变量(XDIM,YDIM-1)维的U动量(XDIM-1,YDIM)维的V动量。3.2WRF模式流程出处:User’sGuideforAdvancedResearchWRF(ARW)ModelingSystemVersion2.24编译器安装Softwarerequirements(软件需求)-Fortran90or95andccompiler(模式编译语言f90/f95)-perl5.04orbetter-IfMPIandOpenMPcompilationisdesired,itrequiresMPIorOpenMPlibraries-WRFI/OAPIsupportsnetCDF,PHD5,GriB1andGriB2formats,henceoneoftheselibrariesneedstobeavailableonthecomputerwhereyoucompileandrunWRF安装PGI设置环境变量安装NETCDFWRF模式系统是采用Fortran90、Fortran77及c++编译语言进行编译与测试的,所以,运行WRF必须先安装编译软件,目前运用的编译软件主要有PGI和INTEL。本文以PGI(6.0版本)编译器、NETCDF3.6.1为例进行说明。4.1PGI6.0安装(1):把linux86-64文件复制到指定路径下,如/usr/,用命令#tarzxvflinux86-64.tar.gz解压文件(2):编译并安装#cd/usr/linux86-64进入安装目录#./install执行安装Doyouaccepttheseterms?[accept,decline]acceptInstalltheACML?[y/n]nInstallationdirectory?[/usr/pgi]/usr/local/pgiCreateanevaluationlicense?[y/n]nDoyouwantthefilesintheinstalldirectorytoberead-only?[y,n]n(3):用root用户把license.dat(在使用期范围的其他版本的license.dat也可以用)复制(cp)到/usr/local/pgi下$cp–r/usr/linux86-64/license.dat/usr/local/pgi4.2环境变量设置为了方便,我们可以将环境变量登录到.bashrc(或者.bash_profile)里。下文将PGI以及NETCDF一起设置进去。在根目录root下打开隐藏文件.bash_profile或着在终端下输入:#vi.bash_profile(一般我们修改在/home/usr/cuit目录里:#cd/home/usr/cuit)出现如下内容:#.bash_profile#Getthealiasesandfunctionsif[-f~/.bashrc];then.~/.bashrc然后添加如下语句:#UserspecificenvironmentandstartupprogramsPATH=$PATH:$HOME/binexportPATHunsetUSERNAME##setpgi##(设置PGI)exportPGI=/usr/local/pgiexportPATH=$PGI/linux86/6.0/bin:$PGI/linux86/6.0/include:$PATHexportMANPATH=$MANPATH:$PGI/linux86/6.0/manexportLM_LICENSE_FILE=$PGI/license.dat##setnetcdf##(设置NETCDF)exportNETCDF=/usr/local/netcdfexportPATH=$NETCDF/bin:$NETCDF/include:$NETCDF/lib:$NETCDF/man:$PATHexportCC=/usr/bin/gccexportCXX=$PGI/linux86/6.0/bin/pgCCexportFC=$PGI/linux86/6.0/bin/pgf90exportF90=$PGI/linux86/6.0/bin/pgf90然后保存退出,用如下命令#esc:wq!#source.bash_profile保存完后,注销一次。最后可以用命令whichpgf90来查看pgi是否安装成功。#whichpgf90/usr/local/pgi/linux86/6.0/bin/pgf90#pgf90pgf90-Warning-Nofilestoprocess显示如上则pgi安装成功4.3NETCDF3.6.1安装NOTES:PGI安装不成功,后面的NETCDF是编译安装不上的!#cd/usr/local#mkdirnetcdf#cd..回到usr目录下#cd..回到根目录#cdusr#tarzxvfnetcdf.tar.gz#cdnetcdf-3.6.1/src#./configure–prefix=/usr/local/netcdf编译并指示安装路径#makecheck#makeinstall执行安装此时NETCDF安装完成,环境变量在前一个步骤设置好,注意前面的环境变量里的路径必须与此安装路径相同。5WRF(主)模块编译安装首先在/home/user/cuit下解压WRFV2.2.1.tar.gz文件:#tarzxvfWRFV2.2.1.tar.gz#ls#mvWRFV2.2.1WRFV2#cdWRFV2下一步就要开始连接然后编译WRF主模块:#./configure(or:configure有的shell命令如此)然后出现如下内容:checkingforperl5...nocheckingforperl...found/usr/bin/perl(perl)WilluseNETCDFindir:/usr/local/netcdf-pgiPHDF5notsetinenvironment.WillconfigureWRFforusewithout.------------------------------------------------------------------------Pleaseselectfromamongthefollowingsupportedplatforms.1.PCLinuxi486i586i686,PGIcompiler(Single-threaded,nonesting)2.PCLinuxi486i586i686,PGIcompiler(singlethreaded,allowsnestingusingRSLwithoutMPI)3.PCLinuxi486i586i686,PGIcompilerSM-Parallel(OpenMP,nonesting)4.PCLinuxi486i586i686,PGIcompilerSM-Parallel(OpenMP,allowsnestingusingRSLwithoutMPI)5.PCLinuxi486i586i686,PGIcompilerDM-Par