Spec-Zone.ru › GNU Fortran 6

9.85 DTIME — Подпрограмма (или функция) времени выполнения

Описание:

DTIME(VALUES, TIME) изначально возвращает количество секунд времени выполнения с момента запуска процесса в TIME. VALUES возвращает пользовательскую и системную составляющие этого времени в VALUES(1) и VALUES(2) соответственно. TIME равно VALUES(1) + VALUES(2).

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

В некоторых системах базовые временные отметки представляются с помощью типов с достаточно маленькими пределами, что приводит к переполнению (зацикливанию), например, 32-битные типы. Поэтому значения, возвращаемые этой встроенной функцией, могут быть или стать отрицательными или численно меньше предыдущих значений в течение одного выполнения скомпилированной программы.

Обратите внимание, что эта реализация потокобезопасна, если используется в директивах OpenMP, т.е. её состояние будет согласованным при вызове из нескольких потоков. Однако, если DTIME вызывается из нескольких потоков, результат по-прежнему будет временем с момента последнего вызова. Это может не дать ожидаемых результатов. Если возможно, используйте CPU_TIME вместо этого.

Эта встроенная функция предоставляется в форматах подпрограммы и функции; однако в любом заданном программном модуле может использоваться только один из форматов.

VALUES и TIME являются INTENT(OUT) и предоставляют следующее:

VALUES(1): Пользовательское время в секундах.
VALUES(2): Системное время в секундах.
TIME: Время выполнения с момента запуска в секундах.
Стандарт:

Расширение GNU

Класс:

Подпрограмма, функция

Синтаксис:
CALL DTIME(VALUES, TIME).
TIME = DTIME(VALUES), (не рекомендуется).
Аргументы:
VALUES Тип должен быть REAL(4), DIMENSION(2).
TIME Тип должен быть REAL(4).
Возвращаемое значение:

Время выполнения в секундах с момента последнего вызова или с момента запуска программы, если она не вызывалась ранее.

Пример:
program test_dtime
    integer(8) :: i, j
    real, dimension(2) :: tarray
    real :: result
    call dtime(tarray, result)
    print *, result
    print *, tarray(1)
    print *, tarray(2)   
    do i=1,100000000    ! Just a delay
        j = i * i - i
    end do
    call dtime(tarray, result)
    print *, result
    print *, tarray(1)
    print *, tarray(2)
end program test_dtime
См. также:

CPU_TIME

Далее: EOSHIFT, Предыдущее: DSHIFTR, Вверх: Встроенные процедуры [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/DTIME.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API