10 parameter(nxyz=lx1*ly1*lz1)
29 COMMON /scruz/ ta1(lx1,ly1,lz1,lelv)
30 $ , ta2(lx1,ly1,lz1,lelv)
31 $ , ta3(lx1,ly1,lz1,lelv)
37 if(.not. iffilter(ifield))
return
39 hpf_kut = int(param(101))+1
40 hpf_chi = -1.0*abs(param(103))
48 if (hpf_chi.eq.0)
return
49 if(nid.eq.0 .and. loglevel.gt.2)
write(6,*)
'apply hpf ',
50 $ ifield, hpf_kut, hpf_chi
73 call cmult(ta1,hpf_chi,n)
74 call cmult(ta2,hpf_chi,n)
75 if (if3d)
call cmult(ta3,hpf_chi,n)
79 call opadd2col (bfx,bfy,bfz,ta1,ta2,ta3,bm1)
87 call cmult(ta1,hpf_chi,n)
88 call cmult(ta2,hpf_chi,n)
89 if (if3d)
call cmult(ta3,hpf_chi,n)
93 call opadd2col (bfxp(1,jp),bfyp(1,jp),bfzp(1,jp),
105 call cmult(ta1,hpf_chi,n)
109 call addcol3(bq(1,1,1,1,ifield-1),ta1,bm1,n)
115 call cmult(ta1,hpf_chi,n)
119 call addcol3(bqp(1,ifield-1,jp),ta1,bm1,n)
155 real wk1(lm2),wk2(lm2)
156 real indr(lm),ipiv(lm),indc(lm)
165 call copy(wk_xmap,ref_xmap,lm2)
166 call copy(wk1,wk_xmap,lm2)
168 call gaujordf (wk1,lx1,lx1,indr,indc,ipiv,ierr,rmult)
170 call mxm (f_filter,lx1,wk1,lx1,wk2,lx1)
171 call mxm (wk_xmap,lx1,wk2,lx1,op_mat,lx1)
190 parameter(nxyz=lx1*ly1*lz1)
192 real w1(nxyz),w2(nxyz)
198 real f(nx,nx),ft(nx,nx)
205 call copy(v,u,nxyz*nel)
212 call copy(w2,v(1,e),nxyz)
213 call mxm(f,nx,w2,nx,w1,nx*nx)
217 call mxm(w1(i),nx,ft,nx,w2(j),nx)
221 call mxm (w2,nx*nx,ft,nx,w1,nx)
223 call sub3(w2,u(1,e),w1,nxyz)
224 call copy(v(1,e),w2,nxyz)
231 call copy(w1,v(1,e),nxyz)
232 call mxm(f ,nx,w1,nx,w2,nx)
233 call mxm(w2,nx,ft,nx,w1,nx)
235 call sub3(w2,u(1,e),w1,nxyz)
236 call copy(v(1,e),w2,nxyz)
254 integer nx,k0,kut,kk,k
267 amp = ((k-k0)*(k-k0)+0.)/(kut*kut+0.)
274 write(6,6)
'HPF :',((1.-diag(k)), k=1,lx1*lx1,k0)
275 6
format(a8,16f9.6,6(/,8x,16f9.6))
297 integer i, j, k, n, nx, kj
322 pht(kj) = plegx(k)-plegx(k-2)
subroutine build_hpf_fld(v, u, f, nx, nz)
subroutine hpf_trns_fcn(diag, kut)
subroutine build_hpf_mat(op_mat, f_filter, ifboyd)
subroutine spec_coeff_init(ref_xmap, ifboyd)
subroutine transpose(a, lda, b, ldb)
subroutine addcol3(a, b, c, n)
subroutine sub3(a, b, c, n)
subroutine cmult(a, const, n)
subroutine mxm(a, n1, b, n2, c, n3)
subroutine opadd2col(a1, a2, a3, b1, b2, b3, c)
subroutine gaujordf(a, m, n, indr, indc, ipiv, ierr, rmult)
subroutine legendre_poly(L, x, N)