Previous: _gfortran_caf_co_sum, Up: Function ABI Documentation
_gfortran_caf_co_reduce
— Generic collective reductionThe opr_flags denote the following; the values are bitwise ored.
GFC_CAF_BYREF
(1) if the result should be returned
by reference; GFC_CAF_HIDDENLEN
(2) whether the result and argument
string lengths shall be specified as hidden arguments;
GFC_CAF_ARG_VALUE
(4) whether the arguments shall be passed by value,
GFC_CAF_ARG_DESC
(8) whether the arguments shall be passed by descriptor.
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) An array descriptor with the data to be
processed. On the destination image(s) the result overwrites the old content.
|
opr | intent(in) Function pointer to the reduction function
|
opr_flags | intent(in) Flags regarding the reduction function
|
result_image | intent(in) The ID of the image to which the
reduced value should be copied to; if zero, it has to be copied to all images.
|
stat | intent(out) Stores the status STAT= and may be NULL.
|
errmsg | intent(out) When an error occurs, this will be set to
an error message; may be NULL.
|
a_len | intent(in) the string length of argument a
|
errmsg_len | intent(in) the buffer size of errmsg
|
For character arguments, the result is passed as first argument, followed by the result string length, next come the two string arguments, followed by the two hidden string length arguments. With C binding, there are no hidden arguments and by-reference passing and either only a single character is passed or an array descriptor.