1*> \brief \b SERRVX 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE SERRVX( PATH, NUNIT ) 12* 13* .. Scalar Arguments .. 14* CHARACTER*3 PATH 15* INTEGER NUNIT 16* .. 17* 18* 19*> \par Purpose: 20* ============= 21*> 22*> \verbatim 23*> 24*> SERRVX tests the error exits for the REAL driver routines 25*> for solving linear systems of equations. 26*> \endverbatim 27* 28* Arguments: 29* ========== 30* 31*> \param[in] PATH 32*> \verbatim 33*> PATH is CHARACTER*3 34*> The LAPACK path name for the routines to be tested. 35*> \endverbatim 36*> 37*> \param[in] NUNIT 38*> \verbatim 39*> NUNIT is INTEGER 40*> The unit number for output. 41*> \endverbatim 42* 43* Authors: 44* ======== 45* 46*> \author Univ. of Tennessee 47*> \author Univ. of California Berkeley 48*> \author Univ. of Colorado Denver 49*> \author NAG Ltd. 50* 51*> \ingroup single_lin 52* 53* ===================================================================== 54 SUBROUTINE SERRVX( PATH, NUNIT ) 55* 56* -- LAPACK test routine -- 57* -- LAPACK is a software package provided by Univ. of Tennessee, -- 58* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 59* 60* .. Scalar Arguments .. 61 CHARACTER*3 PATH 62 INTEGER NUNIT 63* .. 64* 65* ===================================================================== 66* 67* .. Parameters .. 68 INTEGER NMAX 69 PARAMETER ( NMAX = 4 ) 70* .. 71* .. Local Scalars .. 72 CHARACTER EQ 73 CHARACTER*2 C2 74 INTEGER I, INFO, J 75 REAL RCOND 76* .. 77* .. Local Arrays .. 78 INTEGER IP( NMAX ), IW( NMAX ) 79 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 80 $ C( NMAX ), E( NMAX ), R( NMAX ), R1( NMAX ), 81 $ R2( NMAX ), W( 2*NMAX ), X( NMAX ) 82* .. 83* .. External Functions .. 84 LOGICAL LSAMEN 85 EXTERNAL LSAMEN 86* .. 87* .. External Subroutines .. 88 EXTERNAL CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV, 89 $ SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV, 90 $ SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV, 91 $ SSYSV_AA, SSYSV_RK, SSYSV_ROOK, SSYSVX, 92 $ SSYSV_AA_2STAGE 93* .. 94* .. Scalars in Common .. 95 LOGICAL LERR, OK 96 CHARACTER*32 SRNAMT 97 INTEGER INFOT, NOUT 98* .. 99* .. Common blocks .. 100 COMMON / INFOC / INFOT, NOUT, OK, LERR 101 COMMON / SRNAMC / SRNAMT 102* .. 103* .. Intrinsic Functions .. 104 INTRINSIC REAL 105* .. 106* .. Executable Statements .. 107* 108 NOUT = NUNIT 109 WRITE( NOUT, FMT = * ) 110 C2 = PATH( 2: 3 ) 111* 112* Set the variables to innocuous values. 113* 114 DO 20 J = 1, NMAX 115 DO 10 I = 1, NMAX 116 A( I, J ) = 1. / REAL( I+J ) 117 AF( I, J ) = 1. / REAL( I+J ) 118 10 CONTINUE 119 B( J ) = 0.E+0 120 E( J ) = 0.E+0 121 R1( J ) = 0.E+0 122 R2( J ) = 0.E+0 123 W( J ) = 0.E+0 124 X( J ) = 0.E+0 125 C( J ) = 0.E+0 126 R( J ) = 0.E+0 127 IP( J ) = J 128 20 CONTINUE 129 EQ = ' ' 130 OK = .TRUE. 131* 132 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 133* 134* SGESV 135* 136 SRNAMT = 'SGESV ' 137 INFOT = 1 138 CALL SGESV( -1, 0, A, 1, IP, B, 1, INFO ) 139 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 140 INFOT = 2 141 CALL SGESV( 0, -1, A, 1, IP, B, 1, INFO ) 142 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 143 INFOT = 4 144 CALL SGESV( 2, 1, A, 1, IP, B, 2, INFO ) 145 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 146 INFOT = 7 147 CALL SGESV( 2, 1, A, 2, IP, B, 1, INFO ) 148 CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK ) 149* 150* SGESVX 151* 152 SRNAMT = 'SGESVX' 153 INFOT = 1 154 CALL SGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 155 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 156 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 157 INFOT = 2 158 CALL SGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 159 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 160 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 161 INFOT = 3 162 CALL SGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 163 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 164 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 165 INFOT = 4 166 CALL SGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1, 167 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 168 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 169 INFOT = 6 170 CALL SGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2, 171 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 172 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 173 INFOT = 8 174 CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2, 175 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 176 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 177 INFOT = 10 178 EQ = '/' 179 CALL SGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 180 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 181 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 182 INFOT = 11 183 EQ = 'R' 184 CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 185 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 186 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 187 INFOT = 12 188 EQ = 'C' 189 CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 190 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 191 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 192 INFOT = 14 193 CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1, 194 $ X, 2, RCOND, R1, R2, W, IW, INFO ) 195 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 196 INFOT = 16 197 CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2, 198 $ X, 1, RCOND, R1, R2, W, IW, INFO ) 199 CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK ) 200* 201 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 202* 203* SGBSV 204* 205 SRNAMT = 'SGBSV ' 206 INFOT = 1 207 CALL SGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO ) 208 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 209 INFOT = 2 210 CALL SGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO ) 211 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 212 INFOT = 3 213 CALL SGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO ) 214 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 215 INFOT = 4 216 CALL SGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO ) 217 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 218 INFOT = 6 219 CALL SGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO ) 220 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 221 INFOT = 9 222 CALL SGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO ) 223 CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK ) 224* 225* SGBSVX 226* 227 SRNAMT = 'SGBSVX' 228 INFOT = 1 229 CALL SGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 230 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 231 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 232 INFOT = 2 233 CALL SGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 234 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 235 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 236 INFOT = 3 237 CALL SGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 238 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 239 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 240 INFOT = 4 241 CALL SGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 242 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 243 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 244 INFOT = 5 245 CALL SGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C, 246 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 247 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 248 INFOT = 6 249 CALL SGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C, 250 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 251 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 252 INFOT = 8 253 CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C, 254 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 255 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 256 INFOT = 10 257 CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C, 258 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 259 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 260 INFOT = 12 261 EQ = '/' 262 CALL SGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 263 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 264 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 265 INFOT = 13 266 EQ = 'R' 267 CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 268 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 269 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 270 INFOT = 14 271 EQ = 'C' 272 CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 273 $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 274 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 275 INFOT = 16 276 CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 277 $ B, 1, X, 2, RCOND, R1, R2, W, IW, INFO ) 278 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 279 INFOT = 18 280 CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 281 $ B, 2, X, 1, RCOND, R1, R2, W, IW, INFO ) 282 CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK ) 283* 284 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN 285* 286* SGTSV 287* 288 SRNAMT = 'SGTSV ' 289 INFOT = 1 290 CALL SGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 291 $ INFO ) 292 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 293 INFOT = 2 294 CALL SGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 295 $ INFO ) 296 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 297 INFOT = 7 298 CALL SGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO ) 299 CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK ) 300* 301* SGTSVX 302* 303 SRNAMT = 'SGTSVX' 304 INFOT = 1 305 CALL SGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 306 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 307 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 308 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 309 INFOT = 2 310 CALL SGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 311 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 312 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 313 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 314 INFOT = 3 315 CALL SGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 316 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 317 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 318 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 319 INFOT = 4 320 CALL SGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 321 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 322 $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO ) 323 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 324 INFOT = 14 325 CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 326 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 327 $ IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO ) 328 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 329 INFOT = 16 330 CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 331 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 332 $ IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO ) 333 CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK ) 334* 335 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN 336* 337* SPOSV 338* 339 SRNAMT = 'SPOSV ' 340 INFOT = 1 341 CALL SPOSV( '/', 0, 0, A, 1, B, 1, INFO ) 342 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 343 INFOT = 2 344 CALL SPOSV( 'U', -1, 0, A, 1, B, 1, INFO ) 345 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 346 INFOT = 3 347 CALL SPOSV( 'U', 0, -1, A, 1, B, 1, INFO ) 348 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 349 INFOT = 5 350 CALL SPOSV( 'U', 2, 0, A, 1, B, 2, INFO ) 351 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 352 INFOT = 7 353 CALL SPOSV( 'U', 2, 0, A, 2, B, 1, INFO ) 354 CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK ) 355* 356* SPOSVX 357* 358 SRNAMT = 'SPOSVX' 359 INFOT = 1 360 CALL SPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 361 $ RCOND, R1, R2, W, IW, INFO ) 362 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 363 INFOT = 2 364 CALL SPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 365 $ RCOND, R1, R2, W, IW, INFO ) 366 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 367 INFOT = 3 368 CALL SPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 369 $ RCOND, R1, R2, W, IW, INFO ) 370 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 371 INFOT = 4 372 CALL SPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1, 373 $ RCOND, R1, R2, W, IW, INFO ) 374 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 375 INFOT = 6 376 CALL SPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 377 $ RCOND, R1, R2, W, IW, INFO ) 378 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 379 INFOT = 8 380 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 381 $ RCOND, R1, R2, W, IW, INFO ) 382 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 383 INFOT = 9 384 EQ = '/' 385 CALL SPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 386 $ RCOND, R1, R2, W, IW, INFO ) 387 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 388 INFOT = 10 389 EQ = 'Y' 390 CALL SPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 391 $ RCOND, R1, R2, W, IW, INFO ) 392 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 393 INFOT = 12 394 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2, 395 $ RCOND, R1, R2, W, IW, INFO ) 396 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 397 INFOT = 14 398 CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1, 399 $ RCOND, R1, R2, W, IW, INFO ) 400 CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK ) 401* 402 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 403* 404* SPPSV 405* 406 SRNAMT = 'SPPSV ' 407 INFOT = 1 408 CALL SPPSV( '/', 0, 0, A, B, 1, INFO ) 409 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 410 INFOT = 2 411 CALL SPPSV( 'U', -1, 0, A, B, 1, INFO ) 412 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 413 INFOT = 3 414 CALL SPPSV( 'U', 0, -1, A, B, 1, INFO ) 415 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 416 INFOT = 6 417 CALL SPPSV( 'U', 2, 0, A, B, 1, INFO ) 418 CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK ) 419* 420* SPPSVX 421* 422 SRNAMT = 'SPPSVX' 423 INFOT = 1 424 CALL SPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 425 $ R1, R2, W, IW, INFO ) 426 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 427 INFOT = 2 428 CALL SPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 429 $ R1, R2, W, IW, INFO ) 430 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 431 INFOT = 3 432 CALL SPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 433 $ R1, R2, W, IW, INFO ) 434 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 435 INFOT = 4 436 CALL SPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND, 437 $ R1, R2, W, IW, INFO ) 438 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 439 INFOT = 7 440 EQ = '/' 441 CALL SPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 442 $ R1, R2, W, IW, INFO ) 443 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 444 INFOT = 8 445 EQ = 'Y' 446 CALL SPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 447 $ R1, R2, W, IW, INFO ) 448 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 449 INFOT = 10 450 CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND, 451 $ R1, R2, W, IW, INFO ) 452 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 453 INFOT = 12 454 CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND, 455 $ R1, R2, W, IW, INFO ) 456 CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK ) 457* 458 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 459* 460* SPBSV 461* 462 SRNAMT = 'SPBSV ' 463 INFOT = 1 464 CALL SPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO ) 465 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 466 INFOT = 2 467 CALL SPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 468 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 469 INFOT = 3 470 CALL SPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 471 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 472 INFOT = 4 473 CALL SPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 474 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 475 INFOT = 6 476 CALL SPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO ) 477 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 478 INFOT = 8 479 CALL SPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO ) 480 CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK ) 481* 482* SPBSVX 483* 484 SRNAMT = 'SPBSVX' 485 INFOT = 1 486 CALL SPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 487 $ RCOND, R1, R2, W, IW, INFO ) 488 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 489 INFOT = 2 490 CALL SPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 491 $ RCOND, R1, R2, W, IW, INFO ) 492 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 493 INFOT = 3 494 CALL SPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 495 $ 1, RCOND, R1, R2, W, IW, INFO ) 496 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 497 INFOT = 4 498 CALL SPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 499 $ 1, RCOND, R1, R2, W, IW, INFO ) 500 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 501 INFOT = 5 502 CALL SPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 503 $ 1, RCOND, R1, R2, W, IW, INFO ) 504 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 505 INFOT = 7 506 CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 507 $ RCOND, R1, R2, W, IW, INFO ) 508 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 509 INFOT = 9 510 CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 511 $ RCOND, R1, R2, W, IW, INFO ) 512 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 513 INFOT = 10 514 EQ = '/' 515 CALL SPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 516 $ RCOND, R1, R2, W, IW, INFO ) 517 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 518 INFOT = 11 519 EQ = 'Y' 520 CALL SPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 521 $ RCOND, R1, R2, W, IW, INFO ) 522 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 523 INFOT = 13 524 CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2, 525 $ RCOND, R1, R2, W, IW, INFO ) 526 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 527 INFOT = 15 528 CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1, 529 $ RCOND, R1, R2, W, IW, INFO ) 530 CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK ) 531* 532 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN 533* 534* SPTSV 535* 536 SRNAMT = 'SPTSV ' 537 INFOT = 1 538 CALL SPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 539 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 540 INFOT = 2 541 CALL SPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 542 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 543 INFOT = 6 544 CALL SPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO ) 545 CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK ) 546* 547* SPTSVX 548* 549 SRNAMT = 'SPTSVX' 550 INFOT = 1 551 CALL SPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 552 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 553 CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK ) 554 INFOT = 2 555 CALL SPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 556 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 557 CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK ) 558 INFOT = 3 559 CALL SPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 560 $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO ) 561 CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK ) 562 INFOT = 9 563 CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 564 $ AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO ) 565 CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK ) 566 INFOT = 11 567 CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ), 568 $ AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO ) 569 CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK ) 570* 571 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN 572* 573* SSYSV 574* 575 SRNAMT = 'SSYSV ' 576 INFOT = 1 577 CALL SSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 578 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 579 INFOT = 2 580 CALL SSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 581 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 582 INFOT = 3 583 CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 584 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 585 INFOT = 8 586 CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 587 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 588 INFOT = 10 589 CALL SSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 590 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 591 INFOT = 10 592 CALL SSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 593 CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK ) 594* 595* SSYSVX 596* 597 SRNAMT = 'SSYSVX' 598 INFOT = 1 599 CALL SSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 600 $ RCOND, R1, R2, W, 1, IW, INFO ) 601 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 602 INFOT = 2 603 CALL SSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 604 $ RCOND, R1, R2, W, 1, IW, INFO ) 605 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 606 INFOT = 3 607 CALL SSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 608 $ RCOND, R1, R2, W, 1, IW, INFO ) 609 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 610 INFOT = 4 611 CALL SSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 612 $ RCOND, R1, R2, W, 1, IW, INFO ) 613 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 614 INFOT = 6 615 CALL SSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 616 $ RCOND, R1, R2, W, 4, IW, INFO ) 617 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 618 INFOT = 8 619 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 620 $ RCOND, R1, R2, W, 4, IW, INFO ) 621 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 622 INFOT = 11 623 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 624 $ RCOND, R1, R2, W, 4, IW, INFO ) 625 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 626 INFOT = 13 627 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 628 $ RCOND, R1, R2, W, 4, IW, INFO ) 629 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 630 INFOT = 18 631 CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 632 $ RCOND, R1, R2, W, 3, IW, INFO ) 633 CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK ) 634* 635* 636 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 637* 638* SSYSV_ROOK 639* 640 SRNAMT = 'SSYSV_ROOK' 641 INFOT = 1 642 CALL SSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 643 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 644 INFOT = 2 645 CALL SSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 646 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 647 INFOT = 3 648 CALL SSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 649 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 650 INFOT = 8 651 CALL SSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 652 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 653 INFOT = 10 654 CALL SSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 655 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 656 INFOT = 10 657 CALL SSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 658 CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK ) 659* 660 ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN 661* 662* SSYSV_RK 663* 664* Test error exits of the driver that uses factorization 665* of a symmetric indefinite matrix with rook 666* (bounded Bunch-Kaufman) pivoting with the new storage 667* format for factors L ( or U) and D. 668* 669* L (or U) is stored in A, diagonal of D is stored on the 670* diagonal of A, subdiagonal of D is stored in a separate array E. 671* 672 SRNAMT = 'SSYSV_RK' 673 INFOT = 1 674 CALL SSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 675 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 676 INFOT = 2 677 CALL SSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 678 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 679 INFOT = 3 680 CALL SSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) 681 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 682 INFOT = 5 683 CALL SSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) 684 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 685 INFOT = 9 686 CALL SSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) 687 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 688 INFOT = 11 689 CALL SSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) 690 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 691 INFOT = 11 692 CALL SSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) 693 CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK ) 694* 695 ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN 696* 697* SSYSV_AA 698* 699 SRNAMT = 'SSYSV_AA' 700 INFOT = 1 701 CALL SSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 702 CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) 703 INFOT = 2 704 CALL SSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 705 CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) 706 INFOT = 3 707 CALL SSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 708 CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) 709 INFOT = 8 710 CALL SSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 711 CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK ) 712* 713 ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN 714* 715* DSYSV_AASEN_2STAGE 716* 717 SRNAMT = 'SSYSV_AA_2STAGE' 718 INFOT = 1 719 CALL SSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1, 720 $ W, 1, INFO ) 721 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 722 INFOT = 2 723 CALL SSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1, 724 $ W, 1, INFO ) 725 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 726 INFOT = 3 727 CALL SSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1, 728 $ W, 1, INFO ) 729 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 730 INFOT = 5 731 CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, 732 $ W, 1, INFO ) 733 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 734 INFOT = 11 735 CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, 736 $ W, 1, INFO ) 737 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 738 INFOT = 7 739 CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, 740 $ W, 1, INFO ) 741 CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 742* 743 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 744* 745* SSPSV 746* 747 SRNAMT = 'SSPSV ' 748 INFOT = 1 749 CALL SSPSV( '/', 0, 0, A, IP, B, 1, INFO ) 750 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 751 INFOT = 2 752 CALL SSPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 753 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 754 INFOT = 3 755 CALL SSPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 756 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 757 INFOT = 7 758 CALL SSPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 759 CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK ) 760* 761* SSPSVX 762* 763 SRNAMT = 'SSPSVX' 764 INFOT = 1 765 CALL SSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 766 $ R2, W, IW, INFO ) 767 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 768 INFOT = 2 769 CALL SSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 770 $ R2, W, IW, INFO ) 771 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 772 INFOT = 3 773 CALL SSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 774 $ R2, W, IW, INFO ) 775 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 776 INFOT = 4 777 CALL SSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 778 $ R2, W, IW, INFO ) 779 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 780 INFOT = 9 781 CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 782 $ R2, W, IW, INFO ) 783 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 784 INFOT = 11 785 CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 786 $ R2, W, IW, INFO ) 787 CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK ) 788 END IF 789* 790* Print a summary line. 791* 792 IF( OK ) THEN 793 WRITE( NOUT, FMT = 9999 )PATH 794 ELSE 795 WRITE( NOUT, FMT = 9998 )PATH 796 END IF 797* 798 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' ) 799 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ', 800 $ 'exits ***' ) 801* 802 RETURN 803* 804* End of SERRVX 805* 806 END 807