1       SUBROUTINE XLAENV( ISPEC, NVALUE )
 2 *
 3 *  -- LAPACK auxiliary routine (version 3.1) --
 4 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
 5 *     November 2006
 6 *
 7 *     .. Scalar Arguments ..
 8       INTEGER            ISPEC, NVALUE
 9 *     ..
10 *
11 *  Purpose
12 *  =======
13 *
14 *  XLAENV sets certain machine- and problem-dependent quantities
15 *  which will later be retrieved by ILAENV.
16 *
17 *  Arguments
18 *  =========
19 *
20 *  ISPEC   (input) INTEGER
21 *          Specifies the parameter to be set in the COMMON array IPARMS.
22 *          = 1: the optimal blocksize; if this value is 1, an unblocked
23 *               algorithm will give the best performance.
24 *          = 2: the minimum block size for which the block routine
25 *               should be used; if the usable block size is less than
26 *               this value, an unblocked routine should be used.
27 *          = 3: the crossover point (in a block routine, for N less
28 *               than this value, an unblocked routine should be used)
29 *          = 4: the number of shifts, used in the nonsymmetric
30 *               eigenvalue routines
31 *          = 5: the minimum column dimension for blocking to be used;
32 *               rectangular blocks must have dimension at least k by m,
33 *               where k is given by ILAENV(2,...) and m by ILAENV(5,...)
34 *          = 6: the crossover point for the SVD (when reducing an m by n
35 *               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds
36 *               this value, a QR factorization is used first to reduce
37 *               the matrix to a triangular form)
38 *          = 7: the number of processors
39 *          = 8: another crossover point, for the multishift QR and QZ
40 *               methods for nonsymmetric eigenvalue problems.
41 *          = 9: maximum size of the subproblems at the bottom of the
42 *               computation tree in the divide-and-conquer algorithm
43 *               (used by xGELSD and xGESDD)
44 *          =10: ieee NaN arithmetic can be trusted not to trap
45 *          =11: infinity arithmetic can be trusted not to trap
46 *          12 <= ISPEC <= 16:
47 *               xHSEQR or one of its subroutines,
48 *               see IPARMQ for detailed explanation
49 *
50 *  NVALUE  (input) INTEGER
51 *          The value of the parameter specified by ISPEC.
52 *
53 *  =====================================================================
54 *
55 *     .. Arrays in Common ..
56       INTEGER            IPARMS( 100 )
57 *     ..
58 *     .. Common blocks ..
59       COMMON             / CLAENV / IPARMS
60 *     ..
61 *     .. Save statement ..
62       SAVE               / CLAENV /
63 *     ..
64 *     .. Executable Statements ..
65 *
66       IF( ISPEC.GE.1 .AND. ISPEC.LE.16 ) THEN
67          IPARMS( ISPEC ) = NVALUE
68       END IF
69 *
70       RETURN
71 *
72 *     End of XLAENV
73 *
74       END