动量粗糙度长度(Z0, Momentum Roughness Length)是WRF模式中描述地表粗糙程度的关键参数,直接影响地表风场模拟。根据地表类型的不同(如农田、城市、湖泊等),Z0值会有显著差异。
WRF模式中Z0值存储在多个位置:
| VEGPARM.TBL | module_sf_noahlsm.F | |
| LANDUSE.TBL | module_sf_sfclay.F | |
| lake module | module_lake.F |
适用场景:调整表面风模拟的敏感性
步骤:
VEGPARM.TBL文件Z0MIN:最小动量粗糙度Z0MAX:最大动量粗糙度示例:
INDEX CATEGORY ISLT ZSOIL DMAX ALBEDO ...13 URBAN AND BLD 1 2.0 0.5 0.15 ...... ... ... ... ... ... ... Z0MIN 1.0 Z0MAX 2.0适用场景:使用module_sf_sfclay.F或module_sf_sfclayrev.F时
步骤:
LANDUSE.TBL文件注意:此修改适用于直接在边界层方案中使用LANDUSE.TBL的情况,不影响NOAH或RUC陆面模式。
适用场景:调整湖泊表面的粗糙度长度
步骤:
module_lake.F)建议:对于湖泊相关的修改,直接修改lake module比修改VEGPARM.TBL更准确。
如果需要在模拟过程中输出表面粗糙度(ZNT)进行验证,需要修改WRF注册表。
Registry/Registry.EM_COMMON文件ZNT变量i3r(仅用于计算)改为i3rh(用于计算并输出)修改示例:
# 修改前state real ZNT ij misc 1 i3r "ZNT AT PREVIOUS TIME STEP""m"# 修改后state real ZNT ij misc 1 i3rh "ZNT AT PREVIOUS TIME STEP""m"./clean -a./configure./compile em_real如果现有土地利用类别的Z0值不符合研究需求,可以创建新的类别。
修改geo_em文件:
geo_em.d0X.nc文件LU_INDEX变量的值,将部分区域分配给未使用的类别编号(如22)**修改VEGPARM.TBL**:
Z0MIN和Z0MAX值示例:
INDEX CATEGORY ISLT ZSOIL DMAX ALBEDO ...22 CUSTOM URBAN 1 2.5 0.6 0.12 ... Z0MIN 1.5 Z0MAX 3.0met_em和wrfinput采用物理合理性:修改Z0值时应确保物理意义合理,建议参考相关文献的典型值范围
敏感性测试:进行Z0敏感性测试时,应选择适当的表(VEGPARM.TBL或LANDUSE.TBL)进行修改
编译要求:修改注册表后必须重新编译WRF才能生效
LU_INDEX修改:修改geo_em中的LU_INDEX会影响整个模拟流程,确保met_em和wrfinput文件正确采用新值
备份文件:修改前备份原始文件,以便出现问题时恢复
验证结果:输出ZNT后,可通过可视化工具(如NCL、Python)检查修改效果
https://forum.mmm.ucar.edu/threads/how-to-change-surface-roughness-length-for-lake.3491/
https://forum.mmm.ucar.edu/threads/roughness-value.13267/#post-32437