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

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

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

实用标准文档

所以必然会造成程序的运行失败。

模式目录中还提供了用于卸载的清除程序clean(Csh类shell脚本)。安装失败时,可以使用这一程序来恢复到最初的状态。当未指定任何参数时,清除程序“clean”将删除src目录中的目标文件(*.o)以及编译时产生的一些中间文件,文件“configure.wrf”会保留。当指定“-a”为“clean”的参数时,则会连同文件“configure”以及一些在“external”目录中的库函数一起删除。所以,用带参数“-a”的清除命令,则会将模式恢复到模式的安装最原始的状态,而文件“configure.wrf”中的一些修改信息都会丢失。(注意,清除程序并不会将run或test子目录中的数据文件或可执行文件删除掉)。

在“configure.wrf”创建后,还可以根据需要来修改编译选项。值得注意的是,WRF模式可实时配置计算范围大小,处理器数量,以及其他选项,并且仅需要在运行程序之前通过修改文件“namelist.input”即可。而针对这些选项设置,并没有修改文件“configure.wrf”的必要。只是在编译器、编译选项或者编译规则需要变动时,才有必要对“configure.wrf”文件进行修改。

在WRF模式调试运行过程中,发现由于WRF模式采用动态分配数组的方式来分配模式中的数组单元,因此对计算机的逻辑内存、堆栈段内存以及数据段内存开销较大。在IBM SP 上编译时,默认的内存设置可能满足不了模式计算时的内存需求。而“configure.wrf”中没有设置内存编译选项(-bmaxdata, -bmaxstack 和-qmaxmem),这就需要用户对其进行修改。通常将他们的限制值设置的稍微大些比较好。例如,可以将“configure.wrf”的原始设置:

FCBASEOPTS = -qarch=auto -qfree=f90 -qzerosize -qnosave -qmaxmem=-1 -qspill=20000 $(FCDEBUG) $(OMP)

. . . . . .

LDFLAGS =

. . . . . .

wrfio_nf : ( cd ../external/io_netcdf ; make

NETCDFPATH=/u/denglt/netcdf FC=\$(FCDEBUG) -qarch=auto -qfree=f90 -qzerosize -qnosave\; /bin/cp wrf_io_flags.h wrf_status_codes.h ../../inc )

wrfio_int :

( cd ../external/io_int ; \\

make CC=$(CC) FC=\$(FCDEBUG) -qarch=auto

-qfree=f90 -qzerosize -qnosave\

solve_interface.o : solve_interface.F $(RM) $@

$(CPP) -I../inc $(CPPFLAGS) $*.F > $*.f

文案大全

实用标准文档

$(FC) -c -qfree=f90 -qspillsize=32767 -I. $(MODULE_DIRS) $*.f

修改为:

FCBASEOPTS = -qarch=auto -qfree=f90

-bmaxdata:0x80000000 -bmaxstack:0x10000000 -qzerosize -qnosave -qmaxmem=-1 -qspill=20000 $(FCDEBUG) $(OMP)

. . . . . .

LDFLAGS = -bmaxdata:0x80000000 -bmaxstack:0x10000000 -qmaxmem=-1

. . . . . .

wrfio_nf : ( cd ../external/io_netcdf ; make

NETCDFPATH=/u/denglt/netcdf FC=\ $(FCDEBUG) -qarch=auto -qfree=f90 -bmaxdata:0x80000000 -bmaxstack:0x10000000 -qmaxmem=-1 -qzerosize -qnosave\; /bin/cp wrf_io_flags.h wrf_status_codes.h ../../inc )

wrfio_int :

( cd ../external/io_int ; \\

make CC=$(CC) FC=\$(FCDEBUG) -qarch=auto

-qfree=f90 -bmaxdata:0x80000000 -bmaxstack:0x10000000 -qmaxmem=-1 -qzerosize -qnosave\

solve_interface.o : solve_interface.F $(RM) $@

$(CPP) -I../inc $(CPPFLAGS) $*.F > $*.f $(FC) -c -qfree=f90 -bmaxdata:0x80000000

-bmaxstack:0x80000000 -qmaxmem=-1 -qspillsize=32767 -I. $(MODULE_DIRS) $*.f

由于以上的修改,在运行清除程序clean后会被自动删除掉,造成修改信息丢失。有鉴于此,用户除了修改configure.wrf外,还可以直接修改arch子目录中的configure.defaults文件。找到configure.defaults文件中与AIX相关的十一个配置模块,按在configure.wrf中的修改方法一样修改。这样做好修改后,以后的每次清除编译环境重新配置编译环境时,都不会丢失修改好的信息。

在编译1.3版时,发现有些程序在选用“优化”编译时,往往会编译很慢,甚至会由于优化消耗内存,造成内存不足后而导致编译失败。因此,一种解决方

文案大全

实用标准文档

法是可以在编译选项中去掉优化选项“-O2”;另一种解决方法就是将优化编译时耗时很长或者耗内存很大的程序加入到优化的编译规则中。这一修改,也可以在arch子目录中的configure.defaults中进行。在IBM SP2机器上,要添加的的目标文件有:

module_io_mm5.o module_si_io.o module_io_wrf.o module_domain.o\\ module_start.o module_initialize.o module_initialize_b_wave.o \\ module_initialize_hill2d_x.o module_initialize_quarter_ss.o \\ module_initialize_squall2d_x.o module_initialize_squall2d_y.o \\ module_initialize_real.o module_dm.o start_domain.o \\ mediation_force_domain.o mediation_interp_domain.o \\ mediation_feedback_domain.o solve_interface.o

当configure.wrf文件中的ARCHFLAG标志参数包含-DDM_PARALLEL参数值,并且连接好相应的消息传递库函数时,可用分布式内存并行机制进行编译。目前连接库只有一种可供选择:external/RSL/RSL/librsl.a。此时,其他一些必须设置生效的参数值包括:-DWRF_RSL_IO和_DRSL。CFLAGS参数必须取有-DWRF_RSL_IO,-DMAXDOM_MAKE = $(MAX_DOMAINS),DMAXPROC_MAKE= $(MAX_PROC ),DMAXPROC_MAKE = $(MAX_PROC),-I../external/RSL/RSL。在设置文件arch/configure.defaults的用于设置分布式内存并行编译的模板中包含了上面这些参数值。而在configure.wrf文件中设置相应的编译标志参数时,就可以用共享式内存并行机制来进行编译。内存共享式并行机制采用OpenMP线程形式。

2.5.4 编译代码

在配置完编译环境变量之后,就可以输入编译命令“compile”进行程序代码编译了。首先,输入“compile”,则会出现以下帮助选项:

Usage:

compile wrf compile wrf in run dir test cases (see README_test_cases):

compile em_b_wave (欧拉质量坐标斜压波方案) compile em_grav2d_x (欧拉质量坐标重力波方案) compile em_hill2d_x (欧拉质量坐标二维钟形山体方案)

compile em_quarter_ss (欧拉质量坐标三维超级单体云体方案) compile em_real (欧拉质量坐标真实大气方案)

compile em_squall2d_x (欧拉质量坐标x-z平面二维飚线方案 ) compile em_squall2d_y (欧拉质量坐标y-z平面二维飚线方案 ) compile exp_real (真实大气试验方案 )

compile nmm_real (欧拉高度坐标真实大气方案 ) compile -h (帮助信息)

上面的帮助信息里,列出了目前WRF模式中可以编译运行的方案选择。其中em表示“欧拉质量坐标”模式动力框架。当模式从一个方案转到其他方案时,必须重新编译。重新编译后,wrf.exe不变,但初始化程序(比如real.exe和ideal.exe)会有所不同。除了“nmm_real”和“em_real”两个编译方案是真实

文案大全

实用标准文档

大气方案外,其他方案都是用理想数据进行大气模拟试验的方案。 编译时,输入带参数的编译命令“compile”,命令格式为: $compile case_name

比如说要编译质量动力框架下的二维飚线方案时,则可键入命令: $compile em_squall2d_x

然后,编译程序启用注册机制:在“tools/directory”目录中的c程序会根据文件Registry/Registry中的列表内容创建文件,放在inc目录中。然后,编译程序会编译一些源程序目录中的源代码,产生目标文件“.o”以及一些中间文件(如“.f”)。注意,其中目录“frame/”中的一个源代码文件(“frame/module_state_description.F”)不是随模型源程序一起发布的,而是在编译时由注册机制自动创建的。如果想要在下一次编译时强制重新运行注册机制,则将文件“frame/module_state_description.F”移除掉即可。

成功编译后,会产生两个可执行文件“ideal.exe”和“wrf.exe”,放置目录为“main/”,并且在目录“test/em_squall2d_x”中有他们的连接文件。对于每一个不同理想大气试验方案,ideal.exe都会不同,这是因为它们建立方案时是编译了不同的模块“module_initialize”。如果用户想修改试验方案,则需对目录“dyn_em/”或者“dyn_eh/”中的“module_initialize”进行修改。可以改变它们的初始状态,比如边界环境、热力湍流(thermal bubble)、模式层数以及地形等。如果模式动力框架不同,那么“ideal.exe”也会不同。

当编译失败或者要重新编译时,可用模式提供的清除命令clean来进行。当未指定任何参数时,清除程序“clean”将删除源程序目录中的目标文件(*.o)以及编译时产生的一些中间文件,文件“configure.wrf”会保留。当指定“-a”为“clean”的参数时,则会连同文件“configure”以及一些在“external”目录中的库函数一起删除。所以,用带参数“-a”的清除命令,则会将模式恢复到模式的安装最原始的状态,而文件“configure.wrf”中的一些修改信息都会丢失。(注意,清除程序并不会将run或test子目录中的数据文件或可执行文件删除掉)。

对发布的原始代码或运行了清除程序“clean -a”后的代码进行第一次编译时,编译程序会在“external”目录中创建一些库函数。

另外,编译错误时显示的行号是中间文件“.f”的对应行号,但不一定都是源程序目录中的“.F”文件的对应行号。这可能会给查找错误所在地位置带来一些麻烦。

F90编译器允许在向外部子程序传递实参时,产生f90型伪形(assumed-shape)数组的副本。一些F90编译器即使整个数组(无需分割成子集)被作为实参传递时也会产生这种副本。这样的话,产生副本是非常浪费内存的。-DDEREF_KLUDGE指示注册机制在构建调用子程序的实参列表时创建一个额外标志信息,从而使编译器认为仅仅是传递数组的第一个元素,避免了创建副本。

文案大全

实用标准文档

3. WRF模式与T213模式嵌套

3.1 嵌套方案

T213模式是一个全球谱模式,而WRF模式是一个区域格点模式。目前,要实现WRF模式与T213模式的完全嵌套,在理论上和实践上都还有许多困难。因此,根据WRF模式当前只处于调试阶段的实际情况,我们仅将WRF模式与T213模式作简单地嵌套。

简单嵌套的基本思路就是以T213模式的预报场或者客观分析场为WRF模式的背景场,并为WRF模式提供边界条件。

具体实现的方法有两种,一种是从T213场库获取要素场,然后修改WRFSI源程序,读取T213要素场,处理后生成WRF模式的输入场;另一种是利用从T213场库获取要素场,然后利用MM5的前处理程序TERRAIN、REGRID以及INTERPF等程序,生成MM5的初始场及边界条件,再利用MM52WRF程序,将其转换成WRF模式的输入要素场。第一种方法简捷方便,易于操作;第二种方法相对繁杂些,但由于MM5模式有比较完善的资料同化方案,可以解决目前WRF模式没有资料同化方案的不足。

3.2 嵌套程序设计

3.2.1 T213场库资料的通用接口程序 IBM SP机器中T213场库的水平分辨率为0.5625*0.5625(度)。目前,由于T213场库资料的检索已经模块化,用户根据检索时,可直接调用通用场库(T213)检索接口程序“gdbrck”。调用通用场库接口程序时,用户只必须设置好程序的各个接口参数。具体各接口参数说明如下:

call

gdbrck(ftype,idate,iftime,ielemcd,level,ii,jj,kk,record,data,index_dic,iret)

ftype : character*4,场类型,例:暴雨系统为 'BJLP',t213系统为 'BJGL’ idate : integer idate(4), 日期数组,年(四位)、月、日、时次 iftime : integer, 时效

ielemcd : integer, 要素代码

level : integer level(n+1), 层次数组,第一元为调用的总层数n, 2到

n+1元为具体的调用层次,如level(3), data level/2,500,700/

ii : integer,纬度格点数 jj : integer, 经度格点数 kk : integer, 调用层数n

record : integer,本场最大ii * jj。T213系统为: 640*321 data : real*8 dimension data(ii,jj,kk) ,符点数组,数据区 index_dic : character*80, 字符串,模式字典文件全名 iret : integer,返回码 0:正常

6:场没生成或记录不存在 9:其他错

文案大全

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

实用标准文档所以必然会造成程序的运行失败。模式目录中还提供了用于卸载的清除程序clean(Csh类shell脚本)。安装失败时,可以使用这一程序来恢复到最初的状态。当未指定任何参数时,清除程序“clean”将删除src目录中的目标文件(*.o)以及编译时产生的一些中间文件,文件“configure.wrf”会保留。当指定“-a”为“clean”的参数时,则会连
推荐度:
点击下载文档文档为doc格式
7y14h344b620sz532alg3gznb0gt5600bsc
领取福利

微信扫码领取福利

微信扫码分享