LAPACK  3.8.0
LAPACK: Linear Algebra PACKage
ilaenv2stage.f
Go to the documentation of this file.
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 *> \date July 2017
126 *
127 *> \ingroup OTHERauxiliary
128 *
129 *> \par Further Details:
130 * =====================
131 *>
132 *> \verbatim
133 *>
134 *> The following conventions have been used when calling ILAENV2STAGE
135 *> from the LAPACK routines:
136 *> 1) OPTS is a concatenation of all of the character options to
137 *> subroutine NAME, in the same order that they appear in the
138 *> argument list for NAME, even if they are not used in determining
139 *> the value of the parameter specified by ISPEC.
140 *> 2) The problem dimensions N1, N2, N3, N4 are specified in the order
141 *> that they appear in the argument list for NAME. N1 is used
142 *> first, N2 second, and so on, and unused problem dimensions are
143 *> passed a value of -1.
144 *> 3) The parameter value returned by ILAENV2STAGE is checked for validity in
145 *> the calling subroutine.
146 *>
147 *> \endverbatim
148 *>
149 * =====================================================================
150  INTEGER FUNCTION ilaenv2stage( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
151 *
152 * -- LAPACK auxiliary routine (version 3.8.0) --
153 * -- LAPACK is a software package provided by Univ. of Tennessee, --
154 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
155 * July 2017
156 *
157 * .. Scalar Arguments ..
158  CHARACTER*( * ) NAME, OPTS
159  INTEGER ISPEC, N1, N2, N3, N4
160 * ..
161 *
162 * =====================================================================
163 * ..
164 * .. Local Scalars ..
165  INTEGER IISPEC
166 * ..
167 * .. External Functions ..
168  INTEGER IPARAM2STAGE
169  EXTERNAL iparam2stage
170 * ..
171 * .. Executable Statements ..
172 *
173  GO TO ( 10, 10, 10, 10, 10 )ispec
174 *
175 * Invalid value for ISPEC
176 *
177  ilaenv2stage = -1
178  RETURN
179 *
180  10 CONTINUE
181 *
182 * 2stage eigenvalues and SVD or related subroutines.
183 *
184  iispec = 16 + ispec
185  ilaenv2stage = iparam2stage( iispec, name, opts,
186  $ n1, n2, n3, n4 )
187  RETURN
188 *
189 * End of ILAENV2STAGE
190 *
191  END
integer function ilaenv2stage(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV2STAGE
Definition: ilaenv2stage.f:151