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