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