![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b DCHKQRTP 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 DCHKQRTP( THRESH, TSTERR, NM, MVAL, NN, NVAL, NNB, 00012 * NBVAL, NOUT ) 00013 * 00014 * .. Scalar Arguments .. 00015 * LOGICAL TSTERR 00016 * INTEGER NM, NN, NNB, NOUT 00017 * DOUBLE PRECISION THRESH 00018 * .. 00019 * .. Array Arguments .. 00020 * INTEGER MVAL( * ), NBVAL( * ), NVAL( * ) 00021 * 00022 *> \par Purpose: 00023 * ============= 00024 *> 00025 *> \verbatim 00026 *> 00027 *> DCHKQRTP tests DTPQRT and DTPMQRT. 00028 *> \endverbatim 00029 * 00030 * Arguments: 00031 * ========== 00032 * 00033 *> \param[in] THRESH 00034 *> \verbatim 00035 *> THRESH is DOUBLE PRECISION 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 double_lin 00100 * 00101 * ===================================================================== 00102 SUBROUTINE DCHKQRTP( 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 DOUBLE PRECISION 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, L, T, M, N, NB, NFAIL, NERRS, NRUN, 00129 $ MINMN 00130 * .. 00131 * .. Local Arrays .. 00132 DOUBLE PRECISION RESULT( NTESTS ) 00133 * .. 00134 * .. External Subroutines .. 00135 EXTERNAL ALAERH, ALAHD, ALASUM, DERRQRTP 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 ) = 'D' 00151 PATH( 2: 3 ) = 'QX' 00152 NRUN = 0 00153 NFAIL = 0 00154 NERRS = 0 00155 * 00156 * Test the error exits 00157 * 00158 IF( TSTERR ) CALL DERRQRTP( PATH, NOUT ) 00159 INFOT = 0 00160 * 00161 * Do for each value of M 00162 * 00163 DO I = 1, NM 00164 M = MVAL( I ) 00165 * 00166 * Do for each value of N 00167 * 00168 DO J = 1, NN 00169 N = NVAL( J ) 00170 * 00171 * Do for each value of L 00172 * 00173 MINMN = MIN( M, N ) 00174 DO L = 0, MINMN, MAX( MINMN, 1 ) 00175 * 00176 * Do for each possible value of NB 00177 * 00178 DO K = 1, NNB 00179 NB = NBVAL( K ) 00180 * 00181 * Test DTPQRT and DTPMQRT 00182 * 00183 IF( (NB.LE.N).AND.(NB.GT.0) ) THEN 00184 CALL DQRT05( M, N, L, NB, RESULT ) 00185 * 00186 * Print information about the tests that did not 00187 * pass the threshold. 00188 * 00189 DO T = 1, NTESTS 00190 IF( RESULT( T ).GE.THRESH ) THEN 00191 IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) 00192 $ CALL ALAHD( NOUT, PATH ) 00193 WRITE( NOUT, FMT = 9999 )M, N, NB, L, 00194 $ T, RESULT( T ) 00195 NFAIL = NFAIL + 1 00196 END IF 00197 END DO 00198 NRUN = NRUN + NTESTS 00199 END IF 00200 END DO 00201 END DO 00202 END DO 00203 END DO 00204 * 00205 * Print a summary of the results. 00206 * 00207 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS ) 00208 * 00209 9999 FORMAT( ' M=', I5, ', N=', I5, ', NB=', I4,' L=', I4, 00210 $ ' test(', I2, ')=', G12.5 ) 00211 RETURN 00212 * 00213 * End of DCHKQRTP 00214 * 00215 END