LAPACK 3.3.0

cerrst.f

Go to the documentation of this file.
00001       SUBROUTINE CERRST( PATH, NUNIT )
00002 *
00003 *  -- LAPACK test routine (version 3.1) --
00004 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
00005 *     November 2006
00006 *
00007 *     .. Scalar Arguments ..
00008       CHARACTER*3        PATH
00009       INTEGER            NUNIT
00010 *     ..
00011 *
00012 *  Purpose
00013 *  =======
00014 *
00015 *  CERRST tests the error exits for CHETRD, CUNGTR, CUNMTR, CHPTRD,
00016 *  CUNGTR, CUPMTR, CSTEQR, CSTEIN, CPTEQR, CHBTRD,
00017 *  CHEEV, CHEEVX, CHEEVD, CHBEV, CHBEVX, CHBEVD,
00018 *  CHPEV, CHPEVX, CHPEVD, and CSTEDC.
00019 *
00020 *  Arguments
00021 *  =========
00022 *
00023 *  PATH    (input) CHARACTER*3
00024 *          The LAPACK path name for the routines to be tested.
00025 *
00026 *  NUNIT   (input) INTEGER
00027 *          The unit number for output.
00028 *
00029 *  =====================================================================
00030 *
00031 *     .. Parameters ..
00032       INTEGER            NMAX, LIW, LW
00033       PARAMETER          ( NMAX = 3, LIW = 12*NMAX, LW = 20*NMAX )
00034 *     ..
00035 *     .. Local Scalars ..
00036       CHARACTER*2        C2
00037       INTEGER            I, INFO, J, M, N, NT
00038 *     ..
00039 *     .. Local Arrays ..
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 *     .. External Functions ..
00048       LOGICAL            LSAMEN
00049       EXTERNAL           LSAMEN
00050 *     ..
00051 *     .. External Subroutines ..
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 *     .. Scalars in Common ..
00058       LOGICAL            LERR, OK
00059       CHARACTER*32       SRNAMT
00060       INTEGER            INFOT, NOUT
00061 *     ..
00062 *     .. Common blocks ..
00063       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00064       COMMON             / SRNAMC / SRNAMT
00065 *     ..
00066 *     .. Intrinsic Functions ..
00067       INTRINSIC          REAL
00068 *     ..
00069 *     .. Executable Statements ..
00070 *
00071       NOUT = NUNIT
00072       WRITE( NOUT, FMT = * )
00073       C2 = PATH( 2: 3 )
00074 *
00075 *     Set the variables to innocuous values.
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 *     Test error exits for the ST path.
00093 *
00094       IF( LSAMEN( 2, C2, 'ST' ) ) THEN
00095 *
00096 *        CHETRD
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 *        CUNGTR
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 *        CUNMTR
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 *        CHPTRD
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 *        CUPGTR
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 *        CUPMTR
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 *        CPTEQR
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 *        CSTEIN
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 *        CSTEQR
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 *        CSTEDC
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 *        CHEEVD
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 *        CHEEV
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 *        CHEEVX
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 *        CHEEVR
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 *        CHPEVD
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 *        CHPEV
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 *        CHPEVX
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 *     Test error exits for the HB path.
00582 *
00583       ELSE IF( LSAMEN( 2, C2, 'HB' ) ) THEN
00584 *
00585 *        CHBTRD
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 *        CHBEVD
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 *        CHBEV
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 *        CHBEVX
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 *     Print a summary line.
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 *     End of CERRST
00761 *
00762       END
 All Files Functions