当前位置: 首页 > 工具软件 > WRF > 使用案例 >

WRF进阶:使用IO选项控制WRF变量输出/WRF指定变量输出添加/删除

蒋默
2023-12-01

Registry文件

WRF模式在运行求解时,会涉及到大量的数据变量运算,而这些数据变量的管理、规定、控制则需要依赖于WRF的Registry文件,简单来说,它可以理解为管理WRF数据结构的“数据字典”("Active data-dictionary” for managing WRF data structures )。
Registry文件里有:

  • 描述模式状态、中间文件、以及配置数据属性的数据库
  • 通过数据库,生成的WRF配置运行信息,自动生成WRF源代码。

一般而言,我们可以通过修改Registry文件里的控制输入的I/O一栏,更改状态,具体可参加:[气象家园]WRF输出控制 (Registry + namelist)
然而由于每次修改Registry文件后,都需要重新编译配置,这不免浪费时间,为此,WRF3.2版本后在run_time时提供了I/O选项,该选项可在namelist文件的time_control部分设置,来规定WRF中的变量添加与删除。

Input/output (IO)选项

关于I/O选项的使用,在WRF手册第五章Run time IO中已有详细讲述,我这里简单搬运翻译:
首先,需要让WRF模式知道IO的运行时修改信息所在的位置。这是一个文本文件(my_file_d01.txt),每个网格一个,这个在namelist.input文件中的time_control字段定义。

&time_control
iofields_filename = “my_file_d01.txt”, “my_file_d02.txt”
ignore_iofields_warning = .true.,
/

该文本文件的内容将一个StreamID(0是默认历史记录和输入)与变量以及是否要添加或删除字段相关联。状态变量必须Regisrty中定义。
举例来说:

-:h:0:RAINC,RAINNC
将从标准的history file中删除变量RAINC和RAINNC

+:h:7:RAINC,RAINNC
将从输出流 #7中添加变量RAINC和RAINNC

可用选项:

+ 或 -, 添加或者删除变量
0-24, 整数,说明文件流序号
i 或 h, 
在Registry中的输入或者历史场的名称——这是引用中的第一个字符串。注意:不要在变量名之间包含任何空格

您有兴趣将变量输出到新流(即不是默认的history流0),那么以下namelist变量也将是必需的:

auxhist7_outname = “yourstreamname_d<domain>_<date>”
auxhist7_interval = 360, 360,
frames_per_auxhist7 = 1, 1,
io_form_auxhist7 = 2

注意:

  • txt文件字段不要包含空格
  • txt文件里的变量必须在Registry文件里
  • 没有必要将字段从一个流删除至另一个
  • 在多条流里可以有多个相同字段变量
  • 避免使用 1 2 5 23作为新输出变量的流编号
  • ignore_iofields_warning告诉程序在这些用户指定文件中遇到错误时该怎么办。默认值为.TRUE.,是打印警告消息,但继续运行。如果设置为.FALSE.,那么如果用户指定的文件中有错误,程序将中止。

以上便是用户手册内容的翻译,我们下面给出具体的实例。

实例

确定变量名称

首先我们应当明确我们需要添加的变量名信息,这需要我们到Registry.EM_COMMON中寻找。

在Registry.EM_COMMON文件中找到所需变量为:

state    real   qns_gc         igj      dyn_em      1        Z     i1  "QNS"   "snow num concentration"   "# kg-1"
state    real   re_snow_gsfc     ikj    misc        1         -     rh       "RE_SNOW_GSFC"   "Snow effective radius"             "micron"

创建txt文件,写入:

+:h:0:QNS,RE_SNOW_GSFC

记得给予读写权限,否则WRF可能打不开。
再在time_control部分加入

iofields_filename = “my_file_d01.txt”, 
ignore_iofields_warning = .true.,

即可,添加的变量会在wrfout文件中。

 类似资料: