LAPACK  3.10.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 *> \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
integer function ilaenv2stage(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV2STAGE
Definition: ilaenv2stage.f:149
integer function iparam2stage(ISPEC, NAME, OPTS, NI, NBI, IBI, NXI)
IPARAM2STAGE
Definition: iparam2stage.F:155