copyright (C) 2001 MSC-RPN COMM %%%MC2%%% ***s/r tfilt5 Filtre temporel de Robert *subroutine tfilt5 (prout) 2 implicit none * logical prout * *AUTHOR Andre Robert Oct 1983 * *REVISION * *LANGUAGE Fortran 77 * *OBJECT * * compute filtered values: f0(t) = (1-2*tf)*fm(t) + tf*(fp + f0) * *FILES * *ARGUMENTS * *IMPLICIT #include "dynmem.cdk"
#include "rec.cdk"
#include "yomdyn1.cdk"
#include "nbcpu.cdk"
* *MODULES * ** integer i,j,k,it integer id,jd,iff,jf real c1 * *--------------------------------------------------------------------- * !$omp single if (prout) print*, 'TFILT' !$omp end single * c1=(1-2.*grtf) * * for interior and exterior points id =1-hx*west jd =1-hy*south iff=ldni+hx*east jf =ldnj+hy*north * if (gnstepno.gt.1) then * !$omp do do k=1,gnk do j=jd,jf do i=id,iff pp0(i,j,k) = c1*pp0(i,j,k) + grtf*(ppp(i,j,k)+ppm(i,j,k)) uu0(i,j,k) = c1*uu0(i,j,k) + grtf*(uup(i,j,k)+uum(i,j,k)) vv0(i,j,k) = c1*vv0(i,j,k) + grtf*(vvp(i,j,k)+vvm(i,j,k)) ww0(i,j,k) = c1*ww0(i,j,k) + grtf*(wwp(i,j,k)+wwm(i,j,k)) bb0(i,j,k) = c1*bb0(i,j,k) + grtf*(bbp(i,j,k)+bbm(i,j,k)) hu0(i,j,k) = c1*hu0(i,j,k) + grtf*(hup(i,j,k)+hum(i,j,k)) end do end do do it=1,ntr do j=jd,jf do i=id,iff tr0(i,j,k,it) = c1*tr0(i,j,k,it) + $ grtf*(trp(i,j,k,it)+trm(i,j,k,it)) end do end do end do if (k.eq.1) then do j=jd,jf do i=id,iff pp0(i,j,0) = c1*pp0(i,j,0) + grtf*(ppp(i,j,0)+ppm(i,j,0)) end do end do endif end do !$omp enddo * endif * *---------------------------------------------------------------------- return end