1*> \brief \b XLAENV
2*
3*  =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6*            http://www.netlib.org/lapack/explore-html/
7*
8*  Definition:
9*  ===========
10*
11*       SUBROUTINE XLAENV( ISPEC, NVALUE )
12*
13*       .. Scalar Arguments ..
14*       INTEGER            ISPEC, NVALUE
15*       ..
16*
17*
18*> \par Purpose:
19*  =============
20*>
21*> \verbatim
22*>
23*> XLAENV sets certain machine- and problem-dependent quantities
24*> which will later be retrieved by ILAENV.
25*> \endverbatim
26*
27*  Arguments:
28*  ==========
29*
30*> \param[in] ISPEC
31*> \verbatim
32*>          ISPEC is INTEGER
33*>          Specifies the parameter to be set in the COMMON array IPARMS.
34*>          = 1: the optimal blocksize; if this value is 1, an unblocked
35*>               algorithm will give the best performance.
36*>          = 2: the minimum block size for which the block routine
37*>               should be used; if the usable block size is less than
38*>               this value, an unblocked routine should be used.
39*>          = 3: the crossover point (in a block routine, for N less
40*>               than this value, an unblocked routine should be used)
41*>          = 4: the number of shifts, used in the nonsymmetric
42*>               eigenvalue routines
43*>          = 5: the minimum column dimension for blocking to be used;
44*>               rectangular blocks must have dimension at least k by m,
45*>               where k is given by ILAENV(2,...) and m by ILAENV(5,...)
46*>          = 6: the crossover point for the SVD (when reducing an m by n
47*>               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds
48*>               this value, a QR factorization is used first to reduce
49*>               the matrix to a triangular form)
50*>          = 7: the number of processors
51*>          = 8: another crossover point, for the multishift QR and QZ
52*>               methods for nonsymmetric eigenvalue problems.
53*>          = 9: maximum size of the subproblems at the bottom of the
54*>               computation tree in the divide-and-conquer algorithm
55*>               (used by xGELSD and xGESDD)
56*>          =10: ieee NaN arithmetic can be trusted not to trap
57*>          =11: infinity arithmetic can be trusted not to trap
58*> \endverbatim
59*>
60*> \param[in] NVALUE
61*> \verbatim
62*>          NVALUE is INTEGER
63*>          The value of the parameter specified by ISPEC.
64*> \endverbatim
65*
66*  Authors:
67*  ========
68*
69*> \author Univ. of Tennessee
70*> \author Univ. of California Berkeley
71*> \author Univ. of Colorado Denver
72*> \author NAG Ltd.
73*
74*> \ingroup aux_lin
75*
76*  =====================================================================
77      SUBROUTINE XLAENV( ISPEC, NVALUE )
78*
79*  -- LAPACK test routine --
80*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
81*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
82*
83*     .. Scalar Arguments ..
84      INTEGER            ISPEC, NVALUE
85*     ..
86*
87*  =====================================================================
88*
89*     .. Arrays in Common ..
90      INTEGER            IPARMS( 100 )
91*     ..
92*     .. Common blocks ..
93      COMMON             / CLAENV / IPARMS
94*     ..
95*     .. Save statement ..
96      SAVE               / CLAENV /
97*     ..
98*     .. Executable Statements ..
99*
100      IF( ISPEC.GE.1 .AND. ISPEC.LE.9 ) THEN
101         IPARMS( ISPEC ) = NVALUE
102      END IF
103*
104      RETURN
105*
106*     End of XLAENV
107*
108      END
109