# ?gamx2d

Performs element-wise absolute value maximization.

## Syntax

call igamx2d( icontxt, scope, top, m, n, a, lda, ra, ca, rcflag, rdest, cdest )

call sgamx2d( icontxt, scope, top, m, n, a, lda, ra, ca, rcflag, rdest, cdest )

call dgamx2d( icontxt, scope, top, m, n, a, lda, ra, ca, rcflag, rdest, cdest )

call cgamx2d( icontxt, scope, top, m, n, a, lda, ra, ca, rcflag, rdest, cdest )

call zgamx2d( icontxt, scope, top, m, n, a, lda, ra, ca, rcflag, rdest, cdest )

## Input Parameters

icontxt | INTEGER. Integer handle that indicates the context.
scope | CHARACTER*1. Indicates what scope the combine should proceed on. Limited to ROW, COLUMN, or ALL.
top | CHARACTER*1. Communication pattern to use during the combine operation.
m | INTEGER. The number of matrix rows to be combined.
n | INTEGER. The number of matrix columns to be combined.
a | TYPE array `(lda, n)`. Matrix to be compared with to produce the maximum.
lda | INTEGER. The leading dimension of the matrix A, that is, the distance between two successive elements in a matrix row.
rcflag | INTEGER. If rcflag = -1, the arrays ra and ca are not referenced and need not exist. Otherwise, rcflag indicates the leading dimension of these arrays, and so must be ≥ m.
rdest | INTEGER. The process row coordinate of the process that should receive the result. If rdest or cdest = -1, all processes within the indicated scope receive the answer.
cdest | INTEGER. The process column coordinate of the process that should receive the result. If rdest or cdest = -1, all processes within the indicated scope receive the answer.

## Output Parameters

a | TYPE array `(lda, n)`. Contains the result if this process is selected to receive the answer, or intermediate results if the process is not selected to receive the result.
ra | INTEGER array `(rcflag, n)`. If rcflag = -1, this array will not be referenced, and need not exist. Otherwise, it is an integer array (of size at least `rcflag x n`) indicating the row index of the process that provided the maximum. If the calling process is not selected to receive the result, this array will contain intermediate (useless) results.
ca | INTEGER array `(rcflag, n)`. If rcflag = -1, this array will not be referenced, and need not exist. Otherwise, it is an integer array (of size at least `rcflag x n`) indicating the row index of the process that provided the maximum. If the calling process is not selected to receive the result, this array will contain intermediate (useless) results.

## Description

This routine performs element-wise absolute value maximization, that is, each element of matrix A is compared with the corresponding element of the other process's matrices. Note that the value of A is returned, but the absolute value is used to determine the maximum (the 1-norm is used for complex numbers). Combines may be globally-blocking, so they must be programmed as if no process returns until all have called the routine.

## See Also

BLACS Routines Usage Example
Parent topic: BLACS Combine Operations