8.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обрабатывает проблемы с перекрытием).Обратите внимание, что присвоение скаляра массиву разрешено. Кроме того, библиотека должна обрабатывать преобразование типов чисел и, для строк, заполнение и различные типы символов.
Далее: _gfortran_caf_get, Предыдущее: _gfortran_caf_is_present, Наверх: Документация ABI функций [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gfortran/_005fgfortran_005fcaf_005fsend.html