00001 SUBROUTINE CERRGG( PATH, NUNIT )
00002
00003
00004
00005
00006
00007
00008 CHARACTER*3 PATH
00009 INTEGER NUNIT
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
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
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
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
00053 LOGICAL CLCTES, CLCTSX, LSAMEN
00054 EXTERNAL CLCTES, CLCTSX, LSAMEN
00055
00056
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
00063 LOGICAL LERR, OK
00064 CHARACTER*32 SRNAMT
00065 INTEGER INFOT, NOUT
00066
00067
00068 COMMON / INFOC / INFOT, NOUT, OK, LERR
00069 COMMON / SRNAMC / SRNAMT
00070
00071
00072
00073 NOUT = NUNIT
00074 WRITE( NOUT, FMT = * )
00075 C2 = PATH( 2: 3 )
00076
00077
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
00098
00099 IF( LSAMEN( 2, C2, 'GG' ) ) THEN
00100
00101
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
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
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
00216
00217 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
00218
00219
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
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
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
00389
00390 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
00391
00392
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
00430
00431 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
00432
00433
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
00471
00472 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
00473
00474
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
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
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
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
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
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
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
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
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
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
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
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
00955
00956 END