7.2.12 _gfortran_caf_get — Получение данных из удалённого изображения
- Описание:
-
Вызывается для получения сегмента массива или целого массива из удалённого изображения, идентифицируемого индексом изображения.
- Синтаксис:
-
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 равным текущему изображению; память отправки и получения может (частично) перекрываться в этом случае. Реализация должна учитывать этот случай, например, используя
memmove, которая обрабатывает (частично) перекрывающуюся память. Если may_require_tmp равно true, библиотека может дополнительно создать временную переменную, если дополнительные проверки не покажут, что это не требуется (например, потому что возможен обратный проход или потому что оба массива являются непрерывными иmemmoveрешает проблемы перекрытия).Обратите внимание, что библиотека должна обрабатывать преобразование числовых типов и для строк, заполнение и разные типы символов.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/_005fgfortran_005fcaf_005fget.html