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