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