1*> \brief \b ZERRVX 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 ZERRVX( 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*> ZERRVX tests the error exits for the COMPLEX*16 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 complex16_lin 54* 55* ===================================================================== 56 SUBROUTINE ZERRVX( 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 DOUBLE PRECISION RCOND 79* .. 80* .. Local Arrays .. 81 INTEGER IP( NMAX ) 82 DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 83 $ RF( NMAX ), RW( NMAX ) 84 COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 85 $ E( NMAX ), W( 2*NMAX ), X( NMAX ) 86* .. 87* .. External Functions .. 88 LOGICAL LSAMEN 89 EXTERNAL LSAMEN 90* .. 91* .. External Subroutines .. 92 EXTERNAL CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV, 93 $ ZGTSVX, ZHESV, ZHESV_RK, ZHESV_ROOK, ZHESVX, 94 $ ZHPSV, ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX, 95 $ ZPPSV, ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX, 96 $ ZSYSV, ZSYSV_AA, ZSYSV_RK, ZSYSV_ROOK, 97 $ ZSYSVX, ZHESV_AA_2STAGE 98* .. 99* .. Scalars in Common .. 100 LOGICAL LERR, OK 101 CHARACTER*32 SRNAMT 102 INTEGER INFOT, NOUT 103* .. 104* .. Common blocks .. 105 COMMON / INFOC / INFOT, NOUT, OK, LERR 106 COMMON / SRNAMC / SRNAMT 107* .. 108* .. Intrinsic Functions .. 109 INTRINSIC DBLE, DCMPLX 110* .. 111* .. Executable Statements .. 112* 113 NOUT = NUNIT 114 WRITE( NOUT, FMT = * ) 115 C2 = PATH( 2: 3 ) 116* 117* Set the variables to innocuous values. 118* 119 DO 20 J = 1, NMAX 120 DO 10 I = 1, NMAX 121 A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ), 122 $ -1.D0 / DBLE( I+J ) ) 123 AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ), 124 $ -1.D0 / DBLE( I+J ) ) 125 10 CONTINUE 126 B( J ) = 0.D0 127 E( J ) = 0.D0 128 R1( J ) = 0.D0 129 R2( J ) = 0.D0 130 W( J ) = 0.D0 131 X( J ) = 0.D0 132 C( J ) = 0.D0 133 R( J ) = 0.D0 134 IP( J ) = J 135 20 CONTINUE 136 EQ = ' ' 137 OK = .TRUE. 138* 139 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 140* 141* ZGESV 142* 143 SRNAMT = 'ZGESV ' 144 INFOT = 1 145 CALL ZGESV( -1, 0, A, 1, IP, B, 1, INFO ) 146 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK ) 147 INFOT = 2 148 CALL ZGESV( 0, -1, A, 1, IP, B, 1, INFO ) 149 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK ) 150 INFOT = 4 151 CALL ZGESV( 2, 1, A, 1, IP, B, 2, INFO ) 152 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK ) 153 INFOT = 7 154 CALL ZGESV( 2, 1, A, 2, IP, B, 1, INFO ) 155 CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK ) 156* 157* ZGESVX 158* 159 SRNAMT = 'ZGESVX' 160 INFOT = 1 161 CALL ZGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 162 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 163 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 164 INFOT = 2 165 CALL ZGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 166 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 167 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 168 INFOT = 3 169 CALL ZGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 170 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 171 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 172 INFOT = 4 173 CALL ZGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1, 174 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 175 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 176 INFOT = 6 177 CALL ZGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2, 178 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 179 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 180 INFOT = 8 181 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2, 182 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 183 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 184 INFOT = 10 185 EQ = '/' 186 CALL ZGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 187 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 188 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 189 INFOT = 11 190 EQ = 'R' 191 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 192 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 193 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 194 INFOT = 12 195 EQ = 'C' 196 CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 197 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 198 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 199 INFOT = 14 200 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1, 201 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 202 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 203 INFOT = 16 204 CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2, 205 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 206 CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK ) 207* 208 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 209* 210* ZGBSV 211* 212 SRNAMT = 'ZGBSV ' 213 INFOT = 1 214 CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO ) 215 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 216 INFOT = 2 217 CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO ) 218 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 219 INFOT = 3 220 CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO ) 221 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 222 INFOT = 4 223 CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO ) 224 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 225 INFOT = 6 226 CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO ) 227 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 228 INFOT = 9 229 CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO ) 230 CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK ) 231* 232* ZGBSVX 233* 234 SRNAMT = 'ZGBSVX' 235 INFOT = 1 236 CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 237 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 238 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 239 INFOT = 2 240 CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 241 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 242 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 243 INFOT = 3 244 CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 245 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 246 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 247 INFOT = 4 248 CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 249 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 250 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 251 INFOT = 5 252 CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C, 253 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 254 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 255 INFOT = 6 256 CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C, 257 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 258 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 259 INFOT = 8 260 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C, 261 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 262 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 263 INFOT = 10 264 CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C, 265 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 266 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 267 INFOT = 12 268 EQ = '/' 269 CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 270 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 271 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 272 INFOT = 13 273 EQ = 'R' 274 CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 275 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 276 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 277 INFOT = 14 278 EQ = 'C' 279 CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 280 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 281 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 282 INFOT = 16 283 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 284 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO ) 285 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 286 INFOT = 18 287 CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 288 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO ) 289 CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK ) 290* 291 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN 292* 293* ZGTSV 294* 295 SRNAMT = 'ZGTSV ' 296 INFOT = 1 297 CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 298 $ INFO ) 299 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK ) 300 INFOT = 2 301 CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 302 $ INFO ) 303 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK ) 304 INFOT = 7 305 CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO ) 306 CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK ) 307* 308* ZGTSVX 309* 310 SRNAMT = 'ZGTSVX' 311 INFOT = 1 312 CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 313 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 314 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 315 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 316 INFOT = 2 317 CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 318 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 319 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 320 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 321 INFOT = 3 322 CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 323 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 324 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 325 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 326 INFOT = 4 327 CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 328 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 329 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 330 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 331 INFOT = 14 332 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 333 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 334 $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO ) 335 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 336 INFOT = 16 337 CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 338 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 339 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO ) 340 CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK ) 341* 342 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN 343* 344* ZPOSV 345* 346 SRNAMT = 'ZPOSV ' 347 INFOT = 1 348 CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO ) 349 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK ) 350 INFOT = 2 351 CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO ) 352 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK ) 353 INFOT = 3 354 CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO ) 355 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK ) 356 INFOT = 5 357 CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO ) 358 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK ) 359 INFOT = 7 360 CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO ) 361 CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK ) 362* 363* ZPOSVX 364* 365 SRNAMT = 'ZPOSVX' 366 INFOT = 1 367 CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 368 $ RCOND, R1, R2, W, RW, INFO ) 369 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 370 INFOT = 2 371 CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 372 $ RCOND, R1, R2, W, RW, INFO ) 373 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 374 INFOT = 3 375 CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 376 $ RCOND, R1, R2, W, RW, INFO ) 377 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 378 INFOT = 4 379 CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1, 380 $ RCOND, R1, R2, W, RW, INFO ) 381 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 382 INFOT = 6 383 CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 384 $ RCOND, R1, R2, W, RW, INFO ) 385 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 386 INFOT = 8 387 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 388 $ RCOND, R1, R2, W, RW, INFO ) 389 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 390 INFOT = 9 391 EQ = '/' 392 CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 393 $ RCOND, R1, R2, W, RW, INFO ) 394 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 395 INFOT = 10 396 EQ = 'Y' 397 CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 398 $ RCOND, R1, R2, W, RW, INFO ) 399 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 400 INFOT = 12 401 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2, 402 $ RCOND, R1, R2, W, RW, INFO ) 403 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 404 INFOT = 14 405 CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1, 406 $ RCOND, R1, R2, W, RW, INFO ) 407 CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK ) 408* 409 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 410* 411* ZPPSV 412* 413 SRNAMT = 'ZPPSV ' 414 INFOT = 1 415 CALL ZPPSV( '/', 0, 0, A, B, 1, INFO ) 416 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK ) 417 INFOT = 2 418 CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO ) 419 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK ) 420 INFOT = 3 421 CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO ) 422 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK ) 423 INFOT = 6 424 CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO ) 425 CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK ) 426* 427* ZPPSVX 428* 429 SRNAMT = 'ZPPSVX' 430 INFOT = 1 431 CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 432 $ R1, R2, W, RW, INFO ) 433 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 434 INFOT = 2 435 CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 436 $ R1, R2, W, RW, INFO ) 437 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 438 INFOT = 3 439 CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 440 $ R1, R2, W, RW, INFO ) 441 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 442 INFOT = 4 443 CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND, 444 $ R1, R2, W, RW, INFO ) 445 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 446 INFOT = 7 447 EQ = '/' 448 CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 449 $ R1, R2, W, RW, INFO ) 450 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 451 INFOT = 8 452 EQ = 'Y' 453 CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 454 $ R1, R2, W, RW, INFO ) 455 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 456 INFOT = 10 457 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND, 458 $ R1, R2, W, RW, INFO ) 459 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 460 INFOT = 12 461 CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND, 462 $ R1, R2, W, RW, INFO ) 463 CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK ) 464* 465 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 466* 467* ZPBSV 468* 469 SRNAMT = 'ZPBSV ' 470 INFOT = 1 471 CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO ) 472 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 473 INFOT = 2 474 CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 475 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 476 INFOT = 3 477 CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 478 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 479 INFOT = 4 480 CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 481 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 482 INFOT = 6 483 CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO ) 484 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 485 INFOT = 8 486 CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO ) 487 CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK ) 488* 489* ZPBSVX 490* 491 SRNAMT = 'ZPBSVX' 492 INFOT = 1 493 CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 494 $ RCOND, R1, R2, W, RW, INFO ) 495 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 496 INFOT = 2 497 CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 498 $ RCOND, R1, R2, W, RW, INFO ) 499 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 500 INFOT = 3 501 CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 502 $ 1, RCOND, R1, R2, W, RW, INFO ) 503 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 504 INFOT = 4 505 CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 506 $ 1, RCOND, R1, R2, W, RW, INFO ) 507 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 508 INFOT = 5 509 CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 510 $ 1, RCOND, R1, R2, W, RW, INFO ) 511 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 512 INFOT = 7 513 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 514 $ RCOND, R1, R2, W, RW, INFO ) 515 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 516 INFOT = 9 517 CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 518 $ RCOND, R1, R2, W, RW, INFO ) 519 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 520 INFOT = 10 521 EQ = '/' 522 CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 523 $ RCOND, R1, R2, W, RW, INFO ) 524 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 525 INFOT = 11 526 EQ = 'Y' 527 CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 528 $ RCOND, R1, R2, W, RW, INFO ) 529 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 530 INFOT = 13 531 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2, 532 $ RCOND, R1, R2, W, RW, INFO ) 533 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 534 INFOT = 15 535 CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1, 536 $ RCOND, R1, R2, W, RW, INFO ) 537 CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK ) 538* 539 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN 540* 541* ZPTSV 542* 543 SRNAMT = 'ZPTSV ' 544 INFOT = 1 545 CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO ) 546 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK ) 547 INFOT = 2 548 CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO ) 549 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK ) 550 INFOT = 6 551 CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO ) 552 CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK ) 553* 554* ZPTSVX 555* 556 SRNAMT = 'ZPTSVX' 557 INFOT = 1 558 CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 559 $ 1, RCOND, R1, R2, W, RW, INFO ) 560 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK ) 561 INFOT = 2 562 CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 563 $ 1, RCOND, R1, R2, W, RW, INFO ) 564 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK ) 565 INFOT = 3 566 CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 567 $ 1, RCOND, R1, R2, W, RW, INFO ) 568 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK ) 569 INFOT = 9 570 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 571 $ 2, RCOND, R1, R2, W, RW, INFO ) 572 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK ) 573 INFOT = 11 574 CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X, 575 $ 1, RCOND, R1, R2, W, RW, INFO ) 576 CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK ) 577* 578 ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN 579* 580* ZHESV 581* 582 SRNAMT = 'ZHESV ' 583 INFOT = 1 584 CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 585 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 586 INFOT = 2 587 CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 588 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 589 INFOT = 3 590 CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 591 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 592 INFOT = 5 593 CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) 594 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 595 INFOT = 8 596 CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 597 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 598 INFOT = 10 599 CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 600 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 601 INFOT = 10 602 CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 603 CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK ) 604* 605* ZHESVX 606* 607 SRNAMT = 'ZHESVX' 608 INFOT = 1 609 CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 610 $ RCOND, R1, R2, W, 1, RW, INFO ) 611 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 612 INFOT = 2 613 CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 614 $ RCOND, R1, R2, W, 1, RW, INFO ) 615 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 616 INFOT = 3 617 CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 618 $ RCOND, R1, R2, W, 1, RW, INFO ) 619 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 620 INFOT = 4 621 CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 622 $ RCOND, R1, R2, W, 1, RW, INFO ) 623 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 624 INFOT = 6 625 CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 626 $ RCOND, R1, R2, W, 4, RW, INFO ) 627 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 628 INFOT = 8 629 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 630 $ RCOND, R1, R2, W, 4, RW, INFO ) 631 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 632 INFOT = 11 633 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 634 $ RCOND, R1, R2, W, 4, RW, INFO ) 635 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 636 INFOT = 13 637 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 638 $ RCOND, R1, R2, W, 4, RW, INFO ) 639 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 640 INFOT = 18 641 CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 642 $ RCOND, R1, R2, W, 3, RW, INFO ) 643 CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK ) 644* 645 ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN 646* 647* ZHESV_ROOK 648* 649 SRNAMT = 'ZHESV_ROOK' 650 INFOT = 1 651 CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 652 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 653 INFOT = 2 654 CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 655 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 656 INFOT = 3 657 CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 658 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 659 INFOT = 8 660 CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 661 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 662 INFOT = 10 663 CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 664 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 665 INFOT = 10 666 CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 667 CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK ) 668* 669 ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN 670* 671* ZSYSV_RK 672* 673* Test error exits of the driver that uses factorization 674* of a Hermitian indefinite matrix with rook 675* (bounded Bunch-Kaufman) pivoting with the new storage 676* format for factors L ( or U) and D. 677* 678* L (or U) is stored in A, diagonal of D is stored on the 679* diagonal of A, subdiagonal of D is stored in a separate array E. 680* 681 SRNAMT = 'ZHESV_RK' 682 INFOT = 1 683 CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 684 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 685 INFOT = 2 686 CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 687 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 688 INFOT = 3 689 CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) 690 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 691 INFOT = 5 692 CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) 693 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 694 INFOT = 9 695 CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) 696 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 697 INFOT = 11 698 CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) 699 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 700 INFOT = 11 701 CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) 702 CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK ) 703* 704 ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN 705* 706* ZHESV_AA 707* 708 SRNAMT = 'ZHESV_AA' 709 INFOT = 1 710 CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 711 CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) 712 INFOT = 2 713 CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 714 CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) 715 INFOT = 3 716 CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 717 CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) 718 INFOT = 8 719 CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 720 CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK ) 721* 722 ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN 723* 724* ZHESV_AASEN_2STAGE 725* 726 SRNAMT = 'ZHESV_AA_2STAGE' 727 INFOT = 1 728 CALL ZHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1, 729 $ W, 1, INFO ) 730 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 731 INFOT = 2 732 CALL ZHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1, 733 $ W, 1, INFO ) 734 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 735 INFOT = 3 736 CALL ZHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1, 737 $ W, 1, INFO ) 738 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 739 INFOT = 5 740 CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, 741 $ W, 1, INFO ) 742 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 743 INFOT = 11 744 CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, 745 $ W, 1, INFO ) 746 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 747 INFOT = 7 748 CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, 749 $ W, 1, INFO ) 750 CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 751* 752 ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN 753* 754* ZSYSV_AASEN_2STAGE 755* 756 SRNAMT = 'ZSYSV_AA_2STAGE' 757 INFOT = 1 758 CALL ZSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1, 759 $ W, 1, INFO ) 760 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 761 INFOT = 2 762 CALL ZSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1, 763 $ W, 1, INFO ) 764 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 765 INFOT = 3 766 CALL ZSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1, 767 $ W, 1, INFO ) 768 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 769 INFOT = 5 770 CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, 771 $ W, 1, INFO ) 772 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 773 INFOT = 11 774 CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, 775 $ W, 1, INFO ) 776 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 777 INFOT = 7 778 CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, 779 $ W, 1, INFO ) 780 CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 781** 782 ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN 783* 784* ZHPSV 785* 786 SRNAMT = 'ZHPSV ' 787 INFOT = 1 788 CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO ) 789 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK ) 790 INFOT = 2 791 CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 792 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK ) 793 INFOT = 3 794 CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 795 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK ) 796 INFOT = 7 797 CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 798 CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK ) 799* 800* ZHPSVX 801* 802 SRNAMT = 'ZHPSVX' 803 INFOT = 1 804 CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 805 $ R2, W, RW, INFO ) 806 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 807 INFOT = 2 808 CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 809 $ R2, W, RW, INFO ) 810 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 811 INFOT = 3 812 CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 813 $ R2, W, RW, INFO ) 814 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 815 INFOT = 4 816 CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 817 $ R2, W, RW, INFO ) 818 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 819 INFOT = 9 820 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 821 $ R2, W, RW, INFO ) 822 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 823 INFOT = 11 824 CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 825 $ R2, W, RW, INFO ) 826 CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK ) 827* 828 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN 829* 830* ZSYSV 831* 832 SRNAMT = 'ZSYSV ' 833 INFOT = 1 834 CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 835 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 836 INFOT = 2 837 CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 838 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 839 INFOT = 3 840 CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 841 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 842 INFOT = 8 843 CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 844 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 845 INFOT = 10 846 CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 847 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 848 INFOT = 10 849 CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 850 CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK ) 851* 852* ZSYSVX 853* 854 SRNAMT = 'ZSYSVX' 855 INFOT = 1 856 CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 857 $ RCOND, R1, R2, W, 1, RW, INFO ) 858 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 859 INFOT = 2 860 CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 861 $ RCOND, R1, R2, W, 1, RW, INFO ) 862 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 863 INFOT = 3 864 CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 865 $ RCOND, R1, R2, W, 1, RW, INFO ) 866 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 867 INFOT = 4 868 CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 869 $ RCOND, R1, R2, W, 1, RW, INFO ) 870 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 871 INFOT = 6 872 CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 873 $ RCOND, R1, R2, W, 4, RW, INFO ) 874 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 875 INFOT = 8 876 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 877 $ RCOND, R1, R2, W, 4, RW, INFO ) 878 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 879 INFOT = 11 880 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 881 $ RCOND, R1, R2, W, 4, RW, INFO ) 882 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 883 INFOT = 13 884 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 885 $ RCOND, R1, R2, W, 4, RW, INFO ) 886 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 887 INFOT = 18 888 CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 889 $ RCOND, R1, R2, W, 3, RW, INFO ) 890 CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK ) 891* 892 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 893* 894* ZSYSV_ROOK 895* 896 SRNAMT = 'ZSYSV_ROOK' 897 INFOT = 1 898 CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 899 CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) 900 INFOT = 2 901 CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 902 CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) 903 INFOT = 3 904 CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 905 CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) 906 INFOT = 8 907 CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 908 CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) 909 INFOT = 10 910 CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 911 CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK ) 912 INFOT = 10 913 CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 914* 915 ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN 916* 917* ZSYSV_RK 918* 919* Test error exits of the driver that uses factorization 920* of a symmetric indefinite matrix with rook 921* (bounded Bunch-Kaufman) pivoting with the new storage 922* format for factors L ( or U) and D. 923* 924* L (or U) is stored in A, diagonal of D is stored on the 925* diagonal of A, subdiagonal of D is stored in a separate array E. 926* 927 SRNAMT = 'ZSYSV_RK' 928 INFOT = 1 929 CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 930 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 931 INFOT = 2 932 CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 933 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 934 INFOT = 3 935 CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) 936 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 937 INFOT = 5 938 CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) 939 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 940 INFOT = 9 941 CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) 942 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 943 INFOT = 11 944 CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) 945 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 946 INFOT = 11 947 CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) 948 CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK ) 949* 950 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 951* 952* ZSPSV 953* 954 SRNAMT = 'ZSPSV ' 955 INFOT = 1 956 CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO ) 957 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK ) 958 INFOT = 2 959 CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 960 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK ) 961 INFOT = 3 962 CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 963 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK ) 964 INFOT = 7 965 CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 966 CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK ) 967* 968* ZSPSVX 969* 970 SRNAMT = 'ZSPSVX' 971 INFOT = 1 972 CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 973 $ R2, W, RW, INFO ) 974 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 975 INFOT = 2 976 CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 977 $ R2, W, RW, INFO ) 978 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 979 INFOT = 3 980 CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 981 $ R2, W, RW, INFO ) 982 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 983 INFOT = 4 984 CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 985 $ R2, W, RW, INFO ) 986 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 987 INFOT = 9 988 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 989 $ R2, W, RW, INFO ) 990 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 991 INFOT = 11 992 CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 993 $ R2, W, RW, INFO ) 994 CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK ) 995 END IF 996* 997* Print a summary line. 998* 999 IF( OK ) THEN 1000 WRITE( NOUT, FMT = 9999 )PATH 1001 ELSE 1002 WRITE( NOUT, FMT = 9998 )PATH 1003 END IF 1004* 1005 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' ) 1006 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ', 1007 $ 'exits ***' ) 1008* 1009 RETURN 1010* 1011* End of ZERRVX 1012* 1013 END 1014