## psb_nrm2 -- Global 2-norm reduction

    call psb_nrm2(icontxt, dat, root)

This subroutine implements a 2-norm value reduction operation based on the underlying communication library.

Type:
  Synchronous.
On Entry
icontxt
  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: a real variable, which may be a scalar, or a rank 1 array. Kind, rank and size must agree on all processes.
root
  Process to hold the final value, or to make it available on all processes.
  Scope: global.
  Type: optional.
  Intent: in.
  Specified as: an integer value , default -1.

On Return
dat
  On destination process(es), the result of the 2-norm reduction.
  Scope: global.
  Type: required.
  Intent: inout.
  Specified as: a real variable, which may be a scalar, or a rank 1 array.
  Kind, rank and size must agree on all processes.

Notes

1. This reduction is appropriate to compute the results of multiple (local) NRM2 operations at the same time.
2. Denoting by the value of the variable on process , the output is equivalent to the computation of

   with care taken to avoid unnecessary overflow.
3. The `dat` argument is both input and output, and its value may be changed even on processes different from the final result destination.