Spec-Zone.ru › GNU Fortran 4

8.239 SYSTEM_CLOCK — Функция времени

Описание:
Определяет количество тактов процессорного таймера с момента неопределённого прошлого момента, по модулю 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 с 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-4.9.3/gfortran/SYSTEM_005fCLOCK.html

Spec-Zone.ru

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