![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b DERRGEX 00002 * 00003 * =========== DOCUMENTATION =========== 00004 * 00005 * Online html documentation available at 00006 * http://www.netlib.org/lapack/explore-html/ 00007 * 00008 * Definition: 00009 * =========== 00010 * 00011 * SUBROUTINE DERRGE( PATH, NUNIT ) 00012 * 00013 * .. Scalar Arguments .. 00014 * CHARACTER*3 PATH 00015 * INTEGER NUNIT 00016 * .. 00017 * 00018 * 00019 *> \par Purpose: 00020 * ============= 00021 *> 00022 *> \verbatim 00023 *> 00024 *> DERRGE tests the error exits for the DOUBLE PRECISION routines 00025 *> for general matrices. 00026 *> 00027 *> Note that this file is used only when the XBLAS are available, 00028 *> otherwise derrge.f defines this subroutine. 00029 *> \endverbatim 00030 * 00031 * Arguments: 00032 * ========== 00033 * 00034 *> \param[in] PATH 00035 *> \verbatim 00036 *> PATH is CHARACTER*3 00037 *> The LAPACK path name for the routines to be tested. 00038 *> \endverbatim 00039 *> 00040 *> \param[in] NUNIT 00041 *> \verbatim 00042 *> NUNIT is INTEGER 00043 *> The unit number for output. 00044 *> \endverbatim 00045 * 00046 * Authors: 00047 * ======== 00048 * 00049 *> \author Univ. of Tennessee 00050 *> \author Univ. of California Berkeley 00051 *> \author Univ. of Colorado Denver 00052 *> \author NAG Ltd. 00053 * 00054 *> \date November 2011 00055 * 00056 *> \ingroup double_lin 00057 * 00058 * ===================================================================== 00059 SUBROUTINE DERRGE( PATH, NUNIT ) 00060 * 00061 * -- LAPACK test routine (version 3.4.0) -- 00062 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00063 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00064 * November 2011 00065 * 00066 * .. Scalar Arguments .. 00067 CHARACTER*3 PATH 00068 INTEGER NUNIT 00069 * .. 00070 * 00071 * ===================================================================== 00072 * 00073 * .. Parameters .. 00074 INTEGER NMAX, LW 00075 PARAMETER ( NMAX = 4, LW = 3*NMAX ) 00076 * .. 00077 * .. Local Scalars .. 00078 CHARACTER EQ 00079 CHARACTER*2 C2 00080 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS 00081 DOUBLE PRECISION ANRM, CCOND, RCOND, BERR 00082 * .. 00083 * .. Local Arrays .. 00084 INTEGER IP( NMAX ), IW( NMAX ) 00085 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00086 $ C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 00087 $ W( LW ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ), 00088 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 00089 * .. 00090 * .. External Functions .. 00091 LOGICAL LSAMEN 00092 EXTERNAL LSAMEN 00093 * .. 00094 * .. External Subroutines .. 00095 EXTERNAL ALAESM, CHKXER, DGBCON, DGBEQU, DGBRFS, DGBTF2, 00096 $ DGBTRF, DGBTRS, DGECON, DGEEQU, DGERFS, DGETF2, 00097 $ DGETRF, DGETRI, DGETRS, DGEEQUB, DGERFSX, 00098 $ DGBEQUB, DGBRFSX 00099 * .. 00100 * .. Scalars in Common .. 00101 LOGICAL LERR, OK 00102 CHARACTER*32 SRNAMT 00103 INTEGER INFOT, NOUT 00104 * .. 00105 * .. Common blocks .. 00106 COMMON / INFOC / INFOT, NOUT, OK, LERR 00107 COMMON / SRNAMC / SRNAMT 00108 * .. 00109 * .. Intrinsic Functions .. 00110 INTRINSIC DBLE 00111 * .. 00112 * .. Executable Statements .. 00113 * 00114 NOUT = NUNIT 00115 WRITE( NOUT, FMT = * ) 00116 C2 = PATH( 2: 3 ) 00117 * 00118 * Set the variables to innocuous values. 00119 * 00120 DO 20 J = 1, NMAX 00121 DO 10 I = 1, NMAX 00122 A( I, J ) = 1.D0 / DBLE( I+J ) 00123 AF( I, J ) = 1.D0 / DBLE( I+J ) 00124 10 CONTINUE 00125 B( J ) = 0.D0 00126 R1( J ) = 0.D0 00127 R2( J ) = 0.D0 00128 W( J ) = 0.D0 00129 X( J ) = 0.D0 00130 C( J ) = 0.D0 00131 R( J ) = 0.D0 00132 IP( J ) = J 00133 IW( J ) = J 00134 20 CONTINUE 00135 OK = .TRUE. 00136 * 00137 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 00138 * 00139 * Test error exits of the routines that use the LU decomposition 00140 * of a general matrix. 00141 * 00142 * DGETRF 00143 * 00144 SRNAMT = 'DGETRF' 00145 INFOT = 1 00146 CALL DGETRF( -1, 0, A, 1, IP, INFO ) 00147 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 00148 INFOT = 2 00149 CALL DGETRF( 0, -1, A, 1, IP, INFO ) 00150 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 00151 INFOT = 4 00152 CALL DGETRF( 2, 1, A, 1, IP, INFO ) 00153 CALL CHKXER( 'DGETRF', INFOT, NOUT, LERR, OK ) 00154 * 00155 * DGETF2 00156 * 00157 SRNAMT = 'DGETF2' 00158 INFOT = 1 00159 CALL DGETF2( -1, 0, A, 1, IP, INFO ) 00160 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 00161 INFOT = 2 00162 CALL DGETF2( 0, -1, A, 1, IP, INFO ) 00163 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 00164 INFOT = 4 00165 CALL DGETF2( 2, 1, A, 1, IP, INFO ) 00166 CALL CHKXER( 'DGETF2', INFOT, NOUT, LERR, OK ) 00167 * 00168 * DGETRI 00169 * 00170 SRNAMT = 'DGETRI' 00171 INFOT = 1 00172 CALL DGETRI( -1, A, 1, IP, W, LW, INFO ) 00173 CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK ) 00174 INFOT = 3 00175 CALL DGETRI( 2, A, 1, IP, W, LW, INFO ) 00176 CALL CHKXER( 'DGETRI', INFOT, NOUT, LERR, OK ) 00177 * 00178 * DGETRS 00179 * 00180 SRNAMT = 'DGETRS' 00181 INFOT = 1 00182 CALL DGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 00183 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 00184 INFOT = 2 00185 CALL DGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO ) 00186 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 00187 INFOT = 3 00188 CALL DGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO ) 00189 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 00190 INFOT = 5 00191 CALL DGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO ) 00192 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 00193 INFOT = 8 00194 CALL DGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO ) 00195 CALL CHKXER( 'DGETRS', INFOT, NOUT, LERR, OK ) 00196 * 00197 * DGERFS 00198 * 00199 SRNAMT = 'DGERFS' 00200 INFOT = 1 00201 CALL DGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 00202 $ IW, INFO ) 00203 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00204 INFOT = 2 00205 CALL DGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 00206 $ W, IW, INFO ) 00207 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00208 INFOT = 3 00209 CALL DGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 00210 $ W, IW, INFO ) 00211 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00212 INFOT = 5 00213 CALL DGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 00214 $ IW, INFO ) 00215 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00216 INFOT = 7 00217 CALL DGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 00218 $ IW, INFO ) 00219 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00220 INFOT = 10 00221 CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 00222 $ IW, INFO ) 00223 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00224 INFOT = 12 00225 CALL DGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 00226 $ IW, INFO ) 00227 CALL CHKXER( 'DGERFS', INFOT, NOUT, LERR, OK ) 00228 * 00229 * DGERFSX 00230 * 00231 N_ERR_BNDS = 3 00232 NPARAMS = 0 00233 SRNAMT = 'DGERFSX' 00234 INFOT = 1 00235 CALL DGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, R, C, B, 1, X, 00236 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00237 $ NPARAMS, PARAMS, W, IW, INFO ) 00238 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00239 INFOT = 2 00240 EQ = '/' 00241 CALL DGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X, 00242 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00243 $ NPARAMS, PARAMS, W, IW, INFO ) 00244 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00245 INFOT = 3 00246 EQ = 'R' 00247 CALL DGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, R, C, B, 1, X, 00248 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00249 $ NPARAMS, PARAMS, W, IW, INFO ) 00250 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00251 INFOT = 4 00252 CALL DGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, R, C, B, 1, X, 00253 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00254 $ NPARAMS, PARAMS, W, IW, INFO ) 00255 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00256 INFOT = 6 00257 CALL DGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, R, C, B, 2, X, 00258 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00259 $ NPARAMS, PARAMS, W, IW, INFO ) 00260 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00261 INFOT = 8 00262 CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, R, C, B, 2, X, 00263 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00264 $ NPARAMS, PARAMS, W, IW, INFO ) 00265 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00266 INFOT = 13 00267 EQ = 'C' 00268 CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 1, X, 00269 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00270 $ NPARAMS, PARAMS, W, IW, INFO ) 00271 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00272 INFOT = 15 00273 CALL DGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, R, C, B, 2, X, 00274 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00275 $ NPARAMS, PARAMS, W, IW, INFO ) 00276 CALL CHKXER( 'DGERFSX', INFOT, NOUT, LERR, OK ) 00277 * 00278 * DGECON 00279 * 00280 SRNAMT = 'DGECON' 00281 INFOT = 1 00282 CALL DGECON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00283 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 00284 INFOT = 2 00285 CALL DGECON( '1', -1, A, 1, ANRM, RCOND, W, IW, INFO ) 00286 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 00287 INFOT = 4 00288 CALL DGECON( '1', 2, A, 1, ANRM, RCOND, W, IW, INFO ) 00289 CALL CHKXER( 'DGECON', INFOT, NOUT, LERR, OK ) 00290 * 00291 * DGEEQU 00292 * 00293 SRNAMT = 'DGEEQU' 00294 INFOT = 1 00295 CALL DGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00296 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 00297 INFOT = 2 00298 CALL DGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00299 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 00300 INFOT = 4 00301 CALL DGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00302 CALL CHKXER( 'DGEEQU', INFOT, NOUT, LERR, OK ) 00303 * 00304 * DGEEQUB 00305 * 00306 SRNAMT = 'DGEEQUB' 00307 INFOT = 1 00308 CALL DGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00309 CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK ) 00310 INFOT = 2 00311 CALL DGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00312 CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK ) 00313 INFOT = 4 00314 CALL DGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00315 CALL CHKXER( 'DGEEQUB', INFOT, NOUT, LERR, OK ) 00316 * 00317 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 00318 * 00319 * Test error exits of the routines that use the LU decomposition 00320 * of a general band matrix. 00321 * 00322 * DGBTRF 00323 * 00324 SRNAMT = 'DGBTRF' 00325 INFOT = 1 00326 CALL DGBTRF( -1, 0, 0, 0, A, 1, IP, INFO ) 00327 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 00328 INFOT = 2 00329 CALL DGBTRF( 0, -1, 0, 0, A, 1, IP, INFO ) 00330 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 00331 INFOT = 3 00332 CALL DGBTRF( 1, 1, -1, 0, A, 1, IP, INFO ) 00333 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 00334 INFOT = 4 00335 CALL DGBTRF( 1, 1, 0, -1, A, 1, IP, INFO ) 00336 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 00337 INFOT = 6 00338 CALL DGBTRF( 2, 2, 1, 1, A, 3, IP, INFO ) 00339 CALL CHKXER( 'DGBTRF', INFOT, NOUT, LERR, OK ) 00340 * 00341 * DGBTF2 00342 * 00343 SRNAMT = 'DGBTF2' 00344 INFOT = 1 00345 CALL DGBTF2( -1, 0, 0, 0, A, 1, IP, INFO ) 00346 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 00347 INFOT = 2 00348 CALL DGBTF2( 0, -1, 0, 0, A, 1, IP, INFO ) 00349 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 00350 INFOT = 3 00351 CALL DGBTF2( 1, 1, -1, 0, A, 1, IP, INFO ) 00352 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 00353 INFOT = 4 00354 CALL DGBTF2( 1, 1, 0, -1, A, 1, IP, INFO ) 00355 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 00356 INFOT = 6 00357 CALL DGBTF2( 2, 2, 1, 1, A, 3, IP, INFO ) 00358 CALL CHKXER( 'DGBTF2', INFOT, NOUT, LERR, OK ) 00359 * 00360 * DGBTRS 00361 * 00362 SRNAMT = 'DGBTRS' 00363 INFOT = 1 00364 CALL DGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00365 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00366 INFOT = 2 00367 CALL DGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00368 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00369 INFOT = 3 00370 CALL DGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO ) 00371 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00372 INFOT = 4 00373 CALL DGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO ) 00374 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00375 INFOT = 5 00376 CALL DGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO ) 00377 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00378 INFOT = 7 00379 CALL DGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO ) 00380 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00381 INFOT = 10 00382 CALL DGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00383 CALL CHKXER( 'DGBTRS', INFOT, NOUT, LERR, OK ) 00384 * 00385 * DGBRFS 00386 * 00387 SRNAMT = 'DGBRFS' 00388 INFOT = 1 00389 CALL DGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00390 $ R2, W, IW, INFO ) 00391 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00392 INFOT = 2 00393 CALL DGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00394 $ R2, W, IW, INFO ) 00395 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00396 INFOT = 3 00397 CALL DGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00398 $ R2, W, IW, INFO ) 00399 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00400 INFOT = 4 00401 CALL DGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00402 $ R2, W, IW, INFO ) 00403 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00404 INFOT = 5 00405 CALL DGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00406 $ R2, W, IW, INFO ) 00407 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00408 INFOT = 7 00409 CALL DGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1, 00410 $ R2, W, IW, INFO ) 00411 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00412 INFOT = 9 00413 CALL DGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1, 00414 $ R2, W, IW, INFO ) 00415 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00416 INFOT = 12 00417 CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1, 00418 $ R2, W, IW, INFO ) 00419 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00420 INFOT = 14 00421 CALL DGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1, 00422 $ R2, W, IW, INFO ) 00423 CALL CHKXER( 'DGBRFS', INFOT, NOUT, LERR, OK ) 00424 * 00425 * DGBRFSX 00426 * 00427 N_ERR_BNDS = 3 00428 NPARAMS = 0 00429 SRNAMT = 'DGBRFSX' 00430 INFOT = 1 00431 CALL DGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, R, C, B, 1, 00432 $ X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00433 $ NPARAMS, PARAMS, W, IW, INFO ) 00434 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00435 INFOT = 2 00436 EQ = '/' 00437 CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B, 2, 00438 $ X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00439 $ NPARAMS, PARAMS, W, IW, INFO ) 00440 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00441 INFOT = 3 00442 EQ = 'R' 00443 CALL DGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, R, C, B, 00444 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00445 $ NPARAMS, PARAMS, W, IW, INFO ) 00446 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00447 INFOT = 4 00448 EQ = 'R' 00449 CALL DGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, R, C, B, 00450 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00451 $ NPARAMS, PARAMS, W, IW, INFO ) 00452 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00453 INFOT = 5 00454 EQ = 'R' 00455 CALL DGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, R, C, B, 00456 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00457 $ NPARAMS, PARAMS, W, IW, INFO ) 00458 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00459 INFOT = 6 00460 CALL DGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, R, C, B, 00461 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00462 $ NPARAMS, PARAMS, W, IW, INFO ) 00463 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00464 INFOT = 8 00465 CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, R, C, B, 00466 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00467 $ NPARAMS, PARAMS, W, IW, INFO ) 00468 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00469 INFOT = 10 00470 CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, R, C, B, 2, 00471 $ X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00472 $ NPARAMS, PARAMS, W, IW, INFO ) 00473 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00474 INFOT = 13 00475 EQ = 'C' 00476 CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B, 00477 $ 1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00478 $ NPARAMS, PARAMS, W, IW, INFO ) 00479 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00480 INFOT = 15 00481 CALL DGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, R, C, B, 2, 00482 $ X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, 00483 $ NPARAMS, PARAMS, W, IW, INFO ) 00484 CALL CHKXER( 'DGBRFSX', INFOT, NOUT, LERR, OK ) 00485 * 00486 * DGBCON 00487 * 00488 SRNAMT = 'DGBCON' 00489 INFOT = 1 00490 CALL DGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 00491 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 00492 INFOT = 2 00493 CALL DGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, IW, 00494 $ INFO ) 00495 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 00496 INFOT = 3 00497 CALL DGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, IW, 00498 $ INFO ) 00499 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 00500 INFOT = 4 00501 CALL DGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, IW, 00502 $ INFO ) 00503 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 00504 INFOT = 6 00505 CALL DGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, IW, INFO ) 00506 CALL CHKXER( 'DGBCON', INFOT, NOUT, LERR, OK ) 00507 * 00508 * DGBEQU 00509 * 00510 SRNAMT = 'DGBEQU' 00511 INFOT = 1 00512 CALL DGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00513 $ INFO ) 00514 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 00515 INFOT = 2 00516 CALL DGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00517 $ INFO ) 00518 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 00519 INFOT = 3 00520 CALL DGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00521 $ INFO ) 00522 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 00523 INFOT = 4 00524 CALL DGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 00525 $ INFO ) 00526 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 00527 INFOT = 6 00528 CALL DGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 00529 $ INFO ) 00530 CALL CHKXER( 'DGBEQU', INFOT, NOUT, LERR, OK ) 00531 * 00532 * DGBEQUB 00533 * 00534 SRNAMT = 'DGBEQUB' 00535 INFOT = 1 00536 CALL DGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00537 $ INFO ) 00538 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 00539 INFOT = 2 00540 CALL DGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00541 $ INFO ) 00542 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 00543 INFOT = 3 00544 CALL DGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00545 $ INFO ) 00546 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 00547 INFOT = 4 00548 CALL DGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 00549 $ INFO ) 00550 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 00551 INFOT = 6 00552 CALL DGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 00553 $ INFO ) 00554 CALL CHKXER( 'DGBEQUB', INFOT, NOUT, LERR, OK ) 00555 END IF 00556 * 00557 * Print a summary line. 00558 * 00559 CALL ALAESM( PATH, OK, NOUT ) 00560 * 00561 RETURN 00562 * 00563 * End of DERRGE 00564 * 00565 END