1*> \brief \b ZCHKQRT 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 ZCHKQRT( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 12* NBVAL, NOUT ) 13* .. Scalar Arguments .. 14* LOGICAL TSTERR 15* INTEGER NM, NN, NNB, NOUT 16* DOUBLE PRECISION THRESH 17* .. 18* .. Array Arguments .. 19* INTEGER MVAL( * ), NBVAL( * ), NVAL( * ) 20* 21*> \par Purpose: 22* ============= 23*> 24*> \verbatim 25*> 26*> ZCHKQRT tests ZGEQRT and ZGEMQRT. 27*> \endverbatim 28* 29* Arguments: 30* ========== 31* 32*> \param[in] THRESH 33*> \verbatim 34*> THRESH is DOUBLE PRECISION 35*> The threshold value for the test ratios. A result is 36*> included in the output file if RESULT >= THRESH. To have 37*> every test ratio printed, use THRESH = 0. 38*> \endverbatim 39*> 40*> \param[in] TSTERR 41*> \verbatim 42*> TSTERR is LOGICAL 43*> Flag that indicates whether error exits are to be tested. 44*> \endverbatim 45*> 46*> \param[in] NM 47*> \verbatim 48*> NM is INTEGER 49*> The number of values of M contained in the vector MVAL. 50*> \endverbatim 51*> 52*> \param[in] MVAL 53*> \verbatim 54*> MVAL is INTEGER array, dimension (NM) 55*> The values of the matrix row dimension M. 56*> \endverbatim 57*> 58*> \param[in] NN 59*> \verbatim 60*> NN is INTEGER 61*> The number of values of N contained in the vector NVAL. 62*> \endverbatim 63*> 64*> \param[in] NVAL 65*> \verbatim 66*> NVAL is INTEGER array, dimension (NN) 67*> The values of the matrix column dimension N. 68*> \endverbatim 69*> 70*> \param[in] NNB 71*> \verbatim 72*> NNB is INTEGER 73*> The number of values of NB contained in the vector NBVAL. 74*> \endverbatim 75*> 76*> \param[in] NBVAL 77*> \verbatim 78*> NBVAL is INTEGER array, dimension (NNB) 79*> The values of the blocksize NB. 80*> \endverbatim 81*> 82*> \param[in] NOUT 83*> \verbatim 84*> NOUT is INTEGER 85*> The unit number for output. 86*> \endverbatim 87* 88* Authors: 89* ======== 90* 91*> \author Univ. of Tennessee 92*> \author Univ. of California Berkeley 93*> \author Univ. of Colorado Denver 94*> \author NAG Ltd. 95* 96*> \ingroup complex16_lin 97* 98* ===================================================================== 99 SUBROUTINE ZCHKQRT( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 100 $ NBVAL, NOUT ) 101 IMPLICIT NONE 102* 103* -- LAPACK test routine -- 104* -- LAPACK is a software package provided by Univ. of Tennessee, -- 105* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 106* 107* .. Scalar Arguments .. 108 LOGICAL TSTERR 109 INTEGER NM, NN, NNB, NOUT 110 DOUBLE PRECISION THRESH 111* .. 112* .. Array Arguments .. 113 INTEGER MVAL( * ), NBVAL( * ), NVAL( * ) 114* .. 115* 116* ===================================================================== 117* 118* .. Parameters .. 119 INTEGER NTESTS 120 PARAMETER ( NTESTS = 6 ) 121* .. 122* .. Local Scalars .. 123 CHARACTER*3 PATH 124 INTEGER I, J, K, T, M, N, NB, NFAIL, NERRS, NRUN, 125 $ MINMN 126* .. 127* .. Local Arrays .. 128 DOUBLE PRECISION RESULT( NTESTS ) 129* .. 130* .. External Subroutines .. 131 EXTERNAL ALAERH, ALAHD, ALASUM, ZERRQRT, ZQRT04 132* .. 133* .. Scalars in Common .. 134 LOGICAL LERR, OK 135 CHARACTER*32 SRNAMT 136 INTEGER INFOT, NUNIT 137* .. 138* .. Common blocks .. 139 COMMON / INFOC / INFOT, NUNIT, OK, LERR 140 COMMON / SRNAMC / SRNAMT 141* .. 142* .. Executable Statements .. 143* 144* Initialize constants 145* 146 PATH( 1: 1 ) = 'Z' 147 PATH( 2: 3 ) = 'QT' 148 NRUN = 0 149 NFAIL = 0 150 NERRS = 0 151* 152* Test the error exits 153* 154 IF( TSTERR ) CALL ZERRQRT( PATH, NOUT ) 155 INFOT = 0 156* 157* Do for each value of M in MVAL. 158* 159 DO I = 1, NM 160 M = MVAL( I ) 161* 162* Do for each value of N in NVAL. 163* 164 DO J = 1, NN 165 N = NVAL( J ) 166* 167* Do for each possible value of NB 168* 169 MINMN = MIN( M, N ) 170 DO K = 1, NNB 171 NB = NBVAL( K ) 172* 173* Test ZGEQRT and ZGEMQRT 174* 175 IF( (NB.LE.MINMN).AND.(NB.GT.0) ) THEN 176 CALL ZQRT04( M, N, NB, RESULT ) 177* 178* Print information about the tests that did not 179* pass the threshold. 180* 181 DO T = 1, NTESTS 182 IF( RESULT( T ).GE.THRESH ) THEN 183 IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) 184 $ CALL ALAHD( NOUT, PATH ) 185 WRITE( NOUT, FMT = 9999 )M, N, NB, 186 $ T, RESULT( T ) 187 NFAIL = NFAIL + 1 188 END IF 189 END DO 190 NRUN = NRUN + NTESTS 191 END IF 192 END DO 193 END DO 194 END DO 195* 196* Print a summary of the results. 197* 198 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS ) 199* 200 9999 FORMAT( ' M=', I5, ', N=', I5, ', NB=', I4, 201 $ ' test(', I2, ')=', G12.5 ) 202 RETURN 203* 204* End of ZCHKQRT 205* 206 END 207