## psb_init -- Initializes PSBLAS parallel environment

    call psb_init(icontxt, np, basectxt, ids)

This subroutine initializes the PSBLAS parallel environment, defining a virtual parallel machine.

Type:
  Synchronous.
On Entry
np
  Number of processes in the PSBLAS virtual parallel machine.
  Scope: global.
  Type: optional.
  Intent: in.
  Specified as: an integer value. Default: use all available processes.
basectxt
  the initial communication context. The new context will be defined from the processes participating in the initial one.
  Scope: global.
  Type: optional.
  Intent: in.
  Specified as: an integer value. Default: use MPI_COMM_WORLD.
ids
  Identities of the processes to use for the new context; the argument is ignored when `np` is not specified. This allows the processes in the new environment to be in an order different from the original one.
  Scope: global.
  Type: optional.
  Intent: in.
  Specified as: an integer array. Default: use the indices .

On Return
icontxt
  the communication context identifying the virtual parallel machine. Note that this is always a duplicate of `basectxt`, so that library communications are completely separated from other communication operations.
  Scope: global.
  Type: required.
  Intent: out.
  Specified as: an integer variable.

Notes

1. A call to this routine must precede any other PSBLAS call.
2. It is an error to specify a value for greater than the number of processes available in the underlying base parallel environment.