Пакет программ для получения текущего календарного времени,
счетного времени и даты.
Структура:
Тип: |
- |
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