MAXLOC (The GNU Fortran Compiler)

### 8.197 `MAXLOC` — Location of the maximum value within an array ¶

Synopsis:

  `RESULT = MAXLOC(ARRAY, DIM [, MASK] [,KIND] [,BACK])`
  `RESULT = MAXLOC(ARRAY [, MASK] [,KIND] [,BACK])`

Description:

  Determines the location of the element in the array with the maximum value, or, if the DIM argument is supplied, determines the locations of the maximum element along each row of the array in the DIM direction. If MASK is present, only the elements for which MASK is `.TRUE.` are considered. If more than one element in the array has the maximum value, the location returned is that of the first such element in array element order if the BACK is not present, or is false; if BACK is true, the location returned is that of the last such element. If the array has zero size, or all of the elements of MASK are `.FALSE.`, then the result is an array of zeroes. Similarly, if DIM is supplied and all of the elements of MASK along a given row are zero, the result value for that row is zero.

Class:

  Transformational function

Arguments:

  ARRAY | Shall be an array of type `INTEGER`, `REAL`, `UNSIGNED` or `CHARACTER`.
  DIM | (Optional) Shall be a scalar of type `INTEGER`, with a value between one and the rank of ARRAY, inclusive. It may not be an optional dummy argument.
  MASK | Shall be of type `LOGICAL`, and conformable with ARRAY.
  KIND | (Optional) A scalar `INTEGER` constant expression indicating the kind parameter of the result.
  BACK | (Optional) A scalar of type `LOGICAL`.

Return value:

  If DIM is absent, the result is a rank-one array with a length equal to the rank of ARRAY. If DIM is present, the result is an array with a rank one less than the rank of ARRAY, and a size corresponding to the size of ARRAY with the DIM dimension removed. If DIM is present and ARRAY has a rank of one, the result is a scalar. If the optional argument KIND is present, the result is an integer of kind KIND, otherwise it is of default kind.

Standard:

  Fortran 95 and later; ARRAY of `CHARACTER` and the KIND argument are available in Fortran 2003 and later. The BACK argument is available in Fortran 2008 and later. Extension for`UNSIGNED` (see Unsigned integers).

See also:

  `FINDLOC` — Search an array for a value,
  `MAX` — Maximum value of an argument list,
  `MAXVAL` — Maximum value of an array