减少wrfout输出变量

2023-06-20 15:46:54 浏览数 (2)

减少输出变量

WRF的模拟结果wrfout中包含了大量的变量,从网格点到模拟变量值,但如果输出变量太多,导致数据存储压力大,因此可以考虑减少输出到wrfout中的变量。

具体方法在userguide中也提到过,可以通过修改Registry来实现,ARW内核对应的是Registry/Registry.EM_COMMON文件,对其修改,然后再重新编译(clean -aconfigurecompile)。

但在3.2版本后,可以通过直接在namelist.input中可以指定剔除不需要输出的变量,即:

代码语言:javascript复制
&time_control
iofields_filename                   = "my_file_d01.txt", "my_file_d02.txt"
ignore_iofields_warning             = .true.,

my_file_d01.txt文件中,可以指明需要删除的变量有哪些,具体内容如下:

代码语言:javascript复制
-:h:0:RAINC,RAINNC

-表示删除, 表示增加;

h表示history,这里可以理解为输出,i表示输入;

0-24:表示经过的通道,一般默认0

可以直接进行换行,但每一行的的开头需要类似于-:h:0:格式,然后后面的变量之间用英文逗号隔开。

ignore_iofields_warning表示碰到错误时如何处理,如果设置为.true.则会打印警告信息且继续运行,如果设置为.false.时碰到错误会直接中断,推荐设置为.true.,所有的domain都通用,不用单独设置。

实操

使用了my_file_d01.txt类似如下,其中的变量来自于默认输出的wrfout,将自己用不到的变量提了出来,放到了里面。

txt

对应的namelist.input如下,两层网格都使用了同一个my_file_d01.txt

代码语言:javascript复制
&time_control
iofields_filename                   = "my_file_d01.txt", "my_file_d01.txt"
ignore_iofields_warning             = .true.,

&domains
max_dom                             = 2

最后输出了对应的wrfout,大小对比如下:

filesize

模拟了12个小时,对比默认的wrfout(nochanged.nc),文件大小差不多缩小了接近一半,仍包含了常用的2m温度,10m风速,UV风,感热潜热通量等。

其中注意事项包括:

  1. 多个domain可以使用同一个控制文件,类似上面的my_file_d01.txt;
  2. my_file_d01.txt文件中的变量需完全正确,如果某个变量设置不正确,可以正常运行,但会出现warning,如下:WARNING: Unable to modify mask for wdntc. Variable not found. File: my_file_d01.txt at line 4,根据报错可以发现第4行中的wdntc不正确,重新修改以后可以正常运行。

如果需要上面使用的my_file_d01.txt,可以后台回复my-file

0 人点赞