【WRF-Chem 实例1】namelist.input 详解- 模拟CO2
目录
- &time_control(时间控制)
- &physics(物理过程参数化方案)
- &fdda(四维数据同化)
- 工作机制简述
- &dynamics(WRF 动力核心的数值方法和选项)
- &bdy_control(边界控制设置)
- &chem(WRF-Chem 主要化学设置)
- &namelist_quilt(并行 I/O 控制)
- 参考
以下namelist.input 配置文件用于运行一个 简化的 CO₂ 模拟,使用 VPRM(植被光合作用与呼吸模型) 来计算陆地 CO₂ 通量,化学机制编号为 16
,且:
- 没有使用完整的大气化学机制(如 MOZART 或 CBMZ)。
- 关闭气体化学反应,仅开启气溶胶模拟(以模拟 CO₂ 与 PM10/PM2.5 的共同分布)。
- CO₂ 的输入和输出通过
auxinput5
(排放)和auxhist23
(输出)来处理。 - 使用
VEGASflux_d<domain>
文件(auxinput6
)来输入植被 CO₂ 通量或其他生物地气交换数据。 - 启用 VPRM 表格
VPRM_table_US
来提供植被参数。
&time_control(时间控制)
这一部分设置了模拟的时间范围、输出频率、输入文件格式等。
参数 | 含义 |
---|---|
start_* / end_* | 模拟开始和结束时间。这里是从 2004 年 5 月 29 日 00:00 到 06:00,运行 6 小时。 |
interval_seconds = 21600 | WRF 的气象输入文件(met_em )的时间间隔,21600 秒 = 6 小时。 |
input_from_file = .true. | 从中间文件(如 met_em)读取初始和边界条件。三个域都启用。 |
history_interval = 1440 | 模拟输出的时间间隔,单位为分钟(1440 分钟 = 24 小时)。 |
frames_per_outfile = 1 | 每个 wrfout 文件包含一个时间帧。 |
restart = .false. | 不从重启文件继续模拟。 |
io_form_* = 2 | 输入输出文件格式。2 代表 NetCDF 格式。 |
auxinput5_inname = 'wrfchemi_d<domain>_<date>' | 化学排放输入文件的模板名称。 |
auxinput5_interval_m = 60 | 化学排放输入时间间隔,单位分钟(每小时一个)。 |
auxinput6_inname = 'VEGASflux_d<domain>_<date>' | 用于生物地气交换(如 CO₂)的输入文件。 |
auxhist23_outname = "wrfco2_d<domain>_<date>" | 用于输出 CO₂ 的辅助历史文件名模板。 |
iofields_filename = "io_fields_twh.txt" | 自定义 I/O 字段控制文件。 |
debug_level = 0, | 设置 WRF 模型运行时的调试信息输出等级(verbosity level) |
有关设置内容如下:(右侧为官方提供设置)
&physics(物理过程参数化方案)
参数名 | 值 | 含义 | 与 WRF-Chem 的关系 |
---|---|---|---|
mp_physics | 8 | 微物理方案,8 = Thompson | 与气溶胶-云相互作用有关;适合气溶胶模拟 |
progn | 0 | 是否启用气溶胶控制的云滴激发 | 0 表示关闭,气溶胶不影响云滴形成 |
naer | 1e9 | 固定气溶胶粒子数浓度 (cm⁻³) | 仅在 progn=1 时有效,控制 CCN 数量 |
ra_lw_physics | 1 | 长波辐射方案:RRTM | 与气溶胶/温室气体的辐射反馈有关 |
ra_sw_physics | 2 | 短波辐射方案:Dudhia | 可与气溶胶短波吸收/散射过程耦合 |
radt | 30 | 辐射方案时间步长(分钟) | 与化学辐射反馈频率有关 |
sf_sfclay_physics | 1 | 表面层方案(MM5) | 决定地表与大气交换,对干沉降重要 |
sf_surface_physics | 2 | 陆面过程模型:Noah | 与 CO₂/VPRM、生物通量、干沉降直接相关 |
sf_urban_physics | 1 | 城市物理方案:SLUCM | 模拟城市热通量和排放,适合城市污染研究 |
bl_pbl_physics | 6 | 边界层方案:MYNN Level 3 | 与污染物垂直混合、沉降、湍流扩散相关 |
bldt | 1 | PBL 时间步长(分钟) | 控制边界层计算频率 |
cu_physics | 0 | 对流参数化关闭 | 适用于高分辨率模拟(显式对流) |
cudt | 30 | 对流方案时间步长(分钟) | 对流关闭时无效 |
isfflx | 1 | 输出地表通量 | 用于化学模拟中的地表排放、沉降诊断 |
ifsnow | 1 | 启用雪过程 | 与雪盖能量平衡和污染物沉降相关 |
icloud | 1 | 启用云过程 | 云对气溶胶、化学物种有显著影响 |
surface_input_source | 1 | 地表输入方式 | 标准方式,搭配 Noah LSM |
num_soil_layers | 4 | 土壤层数 | Noah LSM 默认,影响地表热/水交换 |
maxiens | 1 | 集合扰动控制参数 | 与化学无直接关系 |
maxens | 3 | 同上 | - |
maxens2 | 3 | 同上 | - |
maxens3 | 16 | 同上 | - |
ensdim | 144 | 同上 | - |
cu_rad_feedback | .true. | 对流辐射反馈 | 对气象模拟重要,影响污染物垂直输送 |
有关设置内容如下:(右侧为官方提供设置)
&fdda(四维数据同化)
FDDA 是一种在模拟过程中加入外部背景场(通常是分析数据,例如 GFS、ERA5),以防止模拟场长时间漂移。它通过在模拟中加入“微小的强迫项”来引导风场、温度、水汽等向外部数据靠拢。
&fdda
参数详细解释如下:
参数名 | 示例值 | 含义 | 说明 |
---|---|---|---|
grid_fdda | 1, 1, 1 | 开启网格引导(Grid Nudging) | 对所有嵌套域启用 FDDA。1 表示启用,0 表示关闭。 |
gfdda_inname | "wrffdda_d<domain>" | FDDA 输入文件名模板 | 模型将自动替换 <domain> 为如 01 ,查找 wrffdda_d01 文件。 |
gfdda_interval_m | 360,360,360 | 同化数据时间间隔(单位:分钟) | 每 6 小时(360 分钟)读取一次引导资料,常与 met_em 相同。 |
gfdda_end_h | 24,24,24 | 引导持续时间(单位:小时) | 表示每个嵌套域的引导过程持续到模拟第 24 小时 |
guv | 0.0003 | 水平风场(U、V)引导系数 | 越大,风场越快向外部数据靠拢;建议值一般在 0.0001 ~ 0.001 之间 |
gt | 0.0003 | 温度引导系数 | 控制模拟温度向背景场的回归程度 |
gq | 0.0003 | 水汽混合比引导系数 | 控制湿度场引导强度 |
gph | 0.0003 | 地势高度(位势高度)引导系数 | 常用于大尺度模拟或山地地区修正高度场 |
有关设置内容如下:(右侧为官方提供设置)
工作机制简述
在模型运行过程中,FDDA 会在每个时间步添加一个微小的“修正项”,其形式大概如下:
dX/dt = 模拟物理过程 + nudging_term
nudging_term 形如:
nudging_term = -gX * (X_model - X_obs)
其中:
gX
为引导系数(如guv
,gt
,gq
,gph
)X_model
为当前模拟值X_obs
为外部背景场值(如 GFS、ERA5)
使用 FDDA 的常见情景
应用场景 | 是否推荐使用 FDDA |
---|---|
长时间(>3天)重现模拟(回放) | ✅ 推荐使用,防止漂移 |
大气化学模拟(WRF-Chem) | ✅ 推荐,保持气象场稳定,避免污染物模拟失真 |
天气预报(短时) | ✅ 推荐,提升初始条件精度 |
理想化敏感性实验 | ❌ 不推荐,FDDA 会干扰自由演化过程 |
&dynamics(WRF 动力核心的数值方法和选项)
&dynamics 配置段控制了 WRF 动力核心的数值方法和选项,包括湍流扩散、垂直混合、阻尼、非静力设置以及与化学模拟有关的物质输送方法等。
&dynamics
参数详解表格
参数名 | 示例值 | 含义 | 与 WRF-Chem 的关系 |
---|---|---|---|
hybrid_opt | 2 | 开启混合垂直坐标(Hybrid vertical coordinate) | 结合了地形跟随的 sigma坐标(低空)与地形无关的 压力坐标(高空),能带来更好的数值稳定性和物理一致性,特别是在山地或高空对流层模拟中 |
w_damping | 1 | 开启垂直速度阻尼(W damping) | 有助于减少不稳定波,对气溶胶/污染物垂直传输有影响 |
diff_opt | 2 | 水平扩散方案:2 = 全扩散(full diffusion) | 与湍流扩散过程相关,影响化学物质的水平传播 |
km_opt | 4 | 湍流混合系数计算方法:4 = MYNN | 与 PBL 模式一致(MYNN),推荐保持一致性 |
diff_6th_opt | 0 | 是否启用六阶水平扩散(0=不启用) | 通常用于高分辨率模拟,非必须 |
diff_6th_factor | 0.12 | 六阶扩散强度因子(仅在 diff_6th_opt=1 时有效) | - |
base_temp | 290. | 基础温度(静力平衡参考温度) | 对模拟热力结构有间接影响 |
damp_opt | 0 | 顶层阻尼选项(Rayleigh damping):0 = 关闭 | 若开启可抑制高空重力波,有利于大尺度模拟稳定性 |
zdamp | 5000. | Rayleigh 阻尼层起始高度(m) | 通常设置为 3–5 km |
dampcoef | 0.2 | 顶部阻尼系数 | 控制阻尼强度 |
khdif | 0 | 水平扩散率(设置为 0 通常表示使用默认或由物理方案决定) | 影响气象和化学物质的扩散 |
kvdif | 0 | 垂直扩散率(同上) | 同上 |
non_hydrostatic | .true. | 使用非静力模式(默认应为 true) | 必须为 true,才能正确模拟对流和气溶胶垂直输送 |
moist_adv_opt | 2 | 水汽输送方案:2 = 单调守恒方案 | 推荐用于化学模拟,避免负值或不守恒问题 |
scalar_adv_opt | 2 | 标量变量(如温度)的输送方案 | 与化学物质无直接关系 |
chem_adv_opt | 2 | 化学物种的输送方案:2 = 单调守恒 | ✅ 非常关键,确保化学物种的质量守恒性 |
tracer_opt | 2 | 其他示踪物输送方案:2 = 单调守恒 | ✅ 与 CO₂、PM2.5 等示踪气体密切相关 |
do_avgflx_em | 1,1,1,… | 在 real.exe 中平均地表通量(emissivity) | 保持默认即可 |
do_avgflx_cugd | 1,1,1,… | 在 real.exe 中平均对流通量 | 保持默认即可 |
有关设置内容如下:(右侧为官方提供设置)
&bdy_control(边界控制设置)
参数名 | 示例值 | 含义 | 说明 |
---|---|---|---|
spec_bdy_width | 5 | 边界强迫区宽度(网格数) | 外部边界数据施加在距边界 5 个网格宽的区域 |
spec_zone | 1 | 指定边界区宽度 | 最靠近边界的 1 个网格点用于直接施加强迫边界值 |
relax_zone | 4 | 过渡区(缓冲区)宽度 | 用于边界值与内部模拟值之间的平滑过渡(spec_bdy_width = spec_zone + relax_zone ) |
specified | .true., .false., .false. | 为每个域指定是否使用外部边界值驱动 | 只有 domain 1(主域)使用如 GFS 的边界数据 |
nested | .false., .true., .true. | 指定各域是否为嵌套域(从父域获得边界) | domain 2 和 3 是嵌套域,从上一级获得边界数据 |
假设你有 3 个模拟域:
域编号 | specified | nested | 边界来源 |
---|---|---|---|
d01 | .true. | .false. | 从 GFS/ERA5 等外部文件(wrfbdy_d01 )读取边界数据 |
d02 | .false. | .true. | 从 d01 插值得到边界值 |
d03 | .false. | .true. | 从 d02 插值得到边界值 |
spec_bdy_width = 5
:表示距边界 5 个网格点用于边界处理- 其中最外侧的
1
个网格(spec_zone = 1
)为强迫区 - 中间的
4
个网格(relax_zone = 4
)为缓冲区
- 其中最外侧的
- WRF 会在
spec_zone
区域强行施加边界值,在relax_zone
区域使用加权平均使边界过渡更平滑,防止数值震荡。
设置建议
情况 | 建议设置 |
---|---|
只有一个主域 | specified = .true. ,nested = .false. |
嵌套模拟 | 只有外层(d01)设置 specified = .true. ,其余为 nested = .true. |
高分辨率嵌套 | 保持 spec_bdy_width ≥ 5 ,relax_zone ≥ 3 ,更平滑 |
&chem(WRF-Chem 主要化学设置)
这是 WRF-Chem 的关键配置部分,控制化学过程、排放、沉降等。
参数 | 说明 |
---|---|
kemit = 1 | 从第 1 个时间步开始读取排放(必须是1)。 |
chem_opt = 16 | 选择化学机制。16 可能是一个简化的 CO₂ 跟踪机制(如 VPRM)。每个域设置相同。 |
chemdt = 10,3,1 | 化学积分时间步长(单位:分钟),分别对应不同嵌套域。 |
bioemdt , photdt = 0 | 生物排放和光解速率更新频率,0 表示默认或关闭。 |
io_style_emissions = 2 | 读取排放文件的方式,2 表示 NetCDF 文件。 |
emiss_opt = 16 | 排放选项编号(与 chem_opt 相对应)。 |
chem_in_opt = 0 | 是否使用化学初始条件,0 表示关闭。 |
gas_drydep_opt = 0 , aer_drydep_opt = 1 | 气体干沉降关闭,气溶胶干沉降开启。 |
bio_emiss_opt = 16 | 生物排放选项为 16(与 CO₂/VPRM 模型有关)。 |
gas_ic_opt = 16 , gas_bc_opt = 16 | CO₂ 化学初始/边界条件(机制 16) |
aer_ic_opt = 1 , aer_bc_opt = 1 | 气溶胶初始/边界条件(对第一个域启用)。 |
gaschem_onoff = 0 | 气体化学过程关闭。 |
aerchem_onoff = 1 | 气溶胶化学过程开启(仅对第一个域)。 |
vertmix_onoff = 1 | 开启垂直混合对化学物种的作用。 |
chem_conv_tr = 0 | 对流输送关闭。 |
biomass_burn_opt = 0 , dust_opt = 0 , seas_opt = 0 | 生物质燃烧、沙尘、海盐排放均关闭。 |
plumerisefire_frq = 30 | 火源羽流抬升频率设置为 30 分钟(虽然火源关闭)。 |
have_bcs_chem = .true. | 对第一个域启用化学边界条件。 |
aer_ra_feedback = 0 | 气溶胶对辐射的反馈关闭。 |
vprm_opt = "VPRM_table_US" | VPRM 模型的参数表文件名。用于 CO₂ 生物通量模拟。 |
&namelist_quilt(并行 I/O 控制)
参数 | 说明 |
---|---|
nio_tasks_per_group = 0 | 自动选择 NIO 任务数。 |
nio_groups = 1 | 使用一个并行 I/O 组。 |