- 积分
- 7857
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-11-30
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这是Fortran77子程序的代码,按照官网将其改写如下:
c-----*----------------------------------------------------6---------7--
c M-term Guassian-Type Filter
c Input variables: n, x(n), m
c m: the term number used to running mean
c it must be an odd number.
c Output variables: y(n),z(n-m-1)
c y: the filtered series of x.
c Work parameters and array: c, cgm and ck(-(m-1)/2:(m-1)/2)
c c: a tunable parameter, generally, c>2.0.
c cgm: variance of Guassian distribution.
c By Dr. LI Jianping, April 6, 2001.
C NCLFORTSTART
subroutine guassfilter_2(n,m,x,y)
dimension x(n),y(n)
dimension xw((-(m-1)/2+1):(n+(m-1)/2)),ck(-(m-1)/2:(m-1)/2) !work array
C NCLEND
undef=-9.99e33
pi=3.1415926
c=2.15
nl=(m-1)/2
cgm=float(nl)/c
x1=x(1)
xn=x(n)
if(x(1).eq.undef)x1=x(2)
if(x(n).eq.undef)xn=x(n-1)
do i=-nl+1,1
xw(i)=x1
enddo
do i=2,n-1
xw(i)=x(i)
enddo
do i=n,n+nl
xw(i)=xn
enddo
c1=1./(cgm*sqrt(2.*pi))
ck(0)=c1
do 10 i=1,nl
ck(i)=c1*exp(-i*i/(2.*cgm*cgm))
ck(-i)=ck(i)
10 continue
do 20 i=1,n
y(i)=0.
do j=-nl,nl
y(i)=y(i)+ck(j)*xw(i+j)
enddo
20 continue
if(x(1).eq.undef)y(1)=undef
if(x(n).eq.undef)y(n)=undef
return
end
运行时出现的语法错误提示:WRAPIT Version: 120209
A syntax error occurred while parsing: (
COMPILING Gaussfilter.f
LINKING
END WRAPIT
气象家园的相关帖子看过了,不过还是不知道如何解决,有能力的大神帮助一下,万分感谢!
参考官网:http://www.ncl.ucar.edu/Document/Tools/WRAPIT.shtml
参考帖子:http://bbs.06climate.com/forum.php?mod=viewthread&tid=25184
|
|