1*> \brief \b CERRGEX 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 CERRGE( 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*> CERRGE tests the error exits for the COMPLEX routines 25*> for general matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise cerrge.f defines this subroutine. 29*> \endverbatim 30* 31* Arguments: 32* ========== 33* 34*> \param[in] PATH 35*> \verbatim 36*> PATH is CHARACTER*3 37*> The LAPACK path name for the routines to be tested. 38*> \endverbatim 39*> 40*> \param[in] NUNIT 41*> \verbatim 42*> NUNIT is INTEGER 43*> The unit number for output. 44*> \endverbatim 45* 46* Authors: 47* ======== 48* 49*> \author Univ. of Tennessee 50*> \author Univ. of California Berkeley 51*> \author Univ. of Colorado Denver 52*> \author NAG Ltd. 53* 54*> \ingroup complex_lin 55* 56* ===================================================================== 57 SUBROUTINE CERRGE( PATH, NUNIT ) 58* 59* -- LAPACK test routine -- 60* -- LAPACK is a software package provided by Univ. of Tennessee, -- 61* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 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, N_ERR_BNDS, NPARAMS 78 REAL ANRM, CCOND, RCOND, BERR 79* .. 80* .. Local Arrays .. 81 INTEGER IP( NMAX ) 82 REAL R( NMAX ), R1( NMAX ), R2( NMAX ), CS( NMAX ), 83 $ RS( NMAX ) 84 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 85 $ W( 2*NMAX ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ), 86 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 87* .. 88* .. External Functions .. 89 LOGICAL LSAMEN 90 EXTERNAL LSAMEN 91* .. 92* .. External Subroutines .. 93 EXTERNAL ALAESM, CGBCON, CGBEQU, CGBRFS, CGBTF2, CGBTRF, 94 $ CGBTRS, CGECON, CGEEQU, CGERFS, CGETF2, CGETRF, 95 $ CGETRI, CGETRS, CHKXER, CGEEQUB, CGERFSX, 96 $ CGBEQUB, CGBRFSX 97* .. 98* .. Scalars in Common .. 99 LOGICAL LERR, OK 100 CHARACTER*32 SRNAMT 101 INTEGER INFOT, NOUT 102* .. 103* .. Common blocks .. 104 COMMON / INFOC / INFOT, NOUT, OK, LERR 105 COMMON / SRNAMC / SRNAMT 106* .. 107* .. Intrinsic Functions .. 108 INTRINSIC CMPLX, REAL 109* .. 110* .. Executable Statements .. 111* 112 NOUT = NUNIT 113 WRITE( NOUT, FMT = * ) 114 C2 = PATH( 2: 3 ) 115* 116* Set the variables to innocuous values. 117* 118 DO 20 J = 1, NMAX 119 DO 10 I = 1, NMAX 120 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 121 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 122 10 CONTINUE 123 B( J ) = 0. 124 R1( J ) = 0. 125 R2( J ) = 0. 126 W( J ) = 0. 127 X( J ) = 0. 128 CS( J ) = 0. 129 RS( J ) = 0. 130 IP( J ) = J 131 20 CONTINUE 132 OK = .TRUE. 133* 134* Test error exits of the routines that use the LU decomposition 135* of a general matrix. 136* 137 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 138* 139* CGETRF 140* 141 SRNAMT = 'CGETRF' 142 INFOT = 1 143 CALL CGETRF( -1, 0, A, 1, IP, INFO ) 144 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 145 INFOT = 2 146 CALL CGETRF( 0, -1, A, 1, IP, INFO ) 147 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 148 INFOT = 4 149 CALL CGETRF( 2, 1, A, 1, IP, INFO ) 150 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 151* 152* CGETF2 153* 154 SRNAMT = 'CGETF2' 155 INFOT = 1 156 CALL CGETF2( -1, 0, A, 1, IP, INFO ) 157 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 158 INFOT = 2 159 CALL CGETF2( 0, -1, A, 1, IP, INFO ) 160 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 161 INFOT = 4 162 CALL CGETF2( 2, 1, A, 1, IP, INFO ) 163 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 164* 165* CGETRI 166* 167 SRNAMT = 'CGETRI' 168 INFOT = 1 169 CALL CGETRI( -1, A, 1, IP, W, 1, INFO ) 170 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 171 INFOT = 3 172 CALL CGETRI( 2, A, 1, IP, W, 2, INFO ) 173 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 174 INFOT = 6 175 CALL CGETRI( 2, A, 2, IP, W, 1, INFO ) 176 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 177* 178* CGETRS 179* 180 SRNAMT = 'CGETRS' 181 INFOT = 1 182 CALL CGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 183 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 184 INFOT = 2 185 CALL CGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO ) 186 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 187 INFOT = 3 188 CALL CGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO ) 189 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 190 INFOT = 5 191 CALL CGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO ) 192 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 193 INFOT = 8 194 CALL CGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO ) 195 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 196* 197* CGERFS 198* 199 SRNAMT = 'CGERFS' 200 INFOT = 1 201 CALL CGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 202 $ R, INFO ) 203 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 204 INFOT = 2 205 CALL CGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 206 $ W, R, INFO ) 207 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 208 INFOT = 3 209 CALL CGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 210 $ W, R, INFO ) 211 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 212 INFOT = 5 213 CALL CGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 214 $ R, INFO ) 215 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 216 INFOT = 7 217 CALL CGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 218 $ R, INFO ) 219 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 220 INFOT = 10 221 CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 222 $ R, INFO ) 223 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 224 INFOT = 12 225 CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 226 $ R, INFO ) 227 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 228* 229* CGERFSX 230* 231 N_ERR_BNDS = 3 232 NPARAMS = 0 233 SRNAMT = 'CGERFSX' 234 INFOT = 1 235 CALL CGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X, 236 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 237 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 238 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 239 INFOT = 2 240 EQ = '/' 241 CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X, 242 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 243 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 244 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 245 INFOT = 3 246 EQ = 'R' 247 CALL CGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X, 248 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 249 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 250 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 251 INFOT = 4 252 CALL CGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 1, X, 253 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 254 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 255 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 256 INFOT = 6 257 CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X, 258 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 259 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 260 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 261 INFOT = 8 262 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, RS, CS, B, 2, X, 263 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 264 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 265 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 266 INFOT = 13 267 EQ = 'C' 268 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 1, X, 269 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 270 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 271 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 272 INFOT = 15 273 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 2, X, 274 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 275 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 276 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 277* 278* CGECON 279* 280 SRNAMT = 'CGECON' 281 INFOT = 1 282 CALL CGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO ) 283 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 284 INFOT = 2 285 CALL CGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO ) 286 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 287 INFOT = 4 288 CALL CGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO ) 289 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 290* 291* CGEEQU 292* 293 SRNAMT = 'CGEEQU' 294 INFOT = 1 295 CALL CGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 296 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 297 INFOT = 2 298 CALL CGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 299 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 300 INFOT = 4 301 CALL CGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 302 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 303* 304* CGEEQUB 305* 306 SRNAMT = 'CGEEQUB' 307 INFOT = 1 308 CALL CGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 309 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 310 INFOT = 2 311 CALL CGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 312 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 313 INFOT = 4 314 CALL CGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 315 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 316* 317* Test error exits of the routines that use the LU decomposition 318* of a general band matrix. 319* 320 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 321* 322* CGBTRF 323* 324 SRNAMT = 'CGBTRF' 325 INFOT = 1 326 CALL CGBTRF( -1, 0, 0, 0, A, 1, IP, INFO ) 327 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 328 INFOT = 2 329 CALL CGBTRF( 0, -1, 0, 0, A, 1, IP, INFO ) 330 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 331 INFOT = 3 332 CALL CGBTRF( 1, 1, -1, 0, A, 1, IP, INFO ) 333 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 334 INFOT = 4 335 CALL CGBTRF( 1, 1, 0, -1, A, 1, IP, INFO ) 336 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 337 INFOT = 6 338 CALL CGBTRF( 2, 2, 1, 1, A, 3, IP, INFO ) 339 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 340* 341* CGBTF2 342* 343 SRNAMT = 'CGBTF2' 344 INFOT = 1 345 CALL CGBTF2( -1, 0, 0, 0, A, 1, IP, INFO ) 346 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 347 INFOT = 2 348 CALL CGBTF2( 0, -1, 0, 0, A, 1, IP, INFO ) 349 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 350 INFOT = 3 351 CALL CGBTF2( 1, 1, -1, 0, A, 1, IP, INFO ) 352 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 353 INFOT = 4 354 CALL CGBTF2( 1, 1, 0, -1, A, 1, IP, INFO ) 355 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 356 INFOT = 6 357 CALL CGBTF2( 2, 2, 1, 1, A, 3, IP, INFO ) 358 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 359* 360* CGBTRS 361* 362 SRNAMT = 'CGBTRS' 363 INFOT = 1 364 CALL CGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO ) 365 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 366 INFOT = 2 367 CALL CGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO ) 368 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 369 INFOT = 3 370 CALL CGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO ) 371 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 372 INFOT = 4 373 CALL CGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO ) 374 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 375 INFOT = 5 376 CALL CGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO ) 377 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 378 INFOT = 7 379 CALL CGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO ) 380 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 381 INFOT = 10 382 CALL CGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO ) 383 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 384* 385* CGBRFS 386* 387 SRNAMT = 'CGBRFS' 388 INFOT = 1 389 CALL CGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 390 $ R2, W, R, INFO ) 391 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 392 INFOT = 2 393 CALL CGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 394 $ R2, W, R, INFO ) 395 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 396 INFOT = 3 397 CALL CGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 398 $ R2, W, R, INFO ) 399 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 400 INFOT = 4 401 CALL CGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 402 $ R2, W, R, INFO ) 403 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 404 INFOT = 5 405 CALL CGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, 406 $ R2, W, R, INFO ) 407 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 408 INFOT = 7 409 CALL CGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1, 410 $ R2, W, R, INFO ) 411 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 412 INFOT = 9 413 CALL CGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1, 414 $ R2, W, R, INFO ) 415 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 416 INFOT = 12 417 CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1, 418 $ R2, W, R, INFO ) 419 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 420 INFOT = 14 421 CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1, 422 $ R2, W, R, INFO ) 423 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 424* 425* CGBRFSX 426* 427 N_ERR_BNDS = 3 428 NPARAMS = 0 429 SRNAMT = 'CGBRFSX' 430 INFOT = 1 431 CALL CGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 432 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 433 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 434 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 435 INFOT = 2 436 EQ = '/' 437 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B, 438 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 439 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 440 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 441 INFOT = 3 442 EQ = 'R' 443 CALL CGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, RS, CS, B, 444 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 445 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 446 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 447 INFOT = 4 448 EQ = 'R' 449 CALL CGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, RS, CS, B, 450 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 451 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 452 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 453 INFOT = 5 454 EQ = 'R' 455 CALL CGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, RS, CS, B, 456 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 457 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 458 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 459 INFOT = 6 460 CALL CGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 461 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 462 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 463 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 464 INFOT = 8 465 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B, 466 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 467 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 468 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 469 INFOT = 10 470 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, RS, CS, B, 471 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 472 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 473 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 474 INFOT = 13 475 EQ = 'C' 476 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B, 477 $ 1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 478 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 479 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 480 INFOT = 15 481 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B, 482 $ 2, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 483 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 484 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 485* 486* CGBCON 487* 488 SRNAMT = 'CGBCON' 489 INFOT = 1 490 CALL CGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 491 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 492 INFOT = 2 493 CALL CGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 494 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 495 INFOT = 3 496 CALL CGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 497 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 498 INFOT = 4 499 CALL CGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO ) 500 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 501 INFOT = 6 502 CALL CGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO ) 503 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 504* 505* CGBEQU 506* 507 SRNAMT = 'CGBEQU' 508 INFOT = 1 509 CALL CGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 510 $ INFO ) 511 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 512 INFOT = 2 513 CALL CGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 514 $ INFO ) 515 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 516 INFOT = 3 517 CALL CGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 518 $ INFO ) 519 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 520 INFOT = 4 521 CALL CGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 522 $ INFO ) 523 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 524 INFOT = 6 525 CALL CGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 526 $ INFO ) 527 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 528* 529* CGBEQUB 530* 531 SRNAMT = 'CGBEQUB' 532 INFOT = 1 533 CALL CGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 534 $ INFO ) 535 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 536 INFOT = 2 537 CALL CGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 538 $ INFO ) 539 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 540 INFOT = 3 541 CALL CGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 542 $ INFO ) 543 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 544 INFOT = 4 545 CALL CGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 546 $ INFO ) 547 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 548 INFOT = 6 549 CALL CGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 550 $ INFO ) 551 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 552 END IF 553* 554* Print a summary line. 555* 556 CALL ALAESM( PATH, OK, NOUT ) 557* 558 RETURN 559* 560* End of CERRGEX 561* 562 END 563