LAPACK 3.3.0

serrgg.f

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