爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 896|回复: 1

WRF模式OBSGRID模块出错

[复制链接]

新浪微博达人勋

发表于 2023-10-10 15:57:40 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 气象是个坑 于 2023-10-10 16:19 编辑

最近要做Nudging,需要用到OBSGRID模块进行观测数据插值,但是运行 obsgrid.exe 程序时问题多多,数据都读不进去。好在都解决了,现在做个小总结,其中参考了网上大部分经验,只能算个经验汇总吧。

1、首先是 ./compile 错误。
解决:我用的是 intel 的编译器,也推荐用 intel,参考了气象备忘录的教程;删去了 CPPFLAGS的 -C

                               
登录/注册后可看大图

另外不知道为什么编译后 CC 显示 gcc,改成了icc。然后就成功把 exe 生成;
后面有些 plot_soundings.exe 等错误它显示忽略了,但好像不影响使用

                               
登录/注册后可看大图


2、./obsgrid.exe 错误
我用的是高空 upper air 的数据
(1)如果我 little_R 数据表头 Is_sounding = F (类型为表面观测),出现 elvation 和 height not match 的错误;这个好办,把他们改成同一高度就行,即使缺测-888888.00000好像也能运行成功。虽然 Successful,但无论是高空还是地表数据,一个也没写进去,而且OBS_DOMAIN101是空的(正常,毕竟用了表面类型,而且我的气压最低只到 1000hPa)

                               
登录/注册后可看大图
   

(2)如果我 little_R 数据表头 Is_sounding = T (类型为非表面观测,多层),它就开始计算崩溃:forrtl: severe(174): segmentation fault occurred

                               
登录/注册后可看大图


我一开始以为是垂直层数据多了就崩溃了,所以我把它从多层结构(1个表头多层data record全部改成一个个点的形式(上)写入,我以为成功了,但实际上高空数据一个也没写入,而且 OBS_DOMAIN101(下) 把我的 Is_sounding 全部变成了 表层类型 F,网上很多方法都没用。

                               
登录/注册后可看大图
      

                               
登录/注册后可看大图

解决:幸运的是,我的错误跟 CSDN 一位老兄的错误一模一样,网站放在后面了,这里截个图;
在 configure.oa 先加上-g -O0 -check all -C -traceback 用于追踪错误(应该放后面也行),重新编译。但这里我要把原来的目录都删了从头来过编译才行,之前编译过后面覆盖好像不生效

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

不知道是不是当初在编译 OBSGRID 的时候把编译器版本改了,导致跟原来编译WRF/WPS版本不统一,后面出现各种奇怪报错(类似变量没有给初始定义或赋值之类的),后面统一编译器版本从头开始解压编译就解决了;建议软件之间运行有相互依赖时尽量保证他们的编译器版本统一

3、格式转换导致的显示错误:
把上面追踪错误的语言保留,又出现了以下错误(类型63,warning不用管),而且日志数据量全部变成 ***了,但是我的 OBS_DOMAIN 是能正常写进的,我以为是数据格式问题,会导致写入数据缺失

                               
登录/注册后可看大图
      

                               
登录/注册后可看大图

解决:其实是因为我数据多了,日志文件默认只能显示3位数,生成的数据是没问题的;在 /OBSGRID/src/ 搜了一下关键字 grep -r 'MAX number of observation' 显示出自 proc_oa.F90 这个文件,定位到 885行,把WRITE 的 "i3" 改成 "i4" 或更大的数字,重新 ./compile 运行即可,数据量也能正常显示。      

                               
登录/注册后可看大图
     

                               
登录/注册后可看大图





引用:
[1] little_R 数据格式:https://www2.mmm.ucar.edu/wrf/users/wrfda/OnlineTutorial/Help/littler.html
[2] 气象备忘录Nudging教程:https://www.heywhale.com/mw/project/62f0cee15f0fe96a599eb092
[3] CSDN 错误解决:https://blog.csdn.net/FYSsuyi/article/details/131649148
[4] WRF 官方手册:https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.3/users_guide_chap7.html
[5] 官方Nudging 教程:https://www2.mmm.ucar.edu/wrf/users/docs/ObsNudgingGuide.pdf


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-12-22 00:08:10 | 显示全部楼层
请问OBS nudging 的观测资料是6小时分辨率,而运行metgrib.exe生成的文件是1小时分辨率,有什么办法使
运行obsgrid.exe生成的met_oa文件为1小时分辨率吗
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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