- 积分
- 5669
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-8-26
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我最近在计算各种指数,其中沙氏指数困扰我太久了,在我把其他指数都算完之后,终于也在闺蜜兼同事的帮助下把沙氏指数也搞得差不多了,但还是有问题……汗,不得不再次来请教诸位大神。
下面我主要把存在问题的循环部分写下来麻烦大家看看到底哪儿出了问题。
前面所有的计算都木有问题,把循环去掉也木有问题,可以确定问题就出在循环上了。
我用的ncep下的grib2资料算的,先算抬升凝结高度处的温度,再根据位温守恒通过迭代计算干绝热上升到500hPa时的温度。
...............
'define t3=tl1-273.15'
'define a1=tk1*pow((1000/p1,(0.2854*(1.0.00028*r1)))*exp((3.376/tl1-0.00254)*r1*(1+0.00081*r1))'
n=0
while(1)
n=n+1
'define t3=t3-0.0000001* 'n''
'tk=t3+273.15'
'define est=6.112*exp((17.67*t3)/(t3+243.5))'
'define etd=6.112*exp((17.67*td2)/(td2+243.5))'
'define t=etd'
'define u=(etd/ets)*100'
'define tl=1/(1/(tk-55)-log(u/100)/2840)+55'
'define r=622*(e/(p2-e))'
'define a2=tk1*pow((1000/p2,(0.2854*(1.0.00028*r)))*exp((3.376/tl-0.00254)*r*(1+0.00081*r))'
'define a=a2-a1'
if(abs(a)<0.001)
'define t=t3'
break
endif
endwhile
'define si=t2-t'
'd si'
|
|