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 и возникновении ошибки, выводится сообщение об ошибке и выполнение программы завершается. - ПРИМЕЧАНИЯ
-
Разрешено задать image_index равным текущему изображению; память отправки и получения может (частично) перекрываться в этом случае. Реализация должна учитывать этот случай, например, используя
memmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp истинно, библиотека может дополнительно создать временную переменную, если дополнительные проверки не показывают необходимости (например, потому что обратный обход возможен или потому что оба массива непрерывны и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-9.3.0/gfortran/_005fgfortran_005fcaf_005fsend.html