LAPACK 3.3.1
Linear Algebra PACKage
|
00001 SUBROUTINE CERRPO( 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 * CERRPO tests the error exits for the COMPLEX routines 00016 * for Hermitian positive definite matrices. 00017 * 00018 * Note that this file is used only when the XBLAS are available, 00019 * otherwise cerrpo.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 REAL ANRM, RCOND, BERR 00041 * .. 00042 * .. Local Arrays .. 00043 REAL S( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 00044 $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ), 00045 $ PARAMS( 1 ) 00046 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00047 $ W( 2*NMAX ), X( NMAX ) 00048 * .. 00049 * .. External Functions .. 00050 LOGICAL LSAMEN 00051 EXTERNAL LSAMEN 00052 * .. 00053 * .. External Subroutines .. 00054 EXTERNAL ALAESM, CHKXER, CPBCON, CPBEQU, CPBRFS, CPBTF2, 00055 $ CPBTRF, CPBTRS, CPOCON, CPOEQU, CPORFS, CPOTF2, 00056 $ CPOTRF, CPOTRI, CPOTRS, CPPCON, CPPEQU, CPPRFS, 00057 $ CPPTRF, CPPTRI, CPPTRS, CPOEQUB, CPORFSX 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 CMPLX, REAL 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 ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 00082 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 00083 10 CONTINUE 00084 B( J ) = 0. 00085 R1( J ) = 0. 00086 R2( J ) = 0. 00087 W( J ) = 0. 00088 X( J ) = 0. 00089 S( J ) = 0. 00090 20 CONTINUE 00091 ANRM = 1. 00092 OK = .TRUE. 00093 * 00094 * Test error exits of the routines that use the Cholesky 00095 * decomposition of a Hermitian positive definite matrix. 00096 * 00097 IF( LSAMEN( 2, C2, 'PO' ) ) THEN 00098 * 00099 * CPOTRF 00100 * 00101 SRNAMT = 'CPOTRF' 00102 INFOT = 1 00103 CALL CPOTRF( '/', 0, A, 1, INFO ) 00104 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK ) 00105 INFOT = 2 00106 CALL CPOTRF( 'U', -1, A, 1, INFO ) 00107 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK ) 00108 INFOT = 4 00109 CALL CPOTRF( 'U', 2, A, 1, INFO ) 00110 CALL CHKXER( 'CPOTRF', INFOT, NOUT, LERR, OK ) 00111 * 00112 * CPOTF2 00113 * 00114 SRNAMT = 'CPOTF2' 00115 INFOT = 1 00116 CALL CPOTF2( '/', 0, A, 1, INFO ) 00117 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK ) 00118 INFOT = 2 00119 CALL CPOTF2( 'U', -1, A, 1, INFO ) 00120 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK ) 00121 INFOT = 4 00122 CALL CPOTF2( 'U', 2, A, 1, INFO ) 00123 CALL CHKXER( 'CPOTF2', INFOT, NOUT, LERR, OK ) 00124 * 00125 * CPOTRI 00126 * 00127 SRNAMT = 'CPOTRI' 00128 INFOT = 1 00129 CALL CPOTRI( '/', 0, A, 1, INFO ) 00130 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK ) 00131 INFOT = 2 00132 CALL CPOTRI( 'U', -1, A, 1, INFO ) 00133 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK ) 00134 INFOT = 4 00135 CALL CPOTRI( 'U', 2, A, 1, INFO ) 00136 CALL CHKXER( 'CPOTRI', INFOT, NOUT, LERR, OK ) 00137 * 00138 * CPOTRS 00139 * 00140 SRNAMT = 'CPOTRS' 00141 INFOT = 1 00142 CALL CPOTRS( '/', 0, 0, A, 1, B, 1, INFO ) 00143 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK ) 00144 INFOT = 2 00145 CALL CPOTRS( 'U', -1, 0, A, 1, B, 1, INFO ) 00146 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK ) 00147 INFOT = 3 00148 CALL CPOTRS( 'U', 0, -1, A, 1, B, 1, INFO ) 00149 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK ) 00150 INFOT = 5 00151 CALL CPOTRS( 'U', 2, 1, A, 1, B, 2, INFO ) 00152 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK ) 00153 INFOT = 7 00154 CALL CPOTRS( 'U', 2, 1, A, 2, B, 1, INFO ) 00155 CALL CHKXER( 'CPOTRS', INFOT, NOUT, LERR, OK ) 00156 * 00157 * CPORFS 00158 * 00159 SRNAMT = 'CPORFS' 00160 INFOT = 1 00161 CALL CPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R, 00162 $ INFO ) 00163 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00164 INFOT = 2 00165 CALL CPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R, 00166 $ INFO ) 00167 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00168 INFOT = 3 00169 CALL CPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, R, 00170 $ INFO ) 00171 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00172 INFOT = 5 00173 CALL CPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, R, 00174 $ INFO ) 00175 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00176 INFOT = 7 00177 CALL CPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, R, 00178 $ INFO ) 00179 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00180 INFOT = 9 00181 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, R, 00182 $ INFO ) 00183 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00184 INFOT = 11 00185 CALL CPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, R, 00186 $ INFO ) 00187 CALL CHKXER( 'CPORFS', INFOT, NOUT, LERR, OK ) 00188 * 00189 * CPORFSX 00190 * 00191 N_ERR_BNDS = 3 00192 NPARAMS = 0 00193 SRNAMT = 'CPORFSX' 00194 INFOT = 1 00195 CALL CPORFSX( '/', 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, R, INFO ) 00198 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00199 INFOT = 2 00200 CALL CPORFSX( '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, R, INFO ) 00203 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00204 EQ = 'N' 00205 INFOT = 3 00206 CALL CPORFSX( '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, R, INFO ) 00209 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00210 INFOT = 4 00211 CALL CPORFSX( '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, R, INFO ) 00214 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00215 INFOT = 6 00216 CALL CPORFSX( '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, R, INFO ) 00219 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00220 INFOT = 8 00221 CALL CPORFSX( '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, R, INFO ) 00224 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00225 INFOT = 11 00226 CALL CPORFSX( '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, R, INFO ) 00229 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00230 INFOT = 13 00231 CALL CPORFSX( '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, R, INFO ) 00234 CALL CHKXER( 'CPORFSX', INFOT, NOUT, LERR, OK ) 00235 * 00236 * CPOCON 00237 * 00238 SRNAMT = 'CPOCON' 00239 INFOT = 1 00240 CALL CPOCON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO ) 00241 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK ) 00242 INFOT = 2 00243 CALL CPOCON( 'U', -1, A, 1, ANRM, RCOND, W, R, INFO ) 00244 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK ) 00245 INFOT = 4 00246 CALL CPOCON( 'U', 2, A, 1, ANRM, RCOND, W, R, INFO ) 00247 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK ) 00248 INFOT = 5 00249 CALL CPOCON( 'U', 1, A, 1, -ANRM, RCOND, W, R, INFO ) 00250 CALL CHKXER( 'CPOCON', INFOT, NOUT, LERR, OK ) 00251 * 00252 * CPOEQU 00253 * 00254 SRNAMT = 'CPOEQU' 00255 INFOT = 1 00256 CALL CPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO ) 00257 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK ) 00258 INFOT = 3 00259 CALL CPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO ) 00260 CALL CHKXER( 'CPOEQU', INFOT, NOUT, LERR, OK ) 00261 * 00262 * CPOEQUB 00263 * 00264 SRNAMT = 'CPOEQUB' 00265 INFOT = 1 00266 CALL CPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO ) 00267 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK ) 00268 INFOT = 3 00269 CALL CPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO ) 00270 CALL CHKXER( 'CPOEQUB', INFOT, NOUT, LERR, OK ) 00271 * 00272 * Test error exits of the routines that use the Cholesky 00273 * decomposition of a Hermitian positive definite packed matrix. 00274 * 00275 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 00276 * 00277 * CPPTRF 00278 * 00279 SRNAMT = 'CPPTRF' 00280 INFOT = 1 00281 CALL CPPTRF( '/', 0, A, INFO ) 00282 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK ) 00283 INFOT = 2 00284 CALL CPPTRF( 'U', -1, A, INFO ) 00285 CALL CHKXER( 'CPPTRF', INFOT, NOUT, LERR, OK ) 00286 * 00287 * CPPTRI 00288 * 00289 SRNAMT = 'CPPTRI' 00290 INFOT = 1 00291 CALL CPPTRI( '/', 0, A, INFO ) 00292 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK ) 00293 INFOT = 2 00294 CALL CPPTRI( 'U', -1, A, INFO ) 00295 CALL CHKXER( 'CPPTRI', INFOT, NOUT, LERR, OK ) 00296 * 00297 * CPPTRS 00298 * 00299 SRNAMT = 'CPPTRS' 00300 INFOT = 1 00301 CALL CPPTRS( '/', 0, 0, A, B, 1, INFO ) 00302 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK ) 00303 INFOT = 2 00304 CALL CPPTRS( 'U', -1, 0, A, B, 1, INFO ) 00305 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK ) 00306 INFOT = 3 00307 CALL CPPTRS( 'U', 0, -1, A, B, 1, INFO ) 00308 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK ) 00309 INFOT = 6 00310 CALL CPPTRS( 'U', 2, 1, A, B, 1, INFO ) 00311 CALL CHKXER( 'CPPTRS', INFOT, NOUT, LERR, OK ) 00312 * 00313 * CPPRFS 00314 * 00315 SRNAMT = 'CPPRFS' 00316 INFOT = 1 00317 CALL CPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, R, INFO ) 00318 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK ) 00319 INFOT = 2 00320 CALL CPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, R, 00321 $ INFO ) 00322 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK ) 00323 INFOT = 3 00324 CALL CPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, R, 00325 $ INFO ) 00326 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK ) 00327 INFOT = 7 00328 CALL CPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, R, INFO ) 00329 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK ) 00330 INFOT = 9 00331 CALL CPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, R, INFO ) 00332 CALL CHKXER( 'CPPRFS', INFOT, NOUT, LERR, OK ) 00333 * 00334 * CPPCON 00335 * 00336 SRNAMT = 'CPPCON' 00337 INFOT = 1 00338 CALL CPPCON( '/', 0, A, ANRM, RCOND, W, R, INFO ) 00339 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK ) 00340 INFOT = 2 00341 CALL CPPCON( 'U', -1, A, ANRM, RCOND, W, R, INFO ) 00342 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK ) 00343 INFOT = 4 00344 CALL CPPCON( 'U', 1, A, -ANRM, RCOND, W, R, INFO ) 00345 CALL CHKXER( 'CPPCON', INFOT, NOUT, LERR, OK ) 00346 * 00347 * CPPEQU 00348 * 00349 SRNAMT = 'CPPEQU' 00350 INFOT = 1 00351 CALL CPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO ) 00352 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK ) 00353 INFOT = 2 00354 CALL CPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO ) 00355 CALL CHKXER( 'CPPEQU', INFOT, NOUT, LERR, OK ) 00356 * 00357 * Test error exits of the routines that use the Cholesky 00358 * decomposition of a Hermitian positive definite band matrix. 00359 * 00360 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 00361 * 00362 * CPBTRF 00363 * 00364 SRNAMT = 'CPBTRF' 00365 INFOT = 1 00366 CALL CPBTRF( '/', 0, 0, A, 1, INFO ) 00367 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK ) 00368 INFOT = 2 00369 CALL CPBTRF( 'U', -1, 0, A, 1, INFO ) 00370 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK ) 00371 INFOT = 3 00372 CALL CPBTRF( 'U', 1, -1, A, 1, INFO ) 00373 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK ) 00374 INFOT = 5 00375 CALL CPBTRF( 'U', 2, 1, A, 1, INFO ) 00376 CALL CHKXER( 'CPBTRF', INFOT, NOUT, LERR, OK ) 00377 * 00378 * CPBTF2 00379 * 00380 SRNAMT = 'CPBTF2' 00381 INFOT = 1 00382 CALL CPBTF2( '/', 0, 0, A, 1, INFO ) 00383 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK ) 00384 INFOT = 2 00385 CALL CPBTF2( 'U', -1, 0, A, 1, INFO ) 00386 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK ) 00387 INFOT = 3 00388 CALL CPBTF2( 'U', 1, -1, A, 1, INFO ) 00389 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK ) 00390 INFOT = 5 00391 CALL CPBTF2( 'U', 2, 1, A, 1, INFO ) 00392 CALL CHKXER( 'CPBTF2', INFOT, NOUT, LERR, OK ) 00393 * 00394 * CPBTRS 00395 * 00396 SRNAMT = 'CPBTRS' 00397 INFOT = 1 00398 CALL CPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO ) 00399 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00400 INFOT = 2 00401 CALL CPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 00402 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00403 INFOT = 3 00404 CALL CPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 00405 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00406 INFOT = 4 00407 CALL CPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 00408 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00409 INFOT = 6 00410 CALL CPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO ) 00411 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00412 INFOT = 8 00413 CALL CPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO ) 00414 CALL CHKXER( 'CPBTRS', INFOT, NOUT, LERR, OK ) 00415 * 00416 * CPBRFS 00417 * 00418 SRNAMT = 'CPBRFS' 00419 INFOT = 1 00420 CALL CPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00421 $ R, INFO ) 00422 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00423 INFOT = 2 00424 CALL CPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00425 $ R, INFO ) 00426 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00427 INFOT = 3 00428 CALL CPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00429 $ R, INFO ) 00430 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00431 INFOT = 4 00432 CALL CPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00433 $ R, INFO ) 00434 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00435 INFOT = 6 00436 CALL CPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, 00437 $ R, INFO ) 00438 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00439 INFOT = 8 00440 CALL CPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, 00441 $ R, INFO ) 00442 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00443 INFOT = 10 00444 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W, 00445 $ R, INFO ) 00446 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00447 INFOT = 12 00448 CALL CPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W, 00449 $ R, INFO ) 00450 CALL CHKXER( 'CPBRFS', INFOT, NOUT, LERR, OK ) 00451 * 00452 * CPBCON 00453 * 00454 SRNAMT = 'CPBCON' 00455 INFOT = 1 00456 CALL CPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, R, INFO ) 00457 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK ) 00458 INFOT = 2 00459 CALL CPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, R, INFO ) 00460 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK ) 00461 INFOT = 3 00462 CALL CPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, R, INFO ) 00463 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK ) 00464 INFOT = 5 00465 CALL CPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, R, INFO ) 00466 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK ) 00467 INFOT = 6 00468 CALL CPBCON( 'U', 1, 0, A, 1, -ANRM, RCOND, W, R, INFO ) 00469 CALL CHKXER( 'CPBCON', INFOT, NOUT, LERR, OK ) 00470 * 00471 * CPBEQU 00472 * 00473 SRNAMT = 'CPBEQU' 00474 INFOT = 1 00475 CALL CPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO ) 00476 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK ) 00477 INFOT = 2 00478 CALL CPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO ) 00479 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK ) 00480 INFOT = 3 00481 CALL CPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO ) 00482 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK ) 00483 INFOT = 5 00484 CALL CPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO ) 00485 CALL CHKXER( 'CPBEQU', INFOT, NOUT, LERR, OK ) 00486 END IF 00487 * 00488 * Print a summary line. 00489 * 00490 CALL ALAESM( PATH, OK, NOUT ) 00491 * 00492 RETURN 00493 * 00494 * End of CERRPO 00495 * 00496 END