
# TIMELIB を移植するときの注意

TIMELIB の中の TIMEQ3 は, FORTRAN77 の規格にはない現在の時刻を得るため
のルーチンを含んでいる. しかし, これらはふつう処理系が同じような動作を
するルーチンを用意しているので, システム管理者が適切なインターフェイス
ルーチン用意すること. 以下に, SunFORTRAN 1.4, Lahey Fortran および C 
言語で記述した例を示す.

このパッケージでは C 言語で書かれたものを標準としている. 

TIMELIB が正しく移植されているかどうかを確かめるには, 
demo/misc1/timelib にある time02.f をコンパイル, 実行し, 現在の時刻を
正しく返しているかどうかを見てやればよい. 

*-----------------------------------------------------------------------
*     TIMEQ3  (for SunFORTRAN 1.4)
*-----------------------------------------------------------------------
      SUBROUTINE TIMEQ3(IH, IM, IS)

      INTEGER ITA(3)

*     IH    : HOUR                                              ( /O)
*     IM    : MINUTE                                            ( /O)
*     IS    : SECOND                                            ( /O)


      CALL ITIME(ITA)
      IH = ITA(1)
      IM = ITA(2)
      IS = ITA(3)

      END
*-----------------------------------------------------------------------
*     TIMEQ3 (for Lahey Fortran)
*-----------------------------------------------------------------------
      SUBROUTINE TIMEQ3(IH, IM, IS)

      CHARACTER*11 CTIME

*     IH    : HOUR                                              ( /O)
*     IM    : MINUTE                                            ( /O)
*     IS    : SECOND                                            ( /O)


      CALL TIME(CTIME)
      READ(CTIME, '(I2,TR1,I2,TR1,I2)') IH, IM, IS

      END

/*
 *    timeq3 (written in C)
 */

#include <time.h>

void timeq3_(ih, im, is)
    int *ih, *im, *is;
{
    long tp;
    struct tm lt;

    time(&tp);
    lt = *localtime(&tp);
    *ih = lt.tm_hour;
    *im = lt.tm_min;
    *is = lt.tm_sec;
} 
