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