![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
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