* PACKAGE ATIME    !" モデル時刻管理
*
*  [HIS] 96/03/12 (takepiro) 
***********************************************************************
      SUBROUTINE ATPSET         !" 時刻設定
     I           ( TIMS , ITS , DT )
* [OUTPUT]
      REAL   TIM                  !" モデル内時刻
*
* [INPUT]
      INTEGER IT                   !" 時間積分ステップ数
*
      REAL    TIMS                 !" 実験開始時のモデル内時刻
      INTEGER ITS                  !" 実験開始時のステップ数
      REAL    DT                   !" 時間積分刻み
*
* [INTERNAL SAVE]
      REAL    TIMSTR               !" 実験開始時のモデル内時刻
      INTEGER ITSTR                !" 実験開始時のステップ数
      REAL    DELT                 !" 時間積分刻み
      LOGICAL OFIRST
*
      DATA  OFIRST /.TRUE./
*
      SAVE  TIMSTR , ITSTR , DELT, OFIRST
*
      TIMSTR = TIMS
      ITSTR  = ITS
      DELT   = DT
*
      IF ( OFIRST ) THEN
         OFIRST = .FALSE. 
         CALL MSGDMP( 'M','ATPSET','SETTING TIME PARAMETERS' )
      ELSE
         CALL MSGDMP( 'W','ATPSET','TIME PARAMETERS MODIFIED' )
      ENDIF
*
      RETURN
* --------------------------------------------------
      ENTRY ATPGET         !" 時刻設定情報参照
     O           ( TIMS , ITS , DT )
*
      IF ( OFIRST ) THEN
         CALL MSGDMP( 'E','ATPGET','TIME PARAMETERS NOT SET' )
      ELSE
         TIMS = TIMSTR
         ITS  = ITSTR  
         DT   = DELT
      ENDIF
*
      RETURN
* --------------------------------------------------
      ENTRY ATQTIM              !" 時刻の参照
     O    ( TIM ,
     I      IT    )
*
      IF ( OFIRST ) THEN
         CALL MSGDMP( 'E','ATQTIM','TIME PARAMETERS NOT SET' )
      ELSE
         TIM = TIMSTR + DELT * ( IT - ITSTR )
      ENDIF
*
      RETURN
      END
