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обрабатывает проблемы перекрытия).Обратите внимание, что разрешено присваивание скаляра массиву. Кроме того, библиотека должна обрабатывать преобразования числовых типов и для строк, заполнение и различные типы символов.
Далее: _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-12.1.0/gfortran/_005fgfortran_005fcaf_005fsend.html