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