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