| 
 
	积分8787贡献 精华在线时间 小时注册时间2014-5-4最后登录1970-1-1 
 | 
 
| 
今天有个工作要根据相对湿度计算湿球温度的问题,搜了一下论坛,看到了这个贴子
x
登录后查看更多精彩内容~您需要 登录 才可以下载或查看,没有帐号?立即注册 
  
 fortran编程 数组越界问题 编译的是湿球温度迭代算法 谁 帮帮我!!!
 http://bbs.06climate.com/forum.p ... 8&fromuid=35781
 (出处: 气象家园)
 
 
 调试运行了一下,结果发现运行结果和实际的相差很大,就根据地面规范附2
 
 | 附录2 湿度参量的计算公式 |  |   
 
 1、饱和水汽压 在一定温度下,空气中的水汽与相毗连的水或冰平面处于相变平衡时湿空气中的水汽压。 饱和水汽压采用世界气象组织推荐的戈夫-格雷奇(Goff-Gratch)公式。 ⑴ 纯水平液面饱和水汽压的计算公式 logEW=10.79574(1-T1/T)-5.02800log(T/T1)+1.50475×10-4[1-10-8.2969(T/ T1-1)]+0.42873×10-3(104.76955(1-T1/T)-1)]+0.78614   式中,EW:纯水平液面饱和水汽压(hPa);T1=273.16K(水的三相点温度);T=273.15+t℃(绝对温度K)。 ⑵ 纯水平冰面饱和水汽压的计算公式 LogEi=-9.09685[T1/(T-1)]-3.56654Log(T1/T)+0.87682[1-  T1/(T-1)]+0.78614 式中,Ei:水平冰面饱和水汽压(hPa);T1和T同上。 2、水汽压 ⑴ 用干湿球温度求空气中水汽压的计算公式 e=Etw-APh(t-tw) 中,e:水汽压(hPa);Etw:湿球温度tw所对应的纯水平液面的饱和水汽压,湿球结冰且湿球温度低于0℃时,为纯水平冰面的饱和水汽压;A:干湿表系数(℃-1),由干湿表类型、通风速度及湿球结冰与否而定,其值见干湿表系数表;Ph:本站气压(hPa);t:干球温度(℃);tW:湿球温度(℃)。 
 
 附表2.1 干湿表系数表
   |   
 
 
 
 
 
 
 
     | 
 
 干湿表类型及通风速度 | 
 
 Ai×10-3(℃-1) |  | 
 
 湿球未结冰 | 
 
 湿球结冰 |  | 
 
 通风干湿表(通风速度2.5m/s) | 
 
 0.662 | 
 
 0.584 |  | 
 
 球状干湿表(通风速度0.4m/s) | 
 
 0.857 | 
 
 0.756 |  | 
 
 柱状干湿表(通风速度0.4m/s) | 
 
 0.815 | 
 
 0.719 |  | 
 
 现用百叶箱球状干湿表(通风速度0.8m/s) | 
 
 0.7947 | 
 
 0.7947 | 
 | 
 ⑵ 当使用湿敏电容、毛发表或湿度计等直接测得相对湿度时,由相对湿度求水汽压公式    e=U×EW/100式中,U:相对湿度(%);e:水汽压(hPa);EW:干球温度t所对应的纯水平液面饱和水汽压(hPa)。
 3、相对湿度 ⑴ 使用干湿球温度表测湿时,空气中相对湿度的计算公式      U=(E/EW)×100% 式中,U相对湿度(%);E水汽压(hPa);Ew干球温度t所对应的纯水平液面(或冰面)饱和水汽压(hPa)。 ⑵ 使用毛发湿度表(计)测湿时,空气中相对湿度的计算公式      Y=bo+b1X+b2X2+b3X3 式中,Y:经毛发湿度表(计)订正后的相对湿度(%);X:毛发湿度表(计)读数(%); bo、b1、b2、b3:回归多项式系数,即毛发湿度表(计)的订正系数。 | 
   
 想先用正推的办法算相对湿度,结果算出来 的相对湿度 水汽压 露点等都不对,我的代码如下:
 
 
 
  program mian
!声明变量
real::e !水汽压
real::t !干球温度
real::p !本站气压
real,parameter::T1=273.16
real::t0
integer,parameter::N=1500
real::tw(0:n) !湿球温度估算值序列
real::etw,etw_g,etw_s !饱和水汽压
!real,parameter::a=8.15*10**(-4)
real,parameter::A=7.947*10**(-4)
real::ej(0:n) !水汽压的计算值
real::err(0:n) !计算误差
real::ermin !计算误差的最小值
real::u,t_g,t_s,td
!输入变量 
write(*,*)"水汽压为"
!read(*,*)e
write(*,*)"干球温度为"
!read(*,*)t
write(*,*)"本站气压为"
!read(*,*)p
e=14.7
t_g=25.5
t_s=17.3
!t_g=26.3
!t_s=18.3
!t_g=31.4
!t_s=19.1
P=998.6
t0=273.15+t_s  !湿球
etw_s=10**(10.79574*(1-T1/t0)-5.02800*log(t0/T1)+1.50475*(10**(-4))*(1-10**((-8.2969*(t0/T1-1))))+0.42873*(10**(-3))*(10**(4.76955*(1-T1/t0))-1)+0.78614)
t0=273.15+t_g  !干球
etw_g=10**(10.79574*(1-T1/t0)-5.02800*log(t0/T1)+1.50475*(10**(-4))*(1-10**((-8.2969*(t0/T1-1))))+0.42873*(10**(-3))*(10**(4.76955*(1-T1/t0))-1)+0.78614)
e=etw_s-A*P*(t_g-t_s)
td=(243.92*log(etw_g/6.1078))/(7.69-log(etw_g/6.1078))
write(*,*)"=======\n湿球ETw="
write(*,*)etw_s
write(*,*)"=======\n干球ETw="
write(*,*)etw_g
write(*,*)"=======\n水汽压e="
write(*,*)e
u=(e/etw_g)*100
write(*,*)"=======\n相对湿度u="
write(*,*)u
write(*,*)"=======\n露点温度="
write(*,*)td
stop
end
各位大神看看哪里出了问题。
 
 
 
 
 | 
 |