爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4064|回复: 5

[求助] 计算假相当位温出错

[复制链接]

新浪微博达人勋

发表于 2014-9-2 14:55:55 | 显示全部楼层 |阅读模式

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

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

x
大家好,我在用《天气学诊断分析》上的公式计算假相当位温时出错:如果不添加红字部分,错误显示为log:sing error或者log:domain error,我理解是log里面的部分,也就是1000.0/(p(k)-e(i,j,k))不满足正数的条件,所以添加了红字部分。但是结果生成的数据出图以后有很多缺省不说,数值也不对,有0.0000多的,也有几百的,也有个位数。烦请各位帮我看下问题在哪里?


以下为部分程序,tk为开式温度,td为露点温度,te为所要计算的假相当位温。a,b,cp和r都是常数
if(tk(i,j,k)==no_value.or.td(i,j,k)==no_value)then
te(i,j,k)=no_value
else
l(i,j,k)=597.3-0.566*(tk(i,j,k)-273.16)
e(i,j,k)=6.1078*exp(a*(td(i,j,k)-273.16)/(td(i,j,k)-b) )
q(i,j,k)=0.622*e(i,j,k)/(p(k)-0.378*e(i,j,k) )


if(1000.0/(p(k)-e(i,j,k))<=0)then
te(i,j,k)=no_value
else
te(i,j,k)=tk(i,j,k)*exp(r*log(1000.0/(p(k)-e(i,j,k)))+l(i,j,k)*q(i,j,k)/(cp*td(i,j,k))+q(i,j,k)/0.622*log(tk(i,j,k)/td(i,j,k)))
endif
endif


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

新浪微博达人勋

发表于 2014-9-2 15:57:56 | 显示全部楼层
{:lxm_20:}{:lxm_20:}{:lxm_20:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2014-9-2 16:00:15 | 显示全部楼层
你需要检查数据

评分

参与人数 1金钱 +6 收起 理由
lqouc + 6

查看全部评分

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

新浪微博达人勋

发表于 2014-9-2 20:52:26 | 显示全部楼层
学习学习!点赞
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-9-3 09:03:21 | 显示全部楼层

是的,问题解决了,数据中的露点温度是摄氏温度,我当成开尔文温度了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-3 15:12:14 | 显示全部楼层
大气太阳茄 发表于 2014-9-3 09:03
是的,问题解决了,数据中的露点温度是摄氏温度,我当成开尔文温度了

能解决问题就好!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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