9.20 ASSOCIATED — Статус указателя или пары указатель/целевой объект
- Описание:
-
ASSOCIATED(POINTER [, TARGET])определяет статус указателя POINTER или если POINTER связан с целевым объектом TARGET. - Стандарт:
- Fortran 95 и более поздние версии
- Класс:
- Функция запроса
- Синтаксис:
-
RESULT = ASSOCIATED(POINTER [, TARGET]) - Аргументы:
-
Статус связывания ни POINTER, ни TARGET не должен быть неопределённым.POINTER POINTER должен иметь атрибут POINTERи может быть любого типа.TARGET (Необязательно) TARGET должен быть указателем или целевым объектом. Он должен иметь тот же тип, тип параметра kind и ранг массива, что и POINTER. - Возвращаемое значение:
-
ASSOCIATED(POINTER)возвращает скалярное значение типаLOGICAL(4). Существует несколько случаев:- (A) Если необязательный TARGET отсутствует, то
-
ASSOCIATED(POINTER)истинно, если POINTER связан с целевым объектом; в противном случае возвращает ложь. - (B) Если TARGET присутствует и является скалярным целевым объектом, результат истинен, если
- TARGET не является нулевым массивом и целевой объект, связанный с POINTER, занимает те же единицы хранения. Если POINTER не связан, результат ложен.
- (C) Если TARGET присутствует и является массивом, результат истинен, если
- TARGET и POINTER имеют одинаковую форму, не являются нулевыми массивами, являются массивами, элементы которых не являются нулевыми последовательностями хранения, и TARGET и POINTER занимают одни и те же единицы хранения в порядке элементов массива. Как и в случае (B), результат ложен, если POINTER не связан.
- (D) Если TARGET присутствует и является скалярным указателем, результат истинен
- если TARGET связан с POINTER, целевой объект, связанный с TARGET, не является нулевым массивом и занимает те же единицы хранения. Результат ложен, если либо TARGET, либо POINTER не связаны.
- (E) Если 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
- См. также:
- NULL
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/ASSOCIATED.html