8.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 - См. также:
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/DTIME.html