1*> \brief \b ILAENV2STAGE 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8*> \htmlonly 9*> Download ILAENV2STAGE + dependencies 10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ilaenv2stage.f"> 11*> [TGZ]</a> 12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ilaenv2stage.f"> 13*> [ZIP]</a> 14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaenv2stage.f"> 15*> [TXT]</a> 16*> \endhtmlonly 17* 18* Definition: 19* =========== 20* 21* INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) 22* 23* .. Scalar Arguments .. 24* CHARACTER*( * ) NAME, OPTS 25* INTEGER ISPEC, N1, N2, N3, N4 26* .. 27* 28* 29*> \par Purpose: 30* ============= 31*> 32*> \verbatim 33*> 34*> ILAENV2STAGE is called from the LAPACK routines to choose problem-dependent 35*> parameters for the local environment. See ISPEC for a description of 36*> the parameters. 37*> It sets problem and machine dependent parameters useful for *_2STAGE and 38*> related subroutines. 39*> 40*> ILAENV2STAGE returns an INTEGER 41*> if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter 42*> specified by ISPEC 43*> if ILAENV2STAGE < 0: if ILAENV2STAGE = -k, the k-th argument had an 44*> illegal value. 45*> 46*> This version provides a set of parameters which should give good, 47*> but not optimal, performance on many of the currently available 48*> computers for the 2-stage solvers. Users are encouraged to modify this 49*> subroutine to set the tuning parameters for their particular machine using 50*> the option and problem size information in the arguments. 51*> 52*> This routine will not function correctly if it is converted to all 53*> lower case. Converting it to all upper case is allowed. 54*> \endverbatim 55* 56* Arguments: 57* ========== 58* 59*> \param[in] ISPEC 60*> \verbatim 61*> ISPEC is INTEGER 62*> Specifies the parameter to be returned as the value of 63*> ILAENV2STAGE. 64*> = 1: the optimal blocksize nb for the reduction to BAND 65*> 66*> = 2: the optimal blocksize ib for the eigenvectors 67*> singular vectors update routine 68*> 69*> = 3: The length of the array that store the Housholder 70*> representation for the second stage 71*> Band to Tridiagonal or Bidiagonal 72*> 73*> = 4: The workspace needed for the routine in input. 74*> 75*> = 5: For future release. 76*> \endverbatim 77*> 78*> \param[in] NAME 79*> \verbatim 80*> NAME is CHARACTER*(*) 81*> The name of the calling subroutine, in either upper case or 82*> lower case. 83*> \endverbatim 84*> 85*> \param[in] OPTS 86*> \verbatim 87*> OPTS is CHARACTER*(*) 88*> The character options to the subroutine NAME, concatenated 89*> into a single character string. For example, UPLO = 'U', 90*> TRANS = 'T', and DIAG = 'N' for a triangular routine would 91*> be specified as OPTS = 'UTN'. 92*> \endverbatim 93*> 94*> \param[in] N1 95*> \verbatim 96*> N1 is INTEGER 97*> \endverbatim 98*> 99*> \param[in] N2 100*> \verbatim 101*> N2 is INTEGER 102*> \endverbatim 103*> 104*> \param[in] N3 105*> \verbatim 106*> N3 is INTEGER 107*> \endverbatim 108*> 109*> \param[in] N4 110*> \verbatim 111*> N4 is INTEGER 112*> Problem dimensions for the subroutine NAME; these may not all 113*> be required. 114*> \endverbatim 115* 116* Authors: 117* ======== 118* 119*> \author Univ. of Tennessee 120*> \author Univ. of California Berkeley 121*> \author Univ. of Colorado Denver 122*> \author NAG Ltd. 123*> \author Nick R. Papior 124* 125*> \ingroup OTHERauxiliary 126* 127*> \par Further Details: 128* ===================== 129*> 130*> \verbatim 131*> 132*> The following conventions have been used when calling ILAENV2STAGE 133*> from the LAPACK routines: 134*> 1) OPTS is a concatenation of all of the character options to 135*> subroutine NAME, in the same order that they appear in the 136*> argument list for NAME, even if they are not used in determining 137*> the value of the parameter specified by ISPEC. 138*> 2) The problem dimensions N1, N2, N3, N4 are specified in the order 139*> that they appear in the argument list for NAME. N1 is used 140*> first, N2 second, and so on, and unused problem dimensions are 141*> passed a value of -1. 142*> 3) The parameter value returned by ILAENV2STAGE is checked for validity in 143*> the calling subroutine. 144*> 145*> \endverbatim 146*> 147* ===================================================================== 148 INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 ) 149* 150* -- LAPACK auxiliary routine -- 151* -- LAPACK is a software package provided by Univ. of Tennessee, -- 152* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 153* July 2017 154* 155* .. Scalar Arguments .. 156 CHARACTER*( * ) NAME, OPTS 157 INTEGER ISPEC, N1, N2, N3, N4 158* .. 159* 160* ===================================================================== 161* .. 162* .. Local Scalars .. 163 INTEGER IISPEC 164* .. 165* .. External Functions .. 166 INTEGER IPARAM2STAGE 167 EXTERNAL IPARAM2STAGE 168* .. 169* .. Executable Statements .. 170* 171 GO TO ( 10, 10, 10, 10, 10 )ISPEC 172* 173* Invalid value for ISPEC 174* 175 ILAENV2STAGE = -1 176 RETURN 177* 178 10 CONTINUE 179* 180* 2stage eigenvalues and SVD or related subroutines. 181* 182 IISPEC = 16 + ISPEC 183 ILAENV2STAGE = IPARAM2STAGE( IISPEC, NAME, OPTS, 184 $ N1, N2, N3, N4 ) 185 RETURN 186* 187* End of ILAENV2STAGE 188* 189 END 190