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, int src_type) - Аргументы:
-
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 является изменяемым или указателем, и его ссылки разрешают перевыделение, т.е., весь массив или компонент ссылаются. stat intent(out) При значении, отличном от NULL, возвращает результат операции, т.е., ноль при успехе и ненулевое значение при ошибке. При значенииNULL, в случае возникновения ошибки, выводится сообщение об ошибке, и программа завершается.src_type intent(in) Указывает тип источника. Если источник не массив, то точный тип, например, компонента в структурированном типе, неизвестен, но предоставляется здесь. - ПРИМЕЧАНИЯ
-
Разрешается, чтобы
image_indexбыло равно текущему изображению; память отправления и получения может (частично) перекрываться в этом случае. Реализация должна обрабатывать этот случай, например, используя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-11.1.0/gfortran/_005fgfortran_005fcaf_005fget_005fby_005fref.html