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 истинно, библиотека может дополнительно создать временную переменную, если дополнительные проверки не покажут, что это не требуется (например, потому что обращение возможно назад или потому что оба массива непрерывны и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-11.1.0/gfortran/_005fgfortran_005fcaf_005fsendget.html