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