爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 红河岸

[分享资料] 【求助】grads语句里的时间变量(文件名)控制

[复制链接]
 楼主| 发表于 2014-1-24 10:26:42 | 显示全部楼层

ctl就是wrf统一算出来的ctl,文件如下:

其实就是改2010092812这一段,2010092912,2010093012,2011100112……逐日增加,但是出现问题在9楼已经描述,一个是day这一块,<10的部分没法添加0;还有就是算出来的文件,虽然文件名有变化,但是文件的内容始终都是一样的……


DSET p:\2\cwrf_d03_2010092812_0000.dat
TITLE WRF model result
UNDEF        9999.      
OPTIONS sequential
XDEF  180 LINEAR   110.9219   0.094555
YDEF  180 LINEAR    18.0921   0.076532
ZDEF   5 LEVELS
   925.0000   850.0000   700.0000   500.0000   200.0000
TDEF   73 LINEAR 12:00Z12JUN2010  1hr
VARS   18
HGT 0 0 地形高度
RAINNC 0 0 累积总格点降水
RAINC 0 0 累积积云降水
SST 0 0 海面温度
TH2 0 0 2m位温
T2 0 0 2m温度
U10 0 0 10m纬向风速
V10 0 0 10m经向风速
TSK 0 0 地表/海表温度
rain 0 0 1小时累计降水量
rh2 0 0 2m相对湿度
wind10 0 0 10m风场
ua    5 0 纬向风速
va    5 0 经向风速
wa    5 0 垂直风速
Z    5 0 _Z
tc    5 0 温度
rh    5 0 相对湿度
ENDVARS
密码修改失败请联系微信:mofangbao
发表于 2014-1-24 11:13:45 | 显示全部楼层
红河岸 发表于 2014-1-24 10:26
ctl就是wrf统一算出来的ctl,文件如下:

其实就是改2010092812这一段,2010092912,2010093012,20111 ...

1.ctl可以有中文,这个我第一次见。
2.你的数据是每天12点的,所以你的通配符在ctl中就要使用了
  1. DSET f:\1\CMORPH_30min_8km_%y4%m2%d2%h2
  2. OPTIONS template little_endian
  3. UNDEF  -999.0
  4. TITLE  Precipitation estimates
  5. XDEF 4948 LINEAR   0.036378335 0.072756669
  6. YDEF 1649 LINEAR -59.963614    0.072771377
  7. ZDEF   01 LEVELS 1
  8. TDEF 9999 LINEAR  00z01jul2008 1hr
  9. VARS 1
  10. cmorph   1  99  hourly cmorph [ mm/hr ]
  11. ENDVARS
复制代码
这是我的通配符使用,你参考一下
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-24 11:41:03 | 显示全部楼层
kongfeng0824 发表于 2014-1-24 11:13
1.ctl可以有中文,这个我第一次见。
2.你的数据是每天12点的,所以你的通配符在ctl中就要使用了这是我的 ...

我的理解不是这样的。
我的ctl是逐日不同调用,每个ctl配套一个dat文件,所以应该不用在ctl的语句中就使用通配符吧。

其实就是逐日增加调用ctl,如cwrf_d03_2010092912.ctl,cwrf_d03_2010093012.ctl,cwrf_d03_2011100112.ctl,cwrf_d03_2011100212.ctl……因为调用ctl的时候,配套的dat文件就相应被调用了。
密码修改失败请联系微信:mofangbao
发表于 2014-1-24 14:23:27 | 显示全部楼层
红河岸 发表于 2014-1-24 11:41
我的理解不是这样的。
我的ctl是逐日不同调用,每个ctl配套一个dat文件,所以应该不用在ctl的语句中就使 ...

DSET f:\1\CMORPH_30min_8km_%y4%m2%d2%h2
这个是我的,我的gs文件中也有用到通配符。
你可以试试看一下。
ctl是对所有文件的描述,文件是变化的。

你再看看,如果还不行,就是gs文件中的某个地方的问题了。
不过我也没看出来你的gs文件哪里有问题。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2014-1-25 23:40:12 | 显示全部楼层
kongfeng0824 发表于 2014-1-24 14:23
DSET f:\1\CMORPH_30min_8km_%y4%m2%d2%h2
这个是我的,我的gs文件中也有用到通配符。
你可以试试看一下 ...

昨天细看了下,问题解决了。倒跟ctl里这个通配符关系不大,就是gs里面语句的问题。

一个是少写了一个if-endif的循环判断;

另一个就是解决了为什么一直重复读第一个数据文件的问题,是没有关闭和切换,需要增加set dfile n 的循环语句或者在open语句前加reinit,也是关闭功能,这样才使文件能不断换新的。

也是请教了同事才发现问题,嘿嘿。

多谢你!
密码修改失败请联系微信:mofangbao
发表于 2014-1-26 20:13:00 | 显示全部楼层
红河岸 发表于 2014-1-25 23:40
昨天细看了下,问题解决了。倒跟ctl里这个通配符关系不大,就是gs里面语句的问题。

一个是少写了一个i ...

问题解决就好。我现在用matlab,基本少用grads了
密码修改失败请联系微信:mofangbao
发表于 2014-8-14 14:49:58 | 显示全部楼层
使用外部循环,用bash脚本写ctl,把需要改变的地方设置成变量
密码修改失败请联系微信:mofangbao
发表于 2018-1-12 14:40:28 | 显示全部楼层
感谢分享,学习了!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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