爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8262|回复: 11

[分享资料] GRADS计算MPV的GS

[复制链接]

新浪微博达人勋

发表于 2015-4-14 17:57:30 | 显示全部楼层 |阅读模式

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

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

x
一直在网络上找GRADS计算MPV的程序,但一直没找到,最后自己写了一个,图形感觉差不多,但还没经过严格的检验,现在放在这里,大家觉得有问题请指正。
由于不知道怎么一次完成lev的循环,所以程序分为两步:
第一步计算不同层次的相当位温eqt,然后fwrite;
第二步计算不同层次的湿位涡,然后fwrite;
如果要显示还要再写一个GS文件

eqt文件:
'reinit'
'open E:\20140901\fnl\fnl.ctl'
'set mpdset cnworld'
'set grid off'
'set grads off'
**************************eqt caculate start********************************
'set gxout fwrite'
'set fwrite E:\20140901\fnl\mpv\eqt.dat'
'set lon 100 120'
'set lat 20 40'
i=1
while(i<=9)
'set t 'i''
j=1
while(j<=21)
'set z 'j''
'define prs=lev'
'define es=(6.112*exp(17.67*(TMPprs-273.15)/(TMPprs-29.65)))'
'define q=RHprs*(0.62197*es/(prs-es))/100.'
'define e=(prs/100.)*q/(0.62197+q)+1e-10'
'define tlcl=55.0+2840.0/(3.5*log(TMPprs)-log(e)-4.805)'
'define theta=TMPprs*pow((1000./prs),(0.2854*(1.0-0.28*q)))'
'define eqt=theta*exp(((3376./tlcl)-2.54)*q*(1.0+0.81*q))'
'set undef -9999'
'd eqt'
'undefine prs'
'undefine es'
'undefine q'
'undefine e'
'undefine tlcl'
'undefine theta'
'undefine eqt'
j=j+1
endwhile
i=i+1
endwhile
**************************eqt caculate end*********************************
'disable fwrite'
'reinit'
'reinit'

mpv生成文件:
'reinit'
'open E:\20140901\fnl\fnl.ctl'
'open E:\20140901\fnl\mpv\eqt.ctl'
'set mpdset cnworld'
'set grid off'
'set grads off'
**************************mpv caculate start********************************
'set gxout fwrite'
'set fwrite E:\20140901\fnl\mpv\mpv.dat'
'set lon 100 120'
'set lat 20 40'
'set z 1'
'set t 1'
i=1
while(i<=9)
'set t 'i''
j=2
while(j<=20)
'set z 'j''
'define vor=hcurl(UGRDprs,VGRDprs)'
'define f=2*7.272e-5*sin(lat*3.14159/180)'
'define g=9.8'
'define dthep=eqt.2(z-1)-eqt.2(z+1)'
'define dthex=cdiff(eqt.2,x)'
'define dthey=cdiff(eqt.2,y)'
'define dup=UGRDprs.1(z-1)-UGRDprs.1(z+1)'
'define dvp=VGRDprs.1(z-1)-VGRDprs.1(z+1)'
'define er=6.371e6'
'define dx=cdiff(lon,x)*3.14159/180*er*cos(lat*3.14159/180)'
'define dy=cdiff(lat,y)*3.1416/180*er'
'define dp=(lev(z-1)-lev(z+1))*100'
'define mpv1=-1.*g*vor*dthep/dp-g*f*dthep/dp'
'define mpv2=g*((dvp/dp)*(dthex/dx)-(dup/dp)*(dthey/dy))'
'define mpv=(mpv1+mpv2)'
'set undef -9999'
'd mpv1'
j=j+1
endwhile
j=2
while(j<=20)
'set z 'j''
'define vor=hcurl(UGRDprs,VGRDprs)'
'define f=2*7.272*sin(lat*3.14159/180)'
'define g=9.8'
'define dthep=eqt.2(z-1)-eqt.2(z+1)'
'define dthex=cdiff(eqt.2,x)'
'define dthey=cdiff(eqt.2,y)'
'define dup=UGRDprs.1(z-1)-UGRDprs.1(z+1)'
'define dvp=VGRDprs.1(z-1)-VGRDprs.1(z+1)'
'define er=6.371e6'
'define dx=cdiff(lon,x)*3.14159/180*er*cos(lat*3.14159/180)'
'define dy=cdiff(lat,y)*3.1416/180*er'
'define dp=(lev(z-1)-lev(z+1))*100'
'define mpv1=-1.*g*(vor+f)*dthep/dp'
'define mpv2=g*((dvp/dp)*(dthex/dx)-(dup/dp)*(dthey/dy))'
'define mpv=(mpv1+mpv2)'
'set undef -9999'
'd mpv2'
j=j+1
endwhile
j=2
while(j<=20)
'set z 'j''
'define vor=hcurl(UGRDprs,VGRDprs)'
'define f=2*7.272*sin(lat*3.14159/180)'
'define g=9.8'
'define dthep=eqt.2(z-1)-eqt.2(z+1)'
'define dp=(lev(z-1)-lev(z+1))*100'
'define thep=dthep/dp'
'set undef -9999'
'd thep'
j=j+1
endwhile
**************************mpv caculate end*********************************
i=i+1
endwhile
'disable fwrite'
'reinit'
'reinit'

评分

参与人数 1金钱 +15 贡献 +5 收起 理由
mofangbao + 15 + 5

查看全部评分

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

新浪微博达人勋

发表于 2015-4-14 19:29:49 | 显示全部楼层
论坛原来也有的,可以对比一下
感谢楼主分享
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-14 20:55:19 | 显示全部楼层
感谢分享,有人分享过可以拿来试试看一不一样
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-15 09:34:02 | 显示全部楼层
,早知道有就不用花那么多时间去查公式了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-16 22:04:36 | 显示全部楼层
谢谢lz
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-4-27 21:22:30 | 显示全部楼层
请问楼主,在你计算MPV的那一部分,d了三个变量,一个是mpv1,一个是mpv2,为何两次mpv1的计算不一样?还有最后一个thep,是啥?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-5-4 20:49:18 | 显示全部楼层
感谢分享,正要用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-23 09:08:09 | 显示全部楼层
感谢楼主分享,学习一下哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-31 12:08:30 | 显示全部楼层
谢谢分享,赞赞赞赞!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-10-31 12:10:48 | 显示全部楼层
谢谢分享,赞赞赞赞!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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