WRF-CHEM 新手向实践(四):化学初始/边界场及namelist设置

这是这个系列的最后一节了,这些经验是自己作为一个半路出家的外行一步步摸索出来的,其中不免有很多理解不到位的地方,但也正是如此,我相信这是目前新手入门wrf-chem最友好的教程之一,希望能对大家有实质性的帮助。

本节继续WRF-CHEM 新手向实践(三):生物质燃烧排放及化学初始/边界场未完成的内容。在mozbc生成化学初始和边界条件之前,还需要先在wrfinput文件中开启化学部分。

namelist.input设置

主要涉及到 &time_control和 &chem 这两部分的修改。这里只介绍各排放源输入的必要设置,更具体的namelist选项设置可自行查询用户手册。

针对MEIC人为排放的输入,添加以下设置:

&time_control
auxinput5_inname                    = 'wrfchemi_<hour>z_d<domain>',
auxinput5_interval_m                = 60, 60, 60,
frames_per_auxinput5                = 12, 12, 12,
io_form_auxinput5                   = 2,
 
&chem
chem_opt                            = 10,
io_style_emissions                  = 1,
emiss_opt                           = 4,         4,         4,
emiss_inpt_opt                      = 101,      101,       101,

auxinput5_inname是我们在第(一)节中生成的12小时人为排放文件名,对于d01即为wrfchemi_00z_d01和wrfchemi_12z_d01,每个domain两个;

io_form_auxinput5 = 2 以WRF Netcdf格式开启人为排放输入;

auxinput5_interval_m是数据更新的时间间隔,单位是分钟,对于我们使用的wrfchemi_<hour>z_d<domain>文件,间隔为每小时也就是60分钟,可按自己的需求整数倍调整;

frames_per_auxinput5 = 12表示每个wrfchemi_<hour>z_d<domain>文件中包含12个子时刻

对于&chem部分,chem_opt  = 10表示开启化学部分,并选择选项为10的CBMZ chemical mechanism。此前的wrfinput都在chem_opt  = 0的情况下生成,只包含气象场,在这一节中,我们需要将化学部分开启。

io_style_emissions = 1 这个设置非常重要,这代表我们使用的是12小时的循环文件,emiss_opt 代表人为排放的化学机制,需要与chem_opt = 10相对应,使用的是CBMZ/MOSAIC机制(选项4)。然而,我们在第(一)节中处理的MEIC人为排放实际上是 RADM2机制的。这就需要使用emiss_inpt_opt  = 101进行转换,其作用是将RADM2排放数据文件进行调整,以遵循CBMZ/MOSAIC框架。

如果使用其他形式(非12小时循环)的人为排放文件,比如特定日期/时间排放数据文件,需设置

auxinput5_inname = wrfchemi_d<domain>_<date>,
io_style_emissions = 2, 
frames_per_auxinput5 = 1

针对Megan生物排放的输入,添加以下设置:

&time_control
auxinput6_inname                    = 'wrfbiochemi_d<domain>',
auxinput6_interval_m                = 5760, 5760, 5760,
io_form_auxinput6                   = 2,
 
&chem
chem_opt                            = 10,
bio_emiss_opt                       = 3,         3,         3,
ne_area                             = 41,

auxinput6_inname 是第(二)节中处理的Megan生物排放文件名;

auxinput6_interval_m 是数据输入更新的时间间隔,由于Megan生物排放输入并没有时间变化,所以可以直接设置一个较长的间隔;

bio_emiss_opt = 3 生物排放选项3即使用MEGAN生物排放;

ne_area = 41,MEGAN生物排放使用的物种总数,这个值也可以越大越好。

针对FINN生物质燃烧排放的输入,添加以下设置:

&time_control
auxinput7_inname                    = 'wrffirechemi_d<domain>_<date>',
auxinput7_interval_m                = 60, 60, 60,
io_form_auxinput7                   = 2,
 
&chem
chem_opt                            = 10,
biomass_burn_opt                    = 3,         3,         3,
scale_fire_emiss                    = .false.,    .false.,   .false.,

auxinput7_inname 是第(三)节中处理的FINN生物质燃烧排放文件名;

auxinput7_interval_m 是数据输入更新的时间间隔,FINN可以做到每小时更新,可根据需要按整数倍调整;

biomass_burn_opt = 3 该选项代表使用MOZART的生物质燃烧排,这在FINN数据下载时确定;

scale_fire_emiss 表示是否要将FINN数据分解为焖烧和燃烧两个部分,只对MOZART or MOZCART机制有效,如果使用这两个chem_opt的话,则必须设置为true。

完成namelist.input设置后,确保所有排放文件都在运行目录下,随后运行real.exe,生成包含化学变量的wrfinpu文件。需观察自己的wrfinput文件内容是否发生变化,若无变化,需在bashrc中添加export WRF_CHEM=1,随后重新编译WRF-CHEM。

化学初始/边界场生成

在mozbc可执行文件目录下,执行以下命令:

./mozbc < CBMZ-MOSAIC_8bins.inp > OUT.log

有几个domain就运行几次,从外层向内层运行,每次都需要修改CBMZ-MOSAIC_8bins.inp中的domain编号。mozbc的编译和配置参考第(三)节内容。完成后,可得到包含化学初始场和边界场的wrfinput文件,随后就可以开始执行WRF程序了。

&chem部分还有很多自定义设置就需要大家自己去了解和使用了。至此,WRF-CHEM入门系列就完结了,有问题或者建议都可以向我反映。谢谢大家,祝学业有成。

<think>好的,我现在需要解决用户提出的关于MOZBC时间错误的问题。根据用户提供的引用内容,特别是引用[2]中的情况,用户遇到了时间不匹配的问题。用户下载的是2020年的CAM_Chem数据,但运行的个例是2022年9月的,导致MOZBC无法找到对应日期,后来改用2022年的WACCM数据后问题解决。这说明时间错误很可能与输入数据的时间范围和模拟案例的时间不匹配有关。 首先,我应该确认输入数据的时间是否覆盖模拟时间段。如果用户的数据是2020年的,而模拟的是2022年,显然数据不包含所需时间段,MOZBC自然会报错。解决方案是确保下载的数据时间范围完全涵盖模拟期,如用户后来所做的,选择正确的年份和数据集(如WACCM)。 其次,检查数据文件中的时间变量是否正确。NetCDF文件的时间变量可能存在格式或单位错误,例如使用错误的时间单位(如从1900年开始计算,而模拟时间设置为其他起点),这会导致MOZBC无法正确解析。用户可以使用ncdump检查时间变量,确保其单位和数值与实际模拟时间一致。 另外,文件名过长也可能导致问题,如引用[2]中提到的尝试缩短文件名。虽然用户最终通过更换数据解决了问题,但文件名问题仍可能影响其他用户,所以建议保持文件名简洁,避免特殊字符。 最后,确保MOZBC输入文件中的路径和文件名正确无误。路径错误或文件名拼写错误会导致程序找不到文件,从而报时间错误。同时,检查MOZBC版本是否与WRF-Chem兼容,必要时更新到最新版本,并查阅官方文档或社区讨论,了解是否有类似问题的解决方案。 总结解决方案步骤:1.检查数据时间覆盖范围;2.验证时间变量格式;3.缩短文件名;4.核对输入文件设置;5.更新软件版本。这些步骤应该能帮助用户解决MOZBC的时间错误问题。</think>### MOZBC时间错误解决方案 当MOZBC处理化学初始/边界条件时出现时间错误,通常与输入数据时间范围不匹配或时间变量格式异常有关。以下是分步解决方案: 1. **检查输入数据时间范围** - 确认使用的化学初始数据(如CAM-Chem/WACCM数据)覆盖模拟案例的起止时间。例如:模拟案例为2022年9月,需确保数据至少包含2022年9月的时间切片[^2]。 - 解决方法:重新下载对应年份的全球预报数据(如WACCM数据),确保时间范围完全覆盖模拟期。 2. **验证时间变量格式** - 使用`ncdump -h your_data.nc`检查NetCDF文件中的时间变量单位(如`units = "days since 2020-01-01"`)。若时间单位与模拟案例时间不兼容,MOZBC会解析失败。 - 解决方法:通过`ncatted`修改时间单位与实际模拟时间对齐,例如: ```bash ncatted -a units,time,modify,c,"days since 2022-09-01" your_data.nc ``` 3. **缩短文件名和路径长度** - 文件名或路径过长可能导致系统读取失败(尤其Linux系统对路径长度有限制)。将文件移动到更短路径(如`~/mozbc/input.nc`)并重命名为简单名称。 4. **检查MOZBC输入文件设置** 在`mozbc.inp`中确认以下参数正确: ```plaintext &control dir_wrf = '/path/to/wrfinput' dir_moz = '/path/to/chem_data' moz_inname = 'short_name.nc' # 使用简短文件名 ... / ``` 5. **更新MOZBC版本** 旧版本可能对时间格式兼容性较差。从[UCAR官网](https://www.acom.ucar.edu/wrf-chem/download.shtml)下载最新MOZBC代码并重新编译[^3]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值