8.2.7 _gfortran_caf_send — Отправка данных с локального изображения на удалённое изображение
- Описание:
- Вызывается для отправки скаляра, секции массива или всего массива с локального на удалённое изображение, идентифицированное индексом image_index.
- Синтаксис:
-
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) - Аргументы:
-
token intent(in) Непрозрачный указатель, идентифицирующий комассив. offset Смещение в байтах фактических данных по отношению к базовому адресу комассива. image_index Идентификатор удалённого изображения; должно быть положительным числом. dest intent(in) Описатель массива удалённого изображения для границ и размера. К базовому адресу не должно быть доступа. dst_vector intent(int) Если не NULL, содержит индексный вектор назначения массива; значения относительны к тройке измерений аргумента dest. src intent(in) Описатель локального массива, который будет передан на удалённое изображение. dst_kind Тип назначения. src_kind Тип источника. may_require_tmp Переменная имеет значение false, если во время компиляции известно, что массивы dest и src либо не пересекаются, либо пересекаются полностью или частично таким образом, что обход src и dest в порядке элементов (учитывая шаг) не приведёт к неправильным результатам. В противном случае значение равно true. - ПРИМЕЧАНИЯ
- Разрешается установить image_id равным текущему изображению; память отправки и получения может в этом случае частично перекрываться. Реализация должна позаботиться об обработке этого случая, например, используя
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-5.4.0/gfortran/_005fgfortran_005fcaf_005fsend.html