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 (NBVAL) 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*> \date December 2016 97* 98*> \ingroup complex16_lin 99* 100* ===================================================================== 101 SUBROUTINE ZCHKQRT( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 102 $ NBVAL, NOUT ) 103 IMPLICIT NONE 104* 105* -- LAPACK test routine (version 3.7.0) -- 106* -- LAPACK is a software package provided by Univ. of Tennessee, -- 107* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 108* December 2016 109* 110* .. Scalar Arguments .. 111 LOGICAL TSTERR 112 INTEGER NM, NN, NNB, NOUT 113 DOUBLE PRECISION THRESH 114* .. 115* .. Array Arguments .. 116 INTEGER MVAL( * ), NBVAL( * ), NVAL( * ) 117* .. 118* 119* ===================================================================== 120* 121* .. Parameters .. 122 INTEGER NTESTS 123 PARAMETER ( NTESTS = 6 ) 124* .. 125* .. Local Scalars .. 126 CHARACTER*3 PATH 127 INTEGER I, J, K, T, M, N, NB, NFAIL, NERRS, NRUN, 128 $ MINMN 129* .. 130* .. Local Arrays .. 131 DOUBLE PRECISION RESULT( NTESTS ) 132* .. 133* .. External Subroutines .. 134 EXTERNAL ALAERH, ALAHD, ALASUM, ZERRQRT, ZQRT04 135* .. 136* .. Scalars in Common .. 137 LOGICAL LERR, OK 138 CHARACTER*32 SRNAMT 139 INTEGER INFOT, NUNIT 140* .. 141* .. Common blocks .. 142 COMMON / INFOC / INFOT, NUNIT, OK, LERR 143 COMMON / SRNAMC / SRNAMT 144* .. 145* .. Executable Statements .. 146* 147* Initialize constants 148* 149 PATH( 1: 1 ) = 'Z' 150 PATH( 2: 3 ) = 'QT' 151 NRUN = 0 152 NFAIL = 0 153 NERRS = 0 154* 155* Test the error exits 156* 157 IF( TSTERR ) CALL ZERRQRT( PATH, NOUT ) 158 INFOT = 0 159* 160* Do for each value of M in MVAL. 161* 162 DO I = 1, NM 163 M = MVAL( I ) 164* 165* Do for each value of N in NVAL. 166* 167 DO J = 1, NN 168 N = NVAL( J ) 169* 170* Do for each possible value of NB 171* 172 MINMN = MIN( M, N ) 173 DO K = 1, NNB 174 NB = NBVAL( K ) 175* 176* Test ZGEQRT and ZGEMQRT 177* 178 IF( (NB.LE.MINMN).AND.(NB.GT.0) ) THEN 179 CALL ZQRT04( M, N, NB, RESULT ) 180* 181* Print information about the tests that did not 182* pass the threshold. 183* 184 DO T = 1, NTESTS 185 IF( RESULT( T ).GE.THRESH ) THEN 186 IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) 187 $ CALL ALAHD( NOUT, PATH ) 188 WRITE( NOUT, FMT = 9999 )M, N, NB, 189 $ T, RESULT( T ) 190 NFAIL = NFAIL + 1 191 END IF 192 END DO 193 NRUN = NRUN + NTESTS 194 END IF 195 END DO 196 END DO 197 END DO 198* 199* Print a summary of the results. 200* 201 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS ) 202* 203 9999 FORMAT( ' M=', I5, ', N=', I5, ', NB=', I4, 204 $ ' test(', I2, ')=', G12.5 ) 205 RETURN 206* 207* End of ZCHKQRT 208* 209 END 210