You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
5.6 KiB
190 lines
5.6 KiB
2 years ago
|
*> \brief \b ILAENV2STAGE
|
||
|
*
|
||
|
* =========== DOCUMENTATION ===========
|
||
|
*
|
||
|
* Online html documentation available at
|
||
|
* http://www.netlib.org/lapack/explore-html/
|
||
|
*
|
||
|
*> \htmlonly
|
||
|
*> Download ILAENV2STAGE + dependencies
|
||
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ilaenv2stage.f">
|
||
|
*> [TGZ]</a>
|
||
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ilaenv2stage.f">
|
||
|
*> [ZIP]</a>
|
||
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaenv2stage.f">
|
||
|
*> [TXT]</a>
|
||
|
*> \endhtmlonly
|
||
|
*
|
||
|
* Definition:
|
||
|
* ===========
|
||
|
*
|
||
|
* INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
|
||
|
*
|
||
|
* .. Scalar Arguments ..
|
||
|
* CHARACTER*( * ) NAME, OPTS
|
||
|
* INTEGER ISPEC, N1, N2, N3, N4
|
||
|
* ..
|
||
|
*
|
||
|
*
|
||
|
*> \par Purpose:
|
||
|
* =============
|
||
|
*>
|
||
|
*> \verbatim
|
||
|
*>
|
||
|
*> ILAENV2STAGE is called from the LAPACK routines to choose problem-dependent
|
||
|
*> parameters for the local environment. See ISPEC for a description of
|
||
|
*> the parameters.
|
||
|
*> It sets problem and machine dependent parameters useful for *_2STAGE and
|
||
|
*> related subroutines.
|
||
|
*>
|
||
|
*> ILAENV2STAGE returns an INTEGER
|
||
|
*> if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter
|
||
|
*> specified by ISPEC
|
||
|
*> if ILAENV2STAGE < 0: if ILAENV2STAGE = -k, the k-th argument had an
|
||
|
*> illegal value.
|
||
|
*>
|
||
|
*> This version provides a set of parameters which should give good,
|
||
|
*> but not optimal, performance on many of the currently available
|
||
|
*> computers for the 2-stage solvers. Users are encouraged to modify this
|
||
|
*> subroutine to set the tuning parameters for their particular machine using
|
||
|
*> the option and problem size information in the arguments.
|
||
|
*>
|
||
|
*> This routine will not function correctly if it is converted to all
|
||
|
*> lower case. Converting it to all upper case is allowed.
|
||
|
*> \endverbatim
|
||
|
*
|
||
|
* Arguments:
|
||
|
* ==========
|
||
|
*
|
||
|
*> \param[in] ISPEC
|
||
|
*> \verbatim
|
||
|
*> ISPEC is INTEGER
|
||
|
*> Specifies the parameter to be returned as the value of
|
||
|
*> ILAENV2STAGE.
|
||
|
*> = 1: the optimal blocksize nb for the reduction to BAND
|
||
|
*>
|
||
|
*> = 2: the optimal blocksize ib for the eigenvectors
|
||
|
*> singular vectors update routine
|
||
|
*>
|
||
|
*> = 3: The length of the array that store the Housholder
|
||
|
*> representation for the second stage
|
||
|
*> Band to Tridiagonal or Bidiagonal
|
||
|
*>
|
||
|
*> = 4: The workspace needed for the routine in input.
|
||
|
*>
|
||
|
*> = 5: For future release.
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] NAME
|
||
|
*> \verbatim
|
||
|
*> NAME is CHARACTER*(*)
|
||
|
*> The name of the calling subroutine, in either upper case or
|
||
|
*> lower case.
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] OPTS
|
||
|
*> \verbatim
|
||
|
*> 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'.
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] N1
|
||
|
*> \verbatim
|
||
|
*> N1 is INTEGER
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] N2
|
||
|
*> \verbatim
|
||
|
*> N2 is INTEGER
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] N3
|
||
|
*> \verbatim
|
||
|
*> N3 is INTEGER
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
*> \param[in] N4
|
||
|
*> \verbatim
|
||
|
*> N4 is INTEGER
|
||
|
*> Problem dimensions for the subroutine NAME; these may not all
|
||
|
*> be required.
|
||
|
*> \endverbatim
|
||
|
*
|
||
|
* Authors:
|
||
|
* ========
|
||
|
*
|
||
|
*> \author Univ. of Tennessee
|
||
|
*> \author Univ. of California Berkeley
|
||
|
*> \author Univ. of Colorado Denver
|
||
|
*> \author NAG Ltd.
|
||
|
*> \author Nick R. Papior
|
||
|
*
|
||
|
*> \ingroup OTHERauxiliary
|
||
|
*
|
||
|
*> \par Further Details:
|
||
|
* =====================
|
||
|
*>
|
||
|
*> \verbatim
|
||
|
*>
|
||
|
*> The following conventions have been used when calling ILAENV2STAGE
|
||
|
*> 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 ILAENV2STAGE is checked for validity in
|
||
|
*> the calling subroutine.
|
||
|
*>
|
||
|
*> \endverbatim
|
||
|
*>
|
||
|
* =====================================================================
|
||
|
INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
|
||
|
*
|
||
|
* -- LAPACK auxiliary routine --
|
||
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
||
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
||
|
* July 2017
|
||
|
*
|
||
|
* .. Scalar Arguments ..
|
||
|
CHARACTER*( * ) NAME, OPTS
|
||
|
INTEGER ISPEC, N1, N2, N3, N4
|
||
|
* ..
|
||
|
*
|
||
|
* =====================================================================
|
||
|
* ..
|
||
|
* .. Local Scalars ..
|
||
|
INTEGER IISPEC
|
||
|
* ..
|
||
|
* .. External Functions ..
|
||
|
INTEGER IPARAM2STAGE
|
||
|
EXTERNAL IPARAM2STAGE
|
||
|
* ..
|
||
|
* .. Executable Statements ..
|
||
|
*
|
||
|
GO TO ( 10, 10, 10, 10, 10 )ISPEC
|
||
|
*
|
||
|
* Invalid value for ISPEC
|
||
|
*
|
||
|
ILAENV2STAGE = -1
|
||
|
RETURN
|
||
|
*
|
||
|
10 CONTINUE
|
||
|
*
|
||
|
* 2stage eigenvalues and SVD or related subroutines.
|
||
|
*
|
||
|
IISPEC = 16 + ISPEC
|
||
|
ILAENV2STAGE = IPARAM2STAGE( IISPEC, NAME, OPTS,
|
||
|
$ N1, N2, N3, N4 )
|
||
|
RETURN
|
||
|
*
|
||
|
* End of ILAENV2STAGE
|
||
|
*
|
||
|
END
|