WRF运行报错问题解决方法总结(持续更新中)

0、环境

WRF v3.9.1.1

CMAQ v5.4

……

遇到问题再更新

1、WPS

2、OBSGRID

3、WRF

1)运行WRF时终止,单个日志文件报错2 OBS ARE NOT IN CHRONOLOGICAL ORDER NEW YEAR?

①问题详情

日志文件详情:

vi rsl.error.20240413有

出现报错:

“2 OBS ARE NOT IN CHRONOLOGICAL ORDER

NEW YEAR?”

当 timeob < rtlast 时,observation 日期时刻均早于当前 fdda 进行的时刻,fdda 找不到可用于 nudging 的适当日期的 observation ,故终止运行。

问题所在:OBSGRID生成,经run_cat_obs_file_d01.csh or d02.csh整合后的OBS_DOMAIN文件日期部分缺失。

发生原因:OBS_DOMAIN1??文件命名超出99,需更改文件名位数。

其他特征:运行obsgrid.exe时,除了会生成OBS_DOMAIN101、103……文件外,还会额外生成一个“ OBS_DOMAIN1** ”这样带星花*的文件。

残缺的OBS_DOMAIN文件展示:

vim OBS_DOMAIN101有

namelist设置时间为2024041300至2024042100,metoa文件正常生成,单个OBS_DOMAIN文件正常生成,但运行run_cat_obs_file_d01.csh后得到的整合OBS_DOMAIN101 & 201文件日期仅至202404190415。

终止后的wrfout文件展示:

拖入panoply有

终止前的最后一个wrfout文件仅包含0-3时的数据,从4时开始缺失。

②解决方法

进入/OBSGRID/src/;

将原有的driver.F90文件备份为.bak文件;

cp driver.F90 driver.F90.bak

修改driver.F90文件中关于OBS_DOMAIN文件名的3处设置;

更改前:obs_nudge_file,'("OBS_DOMAIN",i1,i2.2)'
更改后:obs_nudge_file,'("OBS_DOMAIN",i1,i3.3)'

源文件使用Fortran 90编写,修改后意为写入3位的integer,空出的位数用0补齐。

Fortran write函数格式使用参考:(笔记)Fortran中的write()函数_fortran write-CSDN博客

修改后在/OBSGRID/src/下重新编译;

返回/OBSGRID/运行obsgrid.exe发现OBS_DOMAIN命名位数增加;

运行run_cat_obs_files.csh之前需要修改读取格式;

运行后生成的汇总文件仍为OBS_DOMAIN?01,检查文件内容是否正确,修改完毕。

③相关延伸

若需要修改OBSGRID输出文件路径,可在/OBSGRID/src/中修改相应文件。

1、修改metoa文件输出路径:在main.F90文件中修改filename_out定义长度和WRITE后的文件名。

2、发现错误,正在修改中,请勿参考此条修改信息。

错误特征:产生“OBS_DOMAINxxx.nc”文件,尚不明确.nc文件是如何产生的,以及其具有什么作用,但其的生成伴随着OBS_DOMAIN文件曾大,运行WRF nudging报错:

FIO-F-231/formatted read/internal file/error on data conversion.

In source file module_date_time.f90, at line number 195.

似乎意味着找不到对应格式的日期。

修改OBS_DOMAIN文件输出路径:在driver.F90文件中修改obs_nudge_file定义长度,修改3处WRITE之后的文件名(以绝对路径来命名)。

注:若出现 FORTRAN “Symbol has no implicit type"错误,可参考https://blog.csdn.net/mikaeniks/article/details/37564927添加续行符。

3、修改wrf_sfdda文件输出路径:在proc_final_analysis.F90文件中修改sfcfile定义长度和绝对路径。

4、完成对.F文件的修改后,需要在/src/目录下重新编译。

make clean
make

检查输出文件路径及命名是否正确,完成修改。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值