7.2.12 _gfortran_caf_get — Получение данных из удалённого изображения
- Описание:
-
Вызывается для получения секции массива или целого массива из удалённого изображения, идентифицированного индексом изображения image_index.
- Синтаксис:
-
void _gfortran_caf_get (caf_token_t token, size_t offset, int image_index, gfc_descriptor_t *src, caf_vector_t *src_vector, gfc_descriptor_t *dest, int src_kind, int dst_kind, bool may_require_tmp, int *stat) - Аргументы:
-
token intent(in) Непрозрачный указатель, идентифицирующий комассив. offset intent(in) Сдвиг фактических данных относительно базового адреса комассива в байтах. image_index intent(in) Идентификатор удалённого изображения; должно быть положительным числом. dest intent(out) Описание массива локального массива для хранения данных, полученных из удалённого изображения src intent(in) Описание массива удалённого изображения для границ и размера. К base_addrдоступ не предоставляется.src_vector intent(in) Если не NULL, содержит векторный индекс исходного массива; значения относительны к тройному индексу измерения аргумента src. dst_kind intent(in) Тип назначения. src_kind intent(in) Тип источника. may_require_tmp intent(in) Переменная имеет значение false, когда известно во время компиляции, что dest и src не могут перекрываться или перекрываются (полностью или частично) таким образом, что перемещение по src и dest в порядке элементов (учитывая шаг) не приведёт к неправильным результатам. В противном случае значениеtrue.stat intent(out) Если не NULL, содержит результат операции: ноль при успехе, ненулевое значение при ошибке. Если NULL и произошла ошибка, выводится сообщение об ошибке, и программа завершается. - ПРИМЕЧАНИЯ
-
Разрешается присваивать image_index текущему изображению; память send-to и send-from могут (частично) перекрываться в этом случае. Реализация должна учитывать этот случай, например, используя
memmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp истинно, библиотека может дополнительно создать временную переменную, если дополнительные проверки показывают, что это не требуется (например, если возможно обратное перемещение или оба массива являются непрерывными иmemmoveобрабатывает проблемы перекрытия).Обратите внимание, что библиотека должна обрабатывать преобразование числовых типов и, в случае строк, заполнение и различные типы символов.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/_005fgfortran_005fcaf_005fget.html