Spec-Zone.ru › GNU Fortran 12

8.22 ASSOCIATED — Статус указателя или пары указатель/цель

Описание:

ASSOCIATED(POINTER [, TARGET]) определяет статус указателя POINTER или если POINTER связан с целью TARGET.

Стандарт:

Fortran 90 и более поздние версии

Класс:

Функция запроса

Синтаксис:

RESULT = ASSOCIATED(POINTER [, TARGET])

Аргументы:
POINTER POINTER должен иметь атрибут POINTER и может быть любого типа.
TARGET (Необязательно) TARGET должен быть указателем или целью. Он должен иметь тот же тип, параметр вида типа и ранг массива, что и POINTER.

Статус связи ни POINTER, ни TARGET не должен быть неопределенным.

Возвращаемое значение:

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

Далее: ATAN, Предыдущее: ASINH, Наверх: Встроенные процедуры [Содержание][Индекс]

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

Spec-Zone.ru

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