问题描述
2019年6月12日起,2019061212时的GFS资料进行了更新,说明如下
The COMET Program is pleased to announce the publication of an update to the MetEd Operational Models Encyclopedia for the Global Forecast System (GFS) model, including the finite volume 3-dimensional (FV3) dynamical core. This GFS upgrade, the first to use the FV3 core, was made operational at 12 UTC 11 June 2019.
机翻后大体意思就是
COMET很高兴地宣布发布GFS资料基于MetEd的更新,重点包括FV3动态核心。 此GFS升级是第一个使用FV3核心的升级版,于2019年6月11日12 UTC开始运行。
和小伙伴们交流,发现最直白的建议就是升级WPS4.0(后来发现3.9.1之后的版本应该就可以)
好吧,感谢美帝对GFS以及WRF版本的无私升级。
但是我们老版本的WPS+WRF运行起来过不去metgrid啊。
完全不想升级版本,好不容易调稳定的,那么应该怎么办呢?
问题分析
FV3核心升级后,GFS资料增加了三个层,分别是40,15和0.4hPa。在ungrib之后就会造成层数不匹配,和metgrid也会冲突,如果直接按if ( level .lt. pmin ) cycle MATCH_LOOP的思路,则会造成real时层数小于32而无法正常运行的问题。
问题解决
修改WPS/ungrib/src/rd_grib2.F然后重新编译WPS即可,可以起到略去相关三层GFS读入的作用。
无需修改Vtable之类。
以3.9版本为例,改版本rd_grib2.F
大约在740行前后搜索如下字段,然后添加粗体部分内容即可
! Level (eg. 10000 mb)
if(gfld%ipdtmpl(10).eq.100) then
! Pressure level (range from 1000mb to 0mb)
level=gfld%ipdtmpl(12) *
& (10. ** (-1. * gfld%ipdtmpl(11)))
!if ( level .lt. 5000 ) cycle MATCH_LOOP
if ( level .eq. 4000 ) cycle MATCH_LOOP
if ( level .eq. 1500 ) cycle MATCH_LOOP
if ( level .eq. 40 ) cycle MATCH_LOOP
!==================================================
elseif((gfld%ipdtmpl(10).eq.105).or.
& (gfld%ipdtmpl(10).eq.118))then
思路来源
思路原网页,感谢 DCVZ
http://forum.wrfforum.com/viewtopic.php?f=6&t=11314&sid=3280b397e5005fa419704c9476b0d9b2
if(gfld%ipdtmpl(10).eq.100) then
! Pressure level (range from 1000mb to 0mb)
level=gfld%ipdtmpl(12) *
& (10. ** (-1. * gfld%ipdtmpl(11)))
if ( level .lt. pmin ) cycle MATCH_LOOP
elseif((gfld%ipdtmpl(10).eq.105).or.
源网页的做法,是去除掉小于pmin的层数,这样总层数会少于32,而在wrf执行阶段无法运行。
网友评论