![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b DERRVX 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 DERRVX( PATH, NUNIT ) 00012 * 00013 * .. Scalar Arguments .. 00014 * CHARACTER*3 PATH 00015 * INTEGER NUNIT 00016 * .. 00017 * 00018 * 00019 *> \par Purpose: 00020 * ============= 00021 *> 00022 *> \verbatim 00023 *> 00024 *> DERRVX tests the error exits for the DOUBLE PRECISION driver routines 00025 *> for solving linear systems of equations. 00026 *> \endverbatim 00027 * 00028 * Arguments: 00029 * ========== 00030 * 00031 *> \param[in] PATH 00032 *> \verbatim 00033 *> PATH is CHARACTER*3 00034 *> The LAPACK path name for the routines to be tested. 00035 *> \endverbatim 00036 *> 00037 *> \param[in] NUNIT 00038 *> \verbatim 00039 *> NUNIT is INTEGER 00040 *> The unit number for output. 00041 *> \endverbatim 00042 * 00043 * Authors: 00044 * ======== 00045 * 00046 *> \author Univ. of Tennessee 00047 *> \author Univ. of California Berkeley 00048 *> \author Univ. of Colorado Denver 00049 *> \author NAG Ltd. 00050 * 00051 *> \date April 2012 00052 * 00053 *> \ingroup double_lin 00054 * 00055 * ===================================================================== 00056 SUBROUTINE DERRVX( PATH, NUNIT ) 00057 * 00058 * -- LAPACK test routine (version 3.4.1) -- 00059 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00060 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00061 * April 2012 00062 * 00063 * .. Scalar Arguments .. 00064 CHARACTER*3 PATH 00065 INTEGER NUNIT 00066 * .. 00067 * 00068 * ===================================================================== 00069 * 00070 * .. Parameters .. 00071 INTEGER NMAX 00072 PARAMETER ( NMAX = 4 ) 00073 * .. 00074 * .. Local Scalars .. 00075 CHARACTER EQ 00076 CHARACTER*2 C2 00077 INTEGER I, INFO, J 00078 DOUBLE PRECISION RCOND 00079 * .. 00080 * .. Local Arrays .. 00081 INTEGER IP( NMAX ), IW( NMAX ) 00082 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00083 $ C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 00084 $ W( 2*NMAX ), X( NMAX ) 00085 * .. 00086 * .. External Functions .. 00087 LOGICAL LSAMEN 00088 EXTERNAL LSAMEN 00089 * .. 00090 * .. External Subroutines .. 00091 EXTERNAL CHKXER, DGBSV, DGBSVX, DGESV, DGESVX, DGTSV, 00092 $ DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV, 00093 $ DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV, 00094 $ DSYSVX 00095 * .. 00096 * .. Scalars in Common .. 00097 LOGICAL LERR, OK 00098 CHARACTER*32 SRNAMT 00099 INTEGER INFOT, NOUT 00100 * .. 00101 * .. Common blocks .. 00102 COMMON / INFOC / INFOT, NOUT, OK, LERR 00103 COMMON / SRNAMC / SRNAMT 00104 * .. 00105 * .. Intrinsic Functions .. 00106 INTRINSIC DBLE 00107 * .. 00108 * .. Executable Statements .. 00109 * 00110 NOUT = NUNIT 00111 WRITE( NOUT, FMT = * ) 00112 C2 = PATH( 2: 3 ) 00113 * 00114 * Set the variables to innocuous values. 00115 * 00116 DO 20 J = 1, NMAX 00117 DO 10 I = 1, NMAX 00118 A( I, J ) = 1.D0 / DBLE( I+J ) 00119 AF( I, J ) = 1.D0 / DBLE( I+J ) 00120 10 CONTINUE 00121 B( J ) = 0.D0 00122 R1( J ) = 0.D0 00123 R2( J ) = 0.D0 00124 W( J ) = 0.D0 00125 X( J ) = 0.D0 00126 C( J ) = 0.D0 00127 R( J ) = 0.D0 00128 IP( J ) = J 00129 20 CONTINUE 00130 EQ = ' ' 00131 OK = .TRUE. 00132 * 00133 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 00134 * 00135 * DGESV 00136 * 00137 SRNAMT = 'DGESV ' 00138 INFOT = 1 00139 CALL DGESV( -1, 0, A, 1, IP, B, 1, INFO ) 00140 CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK ) 00141 INFOT = 2 00142 CALL DGESV( 0, -1, A, 1, IP, B, 1, INFO ) 00143 CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK ) 00144 INFOT = 4 00145 CALL DGESV( 2, 1, A, 1, IP, B, 2, INFO ) 00146 CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK ) 00147 INFOT = 7 00148 CALL DGESV( 2, 1, A, 2, IP, B, 1, INFO ) 00149 CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK ) 00150 * 00151 * DGESVX 00152 * 00153 SRNAMT = 'DGESVX' 00154 INFOT = 1 00155 CALL DGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00156 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00157 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00158 INFOT = 2 00159 CALL DGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00160 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00161 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00162 INFOT = 3 00163 CALL DGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00164 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00165 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00166 INFOT = 4 00167 CALL DGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00168 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00169 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00170 INFOT = 6 00171 CALL DGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2, 00172 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 00173 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00174 INFOT = 8 00175 CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2, 00176 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 00177 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00178 INFOT = 10 00179 EQ = '/' 00180 CALL DGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00181 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00182 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00183 INFOT = 11 00184 EQ = 'R' 00185 CALL DGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00186 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00187 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00188 INFOT = 12 00189 EQ = 'C' 00190 CALL DGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 00191 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00192 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00193 INFOT = 14 00194 CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1, 00195 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 00196 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00197 INFOT = 16 00198 CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2, 00199 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 00200 CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK ) 00201 * 00202 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 00203 * 00204 * DGBSV 00205 * 00206 SRNAMT = 'DGBSV ' 00207 INFOT = 1 00208 CALL DGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO ) 00209 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00210 INFOT = 2 00211 CALL DGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO ) 00212 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00213 INFOT = 3 00214 CALL DGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO ) 00215 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00216 INFOT = 4 00217 CALL DGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO ) 00218 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00219 INFOT = 6 00220 CALL DGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO ) 00221 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00222 INFOT = 9 00223 CALL DGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO ) 00224 CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK ) 00225 * 00226 * DGBSVX 00227 * 00228 SRNAMT = 'DGBSVX' 00229 INFOT = 1 00230 CALL DGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00231 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00232 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00233 INFOT = 2 00234 CALL DGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00235 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00236 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00237 INFOT = 3 00238 CALL DGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00239 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00240 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00241 INFOT = 4 00242 CALL DGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00243 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00244 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00245 INFOT = 5 00246 CALL DGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C, 00247 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00248 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00249 INFOT = 6 00250 CALL DGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C, 00251 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00252 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00253 INFOT = 8 00254 CALL DGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C, 00255 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00256 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00257 INFOT = 10 00258 CALL DGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C, 00259 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00260 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00261 INFOT = 12 00262 EQ = '/' 00263 CALL DGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00264 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00265 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00266 INFOT = 13 00267 EQ = 'R' 00268 CALL DGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00269 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00270 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00271 INFOT = 14 00272 EQ = 'C' 00273 CALL DGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00274 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00275 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00276 INFOT = 16 00277 CALL DGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00278 $ B, 1, X, 2, RCOND, R1, R2, W, IW, INFO ) 00279 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00280 INFOT = 18 00281 CALL DGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 00282 $ B, 2, X, 1, RCOND, R1, R2, W, IW, INFO ) 00283 CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK ) 00284 * 00285 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN 00286 * 00287 * DGTSV 00288 * 00289 SRNAMT = 'DGTSV ' 00290 INFOT = 1 00291 CALL DGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 00292 $ INFO ) 00293 CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK ) 00294 INFOT = 2 00295 CALL DGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 00296 $ INFO ) 00297 CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK ) 00298 INFOT = 7 00299 CALL DGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO ) 00300 CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK ) 00301 * 00302 * DGTSVX 00303 * 00304 SRNAMT = 'DGTSVX' 00305 INFOT = 1 00306 CALL DGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00307 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00308 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00309 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00310 INFOT = 2 00311 CALL DGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00312 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00313 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00314 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00315 INFOT = 3 00316 CALL DGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00317 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00318 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00319 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00320 INFOT = 4 00321 CALL DGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00322 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00323 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 00324 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00325 INFOT = 14 00326 CALL DGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00327 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00328 $ IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO ) 00329 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00330 INFOT = 16 00331 CALL DGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 00332 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 00333 $ IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO ) 00334 CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK ) 00335 * 00336 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN 00337 * 00338 * DPOSV 00339 * 00340 SRNAMT = 'DPOSV ' 00341 INFOT = 1 00342 CALL DPOSV( '/', 0, 0, A, 1, B, 1, INFO ) 00343 CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK ) 00344 INFOT = 2 00345 CALL DPOSV( 'U', -1, 0, A, 1, B, 1, INFO ) 00346 CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK ) 00347 INFOT = 3 00348 CALL DPOSV( 'U', 0, -1, A, 1, B, 1, INFO ) 00349 CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK ) 00350 INFOT = 5 00351 CALL DPOSV( 'U', 2, 0, A, 1, B, 2, INFO ) 00352 CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK ) 00353 INFOT = 7 00354 CALL DPOSV( 'U', 2, 0, A, 2, B, 1, INFO ) 00355 CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK ) 00356 * 00357 * DPOSVX 00358 * 00359 SRNAMT = 'DPOSVX' 00360 INFOT = 1 00361 CALL DPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00362 $ RCOND, R1, R2, W, IW, INFO ) 00363 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00364 INFOT = 2 00365 CALL DPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00366 $ RCOND, R1, R2, W, IW, INFO ) 00367 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00368 INFOT = 3 00369 CALL DPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00370 $ RCOND, R1, R2, W, IW, INFO ) 00371 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00372 INFOT = 4 00373 CALL DPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00374 $ RCOND, R1, R2, W, IW, INFO ) 00375 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00376 INFOT = 6 00377 CALL DPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 00378 $ RCOND, R1, R2, W, IW, INFO ) 00379 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00380 INFOT = 8 00381 CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 00382 $ RCOND, R1, R2, W, IW, INFO ) 00383 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00384 INFOT = 9 00385 EQ = '/' 00386 CALL DPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00387 $ RCOND, R1, R2, W, IW, INFO ) 00388 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00389 INFOT = 10 00390 EQ = 'Y' 00391 CALL DPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00392 $ RCOND, R1, R2, W, IW, INFO ) 00393 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00394 INFOT = 12 00395 CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2, 00396 $ RCOND, R1, R2, W, IW, INFO ) 00397 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00398 INFOT = 14 00399 CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1, 00400 $ RCOND, R1, R2, W, IW, INFO ) 00401 CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK ) 00402 * 00403 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 00404 * 00405 * DPPSV 00406 * 00407 SRNAMT = 'DPPSV ' 00408 INFOT = 1 00409 CALL DPPSV( '/', 0, 0, A, B, 1, INFO ) 00410 CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK ) 00411 INFOT = 2 00412 CALL DPPSV( 'U', -1, 0, A, B, 1, INFO ) 00413 CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK ) 00414 INFOT = 3 00415 CALL DPPSV( 'U', 0, -1, A, B, 1, INFO ) 00416 CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK ) 00417 INFOT = 6 00418 CALL DPPSV( 'U', 2, 0, A, B, 1, INFO ) 00419 CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK ) 00420 * 00421 * DPPSVX 00422 * 00423 SRNAMT = 'DPPSVX' 00424 INFOT = 1 00425 CALL DPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00426 $ R1, R2, W, IW, INFO ) 00427 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00428 INFOT = 2 00429 CALL DPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00430 $ R1, R2, W, IW, INFO ) 00431 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00432 INFOT = 3 00433 CALL DPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00434 $ R1, R2, W, IW, INFO ) 00435 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00436 INFOT = 4 00437 CALL DPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND, 00438 $ R1, R2, W, IW, INFO ) 00439 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00440 INFOT = 7 00441 EQ = '/' 00442 CALL DPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00443 $ R1, R2, W, IW, INFO ) 00444 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00445 INFOT = 8 00446 EQ = 'Y' 00447 CALL DPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00448 $ R1, R2, W, IW, INFO ) 00449 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00450 INFOT = 10 00451 CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND, 00452 $ R1, R2, W, IW, INFO ) 00453 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00454 INFOT = 12 00455 CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND, 00456 $ R1, R2, W, IW, INFO ) 00457 CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK ) 00458 * 00459 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 00460 * 00461 * DPBSV 00462 * 00463 SRNAMT = 'DPBSV ' 00464 INFOT = 1 00465 CALL DPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO ) 00466 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00467 INFOT = 2 00468 CALL DPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 00469 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00470 INFOT = 3 00471 CALL DPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 00472 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00473 INFOT = 4 00474 CALL DPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 00475 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00476 INFOT = 6 00477 CALL DPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO ) 00478 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00479 INFOT = 8 00480 CALL DPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO ) 00481 CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK ) 00482 * 00483 * DPBSVX 00484 * 00485 SRNAMT = 'DPBSVX' 00486 INFOT = 1 00487 CALL DPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00488 $ RCOND, R1, R2, W, IW, INFO ) 00489 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00490 INFOT = 2 00491 CALL DPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00492 $ RCOND, R1, R2, W, IW, INFO ) 00493 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00494 INFOT = 3 00495 CALL DPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 00496 $ 1, RCOND, R1, R2, W, IW, INFO ) 00497 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00498 INFOT = 4 00499 CALL DPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 00500 $ 1, RCOND, R1, R2, W, IW, INFO ) 00501 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00502 INFOT = 5 00503 CALL DPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 00504 $ 1, RCOND, R1, R2, W, IW, INFO ) 00505 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00506 INFOT = 7 00507 CALL DPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 00508 $ RCOND, R1, R2, W, IW, INFO ) 00509 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00510 INFOT = 9 00511 CALL DPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 00512 $ RCOND, R1, R2, W, IW, INFO ) 00513 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00514 INFOT = 10 00515 EQ = '/' 00516 CALL DPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00517 $ RCOND, R1, R2, W, IW, INFO ) 00518 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00519 INFOT = 11 00520 EQ = 'Y' 00521 CALL DPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00522 $ RCOND, R1, R2, W, IW, INFO ) 00523 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00524 INFOT = 13 00525 CALL DPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2, 00526 $ RCOND, R1, R2, W, IW, INFO ) 00527 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00528 INFOT = 15 00529 CALL DPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1, 00530 $ RCOND, R1, R2, W, IW, INFO ) 00531 CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK ) 00532 * 00533 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN 00534 * 00535 * DPTSV 00536 * 00537 SRNAMT = 'DPTSV ' 00538 INFOT = 1 00539 CALL DPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00540 CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK ) 00541 INFOT = 2 00542 CALL DPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00543 CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK ) 00544 INFOT = 6 00545 CALL DPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00546 CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK ) 00547 * 00548 * DPTSVX 00549 * 00550 SRNAMT = 'DPTSVX' 00551 INFOT = 1 00552 CALL DPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 00553 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 00554 CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK ) 00555 INFOT = 2 00556 CALL DPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 00557 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 00558 CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK ) 00559 INFOT = 3 00560 CALL DPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 00561 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 00562 CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK ) 00563 INFOT = 9 00564 CALL DPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 00565 $ AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO ) 00566 CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK ) 00567 INFOT = 11 00568 CALL DPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 00569 $ AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO ) 00570 CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK ) 00571 * 00572 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN 00573 * 00574 * DSYSV 00575 * 00576 SRNAMT = 'DSYSV ' 00577 INFOT = 1 00578 CALL DSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 00579 CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK ) 00580 INFOT = 2 00581 CALL DSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 00582 CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK ) 00583 INFOT = 3 00584 CALL DSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 00585 CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK ) 00586 INFOT = 8 00587 CALL DSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 00588 CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK ) 00589 * 00590 * DSYSVX 00591 * 00592 SRNAMT = 'DSYSVX' 00593 INFOT = 1 00594 CALL DSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00595 $ RCOND, R1, R2, W, 1, IW, INFO ) 00596 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00597 INFOT = 2 00598 CALL DSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00599 $ RCOND, R1, R2, W, 1, IW, INFO ) 00600 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00601 INFOT = 3 00602 CALL DSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00603 $ RCOND, R1, R2, W, 1, IW, INFO ) 00604 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00605 INFOT = 4 00606 CALL DSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 00607 $ RCOND, R1, R2, W, 1, IW, INFO ) 00608 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00609 INFOT = 6 00610 CALL DSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 00611 $ RCOND, R1, R2, W, 4, IW, INFO ) 00612 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00613 INFOT = 8 00614 CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 00615 $ RCOND, R1, R2, W, 4, IW, INFO ) 00616 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00617 INFOT = 11 00618 CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 00619 $ RCOND, R1, R2, W, 4, IW, INFO ) 00620 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00621 INFOT = 13 00622 CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 00623 $ RCOND, R1, R2, W, 4, IW, INFO ) 00624 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00625 INFOT = 18 00626 CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 00627 $ RCOND, R1, R2, W, 3, IW, INFO ) 00628 CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK ) 00629 * 00630 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 00631 * 00632 * DSPSV 00633 * 00634 SRNAMT = 'DSPSV ' 00635 INFOT = 1 00636 CALL DSPSV( '/', 0, 0, A, IP, B, 1, INFO ) 00637 CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK ) 00638 INFOT = 2 00639 CALL DSPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 00640 CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK ) 00641 INFOT = 3 00642 CALL DSPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 00643 CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK ) 00644 INFOT = 7 00645 CALL DSPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 00646 CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK ) 00647 * 00648 * DSPSVX 00649 * 00650 SRNAMT = 'DSPSVX' 00651 INFOT = 1 00652 CALL DSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00653 $ R2, W, IW, INFO ) 00654 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00655 INFOT = 2 00656 CALL DSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00657 $ R2, W, IW, INFO ) 00658 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00659 INFOT = 3 00660 CALL DSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00661 $ R2, W, IW, INFO ) 00662 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00663 INFOT = 4 00664 CALL DSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 00665 $ R2, W, IW, INFO ) 00666 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00667 INFOT = 9 00668 CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 00669 $ R2, W, IW, INFO ) 00670 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00671 INFOT = 11 00672 CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 00673 $ R2, W, IW, INFO ) 00674 CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK ) 00675 END IF 00676 * 00677 * Print a summary line. 00678 * 00679 IF( OK ) THEN 00680 WRITE( NOUT, FMT = 9999 )PATH 00681 ELSE 00682 WRITE( NOUT, FMT = 9998 )PATH 00683 END IF 00684 * 00685 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' ) 00686 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ', 00687 $ 'exits ***' ) 00688 * 00689 RETURN 00690 * 00691 * End of DERRVX 00692 * 00693 END