- 积分
- 1896
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-6-4
- 最后登录
- 1970-1-1
|
发表于 2013-6-18 15:24:30
|
显示全部楼层
以下两个子程序在vc环境下运行,可以改编成适合自己的语言
已经知道气温t,可以求出此时饱和水气压esw, 乘以相对湿度得到此时实际水气压e,
double esw(double t){
double pol,pol1;
pol=0.99999683 +t*(-0.90826951e-02+
t*(0.78736169e-04 +t*(-0.61117958e-06+
t*(0.43884187e-08 +t*(-0.29883885e-10+
t*(0.21874425e-12 +t*(-0.17892321e-14+
t*(0.11112018e-16 +t*(-0.30994571e-19)))))))));
pol1=6.1078/pow(pol,8);
return pol1;
};
//由实际水气压e求露点dpt
double dpt(double e)
{ double lu,x,dnm,fac,t,edp,dtdew,dt;
if(e<=0.06||e>=1013.)
{lu=9999.;
return lu;}
x=log(e/6.1078);
dnm=17.269388-x;
t=237.3*x/dnm;
fac=1./(e*dnm);
edp=esw(t);
dtdew=(t+237.3)*fac;
dt=dtdew*(e-edp);
t=t+dt;
while(fabs(dt)>=1.e-4)
{ edp=esw(t);
dtdew=(t+237.3)*fac;
dt=dtdew*(e-edp);
t=t+dt;
}
return t;
}; |
|