- 积分
- 113
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-2-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 huangyaohuai 于 2012-2-14 07:51 编辑
我在写GS时,当使用if语句判断任两个变量大小时,结果经常出错。比如:我要计算某时刻500hPa高度场,距离台风中心第5根等值线的经纬度是多少,部分代码如下(格点是0.5*0.5):
...
tt=1
while(tt<=9)
'set t 'tt
read_file=read('f:/steering/hgt_tc0202_0402.txt')
read_line=sublin(read_file,2)
hgt_tc=subwrd(read_line,1)
hgt5=hgt_tc+50
read_file=read('f:/steering/nigetrack6hr.txt')
read_line=sublin(read_file,2)
lat0=subwrd(read_line,1)
lon0=subwrd(read_line,2)
hgtbefore=hgt_tc
lon0_e=lon0+0.5
j=1
while(j<=30)
'set lat 'lat0
'set lon 'lon0_e
if(hgt5<hgtprs)
if(abs(hgt5-hgtprs)<abs(hgt5-hgtbefore))
'd lon0_e'
else
'd lon0_e-0.5'
endif
break
endif
hgtbefore=hgtprs
lon0_e=lon0_e+0.5
j=j+1
endwhile
tt=tt+1
endwhile
...
最终得出结果是错误的,我查出的原因是:j=1,只循环一次就退出循环,不论对于任何时次的hgtprs, hgt5都小于它,都满足if里的条件。问题就出在if(hgt5<hgtprs)上,请高手指点迷津,多谢。
|
|