![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b SCHKQRT 00002 * 00003 * =========== DOCUMENTATION =========== 00004 * 00005 * Online html documentation available at 00006 * http://www.netlib.org/lapack/explore-html/ 00007 * 00008 * Definition: 00009 * =========== 00010 * 00011 * SUBROUTINE SCHKQRT( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 00012 * NBVAL, NOUT ) 00013 * 00014 * .. Scalar Arguments .. 00015 * LOGICAL TSTERR 00016 * INTEGER NM, NN, NNB, NOUT 00017 * REAL THRESH 00018 00019 * 00020 *> \par Purpose: 00021 * ============= 00022 *> 00023 *> \verbatim 00024 *> 00025 *> SCHKQRT tests SGEQRT and SGEMQRT. 00026 *> \endverbatim 00027 * 00028 * Arguments: 00029 * ========== 00030 * 00031 *> \param[in] THRESH 00032 *> \verbatim 00033 *> THRESH is REAL 00034 *> The threshold value for the test ratios. A result is 00035 *> included in the output file if RESULT >= THRESH. To have 00036 *> every test ratio printed, use THRESH = 0. 00037 *> \endverbatim 00038 *> 00039 *> \param[in] TSTERR 00040 *> \verbatim 00041 *> TSTERR is LOGICAL 00042 *> Flag that indicates whether error exits are to be tested. 00043 *> \endverbatim 00044 *> 00045 *> \param[in] NM 00046 *> \verbatim 00047 *> NM is INTEGER 00048 *> The number of values of M contained in the vector MVAL. 00049 *> \endverbatim 00050 *> 00051 *> \param[in] MVAL 00052 *> \verbatim 00053 *> MVAL is INTEGER array, dimension (NM) 00054 *> The values of the matrix row dimension M. 00055 *> \endverbatim 00056 *> 00057 *> \param[in] NN 00058 *> \verbatim 00059 *> NN is INTEGER 00060 *> The number of values of N contained in the vector NVAL. 00061 *> \endverbatim 00062 *> 00063 *> \param[in] NVAL 00064 *> \verbatim 00065 *> NVAL is INTEGER array, dimension (NN) 00066 *> The values of the matrix column dimension N. 00067 *> \endverbatim 00068 *> 00069 *> \param[in] NNB 00070 *> \verbatim 00071 *> NNB is INTEGER 00072 *> The number of values of NB contained in the vector NBVAL. 00073 *> \endverbatim 00074 *> 00075 *> \param[in] NBVAL 00076 *> \verbatim 00077 *> NBVAL is INTEGER array, dimension (NBVAL) 00078 *> The values of the blocksize NB. 00079 *> \endverbatim 00080 *> 00081 *> \param[in] NOUT 00082 *> \verbatim 00083 *> NOUT is INTEGER 00084 *> The unit number for output. 00085 *> \endverbatim 00086 * 00087 * Authors: 00088 * ======== 00089 * 00090 *> \author Univ. of Tennessee 00091 *> \author Univ. of California Berkeley 00092 *> \author Univ. of Colorado Denver 00093 *> \author NAG Ltd. 00094 * 00095 *> \date November 2011 00096 * 00097 *> \ingroup single_lin 00098 * 00099 * ===================================================================== 00100 SUBROUTINE SCHKQRT( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 00101 $ NBVAL, NOUT ) 00102 IMPLICIT NONE 00103 * 00104 * -- LAPACK test routine (version 3.4.0) -- 00105 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00106 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00107 * November 2011 00108 * 00109 * .. Scalar Arguments .. 00110 LOGICAL TSTERR 00111 INTEGER NM, NN, NNB, NOUT 00112 REAL THRESH 00113 * .. 00114 * .. Array Arguments .. 00115 INTEGER MVAL( * ), NBVAL( * ), NVAL( * ) 00116 * 00117 * ===================================================================== 00118 * 00119 * .. Parameters .. 00120 INTEGER NTESTS 00121 PARAMETER ( NTESTS = 6 ) 00122 * .. 00123 * .. Local Scalars .. 00124 CHARACTER*3 PATH 00125 INTEGER I, J, K, T, M, N, NB, NFAIL, NERRS, NRUN, 00126 $ MINMN 00127 * .. 00128 * .. Local Arrays .. 00129 REAL RESULT( NTESTS ) 00130 * .. 00131 * .. External Subroutines .. 00132 EXTERNAL ALAERH, ALAHD, ALASUM, SERRQRT, SQRT04 00133 * .. 00134 * .. Scalars in Common .. 00135 LOGICAL LERR, OK 00136 CHARACTER*32 SRNAMT 00137 INTEGER INFOT, NUNIT 00138 * .. 00139 * .. Common blocks .. 00140 COMMON / INFOC / INFOT, NUNIT, OK, LERR 00141 COMMON / SRNAMC / SRNAMT 00142 * .. 00143 * .. Executable Statements .. 00144 * 00145 * Initialize constants 00146 * 00147 PATH( 1: 1 ) = 'S' 00148 PATH( 2: 3 ) = 'QT' 00149 NRUN = 0 00150 NFAIL = 0 00151 NERRS = 0 00152 * 00153 * Test the error exits 00154 * 00155 IF( TSTERR ) CALL SERRQRT( PATH, NOUT ) 00156 INFOT = 0 00157 * 00158 * Do for each value of M in MVAL. 00159 * 00160 DO I = 1, NM 00161 M = MVAL( I ) 00162 * 00163 * Do for each value of N in NVAL. 00164 * 00165 DO J = 1, NN 00166 N = NVAL( J ) 00167 * 00168 * Do for each possible value of NB 00169 * 00170 MINMN = MIN( M, N ) 00171 DO K = 1, NNB 00172 NB = NBVAL( K ) 00173 IF( (NB.LE.MINMN).AND.(NB.GT.0) ) THEN 00174 * 00175 * Test SGEQRT and SGEMQRT 00176 * 00177 CALL SQRT04( M, N, NB, RESULT ) 00178 * 00179 * Print information about the tests that did not 00180 * pass the threshold. 00181 * 00182 DO T = 1, NTESTS 00183 IF( RESULT( T ).GE.THRESH ) THEN 00184 IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) 00185 $ CALL ALAHD( NOUT, PATH ) 00186 WRITE( NOUT, FMT = 9999 )M, N, NB, 00187 $ T, RESULT( T ) 00188 NFAIL = NFAIL + 1 00189 END IF 00190 END DO 00191 NRUN = NRUN + NTESTS 00192 END IF 00193 END DO 00194 END DO 00195 END DO 00196 * 00197 * Print a summary of the results. 00198 * 00199 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS ) 00200 * 00201 9999 FORMAT( ' M=', I5, ', N=', I5, ', NB=', I4, 00202 $ ' test(', I2, ')=', G12.5 ) 00203 RETURN 00204 * 00205 * End of SCHKQRT 00206 * 00207 END