8.2.13 _gfortran_caf_sendget — Передача данных между удалёнными образами
- Описание:
-
Вызывается для передачи скаляра, раздела массива или всего массива из удалённого образа, идентифицированного src_image_index, в удалённый образ, идентифицированный dst_image_index.
- Синтаксис:
-
void _gfortran_caf_sendget (caf_token_t dst_token, size_t dst_offset, int dst_image_index, gfc_descriptor_t *dest, caf_vector_t *dst_vector, caf_token_t src_token, size_t src_offset, int src_image_index, gfc_descriptor_t *src, caf_vector_t *src_vector, int dst_kind, int src_kind, bool may_require_tmp, int *stat) - Аргументы:
-
dst_token intent(in) Непрозрачный указатель, идентифицирующий целевой комассив. dst_offset intent(in) Смещение в байтах фактических данных относительно базового адреса целевого комассива. dst_image_index intent(in) Идентификатор целевого удалённого образа; должно быть положительное число. dest intent(in) Описание массива для целевого удалённого образа, определяющее границы и размер. base_addrне должно быть обработано.dst_vector intent(int) Если не NULL, содержит индекс вектора целевого массива; значения относительны к набору измерений аргумента dest. src_token intent(in) Непрозрачный указатель, идентифицирующий исходный комассив. src_offset intent(in) Смещение в байтах фактических данных относительно базового адреса исходного комассива. src_image_index intent(in) Идентификатор исходного удалённого образа; должно быть положительное число. src intent(in) Описание массива локального массива, который должен быть передан в удалённый образ. src_vector 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 и произошла ошибка, выводится сообщение об ошибке и программа завершается. - ПРИМЕЧАНИЯ
-
Разрешается иметь один и тот же индекс образа для src_image_index и dst_image_index; память отправки и отправления в этом случае может (частично) перекрываться. Реализация должна учитывать этот случай, например, используя
memmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp равно true, библиотека может дополнительно создать временную переменную, если дополнительные проверки не показывают, что это не требуется (например, потому, что обратный обход возможен или потому, что оба массива непрерывны иmemmoveобрабатывает проблемы с перекрытием).Обратите внимание, что присвоение скаляра массиву разрешено. Кроме того, библиотека должна обрабатывать преобразование типов чисел и для строк, заполнение и разные типы символов.
Далее: _gfortran_caf_send_by_ref, Предыдущее: _gfortran_caf_get, Наверх: Документация 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_005fsendget.html