7.2.36 _gfortran_caf_co_reduce — Общий коллективный вывод
- Описание:
-
Вычисляет для каждого элемента массива переменной a значение вывода для этого элемента в текущем коллективе; если result_image имеет значение 0, результат должен храниться на всех изображениях, в противном случае — только на указанном изображении. opr — это чистая функция, выполняющая математически коммутативную и ассоциативную операцию.
opr_flags обозначают следующее; значения объединяются побитовым ИЛИ.
GFC_CAF_BYREF(1) если результат должен возвращаться по ссылке;GFC_CAF_HIDDENLEN(2) должны ли длина результата и строки аргументов указываться как скрытые аргументы;GFC_CAF_ARG_VALUE(4) должны ли аргументы передаваться по значению,GFC_CAF_ARG_DESC(8) должны ли аргументы передаваться по дескриптору. - Синтаксис:
-
void _gfortran_caf_co_reduce (gfc_descriptor_t *a, void * (*opr) (void *, void *), int opr_flags, int result_image, int *stat, char *errmsg, int a_len, size_t errmsg_len) - Аргументы:
-
a intent(inout) Дескриптор массива с данными для обработки. На целевом изображении(ях) результат перезаписывает старое содержимое. opr intent(in) Указатель на функцию вывода opr_flags intent(in) Флаги, относящиеся к функции вывода result_image intent(in) Идентификатор изображения, на которое должно быть скопировано значение вывода; если ноль, оно должно быть скопировано на все изображения. stat intent(out) Хранит статус STAT= и может быть NULL. errmsg intent(out) При возникновении ошибки это значение будет установлено на сообщение об ошибке; может быть NULL. a_len intent(in) длина строки аргумента a errmsg_len intent(in) размер буфера errmsg - ПРИМЕЧАНИЯ
-
Если result_image отлично от нуля, данные в описателе массива a на всех изображениях, кроме указанного, становятся неопределёнными; следовательно, библиотека может использовать это.
Для символьных аргументов результат передаётся как первый аргумент, за которым следует длина строки результата, затем две строки аргументов, за которыми следуют две скрытые длины строк аргументов. В связывании с С скрытых аргументов нет, и передача по ссылке, и передаётся либо только один символ, либо описатель массива.
© 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_005fco_005freduce.html