- 积分
- 5670
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-8-26
- 最后登录
- 1970-1-1
|
GrADS
系统平台: |
win7 grads2.0家园整合版 |
问题截图: |
|
问题概况: |
通过相关的只是自己改了个计算si的gs,运行出错 |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
10 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
'set lev 850'
'define p1=hgtprs'
'define t1=tmpprs-273.16'
'define rh1=rhprs'
'define td1=t-((14.55+0.114*t1)*(1-0.01*rh1) + pow((2.5+0.007*t1)*(1-0.01*rh1),3)+ (15.9+0.37*t1)*pow((1-0.01*rh),14))'
'define tk1=tmpprs'
'define est1=6.112*exp((17.67*t1)/(t1+243.5))'%计算饱和水汽压
'define etd1=6.112*exp((17.67*td1)/(td1+243.5))'%计算实际水汽压
'define e1=etd1'
'define u1=(etd1/est1)*100'%计算相对湿度
'define tl1=1/(1/(tk1-55)-log(u1/100)/2840)+55'%计算抬升凝结高度的绝对温度(K)
'define r1=622*(e1/(p1-e1))'%计算混合比
'set lev 500'
'define p2=hgtprs'
'define t2=tmpprs-273.16'
'define rh2=rhprs'
'define td2=t-((14.55+0.114*t2)*(1-0.01*rh2) + pow((2.5+0.007*t2)*(1-0.01*rh2),3)+ (15.9+0.37*t2)*pow((1-0.01*rh2),14))'
'define tk2=tmpprs'
'define est2=6.112*exp((17.67*t2)/(t2+243.5))'%计算饱和水汽压
'define etd2=6.112*exp((17.67*td2)/(td2+243.5))'%计算实际水汽压
'define e2=etd2'
'define u2=(etd2/est2)*100'%计算相对湿度
'define tl2=1/(1/(tk2-55)-log(u2/100)/2840)+55'%计算抬升凝结高度的绝对温度(K)
'define r2=622*(e2/(p2-e2))'%计算混合比
'define T3=tl1-273.15'%绝对温度转换为摄氏温度设为气块初始温度
'define a1=(tk1.*((1000/p1)^(0.2854*(1-0.00028*r1)))).*exp((3.376/tl1-0.00254).*r1.*(1+0.00081*r1))' %计算850hpa的相当位温(K)
n=0
while 1
n=n+1;
'define T3=T3-0.0000001*n' %用迭代法来得到850hpa气块先沿干绝热线上升,到达抬升凝结高度后再沿湿绝热线上升至500hpa时所具有的气块温度(摄氏度)
'define 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 e=etd'
'define u=(etd/est)*100'
'define tl=1/(1/(tk-55)-log(u/100)/2840)+55'
'define r=622*(e/(p2-e))'
'define a2=(tk.*((1000/p2)^(0.2854*(1-0.00028*r)))).*exp((3.376/tl-0.00254).*r*(1+0.00081*r));%计算500hpa相当位温
'define a=a2-a1'
if abs(a)<0.002 %根据相对位温守恒,当两处的相当位温差小于0.001℃时迭代结束
*'define a2=a2'
'define T=T3'
break
endif
endwhile
'd si=T2-T' %计算沙瓦特指数
|
|