1*> \brief \b DERRGEX 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 DERRGE( 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*> DERRGE tests the error exits for the DOUBLE PRECISION routines 25*> for general matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise derrge.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 double_lin 55* 56* ===================================================================== 57 SUBROUTINE DERRGE( 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 DOUBLE PRECISION ANRM, CCOND, RCOND, BERR 79* .. 80* .. Local Arrays .. 81 INTEGER IP( NMAX ), IW( NMAX ) 82 DOUBLE PRECISION 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, DGBCON, DGBEQU, DGBRFS, DGBTF2, 93 $ DGBTRF, DGBTRS, DGECON, DGEEQU, DGERFS, DGETF2, 94 $ DGETRF, DGETRI, DGETRS, DGEEQUB, DGERFSX, 95 $ DGBEQUB, DGBRFSX 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 DBLE 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.D0 / DBLE( I+J ) 120 AF( I, J ) = 1.D0 / DBLE( I+J ) 121 10 CONTINUE 122 B( J ) = 0.D0 123 R1( J ) = 0.D0 124 R2( J ) = 0.D0 125 W( J ) = 0.D0 126 X( J ) = 0.D0 127 C( J ) = 0.D0 128 R( J ) = 0.D0 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* DGETRF 140* 141 SRNAMT = 'DGETRF' 142 INFOT = 1 143 CALL DGETRF( -1, 0, A, 1, IP, INFO ) 144 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 145 INFOT = 2 146 CALL DGETRF( 0, -1, A, 1, IP, INFO ) 147 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 148 INFOT = 4 149 CALL DGETRF( 2, 1, A, 1, IP, INFO ) 150 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 151* 152* DGETF2 153* 154 SRNAMT = 'DGETF2' 155 INFOT = 1 156 CALL DGETF2( -1, 0, A, 1, IP, INFO ) 157 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 158 INFOT = 2 159 CALL DGETF2( 0, -1, A, 1, IP, INFO ) 160 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 161 INFOT = 4 162 CALL DGETF2( 2, 1, A, 1, IP, INFO ) 163 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 164* 165* DGETRI 166* 167 SRNAMT = 'DGETRI' 168 INFOT = 1 169 CALL DGETRI( -1, A, 1, IP, W, LW, INFO ) 170 CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK ) 171 INFOT = 3 172 CALL DGETRI( 2, A, 1, IP, W, LW, INFO ) 173 CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK ) 174* 175* DGETRS 176* 177 SRNAMT = 'DGETRS' 178 INFOT = 1 179 CALL DGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 180 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 181 INFOT = 2 182 CALL DGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO ) 183 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 184 INFOT = 3 185 CALL DGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO ) 186 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 187 INFOT = 5 188 CALL DGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO ) 189 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 190 INFOT = 8 191 CALL DGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO ) 192 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 193* 194* DGERFS 195* 196 SRNAMT = 'DGERFS' 197 INFOT = 1 198 CALL DGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 199 $ IW, INFO ) 200 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 201 INFOT = 2 202 CALL DGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 203 $ W, IW, INFO ) 204 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 205 INFOT = 3 206 CALL DGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 207 $ W, IW, INFO ) 208 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 209 INFOT = 5 210 CALL DGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 211 $ IW, INFO ) 212 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 213 INFOT = 7 214 CALL DGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 215 $ IW, INFO ) 216 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 217 INFOT = 10 218 CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 219 $ IW, INFO ) 220 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 221 INFOT = 12 222 CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 223 $ IW, INFO ) 224 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 225* 226* DGERFSX 227* 228 N_ERR_BNDS = 3 229 NPARAMS = 0 230 SRNAMT = 'DGERFSX' 231 INFOT = 1 232 CALL DGERFSX( '/', 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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 236 INFOT = 2 237 EQ = '/' 238 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 242 INFOT = 3 243 EQ = 'R' 244 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 248 INFOT = 4 249 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 253 INFOT = 6 254 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 258 INFOT = 8 259 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 263 INFOT = 13 264 EQ = 'C' 265 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 269 INFOT = 15 270 CALL DGERFSX( '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( 'DGERFSX', INFOT, NOUT, LERR, OK ) 274* 275* DGECON 276* 277 SRNAMT = 'DGECON' 278 INFOT = 1 279 CALL DGECON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO ) 280 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 281 INFOT = 2 282 CALL DGECON( '1', -1, A, 1, ANRM, RCOND, W, IW, INFO ) 283 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 284 INFOT = 4 285 CALL DGECON( '1', 2, A, 1, ANRM, RCOND, W, IW, INFO ) 286 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 287* 288* DGEEQU 289* 290 SRNAMT = 'DGEEQU' 291 INFOT = 1 292 CALL DGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 293 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 294 INFOT = 2 295 CALL DGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 296 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 297 INFOT = 4 298 CALL DGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 299 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 300* 301* DGEEQUB 302* 303 SRNAMT = 'DGEEQUB' 304 INFOT = 1 305 CALL DGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 306 CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK ) 307 INFOT = 2 308 CALL DGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 309 CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK ) 310 INFOT = 4 311 CALL DGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 312 CALL CHKXER( 'DGEEQUB', 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* DGBTRF 320* 321 SRNAMT = 'DGBTRF' 322 INFOT = 1 323 CALL DGBTRF( -1, 0, 0, 0, A, 1, IP, INFO ) 324 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 325 INFOT = 2 326 CALL DGBTRF( 0, -1, 0, 0, A, 1, IP, INFO ) 327 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 328 INFOT = 3 329 CALL DGBTRF( 1, 1, -1, 0, A, 1, IP, INFO ) 330 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 331 INFOT = 4 332 CALL DGBTRF( 1, 1, 0, -1, A, 1, IP, INFO ) 333 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 334 INFOT = 6 335 CALL DGBTRF( 2, 2, 1, 1, A, 3, IP, INFO ) 336 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 337* 338* DGBTF2 339* 340 SRNAMT = 'DGBTF2' 341 INFOT = 1 342 CALL DGBTF2( -1, 0, 0, 0, A, 1, IP, INFO ) 343 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 344 INFOT = 2 345 CALL DGBTF2( 0, -1, 0, 0, A, 1, IP, INFO ) 346 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 347 INFOT = 3 348 CALL DGBTF2( 1, 1, -1, 0, A, 1, IP, INFO ) 349 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 350 INFOT = 4 351 CALL DGBTF2( 1, 1, 0, -1, A, 1, IP, INFO ) 352 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 353 INFOT = 6 354 CALL DGBTF2( 2, 2, 1, 1, A, 3, IP, INFO ) 355 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 356* 357* DGBTRS 358* 359 SRNAMT = 'DGBTRS' 360 INFOT = 1 361 CALL DGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO ) 362 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 363 INFOT = 2 364 CALL DGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO ) 365 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 366 INFOT = 3 367 CALL DGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO ) 368 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 369 INFOT = 4 370 CALL DGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO ) 371 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 372 INFOT = 5 373 CALL DGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO ) 374 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 375 INFOT = 7 376 CALL DGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO ) 377 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 378 INFOT = 10 379 CALL DGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO ) 380 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 381* 382* DGBRFS 383* 384 SRNAMT = 'DGBRFS' 385 INFOT = 1 386 CALL DGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 387 $ R2, W, IW, INFO ) 388 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 389 INFOT = 2 390 CALL DGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 391 $ R2, W, IW, INFO ) 392 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 393 INFOT = 3 394 CALL DGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 395 $ R2, W, IW, INFO ) 396 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 397 INFOT = 4 398 CALL DGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 399 $ R2, W, IW, INFO ) 400 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 401 INFOT = 5 402 CALL DGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, 403 $ R2, W, IW, INFO ) 404 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 405 INFOT = 7 406 CALL DGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1, 407 $ R2, W, IW, INFO ) 408 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 409 INFOT = 9 410 CALL DGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1, 411 $ R2, W, IW, INFO ) 412 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 413 INFOT = 12 414 CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1, 415 $ R2, W, IW, INFO ) 416 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 417 INFOT = 14 418 CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1, 419 $ R2, W, IW, INFO ) 420 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 421* 422* DGBRFSX 423* 424 N_ERR_BNDS = 3 425 NPARAMS = 0 426 SRNAMT = 'DGBRFSX' 427 INFOT = 1 428 CALL DGBRFSX( '/', 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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 432 INFOT = 2 433 EQ = '/' 434 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 438 INFOT = 3 439 EQ = 'R' 440 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 444 INFOT = 4 445 EQ = 'R' 446 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 450 INFOT = 5 451 EQ = 'R' 452 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 456 INFOT = 6 457 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 461 INFOT = 8 462 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 466 INFOT = 10 467 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 471 INFOT = 13 472 EQ = 'C' 473 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 477 INFOT = 15 478 CALL DGBRFSX( '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( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 482* 483* DGBCON 484* 485 SRNAMT = 'DGBCON' 486 INFOT = 1 487 CALL DGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 488 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 489 INFOT = 2 490 CALL DGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, 491 $ INFO ) 492 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 493 INFOT = 3 494 CALL DGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, IW, 495 $ INFO ) 496 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 497 INFOT = 4 498 CALL DGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, IW, 499 $ INFO ) 500 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 501 INFOT = 6 502 CALL DGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, IW, INFO ) 503 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 504* 505* DGBEQU 506* 507 SRNAMT = 'DGBEQU' 508 INFOT = 1 509 CALL DGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 510 $ INFO ) 511 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 512 INFOT = 2 513 CALL DGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 514 $ INFO ) 515 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 516 INFOT = 3 517 CALL DGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 518 $ INFO ) 519 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 520 INFOT = 4 521 CALL DGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 522 $ INFO ) 523 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 524 INFOT = 6 525 CALL DGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 526 $ INFO ) 527 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 528* 529* DGBEQUB 530* 531 SRNAMT = 'DGBEQUB' 532 INFOT = 1 533 CALL DGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 534 $ INFO ) 535 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 536 INFOT = 2 537 CALL DGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 538 $ INFO ) 539 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 540 INFOT = 3 541 CALL DGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 542 $ INFO ) 543 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 544 INFOT = 4 545 CALL DGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 546 $ INFO ) 547 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 548 INFOT = 6 549 CALL DGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 550 $ INFO ) 551 CALL CHKXER( 'DGBEQUB', 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 DERRGEX 561* 562 END 563