WRF namelist.input 和 namelist.wps 参数设置详解:以一次FNL数据模拟为例
当WRF模型的基础安装和简单案例运行已经不再是障碍,真正困扰研究者的往往是那些隐藏在配置文件中的关键参数。这些看似简单的数字和选项背后,实则决定了模拟的精度、稳定性和计算效率。本文将深入解析WRF预处理系统(WPS)和主模型中的核心参数配置,帮助您从"能运行"进阶到"会优化"。
1. 时间控制参数:模拟的时空框架
时间参数是WRF模拟的基础骨架,直接决定了模拟的时长和边界条件更新频率。在namelist.input的&time_control部分,以下几个参数需要特别注意:
run_days/run_hours/run_minutes/run_seconds:这四个参数共同定义了模拟的总时长。实际使用中通常只需设置其中一个(如run_hours=30),其他设为0。值得注意的是,总模拟时间必须小于等于end_date与start_date的时间差。
start_date/end_date:格式为
年,月,日,时的多维数组,每个嵌套域对应一列数据。对于FNL数据模拟,建议保持各嵌套域的时间一致以避免边界条件问题。例如:start_year = 2021, 2021, 2021, start_month = 10, 10, 10, start_day = 15, 15, 15, start_hour = 00, 00, 00,interval_seconds:这是输入数据的时间间隔(秒)。FNL数据通常是6小时间隔,因此应设置为21600。这个值必须与实际数据文件的时间间隔严格一致,否则会导致ungrib处理失败。
提示:当使用多嵌套域时,建议所有域采用相同的起止时间,仅在物理参数上做差异化设置,这样可以减少边界条件带来的不确定性。
2. 域配置:网格系统的艺术
&domains部分的参数定义了模拟区域的几何特征,是影响计算精度和资源消耗的关键:
| 参数 | 典型值 | 物理意义 | 设置建议 |
|---|---|---|---|
| max_dom | 1-3 | 嵌套层数 | 初学者建议从单域开始 |
| e_we/e_sn | 50-150 | 东西/南北向网格点数 | 单域建议控制在100以内 |
| e_vert | 30-50 | 垂直层数 | 默认34层适合多数场景 |
| dx/dy | 1000-30000 | 水平网格间距(米) | 与研究尺度匹配 |
| grid_id | 1,2,3 | 域标识 | 必须连续编号 |
| parent_id | 0,1,2 | 父域编号 | 最外层域为0 |
对于FNL数据模拟,特别需要注意:
parent_grid_ratio:相邻域间的网格细化比例,通常取3或5。这个值会影响嵌套过渡的平滑性,建议保持默认值3。
p_top_requested:模型顶气压(Pa)。对于对流层研究,5000Pa(约20km)是常用值;平流层研究可能需要更低值。
time_step:最大允许的时间步长(秒),遵循CFL条件。经验公式为:
time_step ≤ 6*dx(km)。例如dx=30km时,time_step=180是安全值。
&domains time_step = 180, max_dom = 2, e_we = 94, 112, e_sn = 91, 97, e_vert = 33, 33, p_top_requested = 5000, dx = 30000, 10000, dy = 30000, 10000, grid_id = 1, 2, parent_id = 0, 1, parent_grid_ratio = 1, 3, /3. 物理过程参数化方案选择
WRF提供了丰富的物理过程参数化方案,在&physics部分进行配置。对于FNL数据模拟,推荐使用预设的物理方案组合:
- physics_suite:预设方案集,如'CONUS'(适用于北美地区)或'TROPICAL'。这会自动设置多个物理参数,适合初学者。
当需要手动设置时,重点关注以下参数:
mp_physics:微物理过程方案
- 3: WSM 3-class(简单高效)
- 6: WSM 6-class(含霰过程)
- 8: Thompson方案(详细冰相过程)
cu_physics:积云对流方案
- 1: Kain-Fritsch(中尺度适用)
- 6: Tiedtke(大尺度适用)
- 0: 关闭(当网格间距<5km时)
bl_pbl_physics:边界层方案
- 1: YSU方案(常用)
- 5: MYNN方案(考虑湍流各向异性)
&physics physics_suite = 'CONUS', mp_physics = 8, 8, 8, cu_physics = 1, 1, 0, ra_lw_physics = 1, 1, 1, ra_sw_physics = 1, 1, 1, bl_pbl_physics = 1, 1, 1, sf_sfclay_physics = 1, 1, 1, sf_surface_physics = 2, 2, 2, radt = 30, bldt = 0, cudt = 5, /注意:物理方案的选择高度依赖研究目标和区域特性。建议先进行敏感性测试,再确定最佳组合。
4. WPS配置:预处理的关键步骤
namelist.wps文件的配置需要与namelist.input保持协调,主要关注:
4.1 地理数据配置
geog_data_res:地理数据分辨率,必须与下载的地理数据集匹配。例如:
geog_data_res = 'default', '10m', '2m',表示第一层使用默认分辨率,第二层使用10分钟,第三层使用2分钟数据。
opt_geogrid_tbl_path:地理参数表路径,通常保持默认:
opt_geogrid_tbl_path = 'WPS/geogrid/',
4.2 时间和域设置
WPS中的域设置必须与WRF主模型完全一致:
&share max_dom = 2, start_date = '2021-10-15_00:00:00', '2021-10-15_00:00:00', end_date = '2021-10-16_06:00:00', '2021-10-16_06:00:00', interval_seconds = 21600, io_form_geogrid = 2, / &geogrid parent_id = 0, 1, parent_grid_ratio = 1, 3, i_parent_start = 1, 31, j_parent_start = 1, 17, e_we = 94, 112, e_sn = 91, 97, geog_data_res = 'default', '10m', dx = 30000, dy = 30000, map_proj = 'lambert', ref_lat = 35.0, ref_lon = -105.0, truelat1 = 30.0, truelat2 = 60.0, stand_lon = -105.0, /4.3 数据解压和插值
fg_name:指定输入数据前缀,对于FNL数据通常设为'FILE':
&ungrib out_format = 'WPS', prefix = 'FILE', /constants_name:常数字典文件,通常不需要修改:
&metgrid fg_name = 'FILE', constants_name = 'CONSTANTS', io_form_metgrid = 2, /
5. 常见问题排查与优化建议
在实际FNL数据模拟中,经常会遇到以下几类问题:
ungrib.exe运行失败
- 检查Vtable选择是否正确:FNL数据应使用
Vtable.GFS - 确认数据时间间隔与
interval_seconds一致 - 验证数据文件是否完整,可使用
wgrib2工具检查
- 检查Vtable选择是否正确:FNL数据应使用
real.exe阶段报错
- 检查
namelist.input和namelist.wps的域设置是否一致 - 确认
met_em*文件已正确链接到WRF运行目录 - 查看
rsl.error.0000文件获取详细错误信息
- 检查
wrf.exe运行崩溃
- 减小
time_step值(通常减半测试) - 尝试不同的物理参数化组合
- 检查计算节点内存是否充足
- 减小
性能优化建议:
- 对于多嵌套域,可以逐步激活(先跑父域,再添加子域)
- 调整
history_interval减少输出频率,节省存储空间 - 使用
frames_per_outfile控制单个输出文件的时间步数量