00001 SUBROUTINE SERRGG( 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( NMAX )
00045 REAL 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 LSAMEN, SLCTES, SLCTSX
00053 EXTERNAL LSAMEN, SLCTES, SLCTSX
00054
00055
00056 EXTERNAL CHKXER, SGGES, SGGESX, SGGEV, SGGEVX, SGGGLM,
00057 $ SGGHRD, SGGLSE, SGGQRF, SGGRQF, SGGSVD, SGGSVP,
00058 $ SHGEQZ, STGEVC, STGEXC, STGSEN, STGSJA, STGSNA,
00059 $ STGSYL
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.0E0
00091 TOLB = 1.0E0
00092 IFST = 1
00093 ILST = 1
00094 NT = 0
00095
00096
00097
00098 IF( LSAMEN( 2, C2, 'GG' ) ) THEN
00099
00100
00101
00102 SRNAMT = 'SGGHRD'
00103 INFOT = 1
00104 CALL SGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00105 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00106 INFOT = 2
00107 CALL SGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00108 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00109 INFOT = 3
00110 CALL SGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00111 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00112 INFOT = 4
00113 CALL SGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO )
00114 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00115 INFOT = 5
00116 CALL SGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO )
00117 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00118 INFOT = 7
00119 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO )
00120 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00121 INFOT = 9
00122 CALL SGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO )
00123 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00124 INFOT = 11
00125 CALL SGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00126 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00127 INFOT = 13
00128 CALL SGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO )
00129 CALL CHKXER( 'SGGHRD', INFOT, NOUT, LERR, OK )
00130 NT = NT + 9
00131
00132
00133
00134 SRNAMT = 'SHGEQZ'
00135 INFOT = 1
00136 CALL SHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
00137 $ 1, Z, 1, W, LW, INFO )
00138 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00139 INFOT = 2
00140 CALL SHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
00141 $ 1, Z, 1, W, LW, INFO )
00142 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00143 INFOT = 3
00144 CALL SHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q,
00145 $ 1, Z, 1, W, LW, INFO )
00146 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00147 INFOT = 4
00148 CALL SHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3,
00149 $ Q, 1, Z, 1, W, LW, INFO )
00150 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00151 INFOT = 5
00152 CALL SHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q,
00153 $ 1, Z, 1, W, LW, INFO )
00154 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00155 INFOT = 6
00156 CALL SHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q,
00157 $ 1, Z, 1, W, LW, INFO )
00158 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00159 INFOT = 8
00160 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q,
00161 $ 1, Z, 1, W, LW, INFO )
00162 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00163 INFOT = 10
00164 CALL SHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q,
00165 $ 1, Z, 1, W, LW, INFO )
00166 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00167 INFOT = 15
00168 CALL SHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
00169 $ 1, Z, 1, W, LW, INFO )
00170 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00171 INFOT = 17
00172 CALL SHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q,
00173 $ 1, Z, 1, W, LW, INFO )
00174 CALL CHKXER( 'SHGEQZ', INFOT, NOUT, LERR, OK )
00175 NT = NT + 10
00176
00177
00178
00179 SRNAMT = 'STGEVC'
00180 INFOT = 1
00181 CALL STGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00182 $ INFO )
00183 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00184 INFOT = 2
00185 CALL STGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W,
00186 $ INFO )
00187 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00188 INFOT = 4
00189 CALL STGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M,
00190 $ W, INFO )
00191 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00192 INFOT = 6
00193 CALL STGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W,
00194 $ INFO )
00195 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00196 INFOT = 8
00197 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W,
00198 $ INFO )
00199 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00200 INFOT = 10
00201 CALL STGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00202 $ INFO )
00203 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00204 INFOT = 12
00205 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W,
00206 $ INFO )
00207 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00208 INFOT = 13
00209 CALL STGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W,
00210 $ INFO )
00211 CALL CHKXER( 'STGEVC', INFOT, NOUT, LERR, OK )
00212 NT = NT + 8
00213
00214
00215
00216 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN
00217
00218
00219
00220 SRNAMT = 'SGGSVD'
00221 INFOT = 1
00222 CALL SGGSVD( '/', '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00225 INFOT = 2
00226 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00229 INFOT = 3
00230 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00233 INFOT = 4
00234 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00237 INFOT = 5
00238 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00241 INFOT = 6
00242 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00245 INFOT = 10
00246 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00249 INFOT = 12
00250 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00253 INFOT = 16
00254 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00257 INFOT = 18
00258 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00261 INFOT = 20
00262 CALL SGGSVD( '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( 'SGGSVD', INFOT, NOUT, LERR, OK )
00265 NT = NT + 11
00266
00267
00268
00269 SRNAMT = 'SGGSVP'
00270 INFOT = 1
00271 CALL SGGSVP( '/', '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00275 INFOT = 2
00276 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00280 INFOT = 3
00281 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00285 INFOT = 4
00286 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00290 INFOT = 5
00291 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00295 INFOT = 6
00296 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00300 INFOT = 8
00301 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00305 INFOT = 10
00306 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00310 INFOT = 16
00311 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00315 INFOT = 18
00316 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00320 INFOT = 20
00321 CALL SGGSVP( '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( 'SGGSVP', INFOT, NOUT, LERR, OK )
00325 NT = NT + 11
00326
00327
00328
00329 SRNAMT = 'STGSJA'
00330 INFOT = 1
00331 CALL STGSJA( '/', '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00335 INFOT = 2
00336 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00340 INFOT = 3
00341 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00345 INFOT = 4
00346 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00350 INFOT = 5
00351 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00355 INFOT = 6
00356 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00360 INFOT = 10
00361 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00365 INFOT = 12
00366 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00370 INFOT = 18
00371 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00375 INFOT = 20
00376 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00380 INFOT = 22
00381 CALL STGSJA( '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( 'STGSJA', INFOT, NOUT, LERR, OK )
00385 NT = NT + 11
00386
00387
00388
00389 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN
00390
00391
00392
00393 SRNAMT = 'SGGGLM'
00394 INFOT = 1
00395 CALL SGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00396 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00397 INFOT = 2
00398 CALL SGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00399 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00400 INFOT = 2
00401 CALL SGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00402 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00403 INFOT = 3
00404 CALL SGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00405 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00406 INFOT = 3
00407 CALL SGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00408 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00409 INFOT = 5
00410 CALL SGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
00411 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00412 INFOT = 7
00413 CALL SGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
00414 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00415 INFOT = 12
00416 CALL SGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
00417 CALL CHKXER( 'SGGGLM', INFOT, NOUT, LERR, OK )
00418 NT = NT + 8
00419
00420
00421
00422 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN
00423
00424
00425
00426 SRNAMT = 'SGGLSE'
00427 INFOT = 1
00428 CALL SGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00429 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00430 INFOT = 2
00431 CALL SGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00432 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00433 INFOT = 3
00434 CALL SGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00435 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00436 INFOT = 3
00437 CALL SGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00438 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00439 INFOT = 3
00440 CALL SGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO )
00441 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00442 INFOT = 5
00443 CALL SGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO )
00444 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00445 INFOT = 7
00446 CALL SGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO )
00447 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00448 INFOT = 12
00449 CALL SGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO )
00450 CALL CHKXER( 'SGGLSE', INFOT, NOUT, LERR, OK )
00451 NT = NT + 8
00452
00453
00454
00455 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN
00456
00457
00458
00459 SRNAMT = 'SGGQRF'
00460 INFOT = 1
00461 CALL SGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
00462 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00463 INFOT = 2
00464 CALL SGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
00465 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00466 INFOT = 3
00467 CALL SGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
00468 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00469 INFOT = 5
00470 CALL SGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
00471 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00472 INFOT = 8
00473 CALL SGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
00474 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00475 INFOT = 11
00476 CALL SGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
00477 CALL CHKXER( 'SGGQRF', INFOT, NOUT, LERR, OK )
00478 NT = NT + 6
00479
00480
00481
00482 SRNAMT = 'SGGRQF'
00483 INFOT = 1
00484 CALL SGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
00485 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00486 INFOT = 2
00487 CALL SGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO )
00488 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00489 INFOT = 3
00490 CALL SGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO )
00491 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00492 INFOT = 5
00493 CALL SGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO )
00494 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00495 INFOT = 8
00496 CALL SGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO )
00497 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00498 INFOT = 11
00499 CALL SGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO )
00500 CALL CHKXER( 'SGGRQF', INFOT, NOUT, LERR, OK )
00501 NT = NT + 6
00502
00503
00504
00505 ELSE IF( LSAMEN( 3, PATH, 'SGS' ) .OR.
00506 $ LSAMEN( 3, PATH, 'SGV' ) .OR.
00507 $ LSAMEN( 3, PATH, 'SGX' ) .OR. LSAMEN( 3, PATH, 'SXV' ) )
00508 $ THEN
00509
00510
00511
00512 SRNAMT = 'SGGES '
00513 INFOT = 1
00514 CALL SGGES( '/', 'N', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
00515 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
00516 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00517 INFOT = 2
00518 CALL SGGES( 'N', '/', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
00519 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
00520 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00521 INFOT = 3
00522 CALL SGGES( 'N', 'V', '/', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
00523 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
00524 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00525 INFOT = 5
00526 CALL SGGES( 'N', 'V', 'S', SLCTES, -1, A, 1, B, 1, SDIM, R1,
00527 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO )
00528 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00529 INFOT = 7
00530 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 0, B, 1, SDIM, R1, R2,
00531 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
00532 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00533 INFOT = 9
00534 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 0, SDIM, R1, R2,
00535 $ R3, Q, 1, U, 1, W, 1, BW, INFO )
00536 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00537 INFOT = 15
00538 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
00539 $ R3, Q, 0, U, 1, W, 1, BW, INFO )
00540 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00541 INFOT = 15
00542 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
00543 $ R3, Q, 1, U, 2, W, 1, BW, INFO )
00544 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00545 INFOT = 17
00546 CALL SGGES( 'N', 'V', 'S', SLCTES, 1, A, 1, B, 1, SDIM, R1, R2,
00547 $ R3, Q, 1, U, 0, W, 1, BW, INFO )
00548 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00549 INFOT = 17
00550 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
00551 $ R3, Q, 2, U, 1, W, 1, BW, INFO )
00552 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00553 INFOT = 19
00554 CALL SGGES( 'V', 'V', 'S', SLCTES, 2, A, 2, B, 2, SDIM, R1, R2,
00555 $ R3, Q, 2, U, 2, W, 1, BW, INFO )
00556 CALL CHKXER( 'SGGES ', INFOT, NOUT, LERR, OK )
00557 NT = NT + 11
00558
00559
00560
00561 SRNAMT = 'SGGESX'
00562 INFOT = 1
00563 CALL SGGESX( '/', 'N', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00567 INFOT = 2
00568 CALL SGGESX( 'N', '/', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00572 INFOT = 3
00573 CALL SGGESX( 'V', 'V', '/', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00577 INFOT = 5
00578 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '/', 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( 'SGGESX', INFOT, NOUT, LERR, OK )
00582 INFOT = 6
00583 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00587 INFOT = 8
00588 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00592 INFOT = 10
00593 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00597 INFOT = 16
00598 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00602 INFOT = 16
00603 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00607 INFOT = 18
00608 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00612 INFOT = 18
00613 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00617 INFOT = 22
00618 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00622 INFOT = 24
00623 CALL SGGESX( 'V', 'V', 'S', SLCTSX, '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( 'SGGESX', INFOT, NOUT, LERR, OK )
00627 NT = NT + 13
00628
00629
00630
00631 SRNAMT = 'SGGEV '
00632 INFOT = 1
00633 CALL SGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
00634 $ 1, INFO )
00635 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00636 INFOT = 2
00637 CALL SGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
00638 $ 1, INFO )
00639 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00640 INFOT = 3
00641 CALL SGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1,
00642 $ W, 1, INFO )
00643 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00644 INFOT = 5
00645 CALL SGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W,
00646 $ 1, INFO )
00647 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00648 INFOT = 7
00649 CALL SGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W,
00650 $ 1, INFO )
00651 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00652 INFOT = 12
00653 CALL SGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W,
00654 $ 1, INFO )
00655 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00656 INFOT = 12
00657 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W,
00658 $ 1, INFO )
00659 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00660 INFOT = 14
00661 CALL SGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W,
00662 $ 1, INFO )
00663 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00664 INFOT = 14
00665 CALL SGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W,
00666 $ 1, INFO )
00667 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00668 INFOT = 16
00669 CALL SGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W,
00670 $ 1, INFO )
00671 CALL CHKXER( 'SGGEV ', INFOT, NOUT, LERR, OK )
00672 NT = NT + 10
00673
00674
00675
00676 SRNAMT = 'SGGEVX'
00677 INFOT = 1
00678 CALL SGGEVX( '/', '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00682 INFOT = 2
00683 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00687 INFOT = 3
00688 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00692 INFOT = 4
00693 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00697 INFOT = 5
00698 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00702 INFOT = 7
00703 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00707 INFOT = 9
00708 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00712 INFOT = 14
00713 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00717 INFOT = 14
00718 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00722 INFOT = 16
00723 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00727 INFOT = 16
00728 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00732 INFOT = 26
00733 CALL SGGEVX( '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( 'SGGEVX', INFOT, NOUT, LERR, OK )
00737 NT = NT + 12
00738
00739
00740
00741 SRNAMT = 'STGEXC'
00742 INFOT = 3
00743 CALL STGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST,
00744 $ ILST, W, 1, INFO )
00745 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00746 INFOT = 5
00747 CALL STGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST,
00748 $ ILST, W, 1, INFO )
00749 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00750 INFOT = 7
00751 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST,
00752 $ ILST, W, 1, INFO )
00753 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00754 INFOT = 9
00755 CALL STGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00756 $ ILST, W, 1, INFO )
00757 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00758 INFOT = 9
00759 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST,
00760 $ ILST, W, 1, INFO )
00761 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00762 INFOT = 11
00763 CALL STGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00764 $ ILST, W, 1, INFO )
00765 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00766 INFOT = 11
00767 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST,
00768 $ ILST, W, 1, INFO )
00769 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00770 INFOT = 15
00771 CALL STGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST,
00772 $ ILST, W, 0, INFO )
00773 CALL CHKXER( 'STGEXC', INFOT, NOUT, LERR, OK )
00774 NT = NT + 8
00775
00776
00777
00778 SRNAMT = 'STGSEN'
00779 INFOT = 1
00780 CALL STGSEN( -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( 'STGSEN', INFOT, NOUT, LERR, OK )
00784 INFOT = 5
00785 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00789 INFOT = 7
00790 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00794 INFOT = 9
00795 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00799 INFOT = 14
00800 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00804 INFOT = 16
00805 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00809 INFOT = 22
00810 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00814 INFOT = 22
00815 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00819 INFOT = 22
00820 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00824 INFOT = 24
00825 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00829 INFOT = 24
00830 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00834 INFOT = 24
00835 CALL STGSEN( 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( 'STGSEN', INFOT, NOUT, LERR, OK )
00839 NT = NT + 12
00840
00841
00842
00843 SRNAMT = 'STGSNA'
00844 INFOT = 1
00845 CALL STGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00846 $ 1, M, W, 1, IW, INFO )
00847 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00848 INFOT = 2
00849 CALL STGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00850 $ 1, M, W, 1, IW, INFO )
00851 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00852 INFOT = 4
00853 CALL STGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00854 $ 1, M, W, 1, IW, INFO )
00855 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00856 INFOT = 6
00857 CALL STGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2,
00858 $ 1, M, W, 1, IW, INFO )
00859 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00860 INFOT = 8
00861 CALL STGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2,
00862 $ 1, M, W, 1, IW, INFO )
00863 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00864 INFOT = 10
00865 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2,
00866 $ 1, M, W, 1, IW, INFO )
00867 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00868 INFOT = 12
00869 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2,
00870 $ 1, M, W, 1, IW, INFO )
00871 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00872 INFOT = 15
00873 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00874 $ 0, M, W, 1, IW, INFO )
00875 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00876 INFOT = 18
00877 CALL STGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2,
00878 $ 1, M, W, 0, IW, INFO )
00879 CALL CHKXER( 'STGSNA', INFOT, NOUT, LERR, OK )
00880 NT = NT + 9
00881
00882
00883
00884 SRNAMT = 'STGSYL'
00885 INFOT = 1
00886 CALL STGSYL( '/', 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( 'STGSYL', INFOT, NOUT, LERR, OK )
00889 INFOT = 2
00890 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00893 INFOT = 3
00894 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00897 INFOT = 4
00898 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00901 INFOT = 6
00902 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00905 INFOT = 8
00906 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00909 INFOT = 10
00910 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00913 INFOT = 12
00914 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00917 INFOT = 14
00918 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00921 INFOT = 16
00922 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00925 INFOT = 20
00926 CALL STGSYL( '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( 'STGSYL', INFOT, NOUT, LERR, OK )
00929 INFOT = 20
00930 CALL STGSYL( '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( 'STGSYL', 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