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