Spec-Zone.ru › GNU Fortran 8

9.92 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-8.4.0/gfortran/DTIME.html

Spec-Zone.ru

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