* PACKAGE  ATFIL 
*
*"  [HIS] 90/08/31(numaguti) 
*
*
***********************************************************************
      SUBROUTINE TFILT      
     M         ( GBU   , GBV   , GBT   , GBPS  , GBQ   ,
     M           GBVOR , GBDIV ,
     I           GAU   , GAV   , GAT   , GAPS  , GAQ   ,
     I           GAVOR , GADIV ,
     C           TFIL                                   )
*




* PACKAGE  ZXT10L32 !" 格子点数，波数 X-Z
*
      INTEGER     IMAX           !" 経度格子数
      INTEGER     JMAX           !" 緯度格子数
      INTEGER     IDIM           !" 経度配列サイズ
      INTEGER     JDIM           !" 緯度配列サイズ
      INTEGER     MMAX           !" 最大東西波数
      INTEGER     LMAX           !" 最大南北波数
      INTEGER     NMAX           !" 最大全波数
      INTEGER     MINT           !" 東西波数間隔
      INTEGER     KMAX           !" 鉛直層数
      INTEGER     KDIM           !" 鉛直配列サイズ
      INTEGER     NMDIM          !" 水平波数成分数
      INTEGER     JMXHF          !" JMAX/2+1
      INTEGER     NWORK          !" ワーク領域大きさ
*
      PARAMETER ( IMAX  = 32,     JMAX =  1,
     &            IDIM  = IMAX+1, JDIM = JMAX,
     &            MMAX  = 10,     LMAX =  0,    NMAX = MMAX, MINT = 1,
     &            KMAX  = 32,     KDIM = KMAX,
     &            NMDIM = (MMAX/MINT+1)*(2*(NMAX+1)-MMAX)
     &                  - (NMAX-LMAX)/MINT*(NMAX-LMAX+1),
     &            JMXHF = JMAX/2+1,
     &            NWORK = IDIM*JDIM*KMAX*12                       )

*
*    [MODIFY]
      ReaL*8       GBU   ( IDIM*JDIM*KMAX )    
      ReaL*8       GBV   ( IDIM*JDIM*KMAX )    
      ReaL*8       GBT   ( IDIM*JDIM*KMAX )    
      ReaL*8       GBPS  ( IDIM*JDIM      )    
      ReaL*8       GBQ   ( IDIM*JDIM*KMAX )    
      ReaL*8       GBVOR ( IDIM*JDIM*KMAX )    
      ReaL*8       GBDIV ( IDIM*JDIM*KMAX )    
*
*    [INPUT]
      ReaL*8       GAU   ( IDIM*JDIM*KMAX )    
      ReaL*8       GAV   ( IDIM*JDIM*KMAX )    
      ReaL*8       GAT   ( IDIM*JDIM*KMAX )    
      ReaL*8       GAPS  ( IDIM*JDIM      )    
      ReaL*8       GAQ   ( IDIM*JDIM*KMAX )    
      ReaL*8       GAVOR ( IDIM*JDIM*KMAX )    
      ReaL*8       GADIV ( IDIM*JDIM*KMAX )    
      ReaL*8       TFIL                        
*
*    [INTERNAL WORK]
      COMMON    /COMWRK/
     &           GBBU  , GBBV  , GBBT  ,
     &           GBBPS , GBBQ  ,
     &           GBBVOR, GBBDIV
      ReaL*8       GBBU  ( IDIM*JDIM*KMAX )    
      ReaL*8       GBBV  ( IDIM*JDIM*KMAX )    
      ReaL*8       GBBT  ( IDIM*JDIM*KMAX )    
      ReaL*8       GBBPS ( IDIM*JDIM      )    
      ReaL*8       GBBQ  ( IDIM*JDIM*KMAX )    
      ReaL*8       GBBVOR( IDIM*JDIM*KMAX )    
      ReaL*8       GBBDIV( IDIM*JDIM*KMAX )    
*
      ReaL*8       TFIL1
      INTEGER    IJ, IJK
*
*"         < 1.  (t-Δt)のデータをロード >
*
      CALL LOADGB
     O         ( GBBU  , GBBV  , GBBT  , GBBPS , GBBQ  ,
     O           GBBVOR, GBBDIV                          )
*
*"         < 2. 時間フィルター >
*
      TFIL1 = 1. - 2. * TFIL
*
      DO 1100 IJK = 1, IDIM*JDIM*KMAX
         GBU  ( IJK ) = TFIL1 * GBU   ( IJK )
     &                + TFIL  * GAU   ( IJK )
     &                + TFIL  * GBBU  ( IJK )
         GBV  ( IJK ) = TFIL1 * GBV   ( IJK )
     &                + TFIL  * GAV   ( IJK )
     &                + TFIL  * GBBV  ( IJK )
         GBT  ( IJK ) = TFIL1 * GBT   ( IJK )
     &                + TFIL  * GAT   ( IJK )
     &                + TFIL  * GBBT  ( IJK )
         GBQ  ( IJK ) = TFIL1 * GBQ   ( IJK )
     &                + TFIL  * GAQ   ( IJK )
     &                + TFIL  * GBBQ  ( IJK )
         GBVOR( IJK ) = TFIL1 * GBVOR ( IJK )
     &                + TFIL  * GAVOR ( IJK )
     &                + TFIL  * GBBVOR( IJK )
         GBDIV( IJK ) = TFIL1 * GBDIV ( IJK )
     &                + TFIL  * GADIV ( IJK )
     &                + TFIL  * GBBDIV( IJK )
 1100 CONTINUE
*
      DO 1200 IJ = 1, IDIM*JDIM
         GBPS ( IJ  ) = TFIL1 * GBPS  ( IJ  )
     &                + TFIL  * GAPS  ( IJ  )
     &                + TFIL  * GBBPS ( IJ  )
 1200 CONTINUE
*
      RETURN
      END
