Spec-Zone.ru › GNU Fortran 12

7.2.14 _gfortran_caf_send_by_ref — Отправка данных с локального изображения на удалённое изображение с расширенными параметрами ссылки

Описание:

Вызывается для отправки скаляра, части массива или всего массива с локального на удалённое изображение, идентифицируемое по image_index.

Синтаксис:

void _gfortran_caf_send_by_ref (caf_token_t token, int image_index, gfc_descriptor_t *src, caf_reference_t *refs, int dst_kind, int src_kind, bool may_require_tmp, bool dst_reallocatable, int *stat, int dst_type)

Аргументы:
token intent(in) Непрозрачный указатель, идентифицирующий комассив.
image_index intent(in) Идентификатор удалённого изображения; должно быть положительное число.
src intent(in) Описание массива локального массива, который будет передан на удалённое изображение
refs intent(in) Ссылки на удалённый массив для хранения данных, заданных src. Гарантируется, что содержит хотя бы одну запись.
dst_kind intent(in) Тип назначения аргумента.
src_kind intent(in) Тип источника аргумента.
may_require_tmp intent(in) Переменная имеет значение false когда известно во время компиляции, что массивы dest и src либо не могут перекрываться, либо перекрываются (полностью или частично) таким образом, что обход src и dest в порядке элементов (учитывая шаг) не приведёт к неверным результатам. В противном случае значение равно true.
dst_reallocatable intent(in) Устанавливается, когда назначение является типа allocatable или указателя, и ссылки позволят перераспределение, т.е. ссылка является полным массивом или ссылкой на компонент.
stat intent(out) При значении отличном от NULL, возвращает результат операции, т.е. ноль при успехе и ненулевое значение при ошибке. Когда NULL, и возникает ошибка, то выводится сообщение об ошибке, и программа завершается.
dst_type intent(in) Указывает тип назначения. Когда назначение не является массивом, то точный тип, например, компонента в структуре, неизвестен, но предоставлен здесь.
ПРИМЕЧАНИЯ

Разрешается задавать image_index равным текущему изображению; память отправляющего и принимающего изображений может (частично) перекрываться в этом случае. Реализация должна обрабатывать этот случай, например, используя memmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp имеет значение true, библиотека может дополнительно создать временную переменную, если дополнительные проверки покажут, что это не требуется (например, если обратный обход возможен или если оба массива непрерывны и memmove обрабатывает проблемы перекрытия).

Обратите внимание, что присваивание скаляра массиву разрешено. Кроме того, библиотека должна обрабатывать преобразование типов чисел и, для строк, заполнение и различные типы символов.

Из-за более сложных ссылок некоторые операции могут быть не поддерживаемы определёнными библиотеками. Библиотека должна выдать точное сообщение об ошибке, почему операция не разрешена.

Далее: _gfortran_caf_get_by_ref, Предыдущее: _gfortran_caf_sendget, Вверх: Документация ABI функций [Содержание][Индекс]

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

Spec-Zone.ru

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