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