爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2718|回复: 7

[分享资料] grads 批处理1个月的数据,却只读入了第一个数据。恳请大家帮忙指正!

[复制链接]

新浪微博达人勋

发表于 2014-11-14 16:15:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 白兔糖0217 于 2014-11-14 16:20 编辑

文件夹下有201401整整一个月的ctl 和 dat文件。文件如图:
QQ截图20141114160946.png
现在我先对这些文件进行批处理读取,生成grd文件。下面是我的脚本。结果:只有第一个文件读取到了,后面的没有读取到,想知道是怎么回事?该做怎么样的修改??坐等大家的指正!
'reinit'
dd=1
while(dd<=31)
if(dd<10)
    aaa=substr(20140101,1,7)
else
    aaa=substr(20140101,1,6)
endif
'open D:/Fortran/ARWpost/201401/'aaa''dd'.ctl'
'set gxout fwrite'
*'set fwrite /global/research/iumhouyy/grads/201401'dd'.grd'
'set lat 32.0'
'set lon 118.8'
it=1
while(it<5)
'set t 'it
'q time'
m=substr(result,13,3)
d=substr(result,11,2)
h=substr(result,8,2)
'set fwrite D:/Fortran/ARWpost/201401/'aaa''dd''h'.grd'
i=1
***** here,we need to change i ,this time ,we set max i is 58
while(i<35)
'set z 'i
'd height'
'd pressure'
'd tk'
'd tc'
'd td'
'd rh'
i=i+1
endwhile
'disable fwrite'
it=it+1
endwhile
dd=dd+1
endwhile
**grads2ascii result D:\Fortran\ARWpost\test3.txt %10.3f 7 1
'reinit'
;

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

新浪微博达人勋

 楼主| 发表于 2014-11-14 16:48:44 | 显示全部楼层
啊  倒是提点意见啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-14 16:50:22 | 显示全部楼层
本帖最后由 river 于 2014-11-14 17:01 编辑

有报错信息吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-14 16:52:46 | 显示全部楼层
river 发表于 2014-11-14 16:50
'open D:/Fortran/ARWpost/201401/'aaa''dd'.ctl'
'open D:/Fortran/ARWpost/201401'aaa''dd'.ct ...

D:/Fortran/ARWpost/201401/  是我的ctl路径。去掉"/",恐怕不对哦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-11-14 17:03:58 | 显示全部楼层
白兔糖0217 发表于 2014-11-14 16:52
D:/Fortran/ARWpost/201401/  是我的ctl路径。去掉"/",恐怕不对哦

你提取出来的数据的ctl 和原始数据的ctl ?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-11-14 17:07:32 | 显示全部楼层
river 发表于 2014-11-14 17:03
你提取出来的数据的ctl 和原始数据的ctl ?

嗯啊   都在../201401/目录下。我感觉问题在这边:
dd=1
while(dd<=31)
if(dd<10)   
aaa=substr(20140101,1,7)
else
     aaa=substr(20140101,1,6)
endif
'open D:/Fortran/ARWpost/201401/'aaa''dd'.ctl'

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

新浪微博达人勋

发表于 2014-11-14 21:24:31 | 显示全部楼层
白兔糖0217 发表于 2014-11-14 17:07
嗯啊   都在../201401/目录下。我感觉问题在这边:
dd=1
while(dd

我觉得用笨办法就可以解决,不需要像substr那么高深的功能,可以这样
dd=1
while(dd<=31)
if(dd<10)
'open D:/Fortran/ARWpost/201401/2014010'dd'.ctl'

`````````
else
'open D:/Fortran/ARWpost/201401/201401'dd'.ctl'

`````````

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

新浪微博达人勋

 楼主| 发表于 2014-11-15 09:21:29 | 显示全部楼层
river 发表于 2014-11-14 21:24
我觉得用笨办法就可以解决,不需要像substr那么高深的功能,可以这样
dd=1
while(dd

我试试去 ,多谢您啦
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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