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 является типа allocatable или pointer и его ссылки позволяют перераспределение, т.е. ссылается на весь массив или компонент. 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-8.4.0/gfortran/_005fgfortran_005fcaf_005fget_005fby_005fref.html