爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16030|回复: 5

WRF的restart用法的一些探讨

[复制链接]

新浪微博达人勋

发表于 2015-6-29 16:54:38 | 显示全部楼层 |阅读模式
数值模式
使用语言: WRF fortran
我看过提问的智慧: 看过
自己思考时长(天): 6
问题概况: WRF的restart用法的一些探讨
,讲一下怎么用,顺便问下自己遇到的问题,希望有人能解答
问题截图: -
系统平台: WRF 大型机

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
关于WRF也是刚开始接触不久,因为模拟时间比较久,所以想用下restart这个语句。之前在一个博客上看到了用法的介绍,
但是我再搜就找不到了,所以这也是借鉴下别人的。希望那个博客主不要生气。
首先,需要创建restart文件。这个创建通过在namelist.input中设置restart_interval(单位分钟)来实现。restart_interval的数值应该等于或小于首次模拟的时间,其他操作与正常情况一致,这样在运行real.exe,wrf.exe后,除产生wrfout外,将产生wrfrst_d_文件。是restart被写入时的时间。例子:
run_hours = 12,
run_minutes = 0,
start_year = 2010,
start_month = 03,
start_day = 06,
start_hour = 00,
end_year = 2010,
end_month = 03,
end_day = 07,
end_hour = 00,
interval_seconds = 21600,
history_interval = 180,
frames_per_outfile = 1000,
restart = .false.,
restart_interval = 720,
注意,尽管模式运行结束时间为设置为07_00,run_hours=12 会覆盖它,即模式在运行12小时后结束。run_hoursreal.exe不起作用,real.exe仍将产生24个小时的边界条件。
设置restart_interval = 720将会在模式运行每12个小时产生restart文件(wrfrst文件)。
例子最后运行成功后,产生wrfout_d01_2010-03-06_00:00:00,wrfrst_d01_2010-03-06_12:00:00。


然后,选择最后一次写出的restart文件,进行restart操作。编辑namelist.input文件,将其start_*时间设置成restart的时间(即最后一个restart文件被写入的时间),同时设置restart=.true.。再次运行wrf.exe。例子:
run_hours = 12,
run_minutes = 0,
start_year = 2010,
start_month = 03,
start_day= 06,
start_hour= 12,
end_year = 2010,
end_month = 03,
end_day = 07,
end_hour = 00,
interval_seconds = 21600,
history_interval = 180,
frames_per_outfile = 1000,
restart= .true.,
restart_interval = 720,
注意,将 START 时间设置成 06_12,这就和上一个 restart 文件的时间相一致。不需要执行 real.exe,只需执行 wrf.exe。
成功运行后,生成 wrfout_d01_2010-03-06_12:00:00。
注意,此时将无法获得模式再次运行起始时刻2010-03-06_12:00:00的wrfout文件。需要保留下来,在namelist中的&time_control部分添加:
write_hist_at_0h_rst = .true.
接下来就是我想问的问题。

第二次运行时候,要不要链接之前生成的wrfrst文件?

因为我尝试了好几次,比如我运行模拟5天的,第一次运行设置为
run_days=5
run_hours = 0,
run_minutes = 0,
start_year = 2010,
start_month = 03,
start_day = 01,
start_hour = 00,
end_year = 2010,
end_month = 03,
end_day = 06,
end_hour = 00,
interval_seconds = 21600,
history_interval = 180,
frames_per_outfile = 1000,
restart = .false.,
restart_interval = 720,
运行结束生成了1-6号的wrfout文件,之后第二次运行,就是修改了namelist.input,我设置重启时间是12个小时。
run_days=5
run_hours = 0,
run_minutes = 0,
start_year = 2010,
start_month = 03,
start_day = 05,
start_hour = 12,
end_year = 2010,
end_month = 03,
end_day = 06,
end_hour = 00,
interval_seconds = 21600,
history_interval = 180,
frames_per_outfile = 1000,
restart = .true.,
restart_interval = 720,
之后不连接,也不运行./real.exe。这样重新生成的只有5号那天的wrfout。并不是我想想的会全部都重新生成,替换原来的。
因为实际上我要模拟三个月的数据,所以我就不知道这样restart的用法对不对。因为只有最后十二个小时的变了,那么和没有restart根本就没什么差别啊。

求助各位做过这个的!!
PS:WRF直接模拟转三个月时间的话,不用restart的话,是不是结果根本就不可信?

来自群组: 兰州气象学院
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-29 17:51:38 | 显示全部楼层
楼上正解,restart只是为了保证中间出问题了可以用生成的中间时刻的restart文件来补救。
你的restart设置为12h,必然生成了很多,你试一下用生成的第一个作为起始时刻,然后再run,看看时间上来讲是不是比之前直接生成6天的数据节省了很多。
restart记录的是那个时刻的wrf各个场的情况,但是楼主讲的也很有道理,如果中间断电了,前边的没了,直接从最近的wrfrst文件搞的话理论上是不会输出之前的东西的,而wrfout文件得在全部run完之后才有显示的吧,不是实时写一个时刻更新一下,所以建议楼主试一下我说的那个
也是个人理解,错的地方还望高手指正
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2015-6-29 17:29:20 | 显示全部楼层
个人理解,restart不会影响积分的结果,只是长时间模拟可能会出现中断现象。为了减小计算量,一般会从中断的地方开始restart一下,而不需要重新开始。譬如说你模拟3个月,积分到2个月的时候,突然断电了,怎么办?就能够用到restart,从断掉的地方继续积分就ok
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2015-6-29 18:47:50 | 显示全部楼层
lhaikun@163.com 发表于 2015-6-29 17:51
楼上正解,restart只是为了保证中间出问题了可以用生成的中间时刻的restart文件来补救。
你的restart设置 ...

恩恩,所以其实,用不用restart并不影响最后输出结果。直接转一个月的就行了,用restart可能为了防止一些事情。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-29 21:13:01 | 显示全部楼层
shrily521 发表于 2015-6-29 18:47
恩恩,所以其实,用不用restart并不影响最后输出结果。直接转一个月的就行了,用restart可能为了防止一些 ...

恩 可以将一个长时间段的分开来run,比如你run三个月,可以一个月一个月的来,一月一个restart文件,第二个月直接在第一个月的restart文件基础上运行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-30 10:09:54 | 显示全部楼层
恩恩,值得一试。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表