LAPACK 3.3.0
|
00001 SUBROUTINE CERRGE( 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 * CERRGE tests the error exits for the COMPLEX routines 00016 * for general matrices. 00017 * 00018 * Note that this file is used only when the XBLAS are available, 00019 * otherwise cerrge.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, CCOND, RCOND, BERR 00041 * .. 00042 * .. Local Arrays .. 00043 INTEGER IP( NMAX ) 00044 REAL R( NMAX ), R1( NMAX ), R2( NMAX ), CS( NMAX ), 00045 $ RS( NMAX ) 00046 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00047 $ W( 2*NMAX ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ), 00048 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 00049 * .. 00050 * .. External Functions .. 00051 LOGICAL LSAMEN 00052 EXTERNAL LSAMEN 00053 * .. 00054 * .. External Subroutines .. 00055 EXTERNAL ALAESM, CGBCON, CGBEQU, CGBRFS, CGBTF2, CGBTRF, 00056 $ CGBTRS, CGECON, CGEEQU, CGERFS, CGETF2, CGETRF, 00057 $ CGETRI, CGETRS, CHKXER, CGEEQUB, CGERFSX, 00058 $ CGBEQUB, CGBRFSX 00059 * .. 00060 * .. Scalars in Common .. 00061 LOGICAL LERR, OK 00062 CHARACTER*32 SRNAMT 00063 INTEGER INFOT, NOUT 00064 * .. 00065 * .. Common blocks .. 00066 COMMON / INFOC / INFOT, NOUT, OK, LERR 00067 COMMON / SRNAMC / SRNAMT 00068 * .. 00069 * .. Intrinsic Functions .. 00070 INTRINSIC CMPLX, REAL 00071 * .. 00072 * .. Executable Statements .. 00073 * 00074 NOUT = NUNIT 00075 WRITE( NOUT, FMT = * ) 00076 C2 = PATH( 2: 3 ) 00077 * 00078 * Set the variables to innocuous values. 00079 * 00080 DO 20 J = 1, NMAX 00081 DO 10 I = 1, NMAX 00082 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 00083 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 00084 10 CONTINUE 00085 B( J ) = 0. 00086 R1( J ) = 0. 00087 R2( J ) = 0. 00088 W( J ) = 0. 00089 X( J ) = 0. 00090 CS( J ) = 0. 00091 RS( J ) = 0. 00092 IP( J ) = J 00093 20 CONTINUE 00094 OK = .TRUE. 00095 * 00096 * Test error exits of the routines that use the LU decomposition 00097 * of a general matrix. 00098 * 00099 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 00100 * 00101 * CGETRF 00102 * 00103 SRNAMT = 'CGETRF' 00104 INFOT = 1 00105 CALL CGETRF( -1, 0, A, 1, IP, INFO ) 00106 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 00107 INFOT = 2 00108 CALL CGETRF( 0, -1, A, 1, IP, INFO ) 00109 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 00110 INFOT = 4 00111 CALL CGETRF( 2, 1, A, 1, IP, INFO ) 00112 CALL CHKXER( 'CGETRF', INFOT, NOUT, LERR, OK ) 00113 * 00114 * CGETF2 00115 * 00116 SRNAMT = 'CGETF2' 00117 INFOT = 1 00118 CALL CGETF2( -1, 0, A, 1, IP, INFO ) 00119 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 00120 INFOT = 2 00121 CALL CGETF2( 0, -1, A, 1, IP, INFO ) 00122 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 00123 INFOT = 4 00124 CALL CGETF2( 2, 1, A, 1, IP, INFO ) 00125 CALL CHKXER( 'CGETF2', INFOT, NOUT, LERR, OK ) 00126 * 00127 * CGETRI 00128 * 00129 SRNAMT = 'CGETRI' 00130 INFOT = 1 00131 CALL CGETRI( -1, A, 1, IP, W, 1, INFO ) 00132 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 00133 INFOT = 3 00134 CALL CGETRI( 2, A, 1, IP, W, 2, INFO ) 00135 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 00136 INFOT = 6 00137 CALL CGETRI( 2, A, 2, IP, W, 1, INFO ) 00138 CALL CHKXER( 'CGETRI', INFOT, NOUT, LERR, OK ) 00139 * 00140 * CGETRS 00141 * 00142 SRNAMT = 'CGETRS' 00143 INFOT = 1 00144 CALL CGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 00145 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 00146 INFOT = 2 00147 CALL CGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO ) 00148 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 00149 INFOT = 3 00150 CALL CGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO ) 00151 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 00152 INFOT = 5 00153 CALL CGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO ) 00154 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 00155 INFOT = 8 00156 CALL CGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO ) 00157 CALL CHKXER( 'CGETRS', INFOT, NOUT, LERR, OK ) 00158 * 00159 * CGERFS 00160 * 00161 SRNAMT = 'CGERFS' 00162 INFOT = 1 00163 CALL CGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 00164 $ R, INFO ) 00165 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00166 INFOT = 2 00167 CALL CGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 00168 $ W, R, INFO ) 00169 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00170 INFOT = 3 00171 CALL CGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 00172 $ W, R, INFO ) 00173 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00174 INFOT = 5 00175 CALL CGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 00176 $ R, INFO ) 00177 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00178 INFOT = 7 00179 CALL CGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 00180 $ R, INFO ) 00181 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00182 INFOT = 10 00183 CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 00184 $ R, INFO ) 00185 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00186 INFOT = 12 00187 CALL CGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 00188 $ R, INFO ) 00189 CALL CHKXER( 'CGERFS', INFOT, NOUT, LERR, OK ) 00190 * 00191 * CGERFSX 00192 * 00193 N_ERR_BNDS = 3 00194 NPARAMS = 0 00195 SRNAMT = 'CGERFSX' 00196 INFOT = 1 00197 CALL CGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X, 00198 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00199 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00200 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00201 INFOT = 2 00202 EQ = '/' 00203 CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X, 00204 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00205 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00206 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00207 INFOT = 3 00208 EQ = 'R' 00209 CALL CGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X, 00210 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00211 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00212 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00213 INFOT = 4 00214 CALL CGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 1, X, 00215 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00216 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00217 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00218 INFOT = 6 00219 CALL CGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X, 00220 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00221 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00222 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00223 INFOT = 8 00224 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, RS, CS, B, 2, X, 00225 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00226 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00227 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00228 INFOT = 13 00229 EQ = 'C' 00230 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 1, X, 00231 $ 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00232 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00233 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00234 INFOT = 15 00235 CALL CGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 2, X, 00236 $ 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00237 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00238 CALL CHKXER( 'CGERFSX', INFOT, NOUT, LERR, OK ) 00239 * 00240 * CGECON 00241 * 00242 SRNAMT = 'CGECON' 00243 INFOT = 1 00244 CALL CGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO ) 00245 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 00246 INFOT = 2 00247 CALL CGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO ) 00248 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 00249 INFOT = 4 00250 CALL CGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO ) 00251 CALL CHKXER( 'CGECON', INFOT, NOUT, LERR, OK ) 00252 * 00253 * CGEEQU 00254 * 00255 SRNAMT = 'CGEEQU' 00256 INFOT = 1 00257 CALL CGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00258 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 00259 INFOT = 2 00260 CALL CGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00261 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 00262 INFOT = 4 00263 CALL CGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00264 CALL CHKXER( 'CGEEQU', INFOT, NOUT, LERR, OK ) 00265 * 00266 * CGEEQUB 00267 * 00268 SRNAMT = 'CGEEQUB' 00269 INFOT = 1 00270 CALL CGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00271 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 00272 INFOT = 2 00273 CALL CGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00274 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 00275 INFOT = 4 00276 CALL CGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO ) 00277 CALL CHKXER( 'CGEEQUB', INFOT, NOUT, LERR, OK ) 00278 * 00279 * Test error exits of the routines that use the LU decomposition 00280 * of a general band matrix. 00281 * 00282 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 00283 * 00284 * CGBTRF 00285 * 00286 SRNAMT = 'CGBTRF' 00287 INFOT = 1 00288 CALL CGBTRF( -1, 0, 0, 0, A, 1, IP, INFO ) 00289 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 00290 INFOT = 2 00291 CALL CGBTRF( 0, -1, 0, 0, A, 1, IP, INFO ) 00292 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 00293 INFOT = 3 00294 CALL CGBTRF( 1, 1, -1, 0, A, 1, IP, INFO ) 00295 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 00296 INFOT = 4 00297 CALL CGBTRF( 1, 1, 0, -1, A, 1, IP, INFO ) 00298 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 00299 INFOT = 6 00300 CALL CGBTRF( 2, 2, 1, 1, A, 3, IP, INFO ) 00301 CALL CHKXER( 'CGBTRF', INFOT, NOUT, LERR, OK ) 00302 * 00303 * CGBTF2 00304 * 00305 SRNAMT = 'CGBTF2' 00306 INFOT = 1 00307 CALL CGBTF2( -1, 0, 0, 0, A, 1, IP, INFO ) 00308 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 00309 INFOT = 2 00310 CALL CGBTF2( 0, -1, 0, 0, A, 1, IP, INFO ) 00311 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 00312 INFOT = 3 00313 CALL CGBTF2( 1, 1, -1, 0, A, 1, IP, INFO ) 00314 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 00315 INFOT = 4 00316 CALL CGBTF2( 1, 1, 0, -1, A, 1, IP, INFO ) 00317 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 00318 INFOT = 6 00319 CALL CGBTF2( 2, 2, 1, 1, A, 3, IP, INFO ) 00320 CALL CHKXER( 'CGBTF2', INFOT, NOUT, LERR, OK ) 00321 * 00322 * CGBTRS 00323 * 00324 SRNAMT = 'CGBTRS' 00325 INFOT = 1 00326 CALL CGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00327 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00328 INFOT = 2 00329 CALL CGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00330 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00331 INFOT = 3 00332 CALL CGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO ) 00333 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00334 INFOT = 4 00335 CALL CGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO ) 00336 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00337 INFOT = 5 00338 CALL CGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO ) 00339 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00340 INFOT = 7 00341 CALL CGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO ) 00342 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00343 INFOT = 10 00344 CALL CGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO ) 00345 CALL CHKXER( 'CGBTRS', INFOT, NOUT, LERR, OK ) 00346 * 00347 * CGBRFS 00348 * 00349 SRNAMT = 'CGBRFS' 00350 INFOT = 1 00351 CALL CGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00352 $ R2, W, R, INFO ) 00353 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00354 INFOT = 2 00355 CALL CGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00356 $ R2, W, R, INFO ) 00357 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00358 INFOT = 3 00359 CALL CGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00360 $ R2, W, R, INFO ) 00361 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00362 INFOT = 4 00363 CALL CGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00364 $ R2, W, R, INFO ) 00365 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00366 INFOT = 5 00367 CALL CGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, 00368 $ R2, W, R, INFO ) 00369 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00370 INFOT = 7 00371 CALL CGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1, 00372 $ R2, W, R, INFO ) 00373 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00374 INFOT = 9 00375 CALL CGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1, 00376 $ R2, W, R, INFO ) 00377 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00378 INFOT = 12 00379 CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1, 00380 $ R2, W, R, INFO ) 00381 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00382 INFOT = 14 00383 CALL CGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1, 00384 $ R2, W, R, INFO ) 00385 CALL CHKXER( 'CGBRFS', INFOT, NOUT, LERR, OK ) 00386 * 00387 * CGBRFSX 00388 * 00389 N_ERR_BNDS = 3 00390 NPARAMS = 0 00391 SRNAMT = 'CGBRFSX' 00392 INFOT = 1 00393 CALL CGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 00394 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00395 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00396 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00397 INFOT = 2 00398 EQ = '/' 00399 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B, 00400 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00401 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00402 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00403 INFOT = 3 00404 EQ = 'R' 00405 CALL CGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, RS, CS, B, 00406 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00407 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00408 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00409 INFOT = 4 00410 EQ = 'R' 00411 CALL CGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, RS, CS, B, 00412 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00413 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00414 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00415 INFOT = 5 00416 EQ = 'R' 00417 CALL CGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, RS, CS, B, 00418 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00419 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00420 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00421 INFOT = 6 00422 CALL CGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 00423 $ 1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00424 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00425 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00426 INFOT = 8 00427 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B, 00428 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00429 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00430 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00431 INFOT = 10 00432 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, RS, CS, B, 00433 $ 2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00434 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00435 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00436 INFOT = 13 00437 EQ = 'C' 00438 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B, 00439 $ 1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00440 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00441 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00442 INFOT = 15 00443 CALL CGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B, 00444 $ 2, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, 00445 $ ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO ) 00446 CALL CHKXER( 'CGBRFSX', INFOT, NOUT, LERR, OK ) 00447 * 00448 * CGBCON 00449 * 00450 SRNAMT = 'CGBCON' 00451 INFOT = 1 00452 CALL CGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 00453 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 00454 INFOT = 2 00455 CALL CGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 00456 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 00457 INFOT = 3 00458 CALL CGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO ) 00459 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 00460 INFOT = 4 00461 CALL CGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO ) 00462 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 00463 INFOT = 6 00464 CALL CGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO ) 00465 CALL CHKXER( 'CGBCON', INFOT, NOUT, LERR, OK ) 00466 * 00467 * CGBEQU 00468 * 00469 SRNAMT = 'CGBEQU' 00470 INFOT = 1 00471 CALL CGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00472 $ INFO ) 00473 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 00474 INFOT = 2 00475 CALL CGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00476 $ INFO ) 00477 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 00478 INFOT = 3 00479 CALL CGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00480 $ INFO ) 00481 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 00482 INFOT = 4 00483 CALL CGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 00484 $ INFO ) 00485 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 00486 INFOT = 6 00487 CALL CGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 00488 $ INFO ) 00489 CALL CHKXER( 'CGBEQU', INFOT, NOUT, LERR, OK ) 00490 * 00491 * CGBEQUB 00492 * 00493 SRNAMT = 'CGBEQUB' 00494 INFOT = 1 00495 CALL CGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00496 $ INFO ) 00497 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 00498 INFOT = 2 00499 CALL CGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00500 $ INFO ) 00501 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 00502 INFOT = 3 00503 CALL CGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, 00504 $ INFO ) 00505 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 00506 INFOT = 4 00507 CALL CGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, 00508 $ INFO ) 00509 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 00510 INFOT = 6 00511 CALL CGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM, 00512 $ INFO ) 00513 CALL CHKXER( 'CGBEQUB', INFOT, NOUT, LERR, OK ) 00514 END IF 00515 * 00516 * Print a summary line. 00517 * 00518 CALL ALAESM( PATH, OK, NOUT ) 00519 * 00520 RETURN 00521 * 00522 * End of CERRGE 00523 * 00524 END