Spec-Zone.ru › GNU Fortran 7

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)

Аргументы:
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) Устанавливается, когда массив назначения является изменяемым или указателем и refs позволяют перераспределение, т.е. ссылка является ссылкой на весь массив или компонент.
stat intent(out) Если не NULL, возвращает результат операции: ноль при успехе и ненулевое значение при ошибке. Если NULL, а произошла ошибка, то выводится сообщение об ошибке и программа завершается.
ПРИМЕЧАНИЯ

Допускается, чтобы 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-7.2.0/gfortran/_005fgfortran_005fcaf_005fsend_005fby_005fref.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API