WRF的模拟结果wrfout中包含了大量的变量,从网格点到模拟变量值,但如果输出变量太多,导致数据存储压力大,因此可以考虑减少输出到wrfout中的变量。
具体方法在userguide中也提到过,可以通过修改Registry来实现,ARW内核对应的是Registry/Registry.EM_COMMON文件,对其修改,然后再重新编译(clean -a、configure、compile)。
但在3.2版本后,可以通过直接在namelist.input中可以指定剔除不需要输出的变量,即:
&time_control
iofields_filename = "my_file_d01.txt", "my_file_d02.txt"
ignore_iofields_warning = .true.,
在my_file_d01.txt文件中,可以指明需要删除的变量有哪些,具体内容如下:
-: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
&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风,感热潜热通量等。
其中注意事项包括:
my_file_d01.txt;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