1*> \brief \b SERRGEX 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 SERRGE( 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*> SERRGE tests the error exits for the REAL routines 25*> for general matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise serrge.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 single_lin 55* 56* ===================================================================== 57 SUBROUTINE SERRGE( 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, LW 72 PARAMETER ( NMAX = 4, LW = 3*NMAX ) 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 ), IW( NMAX ) 82 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 83 $ C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 84 $ W( LW ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ), 85 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 86* .. 87* .. External Functions .. 88 LOGICAL LSAMEN 89 EXTERNAL LSAMEN 90* .. 91* .. External Subroutines .. 92 EXTERNAL ALAESM, CHKXER, SGBCON, SGBEQU, SGBRFS, SGBTF2, 93 $ SGBTRF, SGBTRS, SGECON, SGEEQU, SGERFS, SGETF2, 94 $ SGETRF, SGETRI, SGETRS, SGEEQUB, SGERFSX, 95 $ SGBEQUB, SGBRFSX 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. 123 R1( J ) = 0. 124 R2( J ) = 0. 125 W( J ) = 0. 126 X( J ) = 0. 127 C( J ) = 0. 128 R( J ) = 0. 129 IP( J ) = J 130 IW( J ) = J 131 20 CONTINUE 132 OK = .TRUE. 133* 134 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 135* 136* Test error exits of the routines that use the LU decomposition 137* of a general matrix. 138* 139* SGETRF 140* 141 SRNAMT = 'SGETRF' 142 INFOT = 1 143 CALL SGETRF( -1, 0, A, 1, IP, INFO ) 144 CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK ) 145 INFOT = 2 146 CALL SGETRF( 0, -1, A, 1, IP, INFO ) 147 CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK ) 148 INFOT = 4 149 CALL SGETRF( 2, 1, A, 1, IP, INFO ) 150 CALL CHKXER( 'SGETRF', INFOT, NOUT, LERR, OK ) 151* 152* SGETF2 153* 154 SRNAMT = 'SGETF2' 155 INFOT = 1 156 CALL SGETF2( -1, 0, A, 1, IP, INFO ) 157 CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK ) 158 INFOT = 2 159 CALL SGETF2( 0, -1, A, 1, IP, INFO ) 160 CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK ) 161 INFOT = 4 162 CALL SGETF2( 2, 1, A, 1, IP, INFO ) 163 CALL CHKXER( 'SGETF2', INFOT, NOUT, LERR, OK ) 164* 165* SGETRI 166* 167 SRNAMT = 'SGETRI' 168 INFOT = 1 169 CALL SGETRI( -1, A, 1, IP, W, LW, INFO ) 170 CALL CHKXER( 'SGETRI', INFOT, NOUT, LERR, OK ) 171 INFOT = 3 172 CALL SGETRI( 2, A, 1, IP, W, LW, INFO ) 173 CALL CHKXER( 'SGETRI', INFOT, NOUT, LERR, OK ) 174* 175* SGETRS 176* 177 SRNAMT = 'SGETRS' 178 INFOT = 1 179 CALL SGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 180 CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK ) 181 INFOT = 2 182 CALL SGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO ) 183 CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK ) 184 INFOT = 3 185 CALL SGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO ) 186 CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK ) 187 INFOT = 5 188 CALL SGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO ) 189 CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK ) 190 INFOT = 8 191 CALL SGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO ) 192 CALL CHKXER( 'SGETRS', INFOT, NOUT, LERR, OK ) 193* 194* SGERFS 195* 196 SRNAMT = 'SGERFS' 197 INFOT = 1 198 CALL SGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 199 $ IW, INFO ) 200 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 201 INFOT = 2 202 CALL SGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 203 $ W, IW, INFO ) 204 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 205 INFOT = 3 206 CALL SGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 207 $ W, IW, INFO ) 208 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 209 INFOT = 5 210 CALL SGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 211 $ IW, INFO ) 212 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 213 INFOT = 7 214 CALL SGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 215 $ IW, INFO ) 216 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 217 INFOT = 10 218 CALL SGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 219 $ IW, INFO ) 220 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 221 INFOT = 12 222 CALL SGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 223 $ IW, INFO ) 224 CALL CHKXER( 'SGERFS', INFOT, NOUT, LERR, OK ) 225* 226* SGERFSX 227* 228 N_ERR_BNDS = 3 229 NPARAMS = 0 230 SRNAMT = 'SGERFSX' 231 INFOT = 1 232 CALL SGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, R, C, B, 1, X, 233 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 234 $ NPARAMS, PARAMS, W, IW, INFO ) 235 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 236 INFOT = 2 237 EQ = '/' 238 CALL SGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X, 239 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 240 $ NPARAMS, PARAMS, W, IW, INFO ) 241 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 242 INFOT = 3 243 EQ = 'R' 244 CALL SGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, R, C, B, 1, X, 245 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 246 $ NPARAMS, PARAMS, W, IW, INFO ) 247 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 248 INFOT = 4 249 CALL SGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, R, C, B, 1, X, 250 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 251 $ NPARAMS, PARAMS, W, IW, INFO ) 252 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 253 INFOT = 6 254 CALL SGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X, 255 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 256 $ NPARAMS, PARAMS, W, IW, INFO ) 257 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 258 INFOT = 8 259 CALL SGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, R, C, B, 2, X, 260 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 261 $ NPARAMS, PARAMS, W, IW, INFO ) 262 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 263 INFOT = 13 264 EQ = 'C' 265 CALL SGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 1, X, 266 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 267 $ NPARAMS, PARAMS, W, IW, INFO ) 268 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 269 INFOT = 15 270 CALL SGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 2, X, 271 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 272 $ NPARAMS, PARAMS, W, IW, INFO ) 273 CALL CHKXER( 'SGERFSX', INFOT, NOUT, LERR, OK ) 274* 275* SGECON 276* 277 SRNAMT = 'SGECON' 278 INFOT = 1 279 CALL SGECON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO ) 280 CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK ) 281 INFOT = 2 282 CALL SGECON( '1', -1, A, 1, ANRM, RCOND, W, IW, INFO ) 283 CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK ) 284 INFOT = 4 285 CALL SGECON( '1', 2, A, 1, ANRM, RCOND, W, IW, INFO ) 286 CALL CHKXER( 'SGECON', INFOT, NOUT, LERR, OK ) 287* 288* SGEEQU 289* 290 SRNAMT = 'SGEEQU' 291 INFOT = 1 292 CALL SGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 293 CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK ) 294 INFOT = 2 295 CALL SGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 296 CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK ) 297 INFOT = 4 298 CALL SGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 299 CALL CHKXER( 'SGEEQU', INFOT, NOUT, LERR, OK ) 300* 301* SGEEQUB 302* 303 SRNAMT = 'SGEEQUB' 304 INFOT = 1 305 CALL SGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 306 CALL CHKXER( 'SGEEQUB', INFOT, NOUT, LERR, OK ) 307 INFOT = 2 308 CALL SGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 309 CALL CHKXER( 'SGEEQUB', INFOT, NOUT, LERR, OK ) 310 INFOT = 4 311 CALL SGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 312 CALL CHKXER( 'SGEEQUB', INFOT, NOUT, LERR, OK ) 313* 314 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 315* 316* Test error exits of the routines that use the LU decomposition 317* of a general band matrix. 318* 319* SGBTRF 320* 321 SRNAMT = 'SGBTRF' 322 INFOT = 1 323 CALL SGBTRF( -1, 0, 0, 0, A, 1, IP, INFO ) 324 CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK ) 325 INFOT = 2 326 CALL SGBTRF( 0, -1, 0, 0, A, 1, IP, INFO ) 327 CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK ) 328 INFOT = 3 329 CALL SGBTRF( 1, 1, -1, 0, A, 1, IP, INFO ) 330 CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK ) 331 INFOT = 4 332 CALL SGBTRF( 1, 1, 0, -1, A, 1, IP, INFO ) 333 CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK ) 334 INFOT = 6 335 CALL SGBTRF( 2, 2, 1, 1, A, 3, IP, INFO ) 336 CALL CHKXER( 'SGBTRF', INFOT, NOUT, LERR, OK ) 337* 338* SGBTF2 339* 340 SRNAMT = 'SGBTF2' 341 INFOT = 1 342 CALL SGBTF2( -1, 0, 0, 0, A, 1, IP, INFO ) 343 CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK ) 344 INFOT = 2 345 CALL SGBTF2( 0, -1, 0, 0, A, 1, IP, INFO ) 346 CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK ) 347 INFOT = 3 348 CALL SGBTF2( 1, 1, -1, 0, A, 1, IP, INFO ) 349 CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK ) 350 INFOT = 4 351 CALL SGBTF2( 1, 1, 0, -1, A, 1, IP, INFO ) 352 CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK ) 353 INFOT = 6 354 CALL SGBTF2( 2, 2, 1, 1, A, 3, IP, INFO ) 355 CALL CHKXER( 'SGBTF2', INFOT, NOUT, LERR, OK ) 356* 357* SGBTRS 358* 359 SRNAMT = 'SGBTRS' 360 INFOT = 1 361 CALL SGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO ) 362 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 363 INFOT = 2 364 CALL SGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO ) 365 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 366 INFOT = 3 367 CALL SGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO ) 368 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 369 INFOT = 4 370 CALL SGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO ) 371 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 372 INFOT = 5 373 CALL SGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO ) 374 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 375 INFOT = 7 376 CALL SGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO ) 377 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 378 INFOT = 10 379 CALL SGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO ) 380 CALL CHKXER( 'SGBTRS', INFOT, NOUT, LERR, OK ) 381* 382* SGBRFS 383* 384 SRNAMT = 'SGBRFS' 385 INFOT = 1 386 CALL SGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 387 $ R2, W, IW, INFO ) 388 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 389 INFOT = 2 390 CALL SGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 391 $ R2, W, IW, INFO ) 392 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 393 INFOT = 3 394 CALL SGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 395 $ R2, W, IW, INFO ) 396 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 397 INFOT = 4 398 CALL SGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 399 $ R2, W, IW, INFO ) 400 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 401 INFOT = 5 402 CALL SGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, 403 $ R2, W, IW, INFO ) 404 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 405 INFOT = 7 406 CALL SGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1, 407 $ R2, W, IW, INFO ) 408 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 409 INFOT = 9 410 CALL SGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1, 411 $ R2, W, IW, INFO ) 412 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 413 INFOT = 12 414 CALL SGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1, 415 $ R2, W, IW, INFO ) 416 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 417 INFOT = 14 418 CALL SGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1, 419 $ R2, W, IW, INFO ) 420 CALL CHKXER( 'SGBRFS', INFOT, NOUT, LERR, OK ) 421* 422* SGBRFSX 423* 424 N_ERR_BNDS = 3 425 NPARAMS = 0 426 SRNAMT = 'SGBRFSX' 427 INFOT = 1 428 CALL SGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, R, C, B, 1, 429 $ X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 430 $ NPARAMS, PARAMS, W, IW, INFO ) 431 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 432 INFOT = 2 433 EQ = '/' 434 CALL SGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B, 2, 435 $ X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 436 $ NPARAMS, PARAMS, W, IW, INFO ) 437 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 438 INFOT = 3 439 EQ = 'R' 440 CALL SGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, R, C, B, 441 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 442 $ NPARAMS, PARAMS, W, IW, INFO ) 443 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 444 INFOT = 4 445 EQ = 'R' 446 CALL SGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, R, C, B, 447 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 448 $ NPARAMS, PARAMS, W, IW, INFO ) 449 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 450 INFOT = 5 451 EQ = 'R' 452 CALL SGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, R, C, B, 453 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 454 $ NPARAMS, PARAMS, W, IW, INFO ) 455 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 456 INFOT = 6 457 CALL SGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, R, C, B, 458 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 459 $ NPARAMS, PARAMS, W, IW, INFO ) 460 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 461 INFOT = 8 462 CALL SGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B, 463 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 464 $ NPARAMS, PARAMS, W, IW, INFO ) 465 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 466 INFOT = 10 467 CALL SGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, R, C, B, 2, 468 $ X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 469 $ NPARAMS, PARAMS, W, IW, INFO ) 470 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 471 INFOT = 13 472 EQ = 'C' 473 CALL SGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B, 474 $ 1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 475 $ NPARAMS, PARAMS, W, IW, INFO ) 476 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 477 INFOT = 15 478 CALL SGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B, 2, 479 $ X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 480 $ NPARAMS, PARAMS, W, IW, INFO ) 481 CALL CHKXER( 'SGBRFSX', INFOT, NOUT, LERR, OK ) 482* 483* SGBCON 484* 485 SRNAMT = 'SGBCON' 486 INFOT = 1 487 CALL SGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 488 CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK ) 489 INFOT = 2 490 CALL SGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, 491 $ INFO ) 492 CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK ) 493 INFOT = 3 494 CALL SGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, IW, 495 $ INFO ) 496 CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK ) 497 INFOT = 4 498 CALL SGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, IW, 499 $ INFO ) 500 CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK ) 501 INFOT = 6 502 CALL SGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, IW, INFO ) 503 CALL CHKXER( 'SGBCON', INFOT, NOUT, LERR, OK ) 504* 505* SGBEQU 506* 507 SRNAMT = 'SGBEQU' 508 INFOT = 1 509 CALL SGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 510 $ INFO ) 511 CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK ) 512 INFOT = 2 513 CALL SGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 514 $ INFO ) 515 CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK ) 516 INFOT = 3 517 CALL SGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 518 $ INFO ) 519 CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK ) 520 INFOT = 4 521 CALL SGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 522 $ INFO ) 523 CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK ) 524 INFOT = 6 525 CALL SGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 526 $ INFO ) 527 CALL CHKXER( 'SGBEQU', INFOT, NOUT, LERR, OK ) 528* 529* SGBEQUB 530* 531 SRNAMT = 'SGBEQUB' 532 INFOT = 1 533 CALL SGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 534 $ INFO ) 535 CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK ) 536 INFOT = 2 537 CALL SGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 538 $ INFO ) 539 CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK ) 540 INFOT = 3 541 CALL SGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 542 $ INFO ) 543 CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK ) 544 INFOT = 4 545 CALL SGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 546 $ INFO ) 547 CALL CHKXER( 'SGBEQUB', INFOT, NOUT, LERR, OK ) 548 INFOT = 6 549 CALL SGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 550 $ INFO ) 551 CALL CHKXER( 'SGBEQUB', 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 SERRGEX 561* 562 END 563