Spec-Zone.ru › GNU Fortran 13

8.264 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 90 и более поздние версии

Класс:

Подпрограмма

Синтаксис:

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-13.3.0/gfortran/SYSTEM_005fCLOCK.html

Spec-Zone.ru

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