WRF-Chem官网给出的排放源部分包括人为排放源,火点源FINN,生物质源MEGAN,闪电源等。其中最主要的是人为排放源,国内的模拟基本都用的MEIC再分配,所以官网的这部分没有仔细研究过。各部分具体数据的下载和介绍详见官网: https://www2.acom.ucar.edu/wrf-chem/wrf-chem-tools-community
最近尝试了添加生物质源MEGAN和化学边界条件CAM-Chem,在安装及运行中遇到的一些小问题记录了下来。
这些步骤的进行是要在完成气象文件met_em的准备,并运行real.exe生成wrfbdy和wrfinput文件之后进行的。
添加Megan源和边界场的顺序不能反了。
1. MEGAN bio_emiss
官方教程:https://www2.acom.ucar.edu/sites/default/files/wrf-chem/ACOM_WRFchemTutorial.pdf
下载链接: https://www.acom.ucar.edu/wrf-chem/download.shtml
下载 bio_emiss 和 bio_emiss input files 两组文件并解压。
1.1. megan_bio_emiss的编译
解压megan_bio_emiss,在Makefile中添加三行命令用来选择编译器和指定netcdf的路径。
然后执行make命令,生成megan_bio_emiss可执行文件。
1.2 bio_emiss的制作
目前只有2001年版本的Megan源,因此不需要根据模拟时间重新下载,可一次性下大点的范围。
解压megan_data文件。
根据自己模拟嵌套的层数和月份,修改megan_bio.inp。指定模拟路径(wrfbdy和wrfinput文件所在的路径)和megan数据的路径。
执行命令运行文件,并将日志输出至outlog:./megan_bio_emiss < megan_bio.inp > megan_bio.outlog
运行成功后会生成wrfbiochemi文件,生物质源的制作完成。
1.3 生物质源的添加
将wrfbiochemi移动到WRFChem的运行路径,修改namelist。
在time control模块中加入,可自行定义间隔时间,单位是hour。
在chem模块将bio_emiss_opt改为3,并重新执行./real.exe,这样更改才能生效。
注意这个ne_area是我添加的,默认值是41,但是模式运行要求大于等于num_chem(化学机制中的物种数,取决于你选的方案,具体可以在Registry/registry.chem中查看,我的CBMZ-MOSAIC_8bins是158)。否则会报下图的错误。
2. 化学边界场的制作
以前用的MOZART边界场停止更新了,现在用的是CAM-Chem(每次需要根据模拟时间下载对应的数据)。
CAM-Chem数据下载:https://www.acom.ucar.edu/cam-chem/cam-chem.shtml
最近看了一下官网,这个也就更新到2020年,至于20年往后的用什么代替还不知道
2.1 mozbc的编译
下载链接:https://www.acom.ucar.edu/wrf-chem/download.shtml
解压mozbc,在Makefile中添加三行命令选择编译器和指定netcdf的路径。然后执行make命令编译,编译成功会生成mozbc可执行文件。
注意第三行AR_FILES的定义,在未添加这一行之前运行总是报错 undefined reference to。谷歌无果后在气象家园得救:http://bbs.06climate.com/forum.php?mod=viewthread&tid=59675
2.2 边界场的修改
官方也给出了input文件的修改参考:https://www2.acom.ucar.edu/sites/default/files/wrf-chem/CESM-WRFchem_aerosols_20190822.pdf
根据自己的化学方案,例如我的是CBMZ-MOSAIC_8bins,将CBMZ-MOSAIC_8bins.inp复制成一个新的inp修改,以免原文件丢失。基本就只用修改 WRFChem运行路径,CAM-Chem数据路径及名称。
下面物种在从官方文件里复制过来的时候注意换行的问题,否则运行也会报错。
domain要分别设置,从外到里分别运行。即三层嵌套要运行三次(domain = 1, 2, 3)。
执行命令:./mozbc < mozbc_2019.inp > mozbc_2019.out
最后结合自己之前做好的人为源,就可以运行wrfchem了。
在运行时又遇到一个小error:call wrf_error_fatal(" ERROR: CHEM_INIT: num_vert_mix > ndepvel ")
ndepvel的默认值是140,num_vert_mix取决于化学方案,于是又添加一行。