7.2.11 _gfortran_caf_send — Передача данных с локального изображения на удалённое изображение
- Описание:
-
Вызывается для отправки скаляра, секции массива или всего массива с локального изображения на удалённое изображение, идентифицируемое индексом изображения.
- Синтаксис:
-
void _gfortran_caf_send (caf_token_t token, size_t offset, int image_index, gfc_descriptor_t *dest, caf_vector_t *dst_vector, gfc_descriptor_t *src, int dst_kind, int src_kind, bool may_require_tmp, int *stat) - Аргументы:
-
token intent(in) Непрозрачный указатель, идентифицирующий комассив. offset intent(in) Сдвиг фактических данных относительно базового адреса комассива в байтах. image_index intent(in) Идентификатор удалённого изображения; должно быть положительное число. dest intent(in) Описание массива для удалённого изображения для границ и размера. Доступ к base_addrзапрещён.dst_vector intent(in) Если не NULL, содержит векторный индекс целевого массива; значения относительны к тройке измерений аргумента dest. src intent(in) Описание локального массива, который нужно передать на удалённое изображение dst_kind intent(in) Тип назначения аргумента src_kind intent(in) Тип источника аргумента may_require_tmp intent(in) Переменная равна false, если во время компиляции известно, что массивы dest и src либо не могут перекрываться, либо перекрываются (полностью или частично) таким образом, что обход src и dest в порядке элементов (учитывая шаг) не приведёт к неверным результатам. В противном случае, значение равноtrue.stat intent(out) если не NULL, содержит результат операции, т.е. ноль при успехе и ненулевое значение при ошибке. Если NULL и произошла ошибка, то выводится сообщение об ошибке и программа завершается. - ПРИМЕЧАНИЯ
-
Разрешено задать image_index равно текущему изображению; в этом случае память для отправки и получения может частично перекрываться. Реализация должна обрабатывать этот случай, например, используя
memmove, который обрабатывает частично перекрывающуюся память. Если may_require_tmp равно true, библиотека может дополнительно создать временную переменную, если дополнительные проверки не показывают, что это не требуется (например, потому что обратный обход возможен или потому что оба массива являются смежными иmemmoveобрабатывает проблемы перекрытия).Обратите внимание, что разрешено присваивать скаляр массиву. Кроме того, библиотека должна обрабатывать преобразование типов чисел и для строк, заполнение и разные типы символов.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/_005fgfortran_005fcaf_005fsend.html