7.12 psb_min — Global minimum

call psb_min(ctxt, dat, root [, mode, request])

This subroutine implements a minimum value reduction operation based on the underlying communication library.

Type:
Synchronous.
On Entry
ctxt
the communication context identifying the virtual parallel machine.
Scope: global.
Type: required.
Intent: in.
Specified as: an integer variable.
dat
The local contribution to the global minimum.
Scope: local.
Type: required.
Intent: inout.
Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array.  Type, kind, rank and size must agree on all processes.
root
Process to hold the final value, or -1 to make it available on all processes.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value -1 <= root <= np - 1, default -1.
mode
Whether the call is started in non-blocking mode and completed later, or is executed fully.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer, with the value determined by the bitwise OR of psb_collective_start_, psb_collective_end_. Default: both fields are selected.
request
A request variable to check for operation completion.
Scope: local.
Type: optional.
Intent: inout.
If mode does not specifies immediate completion, then this variable must be present.

On Return
dat
On destination process(es), the result of the minimum operation.
Scope: global.
Type: required.
Intent: inout.
Specified as: an integer or real variable, which may be a scalar, or a rank 1 or 2 array.
Type, kind, rank and size must agree on all processes.
request
A request variable to check for operation completion.
Scope: local.
Type: optional.
Intent: inout.
If mode does not specifies immediate completion, then this variable must be present.

Notes

  1. The dat argument is both input and output, and its value may be changed even on processes different from the final result destination.
  2. The dat argument may also be a long integer scalar.