Spec-Zone.ru › GNU Fortran 11

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

Spec-Zone.ru

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