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