LAPACK 3.3.0
|
00001 SUBROUTINE SERRVX( 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 * SERRVX tests the error exits for the REAL 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 REAL RCOND 00038 * .. 00039 * .. Local Arrays .. 00040 INTEGER IP( NMAX ), IW( NMAX ) 00041 REAL 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, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV, 00051 $ SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV, 00052 $ SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV, 00053 $ SSYSVX 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 REAL 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. / REAL( I+J ) 00078 AF( I, J ) = 1. / REAL( I+J ) 00079 10 CONTINUE 00080 B( J ) = 0. 00081 R1( J ) = 0. 00082 R2( J ) = 0. 00083 W( J ) = 0. 00084 X( J ) = 0. 00085 C( J ) = 0. 00086 R( J ) = 0. 00087 IP( J ) = J 00088 20 CONTINUE 00089 EQ = ' ' 00090 OK = .TRUE. 00091 * 00092 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 00093 * 00094 * SGESV 00095 * 00096 SRNAMT = 'SGESV ' 00097 INFOT = 1 00098 CALL SGESV( -1, 0, A, 1, IP, B, 1, INFO ) 00099 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 00100 INFOT = 2 00101 CALL SGESV( 0, -1, A, 1, IP, B, 1, INFO ) 00102 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 00103 INFOT = 4 00104 CALL SGESV( 2, 1, A, 1, IP, B, 2, INFO ) 00105 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 00106 INFOT = 7 00107 CALL SGESV( 2, 1, A, 2, IP, B, 1, INFO ) 00108 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 00109 * 00110 * SGESVX 00111 * 00112 SRNAMT = 'SGESVX' 00113 INFOT = 1 00114 CALL SGESVX( '/', '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00117 INFOT = 2 00118 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00121 INFOT = 3 00122 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00125 INFOT = 4 00126 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00129 INFOT = 6 00130 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00133 INFOT = 8 00134 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00137 INFOT = 10 00138 EQ = '/' 00139 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00142 INFOT = 11 00143 EQ = 'R' 00144 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00147 INFOT = 12 00148 EQ = 'C' 00149 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00152 INFOT = 14 00153 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00156 INFOT = 16 00157 CALL SGESVX( '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( 'SGESVX', INFOT, NOUT, LERR, OK ) 00160 * 00161 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 00162 * 00163 * SGBSV 00164 * 00165 SRNAMT = 'SGBSV ' 00166 INFOT = 1 00167 CALL SGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO ) 00168 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00169 INFOT = 2 00170 CALL SGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO ) 00171 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00172 INFOT = 3 00173 CALL SGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO ) 00174 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00175 INFOT = 4 00176 CALL SGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO ) 00177 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00178 INFOT = 6 00179 CALL SGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO ) 00180 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00181 INFOT = 9 00182 CALL SGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO ) 00183 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 00184 * 00185 * SGBSVX 00186 * 00187 SRNAMT = 'SGBSVX' 00188 INFOT = 1 00189 CALL SGBSVX( '/', '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00192 INFOT = 2 00193 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00196 INFOT = 3 00197 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00200 INFOT = 4 00201 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00204 INFOT = 5 00205 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00208 INFOT = 6 00209 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00212 INFOT = 8 00213 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00216 INFOT = 10 00217 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00220 INFOT = 12 00221 EQ = '/' 00222 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00225 INFOT = 13 00226 EQ = 'R' 00227 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00230 INFOT = 14 00231 EQ = 'C' 00232 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00235 INFOT = 16 00236 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00239 INFOT = 18 00240 CALL SGBSVX( '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( 'SGBSVX', INFOT, NOUT, LERR, OK ) 00243 * 00244 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN 00245 * 00246 * SGTSV 00247 * 00248 SRNAMT = 'SGTSV ' 00249 INFOT = 1 00250 CALL SGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 00251 $ INFO ) 00252 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 00253 INFOT = 2 00254 CALL SGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 00255 $ INFO ) 00256 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 00257 INFOT = 7 00258 CALL SGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO ) 00259 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 00260 * 00261 * SGTSVX 00262 * 00263 SRNAMT = 'SGTSVX' 00264 INFOT = 1 00265 CALL SGTSVX( '/', '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00269 INFOT = 2 00270 CALL SGTSVX( '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00274 INFOT = 3 00275 CALL SGTSVX( '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00279 INFOT = 4 00280 CALL SGTSVX( '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00284 INFOT = 14 00285 CALL SGTSVX( '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00289 INFOT = 16 00290 CALL SGTSVX( '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( 'SGTSVX', INFOT, NOUT, LERR, OK ) 00294 * 00295 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN 00296 * 00297 * SPOSV 00298 * 00299 SRNAMT = 'SPOSV ' 00300 INFOT = 1 00301 CALL SPOSV( '/', 0, 0, A, 1, B, 1, INFO ) 00302 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 00303 INFOT = 2 00304 CALL SPOSV( 'U', -1, 0, A, 1, B, 1, INFO ) 00305 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 00306 INFOT = 3 00307 CALL SPOSV( 'U', 0, -1, A, 1, B, 1, INFO ) 00308 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 00309 INFOT = 5 00310 CALL SPOSV( 'U', 2, 0, A, 1, B, 2, INFO ) 00311 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 00312 INFOT = 7 00313 CALL SPOSV( 'U', 2, 0, A, 2, B, 1, INFO ) 00314 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 00315 * 00316 * SPOSVX 00317 * 00318 SRNAMT = 'SPOSVX' 00319 INFOT = 1 00320 CALL SPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00321 $ RCOND, R1, R2, W, IW, INFO ) 00322 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00323 INFOT = 2 00324 CALL SPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00325 $ RCOND, R1, R2, W, IW, INFO ) 00326 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00327 INFOT = 3 00328 CALL SPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00329 $ RCOND, R1, R2, W, IW, INFO ) 00330 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00331 INFOT = 4 00332 CALL SPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00333 $ RCOND, R1, R2, W, IW, INFO ) 00334 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00335 INFOT = 6 00336 CALL SPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 00337 $ RCOND, R1, R2, W, IW, INFO ) 00338 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00339 INFOT = 8 00340 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 00341 $ RCOND, R1, R2, W, IW, INFO ) 00342 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00343 INFOT = 9 00344 EQ = '/' 00345 CALL SPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00346 $ RCOND, R1, R2, W, IW, INFO ) 00347 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00348 INFOT = 10 00349 EQ = 'Y' 00350 CALL SPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00351 $ RCOND, R1, R2, W, IW, INFO ) 00352 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00353 INFOT = 12 00354 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2, 00355 $ RCOND, R1, R2, W, IW, INFO ) 00356 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00357 INFOT = 14 00358 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1, 00359 $ RCOND, R1, R2, W, IW, INFO ) 00360 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 00361 * 00362 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 00363 * 00364 * SPPSV 00365 * 00366 SRNAMT = 'SPPSV ' 00367 INFOT = 1 00368 CALL SPPSV( '/', 0, 0, A, B, 1, INFO ) 00369 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 00370 INFOT = 2 00371 CALL SPPSV( 'U', -1, 0, A, B, 1, INFO ) 00372 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 00373 INFOT = 3 00374 CALL SPPSV( 'U', 0, -1, A, B, 1, INFO ) 00375 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 00376 INFOT = 6 00377 CALL SPPSV( 'U', 2, 0, A, B, 1, INFO ) 00378 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 00379 * 00380 * SPPSVX 00381 * 00382 SRNAMT = 'SPPSVX' 00383 INFOT = 1 00384 CALL SPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00385 $ R1, R2, W, IW, INFO ) 00386 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00387 INFOT = 2 00388 CALL SPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00389 $ R1, R2, W, IW, INFO ) 00390 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00391 INFOT = 3 00392 CALL SPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00393 $ R1, R2, W, IW, INFO ) 00394 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00395 INFOT = 4 00396 CALL SPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND, 00397 $ R1, R2, W, IW, INFO ) 00398 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00399 INFOT = 7 00400 EQ = '/' 00401 CALL SPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00402 $ R1, R2, W, IW, INFO ) 00403 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00404 INFOT = 8 00405 EQ = 'Y' 00406 CALL SPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 00407 $ R1, R2, W, IW, INFO ) 00408 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00409 INFOT = 10 00410 CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND, 00411 $ R1, R2, W, IW, INFO ) 00412 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00413 INFOT = 12 00414 CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND, 00415 $ R1, R2, W, IW, INFO ) 00416 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 00417 * 00418 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 00419 * 00420 * SPBSV 00421 * 00422 SRNAMT = 'SPBSV ' 00423 INFOT = 1 00424 CALL SPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO ) 00425 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00426 INFOT = 2 00427 CALL SPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 00428 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00429 INFOT = 3 00430 CALL SPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 00431 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00432 INFOT = 4 00433 CALL SPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 00434 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00435 INFOT = 6 00436 CALL SPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO ) 00437 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00438 INFOT = 8 00439 CALL SPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO ) 00440 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 00441 * 00442 * SPBSVX 00443 * 00444 SRNAMT = 'SPBSVX' 00445 INFOT = 1 00446 CALL SPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00447 $ RCOND, R1, R2, W, IW, INFO ) 00448 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00449 INFOT = 2 00450 CALL SPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 00451 $ RCOND, R1, R2, W, IW, INFO ) 00452 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00453 INFOT = 3 00454 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00457 INFOT = 4 00458 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00461 INFOT = 5 00462 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00465 INFOT = 7 00466 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00469 INFOT = 9 00470 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00473 INFOT = 10 00474 EQ = '/' 00475 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00478 INFOT = 11 00479 EQ = 'Y' 00480 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00483 INFOT = 13 00484 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00487 INFOT = 15 00488 CALL SPBSVX( '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( 'SPBSVX', INFOT, NOUT, LERR, OK ) 00491 * 00492 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN 00493 * 00494 * SPTSV 00495 * 00496 SRNAMT = 'SPTSV ' 00497 INFOT = 1 00498 CALL SPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00499 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 00500 INFOT = 2 00501 CALL SPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00502 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 00503 INFOT = 6 00504 CALL SPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 00505 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 00506 * 00507 * SPTSVX 00508 * 00509 SRNAMT = 'SPTSVX' 00510 INFOT = 1 00511 CALL SPTSVX( '/', 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( 'SPTSVX', INFOT, NOUT, LERR, OK ) 00514 INFOT = 2 00515 CALL SPTSVX( '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( 'SPTSVX', INFOT, NOUT, LERR, OK ) 00518 INFOT = 3 00519 CALL SPTSVX( '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( 'SPTSVX', INFOT, NOUT, LERR, OK ) 00522 INFOT = 9 00523 CALL SPTSVX( '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( 'SPTSVX', INFOT, NOUT, LERR, OK ) 00526 INFOT = 11 00527 CALL SPTSVX( '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( 'SPTSVX', INFOT, NOUT, LERR, OK ) 00530 * 00531 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN 00532 * 00533 * SSYSV 00534 * 00535 SRNAMT = 'SSYSV ' 00536 INFOT = 1 00537 CALL SSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 00538 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 00539 INFOT = 2 00540 CALL SSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 00541 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 00542 INFOT = 3 00543 CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 00544 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 00545 INFOT = 8 00546 CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 00547 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 00548 * 00549 * SSYSVX 00550 * 00551 SRNAMT = 'SSYSVX' 00552 INFOT = 1 00553 CALL SSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00554 $ RCOND, R1, R2, W, 1, IW, INFO ) 00555 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00556 INFOT = 2 00557 CALL SSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00558 $ RCOND, R1, R2, W, 1, IW, INFO ) 00559 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00560 INFOT = 3 00561 CALL SSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 00562 $ RCOND, R1, R2, W, 1, IW, INFO ) 00563 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00564 INFOT = 4 00565 CALL SSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 00566 $ RCOND, R1, R2, W, 1, IW, INFO ) 00567 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00568 INFOT = 6 00569 CALL SSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 00570 $ RCOND, R1, R2, W, 4, IW, INFO ) 00571 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00572 INFOT = 8 00573 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 00574 $ RCOND, R1, R2, W, 4, IW, INFO ) 00575 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00576 INFOT = 11 00577 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 00578 $ RCOND, R1, R2, W, 4, IW, INFO ) 00579 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00580 INFOT = 13 00581 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 00582 $ RCOND, R1, R2, W, 4, IW, INFO ) 00583 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00584 INFOT = 18 00585 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 00586 $ RCOND, R1, R2, W, 3, IW, INFO ) 00587 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 00588 * 00589 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 00590 * 00591 * SSPSV 00592 * 00593 SRNAMT = 'SSPSV ' 00594 INFOT = 1 00595 CALL SSPSV( '/', 0, 0, A, IP, B, 1, INFO ) 00596 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 00597 INFOT = 2 00598 CALL SSPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 00599 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 00600 INFOT = 3 00601 CALL SSPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 00602 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 00603 INFOT = 7 00604 CALL SSPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 00605 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 00606 * 00607 * SSPSVX 00608 * 00609 SRNAMT = 'SSPSVX' 00610 INFOT = 1 00611 CALL SSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00612 $ R2, W, IW, INFO ) 00613 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 00614 INFOT = 2 00615 CALL SSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00616 $ R2, W, IW, INFO ) 00617 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 00618 INFOT = 3 00619 CALL SSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 00620 $ R2, W, IW, INFO ) 00621 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 00622 INFOT = 4 00623 CALL SSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 00624 $ R2, W, IW, INFO ) 00625 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 00626 INFOT = 9 00627 CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 00628 $ R2, W, IW, INFO ) 00629 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 00630 INFOT = 11 00631 CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 00632 $ R2, W, IW, INFO ) 00633 CALL CHKXER( 'SSPSVX', 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 SERRVX 00651 * 00652 END