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-9.3.0/gfortran/_005fgfortran_005fcaf_005fsend_005fby_005fref.html