Spec-Zone.ru › GNU Fortran 9

9.265 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 или 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

Далее: TAN, Предыдущее: SYSTEM, Вверх: Встроенные процедуры [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gfortran/SYSTEM_005fCLOCK.html

Spec-Zone.ru

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