ОБЪЕДИНЕННЫЙ   ИНСТИТУТ   ЯДЕРНЫХ   ИССЛЕДОВАНИЙ
lit
  Библиотека   программ   JINRLIB eng

D_TIMED, D_DATIME, D_DATIMH, D_TIMEX - дата и время

Z008

Автор: Т.Ф.Сапожникова Язык: Фортран

Пакет программ для получения текущего календарного времени, счетного времени и даты.

Структура:

Тип: - SUBROUTINE
Имена входа для пользователя: - D_TIMED, D_DATIME, D_DATIMH, D_TIMEX
COMMON-блок: - /Z008_DT/ IDT(6)

Обращение:

CALL D_TIMED(T)

возвращает в T (REAL*8) счетное время ЦП в секундах, прошедшее с момента последнего обращения к D_TIMED.
При первом обращении возвращается значение T = 0.

CALL D_DATIME(ID,IT)

возвращает целые (типа INTEGER) значения даты и времени в формате:
ID=yyyymmdd, IT=hhmm.
То же самое записывается в COMMON-блок:
COMMON /Z008_DT/ IDT(6)
IDT(1)=yyyy, IDT(2)=mm, IDT(3)=dd,
IDT(4)=hh,   IDT(5)=mm, IDT(6)=ss.

CALL D_DATIMH(ND,NT)

возвращает дату и время в виде текстовых констант (CHARACTER):
ND = 10Hdd/mm/yyуу, NT = 8Hhh.mm.ss

CALL D_TIMEX(T)

возвращает в T (REAL*8) время выполнения задания в секундах с дробной частью.
Только для SPP, Linux.

Замечание 1.

Символы yyyy, mm, dd, hh, mm, ss, использованные выше, соответствуют четырем десятичным цифрам года, двум десятичным цифрам месяца, дня, часам, минутам и секундам соответственно.

Замечание 2.

Для Microsoft Fortran 5.00, MicroSoft PowerStation Fortran и Compaq Visual Fortran для ОС MS-DOS, Windows9X/NT/2000/XP можно с некоторым приближением астрономическое время считать счетным. Поэтому в подпрограммах были использованы процедуры доступа к системному времени GETTIM и GETDAT.
Эти подпрограммы находятся в модулях MSFLIB для MicroSoft PowerStation и DFLIB для Compaq Visual Fortran.
Рекомендуется в разделе деклараций вставить строку USE MSFLIB (или USE DFLIB) для доступа к этим библиотекам.
Но практически это необязательно.

Пример:

       IMPLICIT REAL*8 (A-H,O-Z)
       CHARACTER*10 ND
       CHARACTER*8  NT
        . . .
       CALL D_TIMED(T)     ! первое обращение, T=0
       DO I=1,10000
         X=DSQRT(1.+I)
       ENDDO
       CALL D_TIMED(T)     ! второе обращение: время после 1-ого обращения
       WRITE(*,'(4H T= ,F5.2)') T
       CALL D_DATIMH(ND,NT)
       WRITE(*,*)' Date: ',ND,'  Time: ',NT
       . . .
Результат:
       T=   .05
       Date: 12/ 4/2002  Time: 16.49.58


home up e-mail