LAPACK 3.3.0

cerrgg.f

Go to the documentation of this file.
00001       SUBROUTINE CERRGG( 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 *  CERRGG tests the error exits for CGGES, CGGESX, CGGEV, CGGEVX,
00016 *  CGGGLM, CGGHRD, CGGLSE, CGGQRF, CGGRQF, CGGSVD, CGGSVP, CHGEQZ,
00017 *  CTGEVC, CTGEXC, CTGSEN, CTGSJA, CTGSNA, and CTGSYL.
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       REAL               ONE, ZERO
00034       PARAMETER          ( ONE = 1.0E+0, ZERO = 0.0E+0 )
00035 *     ..
00036 *     .. Local Scalars ..
00037       CHARACTER*2        C2
00038       INTEGER            DUMMYK, DUMMYL, I, IFST, ILST, INFO, J, M,
00039      $                   NCYCLE, NT, SDIM
00040       REAL               ANRM, BNRM, DIF, SCALE, TOLA, TOLB
00041 *     ..
00042 *     .. Local Arrays ..
00043       LOGICAL            BW( NMAX ), SEL( NMAX )
00044       INTEGER            IW( LW )
00045       REAL               LS( NMAX ), R1( NMAX ), R2( NMAX ),
00046      $                   RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
00047       COMPLEX            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            CLCTES, CLCTSX, LSAMEN
00054       EXTERNAL           CLCTES, CLCTSX, LSAMEN
00055 *     ..
00056 *     .. External Subroutines ..
00057       EXTERNAL           CGGES, CGGESX, CGGEV, CGGEVX, CGGGLM, CGGHRD,
00058      $                   CGGLSE, CGGQRF, CGGRQF, CGGSVD, CGGSVP, CHGEQZ,
00059      $                   CHKXER, CTGEVC, CTGEXC, CTGSEN, CTGSJA, CTGSNA,
00060      $                   CTGSYL
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.0E0
00092       TOLB = 1.0E0
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 *        CGGHRD
00102 *
00103          SRNAMT = 'CGGHRD'
00104          INFOT = 1
00105          CALL CGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00106          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00107          INFOT = 2
00108          CALL CGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00109          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00110          INFOT = 3
00111          CALL CGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00112          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00113          INFOT = 4
00114          CALL CGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00115          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00116          INFOT = 5
00117          CALL CGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
00118          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00119          INFOT = 7
00120          CALL CGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
00121          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00122          INFOT = 9
00123          CALL CGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
00124          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00125          INFOT = 11
00126          CALL CGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00127          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00128          INFOT = 13
00129          CALL CGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00130          CALL CHKXER( 'CGGHRD', INFOT, NOUT, LERR, OK )
00131          NT = NT + 9
00132 *
00133 *        CHGEQZ
00134 *
00135          SRNAMT = 'CHGEQZ'
00136          INFOT = 1
00137          CALL CHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00138      $                Q, 1, Z, 1, W, 1, RW, INFO )
00139          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00140          INFOT = 2
00141          CALL CHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00142      $                Q, 1, Z, 1, W, 1, RW, INFO )
00143          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00144          INFOT = 3
00145          CALL CHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, ALPHA, BETA,
00146      $                Q, 1, Z, 1, W, 1, RW, INFO )
00147          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00148          INFOT = 4
00149          CALL CHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, ALPHA, BETA,
00150      $                Q, 1, Z, 1, W, 1, RW, INFO )
00151          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00152          INFOT = 5
00153          CALL CHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, ALPHA, BETA,
00154      $                Q, 1, Z, 1, W, 1, RW, INFO )
00155          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00156          INFOT = 6
00157          CALL CHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, ALPHA, BETA,
00158      $                Q, 1, Z, 1, W, 1, RW, INFO )
00159          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00160          INFOT = 8
00161          CALL CHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, ALPHA, BETA,
00162      $                Q, 1, Z, 1, W, 1, RW, INFO )
00163          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00164          INFOT = 10
00165          CALL CHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, ALPHA, BETA,
00166      $                Q, 1, Z, 1, W, 1, RW, INFO )
00167          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00168          INFOT = 14
00169          CALL CHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, ALPHA, BETA,
00170      $                Q, 1, Z, 1, W, 1, RW, INFO )
00171          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00172          INFOT = 16
00173          CALL CHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, ALPHA, BETA,
00174      $                Q, 1, Z, 1, W, 1, RW, INFO )
00175          CALL CHKXER( 'CHGEQZ', INFOT, NOUT, LERR, OK )
00176          NT = NT + 10
00177 *
00178 *        CTGEVC
00179 *
00180          SRNAMT = 'CTGEVC'
00181          INFOT = 1
00182          CALL CTGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00183      $                RW, INFO )
00184          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00185          INFOT = 2
00186          CALL CTGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00187      $                RW, INFO )
00188          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00189          INFOT = 4
00190          CALL CTGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
00191      $                W, RW, INFO )
00192          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00193          INFOT = 6
00194          CALL CTGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
00195      $                RW, INFO )
00196          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00197          INFOT = 8
00198          CALL CTGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
00199      $                RW, INFO )
00200          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00201          INFOT = 10
00202          CALL CTGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00203      $                RW, INFO )
00204          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00205          INFOT = 12
00206          CALL CTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00207      $                RW, INFO )
00208          CALL CHKXER( 'CTGEVC', INFOT, NOUT, LERR, OK )
00209          INFOT = 13
00210          CALL CTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
00211      $                RW, INFO )
00212          CALL CHKXER( 'CTGEVC', 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 *        CGGSVD
00220 *
00221          SRNAMT = 'CGGSVD'
00222          INFOT = 1
00223          CALL CGGSVD( '/', '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00226          INFOT = 2
00227          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00230          INFOT = 3
00231          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00234          INFOT = 4
00235          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00238          INFOT = 5
00239          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00242          INFOT = 6
00243          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00246          INFOT = 10
00247          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00250          INFOT = 12
00251          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00254          INFOT = 16
00255          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00258          INFOT = 18
00259          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00262          INFOT = 20
00263          CALL CGGSVD( '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( 'CGGSVD', INFOT, NOUT, LERR, OK )
00266          NT = NT + 11
00267 *
00268 *        CGGSVP
00269 *
00270          SRNAMT = 'CGGSVP'
00271          INFOT = 1
00272          CALL CGGSVP( '/', '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00276          INFOT = 2
00277          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00281          INFOT = 3
00282          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00286          INFOT = 4
00287          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00291          INFOT = 5
00292          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00296          INFOT = 6
00297          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00301          INFOT = 8
00302          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00306          INFOT = 10
00307          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00311          INFOT = 16
00312          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00316          INFOT = 18
00317          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00321          INFOT = 20
00322          CALL CGGSVP( '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( 'CGGSVP', INFOT, NOUT, LERR, OK )
00326          NT = NT + 11
00327 *
00328 *        CTGSJA
00329 *
00330          SRNAMT = 'CTGSJA'
00331          INFOT = 1
00332          CALL CTGSJA( '/', '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00336          INFOT = 2
00337          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00341          INFOT = 3
00342          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00346          INFOT = 4
00347          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00351          INFOT = 5
00352          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00356          INFOT = 6
00357          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00361          INFOT = 10
00362          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00366          INFOT = 12
00367          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00371          INFOT = 18
00372          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00376          INFOT = 20
00377          CALL CTGSJA( '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( 'CTGSJA', INFOT, NOUT, LERR, OK )
00381          INFOT = 22
00382          CALL CTGSJA( '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( 'CTGSJA', 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 *        CGGGLM
00393 *
00394          SRNAMT = 'CGGGLM'
00395          INFOT = 1
00396          CALL CGGGLM( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00397      $                INFO )
00398          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00399          INFOT = 2
00400          CALL CGGGLM( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00401      $                INFO )
00402          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00403          INFOT = 2
00404          CALL CGGGLM( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00405      $                INFO )
00406          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00407          INFOT = 3
00408          CALL CGGGLM( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00409      $                INFO )
00410          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00411          INFOT = 3
00412          CALL CGGGLM( 1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00413      $                INFO )
00414          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00415          INFOT = 5
00416          CALL CGGGLM( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
00417      $                INFO )
00418          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00419          INFOT = 7
00420          CALL CGGGLM( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
00421      $                INFO )
00422          CALL CHKXER( 'CGGGLM', INFOT, NOUT, LERR, OK )
00423          INFOT = 12
00424          CALL CGGGLM( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
00425      $                INFO )
00426          CALL CHKXER( 'CGGGLM', 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 *        CGGLSE
00434 *
00435          SRNAMT = 'CGGLSE'
00436          INFOT = 1
00437          CALL CGGLSE( -1, 0, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00438      $                INFO )
00439          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00440          INFOT = 2
00441          CALL CGGLSE( 0, -1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00442      $                INFO )
00443          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00444          INFOT = 3
00445          CALL CGGLSE( 0, 0, -1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00446      $                INFO )
00447          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00448          INFOT = 3
00449          CALL CGGLSE( 0, 0, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00450      $                INFO )
00451          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00452          INFOT = 3
00453          CALL CGGLSE( 0, 1, 0, A, 1, B, 1, TAU, ALPHA, BETA, W, LW,
00454      $                INFO )
00455          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00456          INFOT = 5
00457          CALL CGGLSE( 0, 0, 0, A, 0, B, 1, TAU, ALPHA, BETA, W, LW,
00458      $                INFO )
00459          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00460          INFOT = 7
00461          CALL CGGLSE( 0, 0, 0, A, 1, B, 0, TAU, ALPHA, BETA, W, LW,
00462      $                INFO )
00463          CALL CHKXER( 'CGGLSE', INFOT, NOUT, LERR, OK )
00464          INFOT = 12
00465          CALL CGGLSE( 1, 1, 1, A, 1, B, 1, TAU, ALPHA, BETA, W, 1,
00466      $                INFO )
00467          CALL CHKXER( 'CGGLSE', 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 *        CGGQRF
00475 *
00476          SRNAMT = 'CGGQRF'
00477          INFOT = 1
00478          CALL CGGQRF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00479          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00480          INFOT = 2
00481          CALL CGGQRF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00482          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00483          INFOT = 3
00484          CALL CGGQRF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00485          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00486          INFOT = 5
00487          CALL CGGQRF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
00488          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00489          INFOT = 8
00490          CALL CGGQRF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
00491          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00492          INFOT = 11
00493          CALL CGGQRF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
00494          CALL CHKXER( 'CGGQRF', INFOT, NOUT, LERR, OK )
00495          NT = NT + 6
00496 *
00497 *        CGGRQF
00498 *
00499          SRNAMT = 'CGGRQF'
00500          INFOT = 1
00501          CALL CGGRQF( -1, 0, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00502          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00503          INFOT = 2
00504          CALL CGGRQF( 0, -1, 0, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00505          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00506          INFOT = 3
00507          CALL CGGRQF( 0, 0, -1, A, 1, ALPHA, B, 1, BETA, W, LW, INFO )
00508          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00509          INFOT = 5
00510          CALL CGGRQF( 0, 0, 0, A, 0, ALPHA, B, 1, BETA, W, LW, INFO )
00511          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00512          INFOT = 8
00513          CALL CGGRQF( 0, 0, 0, A, 1, ALPHA, B, 0, BETA, W, LW, INFO )
00514          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00515          INFOT = 11
00516          CALL CGGRQF( 1, 1, 2, A, 1, ALPHA, B, 1, BETA, W, 1, INFO )
00517          CALL CHKXER( 'CGGRQF', INFOT, NOUT, LERR, OK )
00518          NT = NT + 6
00519 *
00520 *     Test error exits for the CGS, CGV, CGX, and CXV paths.
00521 *
00522       ELSE IF( LSAMEN( 3, PATH, 'CGS' ) .OR.
00523      $         LSAMEN( 3, PATH, 'CGV' ) .OR.
00524      $         LSAMEN( 3, PATH, 'CGX' ) .OR. LSAMEN( 3, PATH, 'CXV' ) )
00525      $          THEN
00526 *
00527 *        CGGES
00528 *
00529          SRNAMT = 'CGGES '
00530          INFOT = 1
00531          CALL CGGES( '/', 'N', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00532      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00533          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00534          INFOT = 2
00535          CALL CGGES( 'N', '/', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00536      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00537          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00538          INFOT = 3
00539          CALL CGGES( 'N', 'V', '/', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00540      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00541          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00542          INFOT = 5
00543          CALL CGGES( 'N', 'V', 'S', CLCTES, -1, A, 1, B, 1, SDIM, ALPHA,
00544      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00545          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00546          INFOT = 7
00547          CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 0, B, 1, SDIM, ALPHA,
00548      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00549          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00550          INFOT = 9
00551          CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 0, SDIM, ALPHA,
00552      $               BETA, Q, 1, U, 1, W, 1, RW, BW, INFO )
00553          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00554          INFOT = 14
00555          CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00556      $               BETA, Q, 0, U, 1, W, 1, RW, BW, INFO )
00557          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00558          INFOT = 14
00559          CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00560      $               BETA, Q, 1, U, 2, W, 1, RW, BW, INFO )
00561          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00562          INFOT = 16
00563          CALL CGGES( 'N', 'V', 'S', CLCTES, 1, A, 1, B, 1, SDIM, ALPHA,
00564      $               BETA, Q, 1, U, 0, W, 1, RW, BW, INFO )
00565          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00566          INFOT = 16
00567          CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00568      $               BETA, Q, 2, U, 1, W, 1, RW, BW, INFO )
00569          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00570          INFOT = 18
00571          CALL CGGES( 'V', 'V', 'S', CLCTES, 2, A, 2, B, 2, SDIM, ALPHA,
00572      $               BETA, Q, 2, U, 2, W, 1, RW, BW, INFO )
00573          CALL CHKXER( 'CGGES ', INFOT, NOUT, LERR, OK )
00574          NT = NT + 11
00575 *
00576 *        CGGESX
00577 *
00578          SRNAMT = 'CGGESX'
00579          INFOT = 1
00580          CALL CGGESX( '/', 'N', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00584          INFOT = 2
00585          CALL CGGESX( 'N', '/', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00589          INFOT = 3
00590          CALL CGGESX( 'V', 'V', '/', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00594          INFOT = 5
00595          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '/', 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( 'CGGESX', INFOT, NOUT, LERR, OK )
00599          INFOT = 6
00600          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00604          INFOT = 8
00605          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00609          INFOT = 10
00610          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00614          INFOT = 15
00615          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00619          INFOT = 15
00620          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00624          INFOT = 17
00625          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00629          INFOT = 17
00630          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00634          INFOT = 21
00635          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00639          INFOT = 24
00640          CALL CGGESX( 'V', 'V', 'S', CLCTSX, '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( 'CGGESX', INFOT, NOUT, LERR, OK )
00644          NT = NT + 13
00645 *
00646 *        CGGEV
00647 *
00648          SRNAMT = 'CGGEV '
00649          INFOT = 1
00650          CALL CGGEV( '/', 'N', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00651      $               W, 1, RW, INFO )
00652          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00653          INFOT = 2
00654          CALL CGGEV( 'N', '/', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00655      $               W, 1, RW, INFO )
00656          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00657          INFOT = 3
00658          CALL CGGEV( 'V', 'V', -1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00659      $               W, 1, RW, INFO )
00660          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00661          INFOT = 5
00662          CALL CGGEV( 'V', 'V', 1, A, 0, B, 1, ALPHA, BETA, Q, 1, U, 1,
00663      $               W, 1, RW, INFO )
00664          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00665          INFOT = 7
00666          CALL CGGEV( 'V', 'V', 1, A, 1, B, 0, ALPHA, BETA, Q, 1, U, 1,
00667      $               W, 1, RW, INFO )
00668          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00669          INFOT = 11
00670          CALL CGGEV( 'N', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 0, U, 1,
00671      $               W, 1, RW, INFO )
00672          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00673          INFOT = 11
00674          CALL CGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 1, U, 2,
00675      $               W, 1, RW, INFO )
00676          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00677          INFOT = 13
00678          CALL CGGEV( 'V', 'N', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 0,
00679      $               W, 1, RW, INFO )
00680          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00681          INFOT = 13
00682          CALL CGGEV( 'V', 'V', 2, A, 2, B, 2, ALPHA, BETA, Q, 2, U, 1,
00683      $               W, 1, RW, INFO )
00684          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00685          INFOT = 15
00686          CALL CGGEV( 'V', 'V', 1, A, 1, B, 1, ALPHA, BETA, Q, 1, U, 1,
00687      $               W, 1, RW, INFO )
00688          CALL CHKXER( 'CGGEV ', INFOT, NOUT, LERR, OK )
00689          NT = NT + 10
00690 *
00691 *        CGGEVX
00692 *
00693          SRNAMT = 'CGGEVX'
00694          INFOT = 1
00695          CALL CGGEVX( '/', '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00699          INFOT = 2
00700          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00704          INFOT = 3
00705          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00709          INFOT = 4
00710          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00714          INFOT = 5
00715          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00719          INFOT = 7
00720          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00724          INFOT = 9
00725          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00729          INFOT = 13
00730          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00734          INFOT = 13
00735          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00739          INFOT = 15
00740          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00744          INFOT = 15
00745          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00749          INFOT = 25
00750          CALL CGGEVX( '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( 'CGGEVX', INFOT, NOUT, LERR, OK )
00754          NT = NT + 12
00755 *
00756 *        CTGEXC
00757 *
00758          SRNAMT = 'CTGEXC'
00759          INFOT = 3
00760          CALL CTGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
00761      $                ILST, INFO )
00762          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00763          INFOT = 5
00764          CALL CTGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
00765      $                ILST, INFO )
00766          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00767          INFOT = 7
00768          CALL CTGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
00769      $                ILST, INFO )
00770          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00771          INFOT = 9
00772          CALL CTGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00773      $                ILST, INFO )
00774          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00775          INFOT = 9
00776          CALL CTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00777      $                ILST, INFO )
00778          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00779          INFOT = 11
00780          CALL CTGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00781      $                ILST, INFO )
00782          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00783          INFOT = 11
00784          CALL CTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00785      $                ILST, INFO )
00786          CALL CHKXER( 'CTGEXC', INFOT, NOUT, LERR, OK )
00787          NT = NT + 7
00788 *
00789 *        CTGSEN
00790 *
00791          SRNAMT = 'CTGSEN'
00792          INFOT = 1
00793          CALL CTGSEN( -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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00797          INFOT = 5
00798          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00802          INFOT = 7
00803          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00807          INFOT = 9
00808          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00812          INFOT = 13
00813          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00817          INFOT = 15
00818          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00822          INFOT = 21
00823          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00827          INFOT = 23
00828          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00832          INFOT = 23
00833          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00837          INFOT = 23
00838          CALL CTGSEN( 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( 'CTGSEN', INFOT, NOUT, LERR, OK )
00842          NT = NT + 11
00843 *
00844 *        CTGSNA
00845 *
00846          SRNAMT = 'CTGSNA'
00847          INFOT = 1
00848          CALL CTGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00849      $                1, M, W, 1, IW, INFO )
00850          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00851          INFOT = 2
00852          CALL CTGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00853      $                1, M, W, 1, IW, INFO )
00854          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00855          INFOT = 4
00856          CALL CTGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00857      $                1, M, W, 1, IW, INFO )
00858          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00859          INFOT = 6
00860          CALL CTGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
00861      $                1, M, W, 1, IW, INFO )
00862          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00863          INFOT = 8
00864          CALL CTGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
00865      $                1, M, W, 1, IW, INFO )
00866          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00867          INFOT = 10
00868          CALL CTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
00869      $                1, M, W, 1, IW, INFO )
00870          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00871          INFOT = 12
00872          CALL CTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
00873      $                1, M, W, 1, IW, INFO )
00874          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00875          INFOT = 15
00876          CALL CTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00877      $                0, M, W, 1, IW, INFO )
00878          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00879          INFOT = 18
00880          CALL CTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00881      $                1, M, W, 0, IW, INFO )
00882          CALL CHKXER( 'CTGSNA', INFOT, NOUT, LERR, OK )
00883          NT = NT + 9
00884 *
00885 *        CTGSYL
00886 *
00887          SRNAMT = 'CTGSYL'
00888          INFOT = 1
00889          CALL CTGSYL( '/', 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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00892          INFOT = 2
00893          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00896          INFOT = 3
00897          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00900          INFOT = 4
00901          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00904          INFOT = 6
00905          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00908          INFOT = 8
00909          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00912          INFOT = 10
00913          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00916          INFOT = 12
00917          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00920          INFOT = 14
00921          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00924          INFOT = 16
00925          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00928          INFOT = 20
00929          CALL CTGSYL( '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( 'CTGSYL', INFOT, NOUT, LERR, OK )
00932          INFOT = 20
00933          CALL CTGSYL( '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( 'CTGSYL', 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 CERRGG
00955 *
00956       END
 All Files Functions