 LAPACK  3.10.1 LAPACK: Linear Algebra PACKage

## ◆ ilaenv()

 integer function ilaenv ( integer ISPEC, character*( * ) NAME, character*( * ) OPTS, integer N1, integer N2, integer N3, integer N4 )

ILAENV

Purpose:
``` ILAENV returns problem-dependent parameters for the local
environment.  See ISPEC for a description of the parameters.

In this version, the problem-dependent parameters are contained in
the integer array IPARMS in the common block CLAENV and the value
with index ISPEC is copied to ILAENV.  This version of ILAENV is
to be used in conjunction with XLAENV in TESTING and TIMING.```
Parameters
 [in] ISPEC ``` ISPEC is INTEGER Specifies the parameter to be returned as the value of ILAENV. = 1: the optimal blocksize; if this value is 1, an unblocked algorithm will give the best performance. = 2: the minimum block size for which the block routine should be used; if the usable block size is less than this value, an unblocked routine should be used. = 3: the crossover point (in a block routine, for N less than this value, an unblocked routine should be used) = 4: the number of shifts, used in the nonsymmetric eigenvalue routines = 5: the minimum column dimension for blocking to be used; rectangular blocks must have dimension at least k by m, where k is given by ILAENV(2,...) and m by ILAENV(5,...) = 6: the crossover point for the SVD (when reducing an m by n matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds this value, a QR factorization is used first to reduce the matrix to a triangular form.) = 7: the number of processors = 8: the crossover point for the multishift QR and QZ methods for nonsymmetric eigenvalue problems. = 9: maximum size of the subproblems at the bottom of the computation tree in the divide-and-conquer algorithm =10: ieee NaN arithmetic can be trusted not to trap =11: infinity arithmetic can be trusted not to trap Other specifications (up to 100) can be added later.``` [in] NAME ``` NAME is CHARACTER*(*) The name of the calling subroutine.``` [in] OPTS ``` OPTS is 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'.``` [in] N1 ` N1 is INTEGER` [in] N2 ` N2 is INTEGER` [in] N3 ` N3 is INTEGER` [in] N4 ``` N4 is INTEGER Problem dimensions for the subroutine NAME; these may not all be required.```
Returns
ILAENV
```          ILAENV is INTEGER
>= 0: the value of the parameter specified by ISPEC
< 0:  if ILAENV = -k, the k-th argument had an illegal value.```
Further Details:
```  The following conventions have been used when calling ILAENV from the
LAPACK 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 ILAENV is checked for validity in
the calling subroutine.  For example, ILAENV is used to retrieve
the optimal blocksize for STRTRI as follows:

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

Definition at line 148 of file ilaenv.f.

150 *
151 * -- LAPACK test routine --
152 * -- LAPACK is a software package provided by Univ. of Tennessee, --
153 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
154 *
155 * .. Scalar Arguments ..
156  CHARACTER*( * ) NAME, OPTS
157  INTEGER ISPEC, N1, N2, N3, N4
158 * ..
159 *
160 * =====================================================================
161 *
162 * .. Intrinsic Functions ..
163  INTRINSIC int, min, real
164 * ..
165 * .. External Functions ..
166  INTEGER IEEECK
167  EXTERNAL ieeeck
168 * ..
169 * .. Arrays in Common ..
170  INTEGER IPARMS( 100 )
171 * ..
172 * .. Common blocks ..
173  COMMON / claenv / iparms
174 * ..
175 * .. Save statement ..
176  SAVE / claenv /
177 * ..
178 * .. Executable Statements ..
179 *
180  IF( ispec.GE.1 .AND. ispec.LE.5 ) THEN
181 *
182 * Return a value from the common block.
183 *
184  IF ( name(2:6).EQ.'GEQR ' ) THEN
185  IF (n3.EQ.2) THEN
186  ilaenv = iparms( 2 )
187  ELSE
188  ilaenv = iparms( 1 )
189  END IF
190  ELSE IF ( name(2:6).EQ.'GELQ ' ) THEN
191  IF (n3.EQ.2) THEN
192  ilaenv = iparms( 2 )
193  ELSE
194  ilaenv = iparms( 1 )
195  END IF
196  ELSE
197  ilaenv = iparms( ispec )
198  END IF
199 *
200  ELSE IF( ispec.EQ.6 ) THEN
201 *
202 * Compute SVD crossover point.
203 *
204  ilaenv = int( real( min( n1, n2 ) )*1.6e0 )
205 *
206  ELSE IF( ispec.GE.7 .AND. ispec.LE.9 ) THEN
207 *
208 * Return a value from the common block.
209 *
210  ilaenv = iparms( ispec )
211 *
212  ELSE IF( ispec.EQ.10 ) THEN
213 *
214 * IEEE NaN arithmetic can be trusted not to trap
215 *
216 C ILAENV = 0
217  ilaenv = 1
218  IF( ilaenv.EQ.1 ) THEN
219  ilaenv = ieeeck( 1, 0.0, 1.0 )
220  END IF
221 *
222  ELSE IF( ispec.EQ.11 ) THEN
223 *
224 * Infinity arithmetic can be trusted not to trap
225 *
226 C ILAENV = 0
227  ilaenv = 1
228  IF( ilaenv.EQ.1 ) THEN
229  ilaenv = ieeeck( 0, 0.0, 1.0 )
230  END IF
231 *
232  ELSE
233 *
234 * Invalid value for ISPEC
235 *
236  ilaenv = -1
237  END IF
238 *
239  RETURN
240 *
241 * End of ILAENV
242 *
integer function ieeeck(ISPEC, ZERO, ONE)
IEEECK
Definition: ieeeck.f:82
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV
Definition: ilaenv.f:162
Here is the call graph for this function: