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 - См. также:
Далее: 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