8.2.14 _gfortran_caf_send_by_ref — Передача данных с локального изображения на удалённое изображение с расширенными параметрами ссылок
- Описание:
-
Вызывается для отправки скаляра, части массива или всего массива с локального на удалённое изображение, идентифицированное по image_index.
- Синтаксис:
-
void _gfortran_caf_send_by_ref (caf_token_t token, int image_index, gfc_descriptor_t *src, caf_reference_t *refs, int dst_kind, int src_kind, bool may_require_tmp, bool dst_reallocatable, int *stat, int dst_type) - Аргументы:
-
token intent(in) Непрозрачный указатель, идентифицирующий комассив. image_index intent(in) Идентификатор удалённого изображения; должно быть положительным числом. src intent(in) Описание массива локального массива, который будет передан на удалённое изображение refs intent(in) Ссылки на удалённый массив для хранения данных, заданных src. Гарантируется, что содержит как минимум один элемент. dst_kind intent(in) Тип назначения аргумента. src_kind intent(in) Тип источника аргумента. may_require_tmp intent(in) Переменная имеет значение falseкогда известно во время компиляции, что dest и src либо не могут перекрываться, либо перекрываются (полностью или частично) таким образом, что обход src и dest в порядке элементов по элементам (с учётом шага) не приведёт к неправильным результатам. В противном случае значение равноtrue.dst_reallocatable intent(in) Устанавливается, когда назначение является изменяемым размером или указателем, и ссылки позволят перераспределение, т.е. ссылка является полным массивом или ссылкой на компонент. stat intent(out) Если не NULL, то возвращает результат операции, т.е. ноль при успехе и ненулевое значение при ошибке. ЕслиNULL, и произошла ошибка, то выводится сообщение об ошибке, и программа завершается.dst_type intent(in) Указывает тип назначения. Если назначение не является массивом, то точный тип, например, компонента в производном типе, не известен, но предоставляется здесь. - ПРИМЕЧАНИЯ
-
Разрешено задать image_index равным текущему изображению; память для отправки и получения может частично перекрываться в этом случае. Реализация должна учитывать этот случай, например, используя
memmove, который обрабатывает частично перекрывающуюся память. Если may_require_tmp равно true, библиотека может дополнительно создать временную переменную, если дополнительные проверки покажут, что это не требуется (например, потому что обратный обход возможен или потому что оба массива непрерывны, иmemmoveзаботится о проблемах с перекрытием).Обратите внимание, что присвоение скаляра массиву разрешено. Кроме того, библиотека должна обрабатывать преобразование числовых типов и для строк, заполнение и разные типы символов.
Из-за более сложных ссылок некоторые операции могут быть не поддерживаемыми определёнными библиотеками. Ожидается, что библиотека выдаст точное сообщение об ошибке, почему операция запрещена.
Следующее: _gfortran_caf_get_by_ref, Предыдущее: _gfortran_caf_sendget, Вернуться к: Документация ABI функций [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-10.2.0/gfortran/_005fgfortran_005fcaf_005fsend_005fby_005fref.html