9.253 SYSTEM_CLOCK — Функция времени
- Описание:
- Определяет значение COUNT — счётчик тактов процессорного таймера с момента неопределённого прошлого, по модулю COUNT_MAX, COUNT_RATE определяет количество тактов таймера в секунду. Если платформа поддерживает монотонный таймер, используется он, и, в зависимости от реализации, может предоставлять разрешение до наносекунд. Если монотонный таймер недоступен, используется таймер реального времени.
COUNT_RATE зависит от системы и может меняться в зависимости от типа аргументов. Для аргументов kind=4 (и меньших целочисленных типов) COUNT представляет миллисекунды, в то время как для аргументов kind=8 (и больших целочисленных типов) COUNT обычно представляет микро- или наносекунды в зависимости от разрешения системного таймера. COUNT_MAX обычно равно
HUGE(COUNT_MAX). Обратите внимание, что разрешение в миллисекундах для варианта kind=4 означает, что значение COUNT будет циклически повторяться приблизительно через 25 дней. Для избежания проблем с циклическим повторением и для более точного измерения времени используйте вариант kind=8.Если таймера нет или запрос к таймеру не удаётся, COUNT устанавливается в значение
-HUGE(COUNT), а COUNT_RATE и COUNT_MAX устанавливаются в ноль.При работе на платформе, использующей библиотеку GNU C (glibc) версии 2.16 или более ранней, или её производной, высокоточное монотонное время доступно только при подключении к библиотеке rt. Это можно сделать явно, добавив флаг
-lrtпри компиляции приложения, или неявно при использовании OpenMP.На платформе Windows вариант с аргументами kind=4 использует функцию
GetTickCount, а вариант kind=8 использует функцииQueryPerformanceCounterиQueryPerformanceCounterFrequency. Для получения дополнительной информации и возможных ограничений обратитесь к документации платформы. - Стандарт:
- Fortran 95 и более поздние версии
- Класс:
- Подпрограмма
- Синтаксис:
-
CALL SYSTEM_CLOCK([COUNT, COUNT_RATE, COUNT_MAX]) - Аргументы:
-
COUNT (Необязательно) скаляр типа INTEGERсINTENT(OUT).COUNT_RATE (Необязательно) скаляр типа INTEGERилиREAL, сINTENT(OUT).COUNT_MAX (Необязательно) скаляр типа INTEGERсINTENT(OUT). - Пример:
-
PROGRAM test_system_clock INTEGER :: count, count_rate, count_max CALL SYSTEM_CLOCK(count, count_rate, count_max) WRITE(*,*) count, count_rate, count_max END PROGRAM
- См. также:
- DATE_AND_TIME, CPU_TIME
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/SYSTEM_005fCLOCK.html