LAPACK 3.3.1
Linear Algebra PACKage
|
00001 SUBROUTINE DERRPO( PATH, NUNIT ) 00002 * 00003 * -- LAPACK test routine (version 3.2.1) -- 00004 * Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. 00005 * April 2009 00006 * 00007 * .. Scalar Arguments .. 00008 CHARACTER*3 PATH 00009 INTEGER NUNIT 00010 * .. 00011 * 00012 * Purpose 00013 * ======= 00014 * 00015 * DERRPO tests the error exits for the DOUBLE PRECISION routines 00016 * for symmetric positive definite matrices. 00017 * 00018 * Note that this file is used only when the XBLAS are available, 00019 * otherwise derrpo.f defines this subroutine. 00020 * 00021 * Arguments 00022 * ========= 00023 * 00024 * PATH (input) CHARACTER*3 00025 * The LAPACK path name for the routines to be tested. 00026 * 00027 * NUNIT (input) INTEGER 00028 * The unit number for output. 00029 * 00030 * ===================================================================== 00031 * 00032 * .. Parameters .. 00033 INTEGER NMAX 00034 PARAMETER ( NMAX = 4 ) 00035 * .. 00036 * .. Local Scalars .. 00037 CHARACTER EQ 00038 CHARACTER*2 C2 00039 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS 00040 DOUBLE PRECISION ANRM, RCOND, BERR 00041 * .. 00042 * .. Local Arrays .. 00043 INTEGER IW( NMAX ) 00044 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00045 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX ), 00046 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ), 00047 $ ERR_BNDS_C( NMAX, 3), PARAMS( 1 ) 00048 * .. 00049 * .. External Functions .. 00050 LOGICAL LSAMEN 00051 EXTERNAL LSAMEN 00052 * .. 00053 * .. External Subroutines .. 00054 EXTERNAL ALAESM, CHKXER, DPBCON, DPBEQU, DPBRFS, DPBTF2, 00055 $ DPBTRF, DPBTRS, DPOCON, DPOEQU, DPORFS, DPOTF2, 00056 $ DPOTRF, DPOTRI, DPOTRS, DPPCON, DPPEQU, DPPRFS, 00057 $ DPPTRF, DPPTRI, DPPTRS, DPOEQUB, DPORFSX 00058 * .. 00059 * .. Scalars in Common .. 00060 LOGICAL LERR, OK 00061 CHARACTER*32 SRNAMT 00062 INTEGER INFOT, NOUT 00063 * .. 00064 * .. Common blocks .. 00065 COMMON / INFOC / INFOT, NOUT, OK, LERR 00066 COMMON / SRNAMC / SRNAMT 00067 * .. 00068 * .. Intrinsic Functions .. 00069 INTRINSIC DBLE 00070 * .. 00071 * .. Executable Statements .. 00072 * 00073 NOUT = NUNIT 00074 WRITE( NOUT, FMT = * ) 00075 C2 = PATH( 2: 3 ) 00076 * 00077 * Set the variables to innocuous values. 00078 * 00079 DO 20 J = 1, NMAX 00080 DO 10 I = 1, NMAX 00081 A( I, J ) = 1.D0 / DBLE( I+J ) 00082 AF( I, J ) = 1.D0 / DBLE( I+J ) 00083 10 CONTINUE 00084 B( J ) = 0.D0 00085 R1( J ) = 0.D0 00086 R2( J ) = 0.D0 00087 W( J ) = 0.D0 00088 X( J ) = 0.D0 00089 S( J ) = 0.D0 00090 IW( J ) = J 00091 20 CONTINUE 00092 OK = .TRUE. 00093 * 00094 IF( LSAMEN( 2, C2, 'PO' ) ) THEN 00095 * 00096 * Test error exits of the routines that use the Cholesky 00097 * decomposition of a symmetric positive definite matrix. 00098 * 00099 * DPOTRF 00100 * 00101 SRNAMT = 'DPOTRF' 00102 INFOT = 1 00103 CALL DPOTRF( '/', 0, A, 1, INFO ) 00104 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00105 INFOT = 2 00106 CALL DPOTRF( 'U', -1, A, 1, INFO ) 00107 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00108 INFOT = 4 00109 CALL DPOTRF( 'U', 2, A, 1, INFO ) 00110 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00111 * 00112 * DPOTF2 00113 * 00114 SRNAMT = 'DPOTF2' 00115 INFOT = 1 00116 CALL DPOTF2( '/', 0, A, 1, INFO ) 00117 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00118 INFOT = 2 00119 CALL DPOTF2( 'U', -1, A, 1, INFO ) 00120 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00121 INFOT = 4 00122 CALL DPOTF2( 'U', 2, A, 1, INFO ) 00123 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00124 * 00125 * DPOTRI 00126 * 00127 SRNAMT = 'DPOTRI' 00128 INFOT = 1 00129 CALL DPOTRI( '/', 0, A, 1, INFO ) 00130 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00131 INFOT = 2 00132 CALL DPOTRI( 'U', -1, A, 1, INFO ) 00133 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00134 INFOT = 4 00135 CALL DPOTRI( 'U', 2, A, 1, INFO ) 00136 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00137 * 00138 * DPOTRS 00139 * 00140 SRNAMT = 'DPOTRS' 00141 INFOT = 1 00142 CALL DPOTRS( '/', 0, 0, A, 1, B, 1, INFO ) 00143 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00144 INFOT = 2 00145 CALL DPOTRS( 'U', -1, 0, A, 1, B, 1, INFO ) 00146 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00147 INFOT = 3 00148 CALL DPOTRS( 'U', 0, -1, A, 1, B, 1, INFO ) 00149 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00150 INFOT = 5 00151 CALL DPOTRS( 'U', 2, 1, A, 1, B, 2, INFO ) 00152 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00153 INFOT = 7 00154 CALL DPOTRS( 'U', 2, 1, A, 2, B, 1, INFO ) 00155 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00156 * 00157 * DPORFS 00158 * 00159 SRNAMT = 'DPORFS' 00160 INFOT = 1 00161 CALL DPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW, 00162 $ INFO ) 00163 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00164 INFOT = 2 00165 CALL DPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00166 $ IW, INFO ) 00167 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00168 INFOT = 3 00169 CALL DPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00170 $ IW, INFO ) 00171 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00172 INFOT = 5 00173 CALL DPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW, 00174 $ INFO ) 00175 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00176 INFOT = 7 00177 CALL DPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW, 00178 $ INFO ) 00179 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00180 INFOT = 9 00181 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW, 00182 $ INFO ) 00183 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00184 INFOT = 11 00185 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW, 00186 $ INFO ) 00187 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00188 * 00189 * DPORFSX 00190 * 00191 N_ERR_BNDS = 3 00192 NPARAMS = 0 00193 SRNAMT = 'DPORFSX' 00194 INFOT = 1 00195 CALL DPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1, 00196 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00197 $ PARAMS, W, IW, INFO ) 00198 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00199 INFOT = 2 00200 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1, 00201 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00202 $ PARAMS, W, IW, INFO ) 00203 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00204 EQ = 'N' 00205 INFOT = 3 00206 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1, 00207 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00208 $ PARAMS, W, IW, INFO ) 00209 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00210 INFOT = 4 00211 CALL DPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1, 00212 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00213 $ PARAMS, W, IW, INFO ) 00214 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00215 INFOT = 6 00216 CALL DPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2, 00217 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00218 $ PARAMS, W, IW, INFO ) 00219 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00220 INFOT = 8 00221 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2, 00222 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00223 $ PARAMS, W, IW, INFO ) 00224 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00225 INFOT = 11 00226 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2, 00227 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00228 $ PARAMS, W, IW, INFO ) 00229 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00230 INFOT = 13 00231 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1, 00232 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00233 $ PARAMS, W, IW, INFO ) 00234 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00235 * 00236 * DPOCON 00237 * 00238 SRNAMT = 'DPOCON' 00239 INFOT = 1 00240 CALL DPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00241 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00242 INFOT = 2 00243 CALL DPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO ) 00244 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00245 INFOT = 4 00246 CALL DPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO ) 00247 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00248 * 00249 * DPOEQU 00250 * 00251 SRNAMT = 'DPOEQU' 00252 INFOT = 1 00253 CALL DPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO ) 00254 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK ) 00255 INFOT = 3 00256 CALL DPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO ) 00257 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK ) 00258 * 00259 * DPOEQUB 00260 * 00261 SRNAMT = 'DPOEQUB' 00262 INFOT = 1 00263 CALL DPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO ) 00264 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK ) 00265 INFOT = 3 00266 CALL DPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO ) 00267 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK ) 00268 * 00269 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 00270 * 00271 * Test error exits of the routines that use the Cholesky 00272 * decomposition of a symmetric positive definite packed matrix. 00273 * 00274 * DPPTRF 00275 * 00276 SRNAMT = 'DPPTRF' 00277 INFOT = 1 00278 CALL DPPTRF( '/', 0, A, INFO ) 00279 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK ) 00280 INFOT = 2 00281 CALL DPPTRF( 'U', -1, A, INFO ) 00282 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK ) 00283 * 00284 * DPPTRI 00285 * 00286 SRNAMT = 'DPPTRI' 00287 INFOT = 1 00288 CALL DPPTRI( '/', 0, A, INFO ) 00289 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK ) 00290 INFOT = 2 00291 CALL DPPTRI( 'U', -1, A, INFO ) 00292 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK ) 00293 * 00294 * DPPTRS 00295 * 00296 SRNAMT = 'DPPTRS' 00297 INFOT = 1 00298 CALL DPPTRS( '/', 0, 0, A, B, 1, INFO ) 00299 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00300 INFOT = 2 00301 CALL DPPTRS( 'U', -1, 0, A, B, 1, INFO ) 00302 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00303 INFOT = 3 00304 CALL DPPTRS( 'U', 0, -1, A, B, 1, INFO ) 00305 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00306 INFOT = 6 00307 CALL DPPTRS( 'U', 2, 1, A, B, 1, INFO ) 00308 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00309 * 00310 * DPPRFS 00311 * 00312 SRNAMT = 'DPPRFS' 00313 INFOT = 1 00314 CALL DPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW, 00315 $ INFO ) 00316 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00317 INFOT = 2 00318 CALL DPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW, 00319 $ INFO ) 00320 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00321 INFOT = 3 00322 CALL DPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW, 00323 $ INFO ) 00324 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00325 INFOT = 7 00326 CALL DPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW, 00327 $ INFO ) 00328 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00329 INFOT = 9 00330 CALL DPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW, 00331 $ INFO ) 00332 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00333 * 00334 * DPPCON 00335 * 00336 SRNAMT = 'DPPCON' 00337 INFOT = 1 00338 CALL DPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO ) 00339 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK ) 00340 INFOT = 2 00341 CALL DPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO ) 00342 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK ) 00343 * 00344 * DPPEQU 00345 * 00346 SRNAMT = 'DPPEQU' 00347 INFOT = 1 00348 CALL DPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO ) 00349 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK ) 00350 INFOT = 2 00351 CALL DPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO ) 00352 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK ) 00353 * 00354 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 00355 * 00356 * Test error exits of the routines that use the Cholesky 00357 * decomposition of a symmetric positive definite band matrix. 00358 * 00359 * DPBTRF 00360 * 00361 SRNAMT = 'DPBTRF' 00362 INFOT = 1 00363 CALL DPBTRF( '/', 0, 0, A, 1, INFO ) 00364 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00365 INFOT = 2 00366 CALL DPBTRF( 'U', -1, 0, A, 1, INFO ) 00367 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00368 INFOT = 3 00369 CALL DPBTRF( 'U', 1, -1, A, 1, INFO ) 00370 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00371 INFOT = 5 00372 CALL DPBTRF( 'U', 2, 1, A, 1, INFO ) 00373 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00374 * 00375 * DPBTF2 00376 * 00377 SRNAMT = 'DPBTF2' 00378 INFOT = 1 00379 CALL DPBTF2( '/', 0, 0, A, 1, INFO ) 00380 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00381 INFOT = 2 00382 CALL DPBTF2( 'U', -1, 0, A, 1, INFO ) 00383 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00384 INFOT = 3 00385 CALL DPBTF2( 'U', 1, -1, A, 1, INFO ) 00386 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00387 INFOT = 5 00388 CALL DPBTF2( 'U', 2, 1, A, 1, INFO ) 00389 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00390 * 00391 * DPBTRS 00392 * 00393 SRNAMT = 'DPBTRS' 00394 INFOT = 1 00395 CALL DPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO ) 00396 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00397 INFOT = 2 00398 CALL DPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 00399 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00400 INFOT = 3 00401 CALL DPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 00402 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00403 INFOT = 4 00404 CALL DPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 00405 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00406 INFOT = 6 00407 CALL DPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO ) 00408 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00409 INFOT = 8 00410 CALL DPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO ) 00411 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00412 * 00413 * DPBRFS 00414 * 00415 SRNAMT = 'DPBRFS' 00416 INFOT = 1 00417 CALL DPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00418 $ IW, INFO ) 00419 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00420 INFOT = 2 00421 CALL DPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00422 $ IW, INFO ) 00423 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00424 INFOT = 3 00425 CALL DPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00426 $ IW, INFO ) 00427 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00428 INFOT = 4 00429 CALL DPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00430 $ IW, INFO ) 00431 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00432 INFOT = 6 00433 CALL DPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, 00434 $ IW, INFO ) 00435 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00436 INFOT = 8 00437 CALL DPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, 00438 $ IW, INFO ) 00439 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00440 INFOT = 10 00441 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W, 00442 $ IW, INFO ) 00443 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00444 INFOT = 12 00445 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W, 00446 $ IW, INFO ) 00447 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00448 * 00449 * DPBCON 00450 * 00451 SRNAMT = 'DPBCON' 00452 INFOT = 1 00453 CALL DPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00454 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00455 INFOT = 2 00456 CALL DPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00457 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00458 INFOT = 3 00459 CALL DPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO ) 00460 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00461 INFOT = 5 00462 CALL DPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO ) 00463 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00464 * 00465 * DPBEQU 00466 * 00467 SRNAMT = 'DPBEQU' 00468 INFOT = 1 00469 CALL DPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO ) 00470 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00471 INFOT = 2 00472 CALL DPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO ) 00473 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00474 INFOT = 3 00475 CALL DPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO ) 00476 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00477 INFOT = 5 00478 CALL DPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO ) 00479 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00480 END IF 00481 * 00482 * Print a summary line. 00483 * 00484 CALL ALAESM( PATH, OK, NOUT ) 00485 * 00486 RETURN 00487 * 00488 * End of DERRPO 00489 * 00490 END