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