next up previous contents
След.: Средства взаимодействия с C Выше: Встроенные модули Пред.: Встроенные модули   Содержание

Модуль окружения ISO_FORTRAN_ENV

Содержит описание окружения, в котором работает компилятор. Часть содержимого этого модуля уже описывалась выше. Модуль содержит константы, типы и процедуры.

ATOMIC_INT_KIND и LOGICAL_INT_KIND -- параметры разновидности целого и логического типов, используемые для атомарных операций. См. § 13.3 на стр. [*].

CHARACTER_KINDS, INTEGER_KINDS, LOGICAL_KINDS, REAL_KINDS -- массивные константы целого типа, ранга 1. Содержат разновидности символьного, целого, логического и вещественного типов, поддерживаемых системой. Порядок значений зависит от системы. Нижние границы равны 1, размеры -- количество доступных разновидностей типа.

CHARACTER_STORAGE_SIZE, FILE_STORAGE_SIZE, NUMERIC_STORAGE_SIZE -- целые константы, содержащие размер в битах одного символа, файловой единицы хранения и числовой единицы хранения. Скаляр целого, логического и вещественного (одинарной точности) типа занимает одну числовую единицу. Вещественный скаляр двойной точности и комплексный тип по умолчанию -- две. В файловых единицах измеряются записи неформатного файла и с ними работают операторы потокового ввода/вывода.

COMPILER_OPTIONS() и COMPILER_VERSION() -- справочные функции без аргументов, возвращающие зависящие от системы строки -- опций, определяющих стадию компиляции программы, и имя и версию компилятора. Длина зависит от системы.

INPUT_UNIT, OUTPUT_UNIT, ERROR_UNIT -- целочисленные константы, содержащие стандартные устройства ввода, вывода и ошибок. Напомним, что ввод и вывод на стандартные устройства можно осуществлять с помощью специальных операторов либо указав символ * в качестве устройства. См. § 9.6.

INT8,INT16, INT32, INT64 -- целые константы, содержащие разновидности целого типа размером в соответствующее число битов. Если более одной разновидности имеет такой размер, выбор остается за компилятором. Если таковой нет, значение равно $ -2$ , если поддерживается больший размер и $ -1$ в противном случае.

IOSTAT_END и IOSTAT_EOR -- целые константы, значения (отрицательные) которых присваиваются переменной спецификатора IOSTAT в случае, если обнаружен конец файла либо конец записи при операции ввода/вывода, но ошибки не произошло.

IOSTAT_INQUIRE_INTERNAL_UNIT -- целая константа, значение которой присваивается переменной спецификатора IOSTAT оператора INQUIRE в случае, если устройство является внутренним файлом. Ситуация возможна только при вызове процедуры, реализующей пользовательский ввод или вывод, когда родительский оператор работает с внутренним файлом.

LOCK_TYPE -- производный тип с закрытыми полями, имеющими инициализацию. Параметров разновидности не имеет. Может быть расширен. Атрибута BIND(C) не имеет. Переменная этого типа является замком § 8.3. Замок имеет два состояния: заперт и открыт. Состояние «открыт» определяется некоторым значением этой переменной, которое она имеет изначально. Это значение задает конструктор LOCK_TYPE(). Состояние «заперт» задают все прочие значения. Состояние меняется посредством операторов (LOCK) и UNLOCK. Переменная-замок должна быть комассивом. Если этот тип имеет некомассивное поле переменной, она должна быть комассивом. Переменная замок не должна подвергаться изменениям, в том числе -- присваиваниям, за исключением изменения посредством операторов (LOCK) и UNLOCK, размещения и использования в качестве фактического аргумента с атрибутом INOUT процедуры. То же касается и переменной с полем этого типа. Этот запрет гарантирует целостность значения замка и облегчает эффективную реализацию.

REAL32, REAL64, REAL128 -- целые константы, содержащие разновидности вещественного типа размером в соответствующее число битов. Если более одной разновидности имеет такой размер, выбор остается за компилятором. Если таковой нет, значение равно $ -2$ , если поддерживается больший размер и $ -1$ в противном случае.

STAT_LOCKED -- целая константа, значение которой присваивается переменной спецификатора STAT оператора LOCK в случае, если замок заперт текущим образом.

STAT_LOCKED_OTHER_IMAGE -- целая константа, значение которой присваивается переменной спецификатора STAT оператора UNLOCK в случае, если замок заперт другим образом.

STAT_STOPPED_IMAGE -- целая константа, значение которой присваивается переменной спецификатора STAT операторов управления образами (включая операторы размещения и освобождения) в случае, если выполнение оператора связано с синхронизацией с образом, который приступил к завершению работы.

STAT_UNLOCKED -- целая константа, значение которой присваивается переменной спецификатора STAT оператора UNLOCK в случае, если замок открыт.



Ilya A. Chernov 2012-12-19
X