WRF-Chem基本流程(3)

1、修改namelist.input文件

WPS完后进入WRF文件夹,首先修改namelist.input文件,通常只需要修改时间、化学机制等,大部分可以默认,但为了更好的模拟效果,还是要知道每个参数的含义!

1.1 time_control部分

&time_control
 start_year                          = 2021, 2021, 2008,
 start_month                         = 06,   06,   02,
 start_day                           = 20,   20,   25,
 start_hour                          = 00,   00,   00,
 start_minute                        = 00,   00,   00,
 start_second                        = 00,   00,   00,
 end_year                            = 2021, 2021, 2008,
 end_month                           = 07,   07,   05,
 end_day                             = 10,   10,   31,
 end_hour                            = 18,   18,   18,
 end_minute                          = 00,   00,   00,
 end_second                          = 00,   00,   00,
 interval_seconds                    = 21600

上述代码是设置模拟运行的时间以及气象数据时间间隔,与namelist.wps一致,这里不做解释。

 input_from_file                     = .true.,.true.,.true.,
 history_interval                    = 60,   60,   60,
 frames_per_outfile                  = 9999,    9999,    1000,
 restart                             = .false.,
 restart_interval_h                  = 6
 io_form_history                     = 2
 io_form_restart                     = 2
 io_form_input                       = 2
 io_form_boundary                    = 2
 debug_level                         = 300
 write_hist_at_0h_rst                = .false.
 auxinput5_inname                    = 'wrfchemi_<hr>z_d<domain>',
 auxinput5_interval_m                = 3600, 60, 60,
 io_form_auxinput5                   = 2,
 frames_per_auxinput5                = 1, 12, 12,
 auxinput6_inname                    = 'wrfbiochemi_d<domain>',
 io_form_auxinput6                   = 2,
 force_use_old_data                  = T,

input_from_file:用于指定化学物质的初始条件、边界条件和排放数据是否从外部文件读取。设置为true时,会使用到real程序生成的wrfinput和wrfbdy开头的文件。

history_interval:表示模拟输出的时间间隔,单位为分钟。这里设置60,简单来说就是每60分钟输出一个模拟结果写入到结果文件中。

frames_per_outfile:结果文件包含时间步数的数量。这里设置为9999是为了只生成一个结果文件。

restart:允许你从一个已完成或中断的模拟的中间状态重新启动模型。这对于长时间的模拟、服务器重启或其他原因导致的中断非常有用。通过正确配置和使用重启功能,WRF可以从指定的时间点继续运行,而不必重新开始整个模拟。第一次模拟通常写false,即不从断点处运行。

restart_interval_h:重启文件生成的时间间隔。设置该参数的目的是为了在模型运行过程中定期保存模型的状态(即重启文件)。重启文件可以用于模型的重新启动,以便在意外中断后从最近一次保存的状态继续运行。

write_hist_ at_0h_rst:是否在生成的重启文件中写入历史文件,好像就是将中断时的输出数据写入,还需要进一步了解。

io_form_*:以io_form开头的参数通常是用来确定文件的格式,通常都是填2,NetCDF格式。

debug_level:改正的强度,可以简单理解为值越大,报错信息越详细。

auxinput*_interval:读取数据的时间间隔,以分钟为单位(*=4,表示下边界数据;*=5表示人为排放源数据;*=6表示生物源排放数据;*=7表示生物质燃烧数据;*=8表示GOCART背景下的排放数据),一般来说只设置5和6即可。

anxinput*_inname:读取数据的名称格式,系统会根据设置的格式找对应的文件。

frames_per_auxinput:用于控制模型读取辅助输入文件的频率,以模拟的时间步长为单位。

force_use_old_data: 在 WRF-Chem 中,外部输入数据(如化学排放数据、气象边界条件等)通常按照一定的时间间隔(如小时、天等)提供。然而,在某些情况下,外部输入数据可能会缺失或不完整。此时,该参数可以用来控制模型如何应对这些情况。如果设置为true,模型将会在当前时间步缺少数据的情况下,强制使用上一时间步的数据。这通常用于外部数据源不连续的情形,确保模型可以继续运行。

1.2 domains部分

 &domains
 time_step                           = 18,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 2,
 e_we                                = 130,    151,     316,
 e_sn                                = 112,    151,     316,
 e_vert                              = 35,    35,      30,
 p_top_requested                     = 10000,
 num_metgrid_levels                  = 35,
 num_metgrid_soil_levels             = 4,
 dx                                  = 3000, 1000,    3000,
 dy                                  = 3000, 1000,    3000,
 grid_id                             = 1,     2,       3,
 parent_id                           = 1,     1,       2,
 i_parent_start                      = 1,     37,      32,
 j_parent_start                      = 1,     34,      75,
 parent_grid_ratio                   = 1,     3,       3,
 parent_time_step_ratio              = 1,     3,       3,
 feedback                            = 1,
 smooth_option                       = 0,
 /
  • 与namelist.wps类似的参数在这不在解释。

time_step:表示模型模拟的时间步长,即模拟相邻时刻间隔,一般设置为最外层分辨率(km)的4~6倍。

time_step_fract_num:表示时间步长的分数部分,用于精确控制时间步长,一般不用的。

time_step_fract_den:表示时间步长的小数部分,一般不用。

e_vert:表示输出场的垂直层数,设置大小据说和参数化方案选取以及气象数据有关,一般不小于num_metgrid_levels,具体还需要进一步研究。

p_top_requested:最高层的气压值,单位为Pa。

num_metgrid_levels:输入场的大气层数,要根据气象数据设置,使用命令ncdump -h * >& log生成头文件进行查看。

num_metgrid_soil_levels:土壤层数,GFS数据通常包括4个土壤层。

gird_id:区域的id,从1开始。

parent_time_step_ratio:父子域时间不长比率。

feedback:父域与子域的反馈,1表示有反馈。

smooth_option:平滑处理以减少地形数据或其他输入数据的不规则形,从而改善模型的计算稳定性和结果的准确性,推荐设置0。

1.3 physics部分

  • 物理方案的设置复杂多样,这里只介绍方案的含义,具体设置多看文献哈。
  • 某些参数的解释和设置可能不准确。
 &physics
 mp_physics                          = 2,     2,     3,    微物理过程方案
 ra_lw_physics                       = 1,     1,     3,    长波辐射方案
 ra_sw_physics                       = 1,     1,     3,    短波辐射方案
 radt                                = 3,     3,     3,    长短波辐射输入间隔(min),建议设置与外层分辨率相同(km)
 sf_sfclay_physics                   = 1,     1,     1,    地表过程方案
 sf_surface_physics                  = 2,     2,     2,    陆面参数化方案
 bl_pbl_physics                      = 1,     1,     1,    边界层方案
 bldt                                = 0,     0,     0,    边界层物理响应时间
 cu_physics                          = 5,     5,     0,    积云方案
 cudt                                = 5,     5,     0,    积云物理响应时间
 cu_rad_feedback                     = .true,	.true,	.true,    
 isfflx                              = 1,    
 ifsnow                              = 0,    
 icloud                              = 1,    
 surface_input_source                = 1,    
 num_soil_layers                     = 4,    
 num_land_cat                        = 21,
 sf_urban_physics                    = 0,     0,     1,
 tmn_update                          = 1,
 sst_skin                            = 1,
 progn                               = 1,     1,
 mp_zero_out                         = 0,
 maxiens                             = 1,
 maxens                              = 3,
 maxens2                             = 3,
 maxens3                             = 16,
 ensdim                              = 144,
 sst_update                          = 0
 /

 cu_rad_feedback:是否启用积云辐射反馈。

isfflx:是否计算地表热通量。

ifsnow:是否考虑雪的物理过程,只有当sf_surface_physics=1时才会起作用。

icloud:是否考虑云的物理过程。

surface_input_source:指定了地表数据的输入来源,1表示geo_em.do1.nc。

num_soil_layers:在土壤模型中使用的垂直土壤层的数量。

num_land_cat:模型中的地表分类数量。

sf_urban_physics:模拟城市地表的物理过程。

tmn_update:是否在模型运行时更新地表的最小温度。

sst_skin:是否使用海表温度数据。

progn:是否进行预报计算。

mp_zero_out:是否在模型运行过程中将某些变量设置为零。

maxiens:指定模型中可以处理的最大化学组分数量。

maxens:该参数定义了模型中能够处理的最大化学物质或组分的数量。

maxens2:该参数定义了模型中可以处理的最大化学预报集(或多个预报集)的数量。

maxens3:该参数定义了模型中可以处理的最大化学方案集合的数量。

ensdim:该参数控制模型可以处理的化学预报集或组分的维度。

sst_update:是否实时更新海洋表面温度,如何设置1,则需要在time_control部分加入anxinput4参数及相应数据。

 auxinput4_inname = 'wrflowinp_d<domain>'
 auxinput4_interval = 60

1.4 fdda部分

  • 该部分是wrf同化部分,目前还不做,之后做的时候再做解释哈。
 &fdda
 grid_fdda                           = 0,      0,       0,
 gfdda_inname                        = 'wrffdda_d<domain>',
 gfdda_end_h                         = 9999,   9999,    2000,
 gfdda_interval_m                    = 360,    360,     360,
 fgdt                                = 0,      0,       0,
 if_no_pbl_nudging_uv                = 0,      0,       0,
 if_no_pbl_nudging_t                 = 1,      1,       1,
 if_no_pbl_nudging_q                 = 1,      1,       1,
 if_zfac_uv                          = 0,      0,       0,
  k_zfac_uv                          = 10,     10,      10,
 if_zfac_t                           = 0,      0,       0,
  k_zfac_t                           = 10,     10,      10,
 if_zfac_q                           = 0,      0,       0,
  k_zfac_q                           = 10,     10,      10,
 guv                                 = 0.003,  0.003,   0.003,
 gt                                  = 0.003,  0.003,   0.003,
 gq                                  = 0.003,  0.003,   0.003,
 if_ramping                          = 1,
 dtramp_min                          = 60.0,
 io_form_gfdda                       = 2,
 /

1.5 dynamics部分

  • 这一部分的参数也是比较难理解,详细准确信息看官方文档或问ChatGPT哈。
&dynamics
 w_damping                           = 0,
 diff_opt                            = 1,
 km_opt                              = 4,
 diff_6th_opt                        = 0,      0,       0,
 diff_6th_factor                     = 0.12,   0.12,    0.12,
 base_temp                           = 290.
 damp_opt                            = 0,
 zdamp                               = 5000.,  5000.,   5000.,
 dampcoef                            = 0.2,    0.2,     0.2,
 khdif                               = 0,      0,       0,
 kvdif                               = 0,      0,       0,
 non_hydrostatic                     = .true., .true.,  .true.,
 moist_adv_opt                       = 2,      2,       1,
 scalar_adv_opt                      = 2,      2,       1,
 chem_adv_opt                        = 2,      2,       2,
 tke_adv_opt                         = 1,      1,
 /

 w_damping:是否对垂直风速分量(w)应用平滑处理或阻尼。

diff_opt:水平扩散方案的类型。

km_opt:该参数指定了用于计算垂直混合和扩散的混合方案类型。

diff_6th_opt:该参数指定了使用第六阶扩散方案时的具体配置或选项。

diff_6th_factor:该参数用于调节第六阶水平扩散方案的扩散系数因子。

base_temp:该参数用于指定一个参考或基础温度,这个温度值可能被用作一些物理过程的初始条件或计算基准。

damp_opt:指定了模型中使用的阻尼方案类型。

zdamp:在模型顶部垂直层中应用阻尼的强度。强度越高,模型顶层的扰动减弱得越多。

dampcoef:这个参数定义了模型顶部和底部区域应用的阻尼系数。阻尼系数决定了这些区域内的数值耗散程度,通过减少数值噪声和振荡,帮助确保模拟的物理合理性和数值稳定性。

khdif:这个参数定义了水平动量扩散的系数。

kvdif:垂直扩散系数(m2/s)。

non_hydrostatic:是否采用非静力的动力学框架。

moist_adv_opt:指定了模型中用于模拟水汽平流的数值方案。

scalar_adv_opt:指定了模型中用于模拟标量(如气溶胶浓度、化学物质浓度等)平流的数值方案。

chem_adv_opt:指定了用于模拟化学物种平流的数值方案。

tke_adv_opt:用于指定湍流动能(TKE)的对流(advective)处理选项。

1.6 bdy_control部分

 &bdy_control
 spec_bdy_width                      = 5,
 spec_zone                           = 1,
 relax_zone                          = 4,
 spec_exp                            = 0.33,
 specified                           = .true.,   .false.,  .false.,
 nested                              = .false.,  .true.,  .false.,
 /

spec_bdy_width:指定了在边界区域进行平滑处理的宽度(以网格点数量计)。

spec_zone:指定了在模型边界内进行特定处理的网格点数量,通常设置为 5 到 10 个网格点。

relax_zone:指定了从模型边界向内的网格点数,用于逐步“放松”边界条件或其他处理,从而实现平滑的过渡。

spec_exp:定义了在模型边界区域应用化学物质浓度平滑时所使用的经验指数。

specified:是否使用指定数据进行初始化或边界条件设置

nested: 是否启用嵌套网格。

 1.7 chem部分

&chem
 kemit                               = 1,
 chem_opt                            = 8,        8,        0,
 chem_in_opt                         = 1,        1,
 bio_emiss_opt                       = 3,        3,
 photdt                              = 30,       30,
 chemdt                              = 1.8,      0.6,
 bioemdt                             = 1.8,      0.6,
 io_style_emissions                  = 1,
 emiss_inpt_opt                      = 101,    101,       111,
 emiss_opt                           = 4,        4,         3,
 phot_opt                            = 2,        2,         3,
 gas_drydep_opt                      = 1,        1,         1,
 aer_drydep_opt                      = 1,        1,         1,
 ne_area                             = 200,
 biomass_burn_opt                    = 0,        0,        1,
 plumerisefire_frq                   = 60,       60,       30,
 dust_opt                            = 1,
 dmsemis_opt                         = 0,
 seas_opt                            = 1,
 opt_pars_out                        = 1,
 gas_bc_opt                          = 1,        1,
 gas_ic_opt                          = 1,        1,
 aer_bc_opt                          = 1,        1,
 aer_ic_opt                          = 1,        1,
 gaschem_onoff                       = 1,        1,
 aerchem_onoff                       = 1,        1,
 wetscav_onoff                       = 0,        0,
 cldchem_onoff                       = 1,        1,
 vertmix_onoff                       = 1,        1,
 chem_conv_tr                        = 0,        0,
 aer_ra_feedback                     = 1,        1,
 have_bcs_chem                       = .true.,   .true.,
 aer_op_opt                          = 1,
 /

 kemit:输入的排放数据的垂直层数,0<kemit<e_vert。

chem_opt:不同的化学机制,详细信息可查看官方文档。

chem_in_opt:使用哪种初始化学场(0:使用理想轮廓初始化化学场;1:使用模拟数据初始化学场)。

bio_emiss_opt:生物源排放选项,通常填3,即使用MEGAN生物排放源数据。

photdt:光解程序使用的更新时间间隔(min)。

chemdt:化学物质在模拟中的更新频率(min)。

bioemdt:生物排放源数据更新频率(min)。

io_style_emissions:排放源文件格式,(0:无排放源数据读取;1:两个12h的排放数据;2:特定排放数据)

emiss_inpt_option:排放源符合哪种化学机制的分配框架。

emiss_opt:人为排放源选项。

phot_opt:光解指数选项。

gas_drydep_opt:气体干沉降。

aer_drydep_opt:气溶胶干沉降。

ne_area:用于MEGAN生物源排放,提供特定化学选项使用的化学物种的最低总数。最好设置一个大于所有化学物质的值。

biomass_burn_opt:生物质燃烧选项。

plumerisefire_frq:调用生物质燃烧羽流上升子程序的时间间隔。

dust_opt:灰尘选项。

dmsemis_opt:如何处理和应用排放数据文件。

seas_opt:海盐选项。

opt_pars_out:光学特性输出。

gas_bc_opt:气体物质的边界条件设置。

gas_ic_opt:气体物质的初始条件设置。

aer_bc_opt:气溶胶物质的边界条件设置。

aer_ic_opt:​​​​​​​气溶胶物质的边界条件设置。

gaschem_onoff:是否启用气体化学。

aerchem_onoff:是否启用气溶胶化学。

wetscav_onoff:是否启用湿沉降化学。

cldchem_onoff:是否启用云化学。

vertmix_onoff:是否启用垂直混合化学。

chem_conv_tr:是否在模型中启用对流传输过程对化学物质的影响。

aer_ra_feedback:气溶胶与辐射之间的反馈。

have_bcs_chem:是否使用预设的化学边界条件数据。

aer_op_opt:指定气溶胶光学属性。

1.8 namelist_quilt部分


 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /

nio_tasks_per_group:这个参数决定了每个 I/O 任务组中的任务数量。设置合适的值可以优化 I/O 操作的性能,特别是在处理大量数据时。

nio_groups:指定模型在处理输入和输出操作时使用的任务组的数量。

1.9 总结

正确的修改namelist.input是模式顺利运行的前提,虽然里面有很多难懂的参数,但使用大多数参数使用默认值即可完成多数的模拟实验,需要注意参数有:time_control部分的起止时间、重启文件的相关设置;domains部分的模拟步长、e_vert、num_metgrid_levels;physics部分的num_soil_layers、num_land_cat;chem部分的kemit、chem_opt、chem_in_opt、bio_emiss_opt、emiss_inpt_opt、emiss_opt。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值