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