LAPACK 3.3.0

zerrgg.f

Go to the documentation of this file.
00001       SUBROUTINE ZERRGG( 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 *  ZERRGG tests the error exits for ZGGES, ZGGESX, ZGGEV, ZGGEVX,
00016 *  ZGGGLM, ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP, ZHGEQZ,
00017 *  ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA, and ZTGSYL.
00018 *
00019 *  Arguments
00020 *  =========
00021 *
00022 *  PATH    (input) CHARACTER*3
00023 *          The LAPACK path name for the routines to be tested.
00024 *
00025 *  NUNIT   (input) INTEGER
00026 *          The unit number for output.
00027 *
00028 *  =====================================================================
00029 *
00030 *     .. Parameters ..
00031       INTEGER            NMAX, LW
00032       PARAMETER          ( NMAX = 3, LW = 6*NMAX )
00033       DOUBLE PRECISION   ONE, ZERO
00034       PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 )
00035 *     ..
00036 *     .. Local Scalars ..
00037       CHARACTER*2        C2
00038       INTEGER            DUMMYK, DUMMYL, I, IFST, ILST, INFO, J, M,
00039      $                   NCYCLE, NT, SDIM
00040       DOUBLE PRECISION   ANRM, BNRM, DIF, SCALE, TOLA, TOLB
00041 *     ..
00042 *     .. Local Arrays ..
00043       LOGICAL            BW( NMAX ), SEL( NMAX )
00044       INTEGER            IW( LW )
00045       DOUBLE PRECISION   LS( NMAX ), R1( NMAX ), R2( NMAX ),
00046      $                   RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
00047       COMPLEX*16         A( NMAX, NMAX ), ALPHA( NMAX ),
00048      $                   B( NMAX, NMAX ), BETA( NMAX ), Q( NMAX, NMAX ),
00049      $                   TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ),
00050      $                   W( LW ), Z( NMAX, NMAX )
00051 *     ..
00052 *     .. External Functions ..
00053       LOGICAL            LSAMEN, ZLCTES, ZLCTSX
00054       EXTERNAL           LSAMEN, ZLCTES, ZLCTSX
00055 *     ..
00056 *     .. External Subroutines ..
00057       EXTERNAL           CHKXER, ZGGES, ZGGESX, ZGGEV, ZGGEVX, ZGGGLM,
00058      $                   ZGGHRD, ZGGLSE, ZGGQRF, ZGGRQF, ZGGSVD, ZGGSVP,
00059      $                   ZHGEQZ, ZTGEVC, ZTGEXC, ZTGSEN, ZTGSJA, ZTGSNA,
00060      $                   ZTGSYL
00061 *     ..
00062 *     .. Scalars in Common ..
00063       LOGICAL            LERR, OK
00064       CHARACTER*32       SRNAMT
00065       INTEGER            INFOT, NOUT
00066 *     ..
00067 *     .. Common blocks ..
00068       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00069       COMMON             / SRNAMC / SRNAMT
00070 *     ..
00071 *     .. Executable Statements ..
00072 *
00073       NOUT = NUNIT
00074       WRITE( NOUT, FMT = * )
00075       C2 = PATH( 2: 3 )
00076 *
00077 *     Set the variables to innocuous values.
00078 *
00079       DO 20 J = 1, NMAX
00080          SEL( J ) = .TRUE.
00081          DO 10 I = 1, NMAX
00082             A( I, J ) = ZERO
00083             B( I, J ) = ZERO
00084    10    CONTINUE
00085    20 CONTINUE
00086       DO 30 I = 1, NMAX
00087          A( I, I ) = ONE
00088          B( I, I ) = ONE
00089    30 CONTINUE
00090       OK = .TRUE.
00091       TOLA = 1.0D0
00092       TOLB = 1.0D0
00093       IFST = 1
00094       ILST = 1
00095       NT = 0
00096 *
00097 *     Test error exits for the GG path.
00098 *
00099       IF( LSAMEN( 2, C2, 'GG' ) ) THEN
00100 *
00101 *        ZGGHRD
00102 *
00103          SRNAMT = 'ZGGHRD'
00104          INFOT = 1
00105          CALL ZGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00106          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00107          INFOT = 2
00108          CALL ZGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00109          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00110          INFOT = 3
00111          CALL ZGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00112          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00113          INFOT = 4
00114          CALL ZGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00115          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00116          INFOT = 5
00117          CALL ZGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
00118          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00119          INFOT = 7
00120          CALL ZGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
00121          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00122          INFOT = 9
00123          CALL ZGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
00124          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00125          INFOT = 11
00126          CALL ZGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00127          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00128          INFOT = 13
00129          CALL ZGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00130          CALL CHKXER( 'ZGGHRD', INFOT, NOUT, LERR, OK )
00131          NT = NT + 9
00132 *
00133 *        ZHGEQZ
00134 *
00135          SRNAMT = 'ZHGEQZ'
00136          INFOT = 1
00137          CALL ZHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00138      $                Q, 1, Z, 1, W, 1, RW, INFO )
00139          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00140          INFOT = 2
00141          CALL ZHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00142      $                Q, 1, Z, 1, W, 1, RW, INFO )
00143          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00144          INFOT = 3
00145          CALL ZHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00146      $                Q, 1, Z, 1, W, 1, RW, INFO )
00147          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00148          INFOT = 4
00149          CALL ZHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, ALPHA, BETA,
00150      $                Q, 1, Z, 1, W, 1, RW, INFO )
00151          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00152          INFOT = 5
00153          CALL ZHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, ALPHA, BETA,
00154      $                Q, 1, Z, 1, W, 1, RW, INFO )
00155          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00156          INFOT = 6
00157          CALL ZHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, ALPHA, BETA,
00158      $                Q, 1, Z, 1, W, 1, RW, INFO )
00159          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00160          INFOT = 8
00161          CALL ZHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, ALPHA, BETA,
00162      $                Q, 1, Z, 1, W, 1, RW, INFO )
00163          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00164          INFOT = 10
00165          CALL ZHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, ALPHA, BETA,
00166      $                Q, 1, Z, 1, W, 1, RW, INFO )
00167          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00168          INFOT = 14
00169          CALL ZHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, ALPHA, BETA,
00170      $                Q, 1, Z, 1, W, 1, RW, INFO )
00171          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00172          INFOT = 16
00173          CALL ZHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, ALPHA, BETA,
00174      $                Q, 1, Z, 1, W, 1, RW, INFO )
00175          CALL CHKXER( 'ZHGEQZ', INFOT, NOUT, LERR, OK )
00176          NT = NT + 10
00177 *
00178 *        ZTGEVC
00179 *
00180          SRNAMT = 'ZTGEVC'
00181          INFOT = 1
00182          CALL ZTGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00183      $                RW, INFO )
00184          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00185          INFOT = 2
00186          CALL ZTGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00187      $                RW, INFO )
00188          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00189          INFOT = 4
00190          CALL ZTGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
00191      $                W, RW, INFO )
00192          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00193          INFOT = 6
00194          CALL ZTGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
00195      $                RW, INFO )
00196          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00197          INFOT = 8
00198          CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
00199      $                RW, INFO )
00200          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00201          INFOT = 10
00202          CALL ZTGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00203      $                RW, INFO )
00204          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00205          INFOT = 12
00206          CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00207      $                RW, INFO )
00208          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00209          INFOT = 13
00210          CALL ZTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
00211      $                RW, INFO )
00212          CALL CHKXER( 'ZTGEVC', INFOT, NOUT, LERR, OK )
00213          NT = NT + 8
00214 *
00215 *     Test error exits for the GSV path.
00216 *
00217       ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
00218 *
00219 *        ZGGSVD
00220 *
00221          SRNAMT = 'ZGGSVD'
00222          INFOT = 1
00223          CALL ZGGSVD( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00224      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00225          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00226          INFOT = 2
00227          CALL ZGGSVD( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00228      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00229          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00230          INFOT = 3
00231          CALL ZGGSVD( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00232      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00233          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00234          INFOT = 4
00235          CALL ZGGSVD( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00236      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00237          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00238          INFOT = 5
00239          CALL ZGGSVD( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
00240      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00241          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00242          INFOT = 6
00243          CALL ZGGSVD( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
00244      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00245          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00246          INFOT = 10
00247          CALL ZGGSVD( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
00248      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00249          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00250          INFOT = 12
00251          CALL ZGGSVD( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
00252      $                1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00253          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00254          INFOT = 16
00255          CALL ZGGSVD( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
00256      $                2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, INFO )
00257          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00258          INFOT = 18
00259          CALL ZGGSVD( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
00260      $                2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, INFO )
00261          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00262          INFOT = 20
00263          CALL ZGGSVD( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
00264      $                2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, INFO )
00265          CALL CHKXER( 'ZGGSVD', INFOT, NOUT, LERR, OK )
00266          NT = NT + 11
00267 *
00268 *        ZGGSVP
00269 *
00270          SRNAMT = 'ZGGSVP'
00271          INFOT = 1
00272          CALL ZGGSVP( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
00273      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00274      $                INFO )
00275          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00276          INFOT = 2
00277          CALL ZGGSVP( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
00278      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00279      $                INFO )
00280          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00281          INFOT = 3
00282          CALL ZGGSVP( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB,
00283      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00284      $                INFO )
00285          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00286          INFOT = 4
00287          CALL ZGGSVP( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB,
00288      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00289      $                INFO )
00290          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00291          INFOT = 5
00292          CALL ZGGSVP( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB,
00293      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00294      $                INFO )
00295          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00296          INFOT = 6
00297          CALL ZGGSVP( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB,
00298      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00299      $                INFO )
00300          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00301          INFOT = 8
00302          CALL ZGGSVP( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB,
00303      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00304      $                INFO )
00305          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00306          INFOT = 10
00307          CALL ZGGSVP( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB,
00308      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00309      $                INFO )
00310          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00311          INFOT = 16
00312          CALL ZGGSVP( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
00313      $                DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, RW, TAU, W,
00314      $                INFO )
00315          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00316          INFOT = 18
00317          CALL ZGGSVP( 'N', 'V', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
00318      $                DUMMYK, DUMMYL, U, 2, V, 1, Q, 1, IW, RW, TAU, W,
00319      $                INFO )
00320          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00321          INFOT = 20
00322          CALL ZGGSVP( 'N', 'N', 'Q', 2, 2, 2, A, 2, B, 2, TOLA, TOLB,
00323      $                DUMMYK, DUMMYL, U, 2, V, 2, Q, 1, IW, RW, TAU, W,
00324      $                INFO )
00325          CALL CHKXER( 'ZGGSVP', INFOT, NOUT, LERR, OK )
00326          NT = NT + 11
00327 *
00328 *        ZTGSJA
00329 *
00330          SRNAMT = 'ZTGSJA'
00331          INFOT = 1
00332          CALL ZTGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00333      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00334      $                NCYCLE, INFO )
00335          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00336          INFOT = 2
00337          CALL ZTGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00338      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00339      $                NCYCLE, INFO )
00340          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00341          INFOT = 3
00342          CALL ZTGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00343      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00344      $                NCYCLE, INFO )
00345          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00346          INFOT = 4
00347          CALL ZTGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00348      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00349      $                NCYCLE, INFO )
00350          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00351          INFOT = 5
00352          CALL ZTGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
00353      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00354      $                NCYCLE, INFO )
00355          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00356          INFOT = 6
00357          CALL ZTGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
00358      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00359      $                NCYCLE, INFO )
00360          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00361          INFOT = 10
00362          CALL ZTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B,
00363      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00364      $                NCYCLE, INFO )
00365          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00366          INFOT = 12
00367          CALL ZTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00368      $                0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W,
00369      $                NCYCLE, INFO )
00370          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00371          INFOT = 18
00372          CALL ZTGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00373      $                1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W,
00374      $                NCYCLE, INFO )
00375          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00376          INFOT = 20
00377          CALL ZTGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00378      $                1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W,
00379      $                NCYCLE, INFO )
00380          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00381          INFOT = 22
00382          CALL ZTGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
00383      $                1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W,
00384      $                NCYCLE, INFO )
00385          CALL CHKXER( 'ZTGSJA', INFOT, NOUT, LERR, OK )
00386          NT = NT + 11
00387 *
00388 *     Test error exits for the GLM path.
00389 *
00390       ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
00391 *
00392 *        ZGGGLM
00393 *
00394          SRNAMT = 'ZGGGLM'
00395          INFOT = 1
00396          CALL ZGGGLM( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00397      $                INFO )
00398          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00399          INFOT = 2
00400          CALL ZGGGLM( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00401      $                INFO )
00402          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00403          INFOT = 2
00404          CALL ZGGGLM( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00405      $                INFO )
00406          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00407          INFOT = 3
00408          CALL ZGGGLM( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00409      $                INFO )
00410          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00411          INFOT = 3
00412          CALL ZGGGLM( 1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00413      $                INFO )
00414          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00415          INFOT = 5
00416          CALL ZGGGLM( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
00417      $                INFO )
00418          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00419          INFOT = 7
00420          CALL ZGGGLM( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
00421      $                INFO )
00422          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00423          INFOT = 12
00424          CALL ZGGGLM( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
00425      $                INFO )
00426          CALL CHKXER( 'ZGGGLM', INFOT, NOUT, LERR, OK )
00427          NT = NT + 8
00428 *
00429 *     Test error exits for the LSE path.
00430 *
00431       ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
00432 *
00433 *        ZGGLSE
00434 *
00435          SRNAMT = 'ZGGLSE'
00436          INFOT = 1
00437          CALL ZGGLSE( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00438      $                INFO )
00439          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00440          INFOT = 2
00441          CALL ZGGLSE( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00442      $                INFO )
00443          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00444          INFOT = 3
00445          CALL ZGGLSE( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00446      $                INFO )
00447          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00448          INFOT = 3
00449          CALL ZGGLSE( 0, 0, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00450      $                INFO )
00451          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00452          INFOT = 3
00453          CALL ZGGLSE( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00454      $                INFO )
00455          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00456          INFOT = 5
00457          CALL ZGGLSE( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
00458      $                INFO )
00459          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00460          INFOT = 7
00461          CALL ZGGLSE( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
00462      $                INFO )
00463          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00464          INFOT = 12
00465          CALL ZGGLSE( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
00466      $                INFO )
00467          CALL CHKXER( 'ZGGLSE', INFOT, NOUT, LERR, OK )
00468          NT = NT + 8
00469 *
00470 *     Test error exits for the GQR path.
00471 *
00472       ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
00473 *
00474 *        ZGGQRF
00475 *
00476          SRNAMT = 'ZGGQRF'
00477          INFOT = 1
00478          CALL ZGGQRF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00479          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00480          INFOT = 2
00481          CALL ZGGQRF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00482          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00483          INFOT = 3
00484          CALL ZGGQRF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00485          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00486          INFOT = 5
00487          CALL ZGGQRF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
00488          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00489          INFOT = 8
00490          CALL ZGGQRF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
00491          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00492          INFOT = 11
00493          CALL ZGGQRF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
00494          CALL CHKXER( 'ZGGQRF', INFOT, NOUT, LERR, OK )
00495          NT = NT + 6
00496 *
00497 *        ZGGRQF
00498 *
00499          SRNAMT = 'ZGGRQF'
00500          INFOT = 1
00501          CALL ZGGRQF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00502          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00503          INFOT = 2
00504          CALL ZGGRQF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00505          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00506          INFOT = 3
00507          CALL ZGGRQF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00508          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00509          INFOT = 5
00510          CALL ZGGRQF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
00511          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00512          INFOT = 8
00513          CALL ZGGRQF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
00514          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00515          INFOT = 11
00516          CALL ZGGRQF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
00517          CALL CHKXER( 'ZGGRQF', INFOT, NOUT, LERR, OK )
00518          NT = NT + 6
00519 *
00520 *     Test error exits for the ZGS, ZGV, ZGX, and ZXV paths.
00521 *
00522       ELSE IF( LSAMEN( 3, PATH, 'ZGS' ) .OR.
00523      $         LSAMEN( 3, PATH, 'ZGV' ) .OR.
00524      $         LSAMEN( 3, PATH, 'ZGX' ) .OR. LSAMEN( 3, PATH, 'ZXV' ) )
00525      $          THEN
00526 *
00527 *        ZGGES
00528 *
00529          SRNAMT = 'ZGGES '
00530          INFOT = 1
00531          CALL ZGGES( '/', 'N', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00532      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00533          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00534          INFOT = 2
00535          CALL ZGGES( 'N', '/', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00536      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00537          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00538          INFOT = 3
00539          CALL ZGGES( 'N', 'V', '/', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00540      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00541          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00542          INFOT = 5
00543          CALL ZGGES( 'N', 'V', 'S', ZLCTES, -1, A, 1, B, 1, SDIM, ALPHA,
00544      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00545          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00546          INFOT = 7
00547          CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 0, B, 1, SDIM, ALPHA,
00548      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00549          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00550          INFOT = 9
00551          CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 0, SDIM, ALPHA,
00552      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00553          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00554          INFOT = 14
00555          CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00556      $               BETA, Q, 0, U, 1, W, 1, RW, BW, INFO )
00557          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00558          INFOT = 14
00559          CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00560      $               BETA, Q, 1, U, 2, W, 1, RW, BW, INFO )
00561          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00562          INFOT = 16
00563          CALL ZGGES( 'N', 'V', 'S', ZLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00564      $               BETA, Q, 1, U, 0, W, 1, RW, BW, INFO )
00565          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00566          INFOT = 16
00567          CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00568      $               BETA, Q, 2, U, 1, W, 1, RW, BW, INFO )
00569          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00570          INFOT = 18
00571          CALL ZGGES( 'V', 'V', 'S', ZLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00572      $               BETA, Q, 2, U, 2, W, 1, RW, BW, INFO )
00573          CALL CHKXER( 'ZGGES ', INFOT, NOUT, LERR, OK )
00574          NT = NT + 11
00575 *
00576 *        ZGGESX
00577 *
00578          SRNAMT = 'ZGGESX'
00579          INFOT = 1
00580          CALL ZGGESX( '/', 'N', 'S', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM,
00581      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00582      $                1, BW, INFO )
00583          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00584          INFOT = 2
00585          CALL ZGGESX( 'N', '/', 'S', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM,
00586      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00587      $                1, BW, INFO )
00588          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00589          INFOT = 3
00590          CALL ZGGESX( 'V', 'V', '/', ZLCTSX, 'N', 1, A, 1, B, 1, SDIM,
00591      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00592      $                1, BW, INFO )
00593          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00594          INFOT = 5
00595          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, '/', 1, A, 1, B, 1, SDIM,
00596      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00597      $                1, BW, INFO )
00598          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00599          INFOT = 6
00600          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', -1, A, 1, B, 1, SDIM,
00601      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00602      $                1, BW, INFO )
00603          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00604          INFOT = 8
00605          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 0, B, 1, SDIM,
00606      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00607      $                1, BW, INFO )
00608          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00609          INFOT = 10
00610          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 0, SDIM,
00611      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00612      $                1, BW, INFO )
00613          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00614          INFOT = 15
00615          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 1, SDIM,
00616      $                ALPHA, BETA, Q, 0, U, 1, RCE, RCV, W, 1, RW, IW,
00617      $                1, BW, INFO )
00618          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00619          INFOT = 15
00620          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM,
00621      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 1, RW, IW,
00622      $                1, BW, INFO )
00623          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00624          INFOT = 17
00625          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 1, A, 1, B, 1, SDIM,
00626      $                ALPHA, BETA, Q, 1, U, 0, RCE, RCV, W, 1, RW, IW,
00627      $                1, BW, INFO )
00628          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00629          INFOT = 17
00630          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM,
00631      $                ALPHA, BETA, Q, 2, U, 1, RCE, RCV, W, 1, RW, IW,
00632      $                1, BW, INFO )
00633          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00634          INFOT = 21
00635          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'B', 2, A, 2, B, 2, SDIM,
00636      $                ALPHA, BETA, Q, 2, U, 2, RCE, RCV, W, 1, RW, IW,
00637      $                1, BW, INFO )
00638          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00639          INFOT = 24
00640          CALL ZGGESX( 'V', 'V', 'S', ZLCTSX, 'V', 1, A, 1, B, 1, SDIM,
00641      $                ALPHA, BETA, Q, 1, U, 1, RCE, RCV, W, 32, RW, IW,
00642      $                0, BW, INFO )
00643          CALL CHKXER( 'ZGGESX', INFOT, NOUT, LERR, OK )
00644          NT = NT + 13
00645 *
00646 *        ZGGEV
00647 *
00648          SRNAMT = 'ZGGEV '
00649          INFOT = 1
00650          CALL ZGGEV( '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00651      $               W, 1, RW, INFO )
00652          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00653          INFOT = 2
00654          CALL ZGGEV( 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00655      $               W, 1, RW, INFO )
00656          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00657          INFOT = 3
00658          CALL ZGGEV( 'V', 'V', -1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00659      $               W, 1, RW, INFO )
00660          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00661          INFOT = 5
00662          CALL ZGGEV( 'V', 'V', 1, A, 0, B, 1, ALPHA, BETA, Q, 1, U, 1,
00663      $               W, 1, RW, INFO )
00664          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00665          INFOT = 7
00666          CALL ZGGEV( 'V', 'V', 1, A, 1, B, 0, ALPHA, BETA, Q, 1, U, 1,
00667      $               W, 1, RW, INFO )
00668          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00669          INFOT = 11
00670          CALL ZGGEV( 'N', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 0, U, 1,
00671      $               W, 1, RW, INFO )
00672          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00673          INFOT = 11
00674          CALL ZGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 1, U, 2,
00675      $               W, 1, RW, INFO )
00676          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00677          INFOT = 13
00678          CALL ZGGEV( 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 0,
00679      $               W, 1, RW, INFO )
00680          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00681          INFOT = 13
00682          CALL ZGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 1,
00683      $               W, 1, RW, INFO )
00684          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00685          INFOT = 15
00686          CALL ZGGEV( 'V', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00687      $               W, 1, RW, INFO )
00688          CALL CHKXER( 'ZGGEV ', INFOT, NOUT, LERR, OK )
00689          NT = NT + 10
00690 *
00691 *        ZGGEVX
00692 *
00693          SRNAMT = 'ZGGEVX'
00694          INFOT = 1
00695          CALL ZGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q,
00696      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00697      $                RW, IW, BW, INFO )
00698          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00699          INFOT = 2
00700          CALL ZGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q,
00701      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00702      $                RW, IW, BW, INFO )
00703          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00704          INFOT = 3
00705          CALL ZGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q,
00706      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00707      $                RW, IW, BW, INFO )
00708          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00709          INFOT = 4
00710          CALL ZGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q,
00711      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00712      $                RW, IW, BW, INFO )
00713          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00714          INFOT = 5
00715          CALL ZGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, ALPHA, BETA,
00716      $                Q, 1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W,
00717      $                1, RW, IW, BW, INFO )
00718          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00719          INFOT = 7
00720          CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, ALPHA, BETA, Q,
00721      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00722      $                RW, IW, BW, INFO )
00723          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00724          INFOT = 9
00725          CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, ALPHA, BETA, Q,
00726      $                1, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00727      $                RW, IW, BW, INFO )
00728          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00729          INFOT = 13
00730          CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q,
00731      $                0, U, 1, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00732      $                RW, IW, BW, INFO )
00733          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00734          INFOT = 13
00735          CALL ZGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q,
00736      $                1, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00737      $                RW, IW, BW, INFO )
00738          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00739          INFOT = 15
00740          CALL ZGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q,
00741      $                1, U, 0, 1, 1, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00742      $                RW, IW, BW, INFO )
00743          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00744          INFOT = 15
00745          CALL ZGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q,
00746      $                2, U, 1, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 1,
00747      $                RW, IW, BW, INFO )
00748          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00749          INFOT = 25
00750          CALL ZGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q,
00751      $                2, U, 2, 1, 2, LS, RS, ANRM, BNRM, RCE, RCV, W, 0,
00752      $                RW, IW, BW, INFO )
00753          CALL CHKXER( 'ZGGEVX', INFOT, NOUT, LERR, OK )
00754          NT = NT + 12
00755 *
00756 *        ZTGEXC
00757 *
00758          SRNAMT = 'ZTGEXC'
00759          INFOT = 3
00760          CALL ZTGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
00761      $                ILST, INFO )
00762          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00763          INFOT = 5
00764          CALL ZTGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
00765      $                ILST, INFO )
00766          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00767          INFOT = 7
00768          CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
00769      $                ILST, INFO )
00770          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00771          INFOT = 9
00772          CALL ZTGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00773      $                ILST, INFO )
00774          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00775          INFOT = 9
00776          CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00777      $                ILST, INFO )
00778          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00779          INFOT = 11
00780          CALL ZTGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00781      $                ILST, INFO )
00782          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00783          INFOT = 11
00784          CALL ZTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00785      $                ILST, INFO )
00786          CALL CHKXER( 'ZTGEXC', INFOT, NOUT, LERR, OK )
00787          NT = NT + 7
00788 *
00789 *        ZTGSEN
00790 *
00791          SRNAMT = 'ZTGSEN'
00792          INFOT = 1
00793          CALL ZTGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00794      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00795      $                INFO )
00796          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00797          INFOT = 5
00798          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, ALPHA,
00799      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00800      $                INFO )
00801          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00802          INFOT = 7
00803          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, ALPHA,
00804      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00805      $                INFO )
00806          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00807          INFOT = 9
00808          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, ALPHA,
00809      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00810      $                INFO )
00811          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00812          INFOT = 13
00813          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00814      $                BETA, Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00815      $                INFO )
00816          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00817          INFOT = 15
00818          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00819      $                BETA, Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1,
00820      $                INFO )
00821          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00822          INFOT = 21
00823          CALL ZTGSEN( 3, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00824      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, -5, IW,
00825      $                1, INFO )
00826          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00827          INFOT = 23
00828          CALL ZTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00829      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW,
00830      $                0, INFO )
00831          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00832          INFOT = 23
00833          CALL ZTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00834      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW,
00835      $                0, INFO )
00836          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00837          INFOT = 23
00838          CALL ZTGSEN( 5, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, ALPHA,
00839      $                BETA, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW,
00840      $                1, INFO )
00841          CALL CHKXER( 'ZTGSEN', INFOT, NOUT, LERR, OK )
00842          NT = NT + 11
00843 *
00844 *        ZTGSNA
00845 *
00846          SRNAMT = 'ZTGSNA'
00847          INFOT = 1
00848          CALL ZTGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00849      $                1, M, W, 1, IW, INFO )
00850          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00851          INFOT = 2
00852          CALL ZTGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00853      $                1, M, W, 1, IW, INFO )
00854          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00855          INFOT = 4
00856          CALL ZTGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00857      $                1, M, W, 1, IW, INFO )
00858          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00859          INFOT = 6
00860          CALL ZTGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
00861      $                1, M, W, 1, IW, INFO )
00862          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00863          INFOT = 8
00864          CALL ZTGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
00865      $                1, M, W, 1, IW, INFO )
00866          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00867          INFOT = 10
00868          CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
00869      $                1, M, W, 1, IW, INFO )
00870          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00871          INFOT = 12
00872          CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
00873      $                1, M, W, 1, IW, INFO )
00874          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00875          INFOT = 15
00876          CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00877      $                0, M, W, 1, IW, INFO )
00878          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00879          INFOT = 18
00880          CALL ZTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00881      $                1, M, W, 0, IW, INFO )
00882          CALL CHKXER( 'ZTGSNA', INFOT, NOUT, LERR, OK )
00883          NT = NT + 9
00884 *
00885 *        ZTGSYL
00886 *
00887          SRNAMT = 'ZTGSYL'
00888          INFOT = 1
00889          CALL ZTGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00890      $                SCALE, DIF, W, 1, IW, INFO )
00891          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00892          INFOT = 2
00893          CALL ZTGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00894      $                SCALE, DIF, W, 1, IW, INFO )
00895          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00896          INFOT = 3
00897          CALL ZTGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00898      $                SCALE, DIF, W, 1, IW, INFO )
00899          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00900          INFOT = 4
00901          CALL ZTGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00902      $                SCALE, DIF, W, 1, IW, INFO )
00903          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00904          INFOT = 6
00905          CALL ZTGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00906      $                SCALE, DIF, W, 1, IW, INFO )
00907          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00908          INFOT = 8
00909          CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1,
00910      $                SCALE, DIF, W, 1, IW, INFO )
00911          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00912          INFOT = 10
00913          CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1,
00914      $                SCALE, DIF, W, 1, IW, INFO )
00915          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00916          INFOT = 12
00917          CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1,
00918      $                SCALE, DIF, W, 1, IW, INFO )
00919          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00920          INFOT = 14
00921          CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1,
00922      $                SCALE, DIF, W, 1, IW, INFO )
00923          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00924          INFOT = 16
00925          CALL ZTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0,
00926      $                SCALE, DIF, W, 1, IW, INFO )
00927          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00928          INFOT = 20
00929          CALL ZTGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00930      $                SCALE, DIF, W, 1, IW, INFO )
00931          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00932          INFOT = 20
00933          CALL ZTGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1,
00934      $                SCALE, DIF, W, 1, IW, INFO )
00935          CALL CHKXER( 'ZTGSYL', INFOT, NOUT, LERR, OK )
00936          NT = NT + 12
00937       END IF
00938 *
00939 *     Print a summary line.
00940 *
00941       IF( OK ) THEN
00942          WRITE( NOUT, FMT = 9999 )PATH, NT
00943       ELSE
00944          WRITE( NOUT, FMT = 9998 )PATH
00945       END IF
00946 *
00947  9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (',
00948      $      I3, ' tests done)' )
00949  9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
00950      $      'exits ***' )
00951 *
00952       RETURN
00953 *
00954 *     End of ZERRGG
00955 *
00956       END
 All Files Functions