爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3607|回复: 9

[分享资料] 多个文件读取常犯错误(已解决)

[复制链接]

新浪微博达人勋

发表于 2014-12-1 18:18:29 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 刷牙 于 2014-12-1 21:46 编辑

写了一个gs文件,实在不知道错在哪里啊
运行时是这样的


1.bmp



运行出来的结果大小是合适的,但是只有第一年的数据,后面都没了


2.bmp


gs文件如下:
大家帮忙找找茬
'reinit'
'set fwrite D:\study\era\data\hgt\month\hgtmonth.dat'
'set gxout fwrite'


*calculate the month mean tropopause height
yr=1979
while(yr<=2012)
'open D:\study\era\data\hgt\'yr'.ctl'
'set lat 15 55.5'
'set lon 72 135'

*判定闰平年
if(yr=1980|yr=1984|yr=1988|yr=1992|yr=1996|yr=2000|yr=2004|yr=2008|yr=2012)

'define monthhgt=ave(hgt,time=00Z01JAN'yr',time=12Z31JAN'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01FEB'yr',time=12Z29FEB'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01MAR'yr',time=12Z31MAR'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01APR'yr',time=12Z30APR'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01MAY'yr',time=12Z31MAY'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01JUN'yr',time=12Z30JUN'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01JUL'yr',time=12Z31JUL'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01AUG'yr',time=12Z31AUG'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01SEP'yr',time=12Z30SEP'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01OCT'yr',time=12Z31OCT'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01NOV'yr',time=12Z30NOV'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01DEC'yr',time=12Z31DEC'yr')'
'd monthhgt'
else

'define monthhgt=ave(hgt,time=00Z01JAN'yr',time=12Z31JAN'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01FEB'yr',time=12Z28FEB'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01MAR'yr',time=12Z31MAR'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01APR'yr',time=12Z30APR'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01MAY'yr',time=12Z31MAY'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01JUN'yr',time=12Z30JUN'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01JUL'yr',time=12Z31JUL'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01AUG'yr',time=12Z31AUG'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01SEP'yr',time=12Z30SEP'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01OCT'yr',time=12Z31OCT'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01NOV'yr',time=12Z30NOV'yr')'
'd monthhgt'
'define monthhgt=ave(hgt,time=00Z01DEC'yr',time=12Z31DEC'yr')'
'd monthhgt'
endif
*取第yr年数据

yr=yr+1
endwhile
'disable fwrite'
;

问题已经解决,就是忘了在最后加一句关闭文件的操作'close 1'


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

新浪微博达人勋

发表于 2014-12-1 18:24:17 | 显示全部楼层
你这个脚本不需要判断是不是闰年吧,时间直接设置的真实日期······先把这个改了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-1 18:25:56 | 显示全部楼层
river 发表于 2014-12-1 18:24
你这个脚本不需要判断是不是闰年吧,时间直接设置的真实日期······先把这个改了

不判断的话这个怎么弄啊
'define monthhgt=ave(hgt,time=00Z01FEB'yr',time=12Z29FEB'yr')'
不是有28和29的区分吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-1 19:14:31 | 显示全部楼层
本帖最后由 river 于 2014-12-1 19:16 编辑
刷牙 发表于 2014-12-1 18:25
不判断的话这个怎么弄啊
'define monthhgt=ave(hgt,time=00Z01FEB'yr',time=12Z29FEB'yr')'
不是有28和 ...


哦,逐日资料啊,用你这种方法那得判断。你这个资料除了时间变化,高度也应该是变化的吧,我觉得不能用这种隐式的循环,需要使用while、endwhile循环来做
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-1 19:51:58 | 显示全部楼层
river 发表于 2014-12-1 19:14
哦,逐日资料啊,用你这种方法那得判断。你这个资料除了时间变化,高度也应该是变化的吧,我觉得不能用 ...

高度没变化的,就一层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-1 21:43:03 | 显示全部楼层
river 发表于 2014-12-1 19:14
哦,逐日资料啊,用你这种方法那得判断。你这个资料除了时间变化,高度也应该是变化的吧,我觉得不能用 ...

谢谢你的帮助,已经解决了,因为我的数据是从很多个文件中读取的,而我忘了再读取文件后加上close了,加了这一句就好了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-2 09:13:47 | 显示全部楼层
刷牙 发表于 2014-12-1 21:43
谢谢你的帮助,已经解决了,因为我的数据是从很多个文件中读取的,而我忘了再读取文件后加上close了,加 ...

哦,对的。你的资料有很多,所以要打开一个关掉一个。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-2 09:53:47 | 显示全部楼层
是不是要写几十个ctl呀?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-2 10:24:48 | 显示全部楼层
zhukefu 发表于 2014-12-2 09:53
是不是要写几十个ctl呀?

是啊,好麻烦,不过昨天好像看到一个帖子是关于用fortran批量写ctl的帖子,这样就省事多了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-26 15:21:18 | 显示全部楼层
学习,不过看一起有点麻烦!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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