PJLAENV(3)    ScaLAPACK routine of NEC Numeric Library Collection   PJLAENV(3)



NAME
       PJLAENV  is  called from the ScaLAPACK symmetric and Hermitian tailored
       eigen-routines to choose problem-dependent  parameters  for  the  local
       environment.

SYNOPSIS
       INTEGER FUNCTION PJLAENV(
                           ICTXT, ISPEC, NAME, OPTS, N1, N2, N3, N4 )

           CHARACTER*( * ) NAME, OPTS

           INTEGER         ICTXT, ISPEC, N1, N2, N3, N4

PURPOSE
       PJLAENV  is  called from the ScaLAPACK symmetric and Hermitian tailored
       eigen-routines to choose problem-dependent  parameters  for  the  local
       environment.  See ISPEC for a description of the parameters.

       This  version  provides a set of parameters which should give good, but
       not optimal, performance on many of the currently available  computers.
       Users are encouraged to modify this subroutine to set the tuning param-
       eters for their particular machine using the option  and  problem  size
       information in the arguments.

       This  routine  will  not  function  correctly if it is converted to all
       lower case.  Converting it to all upper case is allowed.


ARGUMENTS
       ICTXT   (local input) INTEGER
               On entry,  ICTXT  specifies the BLACS context  handle,  indica-
               ting  the  global  context of the operation. The context itself
               is global, but the value of ICTXT is local.

       ISPEC   (global input) INTEGER
               Specifies the parameter to be returned as the value of PJLAENV.
               = 1: the optimal blocksize;
               = 2: the panel blocking factor;
               = 3: the algorithmic blocking factor;
               = 4: execution path control;
               = 5: maximum size for direct call to the LAPACK routine

       NAME    (global input) CHARACTER*(*)
               The  name  of  the  calling subroutine, in either upper case or
               lower case.

       OPTS    (global input) CHARACTER*(*)
               The character options to the subroutine NAME, concatenated into
               a  single  character  string.  For example, UPLO = 'U', TRANS =
               'T', and DIAG = 'N' for a triangular routine would be specified
               as OPTS = 'UTN'.

       N1      (global input) INTEGER

       N2      (global input) INTEGER

       N3      (global input) INTEGER

       N4      (global input) INTEGER
               Problem  dimensions  for the subroutine NAME; these may not all
               be required.

       (PJLAENV) (global output) INTEGER
               >= 0: the value of the parameter specified by ISPEC
               < 0:  if PJLAENV = -k, the k-th argument had an illegal  value.

               Most  parameters set via a call to PJLAENV must be identical on
               all processors and hence PJLAENV will return the same value  to
               all  procesors (i.e. global output).  However some, in particu-
               lar, the panel blocking factor can be different on each proces-
               sor  and hence PJLAENV can return different values on different
               processors (i.e. local output).


       Further Details
       ===============

       The following conventions have been used when calling PILAENV from  the
       ScaLAPACK routines:
       1)  OPTS is a concatenation of all of the character options to
           subroutine NAME, in the same order that they appear in the
           argument list for NAME, even if they are not used in determining
           the value of the parameter specified by ISPEC.
       2)  The problem dimensions N1, N2, N3, N4 are specified in the order
           that they appear in the argument list for NAME.  N1 is used
           first, N2 second, and so on, and unused problem dimensions are
           passed a value of -1.
       3)  The parameter value returned by PILAENV is checked for validity in
           the calling subroutine.  For example, ILAENV is used to retrieve
           the optimal blocksize for STRTRI as follows:

           NB = PILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1 )
           IF( NB.LE.1 ) NB = MAX( 1, N )

       PJLAENV  is  patterned  after  ILAENV  and  keeps the same interface in
       anticipation of future needs, even though PJLAENV is only sparsely used
       at  present in ScaLAPACK.  Most ScaLAPACK codes use the input data lay-
       out blocking factor as the algorithmic blocking factor - hence there is
       no  need  or  opportunity  to set the algorithmic or data decomposition
       blocking factor.

       pXYYtevx.f and pXYYtgvx.f and pXYYttrd.f are the only codes which  call
       PJLAENV  in  this  release.  pXYYtevx.f and pXYYtgvx.f redistribute the
       data to the best data layout for each transformation.  pXYYttrd.f  uses
       a data layout blocking factor of 1 and a





ScaLAPACK routine               31 October 2017                     PJLAENV(3)