- 积分
- 598
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-3-4
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
根据公式求最大不稳定增长率,其中需要计算brunt-vaisala频率
计算完成后发现量级比文献小了很多,不知哪里出了问题,论坛里好像计算这个的人比较少,搜索无果所以求各位高手帮忙解答~谢谢~
特别是对BV频率开根号,不知道小于0时该如何设置
下面是ncl代码:
B-V计算:
T = f1->air(iYYYY,:,{Slat:Elat},{Slon:Elon})
lat = T&lat
level = T&level
THETA = T
THETA = T*(conform(T,level,1)/1000)^(-0.286)
THETA_p = THETA(time|:,lat|:,lon|:,level|:)
printMinMax(THETA_p, 0)
loglevel = log(level)
dtdp = center_finite_diff (THETA(time|:,lat|:,lon|:,level|:),loglevel,False,0) ; derivative in log coords doesn't care whether in Pa or in mb.
dtdp = dtdp/conform(dtdp,100.0*level,3); converts "level" to pascals from millibars while dividing by pressure.
printMinMax(dtdp, 0)
dtdz=dtdp*(-1)*12.7 ;1/dz=1/dp*(-1)*density*g
printMinMax(dtdz,0)
BV=new(dimsizes(dtdz), "float")
BV=dtdz*9.8/THETA_p
copyatt(BV, THETA_p)
printVarSummary(BV)
printMinMax(BV, 0)
Eady增长率计算:
BV_sqrt=where(BV.lt.0, -1*sqrt(abs(BV)), sqrt(BV))
BV_sqrt=where(BV_sqrt.eq.0, BV_sqrt@_FillValue, BV_sqrt)
printMinMax(BV_sqrt, 0)
p=tointeger(wspd&level)
wspd_p=wspd(time|:,lat|:,lon|:,level|:)
loglevel = log(p)
dsdp = center_finite_diff (wspd(time|:,lat|:,lon|:,level|:),loglevel,False,0) ; derivative in log coords doesn't care whether in Pa or in mb.
dsdp = dsdp/conform(dsdp,100.0*p,3); converts "level" to pascals from millibars while dividing by pressure.
printMinMax(dsdp, 0)
lat=wspd&lat
PI=3.14159265358979
phi = lat*PI/180.0
f=new(dimsizes(lat), "float")
f=2*7.2921e-5*sin(phi)
BI=new(dimsizes(BV), "float")
BI=0.31*conform(BI, f, 1)*abs(dsdp)/BV_sqrt*86400 ;1/s to 1/day
|
|