 LAPACK 3.3.1 Linear Algebra PACKage

# EIG/xlaenv.f

Go to the documentation of this file.
```00001       SUBROUTINE XLAENV( ISPEC, NVALUE )
00002 *
00003 *  -- LAPACK auxiliary routine (version 3.1) --
00004 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
00005 *     November 2006
00006 *
00007 *     .. Scalar Arguments ..
00008       INTEGER            ISPEC, NVALUE
00009 *     ..
00010 *
00011 *  Purpose
00012 *  =======
00013 *
00014 *  XLAENV sets certain machine- and problem-dependent quantities
00015 *  which will later be retrieved by ILAENV.
00016 *
00017 *  Arguments
00018 *  =========
00019 *
00020 *  ISPEC   (input) INTEGER
00021 *          Specifies the parameter to be set in the COMMON array IPARMS.
00022 *          = 1: the optimal blocksize; if this value is 1, an unblocked
00023 *               algorithm will give the best performance.
00024 *          = 2: the minimum block size for which the block routine
00025 *               should be used; if the usable block size is less than
00026 *               this value, an unblocked routine should be used.
00027 *          = 3: the crossover point (in a block routine, for N less
00028 *               than this value, an unblocked routine should be used)
00029 *          = 4: the number of shifts, used in the nonsymmetric
00030 *               eigenvalue routines
00031 *          = 5: the minimum column dimension for blocking to be used;
00032 *               rectangular blocks must have dimension at least k by m,
00033 *               where k is given by ILAENV(2,...) and m by ILAENV(5,...)
00034 *          = 6: the crossover point for the SVD (when reducing an m by n
00035 *               matrix to bidiagonal form, if max(m,n)/min(m,n) exceeds
00036 *               this value, a QR factorization is used first to reduce
00037 *               the matrix to a triangular form)
00038 *          = 7: the number of processors
00039 *          = 8: another crossover point, for the multishift QR and QZ
00040 *               methods for nonsymmetric eigenvalue problems.
00041 *          = 9: maximum size of the subproblems at the bottom of the
00042 *               computation tree in the divide-and-conquer algorithm
00043 *               (used by xGELSD and xGESDD)
00044 *          =10: ieee NaN arithmetic can be trusted not to trap
00045 *          =11: infinity arithmetic can be trusted not to trap
00046 *          12 <= ISPEC <= 16:
00047 *               xHSEQR or one of its subroutines,
00048 *               see IPARMQ for detailed explanation
00049 *
00050 *  NVALUE  (input) INTEGER
00051 *          The value of the parameter specified by ISPEC.
00052 *
00053 *  =====================================================================
00054 *
00055 *     .. Arrays in Common ..
00056       INTEGER            IPARMS( 100 )
00057 *     ..
00058 *     .. Common blocks ..
00059       COMMON             / CLAENV / IPARMS
00060 *     ..
00061 *     .. Save statement ..
00062       SAVE               / CLAENV /
00063 *     ..
00064 *     .. Executable Statements ..
00065 *
00066       IF( ISPEC.GE.1 .AND. ISPEC.LE.16 ) THEN
00067          IPARMS( ISPEC ) = NVALUE
00068       END IF
00069 *
00070       RETURN
00071 *
00072 *     End of XLAENV
00073 *
00074       END
```