8.2.15 _gfortran_caf_get_by_ref — Получение данных из удалённого образа с использованием расширенных ссылок
- Описание:
-
Вызывается для получения скаляра, раздела массива или целого массива из удалённого образа, идентифицированного с помощью image_index.
- Синтаксис:
-
void _gfortran_caf_get_by_ref (caf_token_t token, int image_index, caf_reference_t *refs, gfc_descriptor_t *dst, int dst_kind, int src_kind, bool may_require_tmp, bool dst_reallocatable, int *stat) - Аргументы:
-
token intent(in) Непрозрачный указатель, идентифицирующий комассив. image_index intent(in) ИД удалённого образа; должно быть положительным числом. refs intent(in) Ссылки, применяемые к удалённой структуре для получения данных. dst intent(in) Описатель массива локального массива для хранения данных, переданных из удалённого образа. Может быть перевыделен при необходимости, когда DST_REALLOCATABLE это разрешает. dst_kind intent(in) Тип назначения аргумента src_kind intent(in) Тип источника аргумента may_require_tmp intent(in) Переменная имеет значение false, если известно на этапе компиляции, что dest и src либо не могут перекрываться, либо перекрываются (полностью или частично) таким образом, что обход src и dest в порядке элементов (учитывая шаг) не приведёт к неверным результатам. В противном случае значение равноtrue.dst_reallocatable intent(in) Устанавливается, когда DST является типа allocatable или pointer, и его ссылки допускают перевыделение, то есть ссылка на весь массив или на компонент. stat intent(out) Если не NULL, возвращает результат операции, т.е. ноль при успехе и ненулевое значение при ошибке. ЕслиNULL, и произошла ошибка, то выводится сообщение об ошибке, и выполнение программы завершается. - ПРИМЕЧАНИЯ
-
Разрешается, чтобы
image_indexбыло равно текущему образу; память send-to и send-from могут (частично) перекрываться в этом случае. Реализация должна позаботиться о обработке этого случая, например, используяmemmove, который обрабатывает (частично) перекрывающуюся память. Если may_require_tmp истинно, библиотека может дополнительно создать временную переменную, если дополнительные проверки покажут, что это не требуется (например, потому что обратный обход возможен или потому что оба массива являются непрерывными иmemmoveобрабатывает проблемы перекрытия).Обратите внимание, что библиотека должна обрабатывать преобразование числовых типов и для строк, выравнивание и различные типы символов.
Из-за более сложных возможных ссылок некоторые операции могут быть не поддерживаемыми определёнными библиотеками. Ожидается, что библиотека выведет точное сообщение об ошибке, почему операция запрещена.
Далее: _gfortran_caf_sendget_by_ref, Предыдущее: _gfortran_caf_send_by_ref, Вверх: Документация ABI функций [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gfortran/_005fgfortran_005fcaf_005fget_005fby_005fref.html