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