*"表題   SHALO 共通 時間フィルター  GCM5(SATFIL)
*
*"履歴   90/08/31 沼口  敦
*"       92/06/11 竹広真一
*"       96/11/13 竹広真一
*
***********************************************************************
*"           << タイムフィルター >>
***********************************************************************
      SUBROUTINE TFILT
     M         ( GBU   , GBV   , GBPHI ,
     M           GBVOR , GBDIV ,
     I           GAU   , GAV   , GAPHI ,
     I           GAVOR , GADIV )
*
#if   SYS_IBMS
      INCLUDE   (ZCDIM)                      !" 格子点数，波数
#else
#include        "zcdim.F"                    !" 格子点数，波数
#endif
*
*  [MODIFY]
      REAL       GBU   ( IDIM*JDIM*KMAX )    !" 西風  ｕ(t-Δt)
      REAL       GBV   ( IDIM*JDIM*KMAX )    !" 南風  ｖ(t-Δt)
      REAL       GBPHI ( IDIM*JDIM*KMAX )    !" 層厚  φ(t-Δt)
      REAL       GBVOR ( IDIM*JDIM*KMAX )    !" 渦度  ζ(t-Δt)
      REAL       GBDIV ( IDIM*JDIM*KMAX )    !" 発散  Ｄ(t-Δt)
*
*  [INPUT]
      REAL       GAU   ( IDIM*JDIM*KMAX )    !" 西風  ｕ(t)
      REAL       GAV   ( IDIM*JDIM*KMAX )    !" 南風  ｖ(t)
      REAL       GAPHI ( IDIM*JDIM*KMAX )    !" 層厚  φ(t)
      REAL       GAVOR ( IDIM*JDIM*KMAX )    !" 渦度  ζ(t)
      REAL       GADIV ( IDIM*JDIM*KMAX )    !" 発散  Ｄ(t)
*
      COMMON    /COMWRK/
     &           GBBU  , GBBV  , GBBPHI,
     &           GBBVOR, GBBDIV
      REAL       GBBU  ( IDIM*JDIM*KMAX )    !" 西風  ｕ セーブ値
      REAL       GBBV  ( IDIM*JDIM*KMAX )    !" 南風  ｖ セーブ値
      REAL       GBBPHI( IDIM*JDIM*KMAX )    !" 層厚  φ セーブ値
      REAL       GBBVOR( IDIM*JDIM*KMAX )    !" 渦度  ζ セーブ値
      REAL       GBBDIV( IDIM*JDIM*KMAX )    !" 発散  Ｄ セーブ値
*
*  [INTERNAL SAVE]
      LOGICAL    OFIRST
      DATA       OFIRST  /.TRUE./
      REAL       TFIL                        !" 時間フィルター係数
      REAL       TFILY                       !" 時間フィルター係数
      DATA       TFIL    / 0.05 /
*
      NAMELIST    /NMFILT/ TFIL
      SAVE       OFIRST, TFILY
*
      INTEGER    IFPAR, JFPAR
      INTEGER    IJK 
      REAL       TFIL1
*
*"          < 0.  パラメター読み込み >
*
      IF ( OFIRST )THEN
         OFIRST = .FALSE.
         CALL   REWNML ( IFPAR , JFPAR )
         READ   ( IFPAR, NMFILT, END=2190 )
 2190    WRITE  ( JFPAR, NMFILT )
         TFILY = TFIL
      ENDIF
*
*"          < 1.  (t-Δt)のデータをロード >
*
      CALL LOADGB
     O         ( GBBU  , GBBV  , GBBPHI,
     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 )
         GBPHI( IJK ) = TFIL1 * GBPHI ( IJK )
     &                + TFIL  * GAPHI ( IJK )
     &                + TFIL  * GBBPHI( 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
*
      RETURN
      END
