00001 SUBROUTINE CERRVX( PATH, NUNIT )
00002
00003
00004
00005
00006
00007
00008 CHARACTER*3 PATH
00009 INTEGER NUNIT
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 INTEGER NMAX
00031 PARAMETER ( NMAX = 4 )
00032
00033
00034 CHARACTER EQ
00035 CHARACTER*2 C2
00036 INTEGER I, INFO, J
00037 REAL RCOND
00038
00039
00040 INTEGER IP( NMAX )
00041 REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
00042 $ RF( NMAX ), RW( NMAX )
00043 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00044 $ W( 2*NMAX ), X( NMAX )
00045
00046
00047 LOGICAL LSAMEN
00048 EXTERNAL LSAMEN
00049
00050
00051 EXTERNAL CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
00052 $ CHESV, CHESVX, CHKXER, CHPSV, CHPSVX, CPBSV,
00053 $ CPBSVX, CPOSV, CPOSVX, CPPSV, CPPSVX, CPTSV,
00054 $ CPTSVX, CSPSV, CSPSVX, CSYSV, CSYSVX
00055
00056
00057 LOGICAL LERR, OK
00058 CHARACTER*32 SRNAMT
00059 INTEGER INFOT, NOUT
00060
00061
00062 COMMON / INFOC / INFOT, NOUT, OK, LERR
00063 COMMON / SRNAMC / SRNAMT
00064
00065
00066 INTRINSIC CMPLX, REAL
00067
00068
00069
00070 NOUT = NUNIT
00071 WRITE( NOUT, FMT = * )
00072 C2 = PATH( 2: 3 )
00073
00074
00075
00076 DO 20 J = 1, NMAX
00077 DO 10 I = 1, NMAX
00078 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00079 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00080 10 CONTINUE
00081 B( J ) = 0.
00082 R1( J ) = 0.
00083 R2( J ) = 0.
00084 W( J ) = 0.
00085 X( J ) = 0.
00086 C( J ) = 0.
00087 R( J ) = 0.
00088 IP( J ) = J
00089 20 CONTINUE
00090 EQ = ' '
00091 OK = .TRUE.
00092
00093 IF( LSAMEN( 2, C2, 'GE' ) ) THEN
00094
00095
00096
00097 SRNAMT = 'CGESV '
00098 INFOT = 1
00099 CALL CGESV( -1, 0, A, 1, IP, B, 1, INFO )
00100 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00101 INFOT = 2
00102 CALL CGESV( 0, -1, A, 1, IP, B, 1, INFO )
00103 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00104 INFOT = 4
00105 CALL CGESV( 2, 1, A, 1, IP, B, 2, INFO )
00106 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00107 INFOT = 7
00108 CALL CGESV( 2, 1, A, 2, IP, B, 1, INFO )
00109 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
00110
00111
00112
00113 SRNAMT = 'CGESVX'
00114 INFOT = 1
00115 CALL CGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00116 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00117 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00118 INFOT = 2
00119 CALL CGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00120 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00121 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00122 INFOT = 3
00123 CALL CGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00124 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00125 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00126 INFOT = 4
00127 CALL CGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00128 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00129 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00130 INFOT = 6
00131 CALL CGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
00132 $ X, 2, RCOND, R1, R2, W, RW, INFO )
00133 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00134 INFOT = 8
00135 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
00136 $ X, 2, RCOND, R1, R2, W, RW, INFO )
00137 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00138 INFOT = 10
00139 EQ = '/'
00140 CALL CGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00141 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00142 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00143 INFOT = 11
00144 EQ = 'R'
00145 CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00146 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00147 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00148 INFOT = 12
00149 EQ = 'C'
00150 CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
00151 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00152 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00153 INFOT = 14
00154 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
00155 $ X, 2, RCOND, R1, R2, W, RW, INFO )
00156 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00157 INFOT = 16
00158 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
00159 $ X, 1, RCOND, R1, R2, W, RW, INFO )
00160 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
00161
00162 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
00163
00164
00165
00166 SRNAMT = 'CGBSV '
00167 INFOT = 1
00168 CALL CGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
00169 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00170 INFOT = 2
00171 CALL CGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
00172 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00173 INFOT = 3
00174 CALL CGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
00175 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00176 INFOT = 4
00177 CALL CGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
00178 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00179 INFOT = 6
00180 CALL CGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
00181 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00182 INFOT = 9
00183 CALL CGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
00184 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
00185
00186
00187
00188 SRNAMT = 'CGBSVX'
00189 INFOT = 1
00190 CALL CGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00191 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00192 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00193 INFOT = 2
00194 CALL CGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00195 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00196 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00197 INFOT = 3
00198 CALL CGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00199 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00200 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00201 INFOT = 4
00202 CALL CGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00203 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00204 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00205 INFOT = 5
00206 CALL CGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
00207 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00208 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00209 INFOT = 6
00210 CALL CGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
00211 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00212 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00213 INFOT = 8
00214 CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
00215 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00216 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00217 INFOT = 10
00218 CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
00219 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00220 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00221 INFOT = 12
00222 EQ = '/'
00223 CALL CGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00224 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00225 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00226 INFOT = 13
00227 EQ = 'R'
00228 CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00229 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00230 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00231 INFOT = 14
00232 EQ = 'C'
00233 CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00234 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00235 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00236 INFOT = 16
00237 CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00238 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
00239 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00240 INFOT = 18
00241 CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
00242 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
00243 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
00244
00245 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
00246
00247
00248
00249 SRNAMT = 'CGTSV '
00250 INFOT = 1
00251 CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00252 $ INFO )
00253 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00254 INFOT = 2
00255 CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
00256 $ INFO )
00257 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00258 INFOT = 7
00259 CALL CGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
00260 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
00261
00262
00263
00264 SRNAMT = 'CGTSVX'
00265 INFOT = 1
00266 CALL CGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00267 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00268 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00269 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00270 INFOT = 2
00271 CALL CGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00272 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00273 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00274 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00275 INFOT = 3
00276 CALL CGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00277 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00278 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00279 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00280 INFOT = 4
00281 CALL CGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00282 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00283 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
00284 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00285 INFOT = 14
00286 CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00287 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00288 $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
00289 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00290 INFOT = 16
00291 CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
00292 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
00293 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
00294 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
00295
00296 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
00297
00298
00299
00300 SRNAMT = 'CPOSV '
00301 INFOT = 1
00302 CALL CPOSV( '/', 0, 0, A, 1, B, 1, INFO )
00303 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00304 INFOT = 2
00305 CALL CPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
00306 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00307 INFOT = 3
00308 CALL CPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
00309 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00310 INFOT = 5
00311 CALL CPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
00312 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00313 INFOT = 7
00314 CALL CPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
00315 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
00316
00317
00318
00319 SRNAMT = 'CPOSVX'
00320 INFOT = 1
00321 CALL CPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00322 $ RCOND, R1, R2, W, RW, INFO )
00323 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00324 INFOT = 2
00325 CALL CPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00326 $ RCOND, R1, R2, W, RW, INFO )
00327 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00328 INFOT = 3
00329 CALL CPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00330 $ RCOND, R1, R2, W, RW, INFO )
00331 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00332 INFOT = 4
00333 CALL CPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00334 $ RCOND, R1, R2, W, RW, INFO )
00335 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00336 INFOT = 6
00337 CALL CPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00338 $ RCOND, R1, R2, W, RW, INFO )
00339 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00340 INFOT = 8
00341 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00342 $ RCOND, R1, R2, W, RW, INFO )
00343 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00344 INFOT = 9
00345 EQ = '/'
00346 CALL CPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00347 $ RCOND, R1, R2, W, RW, INFO )
00348 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00349 INFOT = 10
00350 EQ = 'Y'
00351 CALL CPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00352 $ RCOND, R1, R2, W, RW, INFO )
00353 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00354 INFOT = 12
00355 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
00356 $ RCOND, R1, R2, W, RW, INFO )
00357 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00358 INFOT = 14
00359 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
00360 $ RCOND, R1, R2, W, RW, INFO )
00361 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
00362
00363 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
00364
00365
00366
00367 SRNAMT = 'CPPSV '
00368 INFOT = 1
00369 CALL CPPSV( '/', 0, 0, A, B, 1, INFO )
00370 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00371 INFOT = 2
00372 CALL CPPSV( 'U', -1, 0, A, B, 1, INFO )
00373 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00374 INFOT = 3
00375 CALL CPPSV( 'U', 0, -1, A, B, 1, INFO )
00376 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00377 INFOT = 6
00378 CALL CPPSV( 'U', 2, 0, A, B, 1, INFO )
00379 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
00380
00381
00382
00383 SRNAMT = 'CPPSVX'
00384 INFOT = 1
00385 CALL CPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00386 $ R1, R2, W, RW, INFO )
00387 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00388 INFOT = 2
00389 CALL CPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00390 $ R1, R2, W, RW, INFO )
00391 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00392 INFOT = 3
00393 CALL CPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00394 $ R1, R2, W, RW, INFO )
00395 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00396 INFOT = 4
00397 CALL CPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
00398 $ R1, R2, W, RW, INFO )
00399 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00400 INFOT = 7
00401 EQ = '/'
00402 CALL CPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00403 $ R1, R2, W, RW, INFO )
00404 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00405 INFOT = 8
00406 EQ = 'Y'
00407 CALL CPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
00408 $ R1, R2, W, RW, INFO )
00409 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00410 INFOT = 10
00411 CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
00412 $ R1, R2, W, RW, INFO )
00413 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00414 INFOT = 12
00415 CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
00416 $ R1, R2, W, RW, INFO )
00417 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
00418
00419 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
00420
00421
00422
00423 SRNAMT = 'CPBSV '
00424 INFOT = 1
00425 CALL CPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
00426 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00427 INFOT = 2
00428 CALL CPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
00429 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00430 INFOT = 3
00431 CALL CPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
00432 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00433 INFOT = 4
00434 CALL CPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
00435 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00436 INFOT = 6
00437 CALL CPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
00438 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00439 INFOT = 8
00440 CALL CPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
00441 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
00442
00443
00444
00445 SRNAMT = 'CPBSVX'
00446 INFOT = 1
00447 CALL CPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00448 $ RCOND, R1, R2, W, RW, INFO )
00449 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00450 INFOT = 2
00451 CALL CPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00452 $ RCOND, R1, R2, W, RW, INFO )
00453 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00454 INFOT = 3
00455 CALL CPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00456 $ 1, RCOND, R1, R2, W, RW, INFO )
00457 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00458 INFOT = 4
00459 CALL CPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
00460 $ 1, RCOND, R1, R2, W, RW, INFO )
00461 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00462 INFOT = 5
00463 CALL CPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
00464 $ 1, RCOND, R1, R2, W, RW, INFO )
00465 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00466 INFOT = 7
00467 CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
00468 $ RCOND, R1, R2, W, RW, INFO )
00469 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00470 INFOT = 9
00471 CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
00472 $ RCOND, R1, R2, W, RW, INFO )
00473 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00474 INFOT = 10
00475 EQ = '/'
00476 CALL CPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00477 $ RCOND, R1, R2, W, RW, INFO )
00478 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00479 INFOT = 11
00480 EQ = 'Y'
00481 CALL CPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
00482 $ RCOND, R1, R2, W, RW, INFO )
00483 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00484 INFOT = 13
00485 CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
00486 $ RCOND, R1, R2, W, RW, INFO )
00487 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00488 INFOT = 15
00489 CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
00490 $ RCOND, R1, R2, W, RW, INFO )
00491 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
00492
00493 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
00494
00495
00496
00497 SRNAMT = 'CPTSV '
00498 INFOT = 1
00499 CALL CPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
00500 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00501 INFOT = 2
00502 CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
00503 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00504 INFOT = 6
00505 CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
00506 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
00507
00508
00509
00510 SRNAMT = 'CPTSVX'
00511 INFOT = 1
00512 CALL CPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00513 $ 1, RCOND, R1, R2, W, RW, INFO )
00514 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00515 INFOT = 2
00516 CALL CPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00517 $ 1, RCOND, R1, R2, W, RW, INFO )
00518 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00519 INFOT = 3
00520 CALL CPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00521 $ 1, RCOND, R1, R2, W, RW, INFO )
00522 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00523 INFOT = 9
00524 CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
00525 $ 2, RCOND, R1, R2, W, RW, INFO )
00526 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00527 INFOT = 11
00528 CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
00529 $ 1, RCOND, R1, R2, W, RW, INFO )
00530 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
00531
00532 ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
00533
00534
00535
00536 SRNAMT = 'CHESV '
00537 INFOT = 1
00538 CALL CHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
00539 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00540 INFOT = 2
00541 CALL CHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
00542 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00543 INFOT = 3
00544 CALL CHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
00545 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00546 INFOT = 5
00547 CALL CHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
00548 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00549 INFOT = 8
00550 CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
00551 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
00552
00553
00554
00555 SRNAMT = 'CHESVX'
00556 INFOT = 1
00557 CALL CHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00558 $ RCOND, R1, R2, W, 1, RW, INFO )
00559 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00560 INFOT = 2
00561 CALL CHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00562 $ RCOND, R1, R2, W, 1, RW, INFO )
00563 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00564 INFOT = 3
00565 CALL CHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00566 $ RCOND, R1, R2, W, 1, RW, INFO )
00567 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00568 INFOT = 4
00569 CALL CHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
00570 $ RCOND, R1, R2, W, 1, RW, INFO )
00571 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00572 INFOT = 6
00573 CALL CHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
00574 $ RCOND, R1, R2, W, 4, RW, INFO )
00575 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00576 INFOT = 8
00577 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
00578 $ RCOND, R1, R2, W, 4, RW, INFO )
00579 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00580 INFOT = 11
00581 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
00582 $ RCOND, R1, R2, W, 4, RW, INFO )
00583 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00584 INFOT = 13
00585 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
00586 $ RCOND, R1, R2, W, 4, RW, INFO )
00587 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00588 INFOT = 18
00589 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
00590 $ RCOND, R1, R2, W, 3, RW, INFO )
00591 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
00592
00593 ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
00594
00595
00596
00597 SRNAMT = 'CHPSV '
00598 INFOT = 1
00599 CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO )
00600 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00601 INFOT = 2
00602 CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
00603 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00604 INFOT = 3
00605 CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
00606 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00607 INFOT = 7
00608 CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
00609 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
00610
00611
00612
00613 SRNAMT = 'CHPSVX'
00614 INFOT = 1
00615 CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00616 $ R2, W, RW, INFO )
00617 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00618 INFOT = 2
00619 CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00620 $ R2, W, RW, INFO )
00621 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00622 INFOT = 3
00623 CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00624 $ R2, W, RW, INFO )
00625 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00626 INFOT = 4
00627 CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
00628 $ R2, W, RW, INFO )
00629 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00630 INFOT = 9
00631 CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
00632 $ R2, W, RW, INFO )
00633 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00634 INFOT = 11
00635 CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
00636 $ R2, W, RW, INFO )
00637 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
00638
00639 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
00640
00641
00642
00643 SRNAMT = 'CSYSV '
00644 INFOT = 1
00645 CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
00646 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00647 INFOT = 2
00648 CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
00649 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00650 INFOT = 3
00651 CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
00652 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00653 INFOT = 8
00654 CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
00655 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
00656
00657
00658
00659 SRNAMT = 'CSYSVX'
00660 INFOT = 1
00661 CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00662 $ RCOND, R1, R2, W, 1, RW, INFO )
00663 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00664 INFOT = 2
00665 CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00666 $ RCOND, R1, R2, W, 1, RW, INFO )
00667 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00668 INFOT = 3
00669 CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
00670 $ RCOND, R1, R2, W, 1, RW, INFO )
00671 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00672 INFOT = 4
00673 CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
00674 $ RCOND, R1, R2, W, 1, RW, INFO )
00675 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00676 INFOT = 6
00677 CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
00678 $ RCOND, R1, R2, W, 4, RW, INFO )
00679 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00680 INFOT = 8
00681 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
00682 $ RCOND, R1, R2, W, 4, RW, INFO )
00683 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00684 INFOT = 11
00685 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
00686 $ RCOND, R1, R2, W, 4, RW, INFO )
00687 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00688 INFOT = 13
00689 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
00690 $ RCOND, R1, R2, W, 4, RW, INFO )
00691 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00692 INFOT = 18
00693 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
00694 $ RCOND, R1, R2, W, 3, RW, INFO )
00695 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
00696
00697 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
00698
00699
00700
00701 SRNAMT = 'CSPSV '
00702 INFOT = 1
00703 CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO )
00704 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00705 INFOT = 2
00706 CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
00707 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00708 INFOT = 3
00709 CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
00710 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00711 INFOT = 7
00712 CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
00713 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
00714
00715
00716
00717 SRNAMT = 'CSPSVX'
00718 INFOT = 1
00719 CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00720 $ R2, W, RW, INFO )
00721 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00722 INFOT = 2
00723 CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00724 $ R2, W, RW, INFO )
00725 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00726 INFOT = 3
00727 CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
00728 $ R2, W, RW, INFO )
00729 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00730 INFOT = 4
00731 CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
00732 $ R2, W, RW, INFO )
00733 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00734 INFOT = 9
00735 CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
00736 $ R2, W, RW, INFO )
00737 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00738 INFOT = 11
00739 CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
00740 $ R2, W, RW, INFO )
00741 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
00742 END IF
00743
00744
00745
00746 IF( OK ) THEN
00747 WRITE( NOUT, FMT = 9999 )PATH
00748 ELSE
00749 WRITE( NOUT, FMT = 9998 )PATH
00750 END IF
00751
00752 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
00753 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
00754 $ 'exits ***' )
00755
00756 RETURN
00757
00758
00759
00760 END