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