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-8.4.0/gfortran/_005fgfortran_005fcaf_005fsend.html