WRF模式在运行求解时,会涉及到大量的数据变量运算,而这些数据变量的管理、规定、控制则需要依赖于WRF的Registry文件,简单来说,它可以理解为管理WRF数据结构的“数据字典”("Active data-dictionary” for managing WRF data structures )。
Registry文件里有:
一般而言,我们可以通过修改Registry文件里的控制输入的I/O一栏,更改状态,具体可参加:[气象家园]WRF输出控制 (Registry + namelist)
然而由于每次修改Registry文件后,都需要重新编译配置,这不免浪费时间,为此,WRF3.2版本后在run_time时提供了I/O选项,该选项可在namelist文件的time_control部分设置,来规定WRF中的变量添加与删除。
关于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
注意:
以上便是用户手册内容的翻译,我们下面给出具体的实例。
首先我们应当明确我们需要添加的变量名信息,这需要我们到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文件中。