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