好文档 - 专业文书写作范文服务资料分享网站

WRF模式简易操作 - 中文指南设计 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

实用标准文档

获取调用场库的起止时间后,就可以初始化计算时间。初始化时间时,调用子程序build_hdate。每一次调用后都会返回一个格式为“yyyy-mm-dd_hh:mm:ss”的时间串。以起始时间为开始,在场库中找符合条件的时次,进行场库资料的读取,直到用户定义的调用终止时间为止。 在每一个要读取场库资料的有效时次内,遍历从变量列表中获取得每一个变量。但由于地形、海温和水陆标志信息特殊,要进行特殊处理。另外,由于T213场库中,有一些要素场保存的量仍为高斯格点场资料,故要求将其内插转换到经纬网格点上。这部分功能是调用子程序GAUSS2LATLON来完成的(这个子程序是在陈启英、姚明明提供的转换程序的基础上修改而成)。

最后模式的输出是根据用于定义的输出格式来输出的。在namelist.input文件中定义的OUT_TYPE就是定义输出格式的量。当OUT_PUT=1时,输出为SI程序中grib_prep.exe能识别处理的格式,当然,grib_prep.exe的程序源代码要稍加修改,这在后面将会讲到。输出时调用子程序out_pregrid,输出文件名为“avn_*”;当OUT_TYPE=2时,输出为SI程序中hinterp.exe能识别处理的格式,调用输出子程序out_hinterp,输出文件名为“AVN_FILE:*”;当OUT_TYPE=3时,输出为MM5的前处理程序能识别处理的格式。输出时调用子程序out_mm5来输出,输出文件名为“MM5_FILE:*”。

3.3 嵌套的实现

根据嵌套方案设计以及程序设计的具体实施,嵌套过程的实现可以通过三种具体方案来实现。实现的流程示意图如图11所示。

3.3.1 方案一

(1) 首先运行readt213.exe程序读取场库资料,将场库资料输出为

grib_prep.exe能够识别处理的格式。

(2) 在运行WRF SI前必须配置SI的参数列表文件namelist.input。

(3) 执行脚本文件grib_prep.pl ,它会调用grib_prep.exe程序。由于

grib_prep.exe程序处理的数据格式为GRIB码压缩格式,为了方便,可以将grib_prep.exe的源程序代码稍作修改,使其能直接读取文本格式的数据。具体做法是直接修改WRF SI源程序目录./src/grib_prep/grib.misc/目录下的rd_grib.F文件。将rd_grib.F中打开数据文件、读写数据的语句注释掉,然后添加相应的Fortran中打开文本格式文件的语句和相应的读写数据的语句。

? 打开文件:

源代码:

if (iuarr(iunit).eq.0) then if (iprint.eq.1) then

call copen(iunit, nunit, gribflnm, 1, ierr, iprint) else

call copen(iunit, nunit, gribflnm, 1, ierr, -1) endif

文案大全

if (ierr.ne.0) then call deallogrib ierr = 2 return endif

iuarr(iunit) = nunit endif

修改为:

实用标准文档

if (iuarr(iunit).eq.0) then open(iunit, file=gribflnm, status='old', iostat=ierr) nunit = iunit

if (ierr.ne.0) then

if (iprint==1) print*, 'Open file error code: ', ierr

call deallogrib ierr = 2 return endif

iuarr(iunit) = nunit endif

? 读变量场头信息: 源代码: read(iunit,*,end=9112)(ksec1(i), call get_sec1(ksec1) i=1,24) call get_sec2(ksec2) read(iunit,*,end=9112)(ksec2(i), call get_gridinfo(infogrid, i=1,4) ginfo) read(iunit,*,end=9112)(ginfo(i), i=1,24)修改为:

? 读变量场数据:

源程序:call gribdata(DataArray,map%nx*map%ny) 修改为:read(iunit,*,end=9112)(DataArray(i),i=1,ii)

为了程序的安全运行,还必须修改grib_prep.F程序源代码,将文件

关闭语句作相应的修改:

源代码:call cclose(iuarr(nunit1), iprint, ierr) 修改为:close(iuarr(nunit1))

做完修改后,重新编译安装WRF SI源程序或者单独编译

grib_prep.exe程序。 (4)执行interp.pl脚本文件,它会依次调用hinterp.exe和vinterp.exe程序。如果

是第一次运行或者重新计算新的区域时,则在运行hinterp.exe程序前还会运行gridgen_model.exe程序。

运行成功后,会生成WRF所需要的预处理数据文件real_input* 。

3.3.2 方案二

(1) 首先运行readt213.exe程序,读取场库资料,将场库资料输出为

hinterp.exe能够识别处理的格式。

此格式要求格式文件为Fortran的顺序读取的无格式数据文件。文件中

的数据都是写出三个记录数据和一个二维数据块的形式。二维数据块总是二维(nx,ny)实型数组。而前两个记录数据包括的记录元是固定不变的,第三个记录数据包括记录元则随数据本身采用地图投影不同而不同。具体的记录成员及其说明如下:

记录1:version

记录2:hdate, xfcst, source, field, units, decription, level 如果 proj_flag=0那么

记录3:startloc, startlat, startlon, deltalat, deltalon

文案大全

实用标准文档

如果 proj_flag=1那么

记录3:startloc, startlat, startlon, dx, dy, truelat1 如果 proj_flag=3那么

记录3:startloc, startlat, startlon, dx, dy, orient, truelat1,

truelat2

如果 proj_flag=5那么

记录3:startloc, startlat, startlon, dx, dy, orient, truelat1

记录1:

INTEGER*4 :: version

数据的版本号,目前此版本号为4。 记录2:

CHARACTER(LEN=24) :: hdate

数据的有效时间,格式为YYYY-MM-DD-HH:mm:ss:ssss。 REAL*4 :: xfcst 数据块的预报时效,单位为小时。 CHARACTER(LEN=32) :: source 数据块的描述信息。

CHARACTER(LEN=9) :: field

气象要素场的变量名称。这个变量名为对应于变量列表文件Vtable中的变量名称,而且必须是模式能够识别的名称。

CHARACTER(LEN=25) :: units

数据块中气象要素的单位。此记录只是用于文本信息描述要素场的,而模式本身不会根据此单位来实行自动转换。

CHARACTER(LEN=46) :: description

数据块中气象要素的详细描述信息。

REAL*4 :: level

数据块中气象要素所处的垂直等压面值,单位为帕。如果是地面气象要素,则此记录值为200100.0帕;如果是海平面气象要素,则此记录值为201300.0帕。

INTEGER*4 :: nx

二维数据块的x方向的范围大小。

INTEGER*4 :: ny

二维数据块的x方向的范围大小。

INTEGER*4 :: proj_flag

地图投影的标志变量。其中:

0:圆柱等距投影(经/纬格点) 1: 麦卡托投影 3:兰勃特等角投影

5:极射赤面投影 (Polar Stereographic)

记录3:

CHARACTER(LEN=8) :: startloc

描述数据块中气象要素的数据的经纬度的相对起始点位置。有效值为:

文案大全

实用标准文档

‘SWCORNER’ : 经纬度相对起始点为左下角 ‘CENTER’ : 经纬度相对起始点为投影中心

REAL*4 :: startlat

起始点的纬度。

REAL*4 :: startlon

起始点的经度。

REAL*4 :: deltalat

经纬格点的纬度增量

REAL*4 :: deltalon

经纬格点的经度增量

REAL*4 :: dx

x方向的格距,指不投影变形处的格距。

REAL*4 :: dy

y方向的格距,指不投影变形处的格距。

REAL*4 :: orient

与y轴平行的经度值,通常为投影不变形的经度值。

REAL*4 :: truelat1

投影不变形的第一纬度值。

REAL*4 :: truelat2

投影不变形的第二纬度值,只有兰勃特投影时才有第二不变形纬度值。

(2) 设置WRF SI的参数列表文件namelist。 (3) 执行interp.pl脚本文件,它会依次调用hinterp.exe和vinterp.exe程序。如果是

第一次运行或者重新计算新的区域时,则在运行hinterp.exe程序前还会运行gridgen_model.exe程序。

运行成功后,会生成WRF所需要的预处理数据文件real_input* 。

3.3.3 方案三

(1)首先运行readt213.exe,读取场库资料,将场库资料输出为MM5前处理程序能够识别处理的格式。

此格式要求格式文件为Fortran的顺序读取的无格式数据文件。文件中

的数据都是写出三个记录数据和一个二维数据块的形式。二维数据块总是二维(nx,ny)实型数组。而前两个记录数据包括的记录元是固定不变的,第三个记录数据包括记录元则随数据本身采用地图投影不同而不同。具体的记录成员及其说明如下:

记录1:version

记录2:hdate, xfcst, field, units, decription, level 如果 proj_flag=0那么

记录3:startlat, startlon, deltalat, deltalon 如果 proj_flag=1那么

记录3:startlat, startlon, dx, dy, truelat1 如果 proj_flag=3那么

文案大全

实用标准文档

记录3:startlat, startlon, dx, dy, orient, truelat1, truelat2 如果 proj_flag=5那么

记录3:startlat, startlon, dx, dy, orient, truelat1

记录1:

INTEGER*4 :: version

数据的版本号,此版本号为3。 记录2:

CHARACTER(LEN=24) :: hdate

数据的有效时间,格式为YYYY-MM-DD-HH:mm:ss:ssss。 REAL*4 :: xfcst 数据块的预报时效,单位为小时。 CHARACTER(LEN=9) :: field

气象要素场的变量名称。这个变量名为对应于变量列表文件Vtable中的变量名称,而且必须是模式能够识别的名称。

CHARACTER(LEN=25) :: units

数据块中气象要素的单位。此记录只是用于文本信息描述要素场的,而模式本身不会根据此单位来实行自动转换。

CHARACTER(LEN=46) :: description

数据块中气象要素的详细描述信息。

REAL*4 :: level

数据块中气象要素所处的垂直等压面值,单位为帕。如果是地面气象要素,则此记录值为200100.0帕;如果是海平面气象要素,则此记录值为201300.0帕。

INTEGER*4 :: nx

二维数据块的x方向的范围大小。

INTEGER*4 :: ny

二维数据块的x方向的范围大小。

INTEGER*4 :: proj_flag

地图投影的标志变量。其中:

0:圆柱等距投影(经/纬格点) 1: 麦卡托投影 3:兰勃特等角投影

5:极射赤面投影 (Polar Stereographic)

记录3:

REAL*4 :: startlat

起始点的纬度。

REAL*4 :: startlon

起始点的经度。

REAL*4 :: deltalat

经纬格点的纬度增量

REAL*4 :: deltalon

经纬格点的经度增量

REAL*4 :: dx

文案大全

WRF模式简易操作 - 中文指南设计 - 图文

实用标准文档获取调用场库的起止时间后,就可以初始化计算时间。初始化时间时,调用子程序build_hdate。每一次调用后都会返回一个格式为“yyyy-mm-dd_hh:mm:ss”的时间串。以起始时间为开始,在场库中找符合条件的时次,进行场库资料的读取,直到用户定义的调用终止时间为止。在每一个要读取场库资料的有效时次内,遍历从变量列表中获取得每一个变量。但由
推荐度:
点击下载文档文档为doc格式
7y14h344b620sz532alg3gznb0gt5600bsc
领取福利

微信扫码领取福利

微信扫码分享