- 积分
- 493
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-2-26
- 最后登录
- 1970-1-1
|
GrADS
系统平台: |
fortran |
问题截图: |
- |
问题概况: |
这个是计算位涡反演的一段程序,请问下面这一段代码是什么滤波,具体是怎么算的? |
我看过提问的智慧: |
看过 |
自己思考时长(天): |
4 |
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
PARAMETER (KS=22,LS=33,NS=401,MS=467,G1=0.3,G2=0.3, 1 C1=30.,C2=28000.,RR1=200.,RR2=400.,A1=100.,B1=15.)
CALL DTLB(uw,u1,MS,NS,KS,LS,C1,G1,s,RR1) CALL DTLB(uw,u2,MS,NS,KS,LS,C2,G2,s,RR2)
SUBROUTINE DTLB(X,XP,MS,NS,KS,LS,C,G,s,RR)
INTEGER s
DiMENSiON X(MS,NS),XP(MS,NS),RN(2*s+1,61),WN(2*s+1,2*s+1),
1 F0(MS,NS)
PARAMETER(UNDEF=1e37)
DO i=1,MS
DO j=1,NS
F0(i,j)=X(i,j)
END DO
END DO
DO 10 j=s+1,NS-s
DO 10 i=s+1,MS-s
WNN=0
FWW=0
DO 20 jj=1,2*s+1
DO 20 ii=1,2*s+1
RN(ii,jj)=(float(jj-(s+1))*5.)**2+(float(ii-(s+1))*5.)**2
iF (RN(ii,jj).GT.RR**2) THEN
WN(ii,jj)=0
GOTO 20
ELSE
WN(ii,jj)=EXP(-RN(ii,jj)/(4*C))
IF (X(ii-s-1+i,jj-s-1+j).NE.UNDEF) THEN
FWW=FWW+WN(ii,jj)*X(ii-s-1+i,jj-s-1+j)
WNN=WNN+WN(ii,jj)
else
WNN=0
FWW=0
END iF
END iF
20 CONTiNUE
F0(i,j)=FWW/WNN
10 CONTiNUE
DO 110 j=s+1,NS-s
DO 110 i=s+1,MS-s
WNN=0
FWW=0
DO 120 jj=1,2*s+1
DO 120 ii=1,2*s+1
RN(ii,jj)=((jj-s-1)*5.)**2+((ii-s-1)*5.)**2
iF (RN(ii,jj).GT.RR**2) THEN
WN(ii,jj)=0
GOTO 120
ELSE
WN(ii,jj)=EXP(-RN(ii,jj)/(4*C*G))
if (X(ii-s-1+i,jj-s-1+j).NE.UNDEF) THEN
FWW=FWW+WN(ii,jj)*(X(ii-s-1+i,jj-s-1+j)-F0(ii-s-1+i,jj-s-1+j))
WNN=WNN+WN(ii,jj)
else
WNN=0
FWW=0
end if
END iF
120 CONTiNUE
XP(i,j)=F0(i,j)+FWW/WNN
110 CONTiNUE
RETURN |
|
|