用WRF模型进行气象模拟入门(3)——WRF的运行

在前两篇文章已经介绍了WRF的编译安装,以及WPS的配置。本文将开始介绍如何运行WRF

前面已经提到了,WRF有两种运行模式:理想案例(idealized)与实际案例(real-data),这里只关注实际案例

1. 准备工作

在运行前,首先确保WRF源代码目录WRFV3/main/ 下有real.exe,wrf.exe,ndown.exe,tc.exe这几个程序。如果没有,请参考《用WRF模型进行气象模拟入门(1)——简介以及代码编译》重新编译安装WRF。

同时也要确保生成了足够的名为 met_em.d0x.yyyy-mm-dd_hh:mm:ss.nc 的数据文件,如果没有,请参考 《用WRF模型进行气象模拟入门(2)——WPS的配置与使用》来生成相应数据

2. 准备运行目录

wrf.exe运行时需要读取很多文件,这些文件都放在运行目录中(WRFV3/test/em_real或WRFV3/run)。可以选择进入这两个运行目录之一来直接执行wrf.exe,也可以把这两个运行目录之一中的文件拷贝出来,建立一个新的运行目录。一个运行目录下一般有这些文件:

决定在这个目录下运行wrf.exe后。需要把WPS生成的met_em.dxx.*文件移动、复制或者链接到运行目录下,确保在运行目录下有覆盖运行时间范围的数据文件。

当然也要把 real.exe,wrf.exe,ndown.exe,tc.exe这几个程序链接、复制或者移动到这个目录中来。

3.修改配置文件

然后编辑namelist.input文件修改对应的参数,对于嵌套模拟,各个区域的同一个的参数用逗号分割。比如

表示区域1,2,3的 history_interval 参数分别为 180, 60, 60,

namelist.input文件中必须要修改的内容如下:

首先是 &time_control 中的参数:

  • interval_seconds 参数表示WPS输出数据的时间间隔,
  • history_interval 参数表示WRF.exe输出 wrfout_dxx_* 文件的时间间隔,单位是分钟
  • frame_per_outfile 参数表示每个 wrfout_dxx_ 文件中的时间帧数
  • restart_interval 参数表示 restart 文件输出的时间间隔,单位是分钟
  • restart 设置是否从restart 文件开始运行

还有 &domains 中的参数:

  • time_step 表示根区域的模拟步长,单位为秒

另外 e_we, e_sn, parent_id, dx, dy, i_parent_start, j_parent_start, parent_grid_ratio 等参数与WPS的配置文件namelist.wps中保持一致,其他参数可以保持默认

4. 运行模型

编辑好 namelist.wps 之后,首先需要先执行 初始化程序 real.exe,会得到 wrfinput_dxx 和 wrfbdy_d01 文件。

其中 wrfinput_dxx 为初始时刻的状态,wrfbdy_d01 为根区域(区域1)所有模拟时刻的侧边界状态.

然后即可运行主程序wrf.exe,运行结束后会得到模型输出文件 wrfout_dxx_* 文件,以及 存档文件(restart file) wrfrst_dxx_*

wrfout_dxx_ 文件保存了各个时刻模型模拟的大气状态;wrfrst_dxx_文件类似于游戏的存档,模型可以以这个存档为基础继续向前模拟。

这里只是简单介绍了WRF的运行,还有很多功能有待介绍。

打赏

本作品使用基于以下许可授权:Creative Commons Attribution-NonCommercial 4.0 International License.

《用WRF模型进行气象模拟入门(3)——WRF的运行》有25个想法

      1. 博主你好,我想问下有没有关于wrf跑完的数据的介绍啊,我现在有别人跑完的数据但是不太懂,也不太会用。还望博主不吝赐教

  1. 博主,你好。有个问题向您请教。在《用WRF模型进行气象模拟入门(3)——WRF的运行》第4节(4. 运行模型)开头写到“编辑好 namelist.wps 之后,首先需要先执行 初始化程序 real.exe,会得到 wrfinput_dxx 和 wrfbdy_d01 文件。”这句话开头的namelist.wps是否应为namelist.input?望指正!!!

  2. 很赞的wrf介绍,简单易懂,辛苦啦。以后还有问题请教,望与页主多多交流,学习

  3. 博主,请问跑一个理想实验是不是直接修改对应的namelist.input 就可以了?谢谢

  4. 博主,你好。最近也在学习研究WRF,想利用MPI做集群运算来提高WRF的运行效率,不知博主有没有这方面的尝试,其效果如何,可否分享一下,期待交流~

    1. MPI集群显著提升运行速度啊,这个亲身体验。不过前提是你们已经有搭建好的集群计算平台

      1. 博主,你好,看了上面的,我也是最近也在学习wrf-chem,运行wrf时总是中断,不知道是不是运行时间太长或者是太多人在服务器上运行的原因。想请问如何利用MPI来提升运行速度(我实在学校的服务器上跑的)。希望给个指点,非常感激。

        1. 建议把具体中断信息找出来分析,毕竟可能有很多原因。目前看最可能的是集群为了控制各个用户的机时,集群强制中断运行过长时间的程序,如果是这样的话建议和学校集群管理员联系

  5. 博主您好,我是即将毕业的大四学生,我的导师给我的论文题目是“基于hadoop平台的空气污染浓度应用的并行计算架构”,老师给我的论文简介“搭建hadoop集群,对于传统的WRF空气污染物处理应用,设计一个基于hadoop的并行执行框架,提高传统应用的效率。”可是我看了好几天关于wrf的资料,我有几点疑问,向您请教一下:1.wrf应用有没有可以处理空气污染浓度的模块或方法?2。博主您知道如何将wrf迁移到hadoop上吗?(我的导师说您将wrf迁移到hadoop上基本上论文已经做好了,可是wrf使用F90语言开发,而hadoop只可运行java程序,我在google上面也没有发现任何F90语言与java相关的文章)3.wrf有对外的接口可以调用吗?博主,希望您能在百忙之中看到回复一下,我将不胜感激,同时也希望所有看到的大神回复一下,谢谢!!!!

    1. WRF-chem模块可以用于大气化学(污染物)模拟。您导师安排的课题也只有您导师最清楚,建议您多与导师交流。

  6. 您好,我想请问一下,为什么在“namelist.input”里,一些数据是3列的,而在前面的“namelist.wps”里是两列的呢?
    例如e_we,*.input里是“74, 112, 94,”;*.wps里是“74, 112,”
    区域不是划分的2个区域吗?(d01和d02)

  7. 请问一下,如果wrf运行过程中服务器中断了,是不是只能重新运行wrf.exe?有没有办法能够继续上一次的运行呢?

    1. 首先你需要保存了restart文件,然后要设置 restart 运行模式。比较麻烦,建议搜索一下restart相关的资料

  8. 博主你好,我想问下有没有关于wrf跑完的数据的介绍啊,我现在有别人跑完的数据但是不太懂,也不太会用。还望博主不吝赐教

  9. 感谢博主,写的很通俗易懂。很喜欢博主的这种简单易懂的教学风格,如果能写写Linux的入门就好了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注