爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10527|回复: 23

[求助] 关于barnes滤波程序的问题

[复制链接]

新浪微博达人勋

发表于 2014-5-22 18:28:57 | 显示全部楼层 |阅读模式

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

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

x
想请问一下。我要用barnes做721暴雨中尺度滤波,我一边编一边检验发现到了求带通滤波那部分时,一开始引用子程序是求得r是没问题的,但是一进if语句,r的值就变了,全变成0了
最后程序运行时,出现了这个

                               
登录/注册后可看大图

麻烦各位大能帮帮看一下
程序在下面
program main
implicit none
integer,parameter::x=10,y=10
real,parameter::C1=30,C2=3000,G=0.3

real,external::distance
integer::i,j,k,l
real::r
real::hgt(x,y),F1(x,y),F2(x,y),F(x,y),D1(x,y),D2(x,y),                      &
    E1(x,y),E2(x,y),F11(x,y),F21(x,y),F12(x,y),F22(x,y),t1,t2,w1,w2

!读高度场
open(unit=10,file='f:/hgt500.grd',form='unformatted',access='direct',recl=1,status='old')

k=0
do j=1,y
do i=1,x
   k=k+1
   read(unit=10,rec=k) hgt(i,j)
enddo
enddo

close(10)
! write(*,*) hgt(1:10,1:10)

!求带通滤波
do j=1,y
do i=1,x

   w1=0
   t1=0
   w2=0
   t2=0
do k=1,y
do l=1,x

        r=distance(30.0+(j-1)*1.0,30.0+(k-1)*1.0,(100+i-1)*1.0,(100+l-1)*1.0)
       

        if(r<=sqrt(C1))then
       
      w1=w1+exp(-r**2/(4.0*C1))
      t1=t1+hgt(k,l)*exp(-r**2/(4.0*C1))
print*,r

    endif

        if(r<=sqrt(C2))then
      w2=w2+exp(-r**2/(4.0*C2))
      t2=t2+hgt(k,l)*exp(-r**2/(4.0*C2))


    endif

enddo
enddo
f1(i,j)=t1/w1
f2(i,j)=t2/w2


enddo

enddo

print *,'ok!!'
f=f1-f2

!输出
open(unit=10,file='f:/bl.grd',form='binary')

do j=1,y
do i=1,x
write(10) F(i,j)
enddo
enddo

close(10)
end program main

!求距离子程序
function distance(lat1,lat2,lon1,lon2)
implicit none
real,parameter::R=6371.004,pi=3.141
real::lat1,lat2,lon1,lon2
real::distance
distance=R*acos(cos(lat1*pi/180)*cos(lat2*pi/180)*cos((lon1-lon2)*pi/180)+sin(lat1*pi/180)*sin(lat2*pi/180))
return
end function distance


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

新浪微博达人勋

 楼主| 发表于 2014-5-22 18:29:59 | 显示全部楼层
额,图片有点小
无标题.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-22 20:25:25 | 显示全部楼层
麻烦大能帮忙看一下
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-22 21:28:08 | 显示全部楼层
再顶一顶,帮帮忙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-7-18 12:54:17 | 显示全部楼层
mgyang 发表于 2014-5-22 21:28
再顶一顶,帮帮忙

解决了嘛?我出现了一样的错误
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-7-20 18:57:52 | 显示全部楼层
感谢!!!!!!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2014-8-31 22:06:10 | 显示全部楼层
这个你把子程序老老实实的写上面去吧。。我以前也出过这种问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

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

使用道具 举报

新浪微博达人勋

发表于 2014-10-16 15:57:28 | 显示全部楼层
二爷的屁股 发表于 2014-8-31 22:06
这个你把子程序老老实实的写上面去吧。。我以前也出过这种问题

你好,看到的中尺度滤波几乎都是对高度场、风场这种动力场进行的,不知对温度、相对湿度这种热力场也可以吗?这样做有道理吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-17 15:19:52 | 显示全部楼层
schliezer 发表于 2014-10-16 15:57
你好,看到的中尺度滤波几乎都是对高度场、风场这种动力场进行的,不知对温度、相对湿度这种热力场也可以 ...

这个我还真的没有注意过。。。你尝试过效果怎么样?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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