9.22 ASSOCIATED — Статус указателя или пары указатель/цель
- Описание:
-
ASSOCIATED(POINTER [, TARGET])определяет статус указателя POINTER или если POINTER связан с целью TARGET. - Стандарт:
-
Fortran 90 и более поздние версии
- Класс:
-
Функция запроса
- Синтаксис:
-
RESULT = ASSOCIATED(POINTER [, TARGET]) - Аргументы:
-
POINTER POINTER должен иметь атрибут POINTERи может быть любого типа.TARGET (Необязательно) TARGET должен быть указателем или целью. Он должен иметь тот же тип, параметр типа kind и ранг массива, что и POINTER. Статус связи ни POINTER, ни TARGET не должен быть неопределённым.
- Возвращаемое значение:
-
ASSOCIATED(POINTER)возвращает скалярное значение типаLOGICAL(4). Существуют несколько случаев:- (А) Когда необязательный TARGET отсутствует, тогда
ASSOCIATED(POINTER)истинно, если POINTER связан с целью; в противном случае возвращает ложь.- (Б) Если TARGET присутствует и является скалярной целью, результат равен истине, если
TARGET не является нулевым хранилищем и цель, связанная с POINTER, занимает те же единицы хранения. Если POINTER разъединён, результат равен ложности.
- (В) Если TARGET присутствует и является массивом-целью, результат равен истине, если
TARGET и POINTER имеют одинаковую форму, не являются нулевыми массивами, являются массивами, элементы которых не являются нулевыми хранилищами, и TARGET и POINTER занимают те же единицы хранения в порядке элементов массива. Как и в случае (Б), результат равен ложности, если POINTER разъединён.
- (Г) Если TARGET присутствует и является скалярным указателем, результат равен истине
если TARGET связан с POINTER, цель, связанная с TARGET не является нулевым хранилищем и занимают те же единицы хранения. Результат равен ложности, если либо TARGET, либо POINTER разъединён.
- (Д) Если TARGET присутствует и является массивом указателей, результат равен истине, если
цель, связанная с POINTER, и цель, связанная с TARGET, имеют одинаковую форму, не являются нулевыми массивами, являются массивами, элементы которых не являются нулевыми хранилищами, и TARGET и POINTER занимают те же единицы хранения в порядке элементов массива. Результат равен ложности, если либо TARGET, либо POINTER разъединён.
- Пример:
-
program test_associated implicit none real, target :: tgt(2) = (/1., 2./) real, pointer :: ptr(:) ptr => tgt if (associated(ptr) .eqv. .false.) call abort if (associated(ptr,tgt) .eqv. .false.) call abort end program test_associated
- См. также:
Далее: ATAN, Предыдущее: ASINH, Вверх: Встроенные процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gfortran/ASSOCIATED.html