!### 2015/05/03 Yuta Ando (Mie University) subroutine highpassfilter_rmean(A,tmax,filt,undef) implicit none integer :: t,tmax,filt,tt,n,it real :: A(tmax),undef,sum,B(tmax) sum=0. do t=1,tmax sum=0. n=0 do tt=-(filt-1)/2,(filt-1)/2 it=t+tt if(it<1)it=1 if(it>tmax)it=tmax if(A(it)/=undef)then n=n+1 sum=sum+A(it) endif enddo if(n==0)then B(t)=undef else sum=sum/real(n) B(t)=A(t)-sum if(A(t)==undef)B(t)=undef endif enddo A(:)=B(:) end subroutine