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