* 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