1*> \brief \b DERRGG 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE DERRGG( PATH, NUNIT ) 12* 13* .. Scalar Arguments .. 14* CHARACTER*3 PATH 15* INTEGER NUNIT 16* .. 17* 18* 19*> \par Purpose: 20* ============= 21*> 22*> \verbatim 23*> 24*> DERRGG tests the error exits for DGGES, DGGESX, DGGEV, DGGEVX, 25*> DGGGLM, DGGHRD, DGGLSE, DGGQRF, DGGRQF, DGGSVD3, 26*> DGGSVP3, DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA, DTGSNA, 27*> DGGES3, DGGEV3, and DTGSYL. 28*> \endverbatim 29* 30* Arguments: 31* ========== 32* 33*> \param[in] PATH 34*> \verbatim 35*> PATH is CHARACTER*3 36*> The LAPACK path name for the routines to be tested. 37*> \endverbatim 38*> 39*> \param[in] NUNIT 40*> \verbatim 41*> NUNIT is INTEGER 42*> The unit number for output. 43*> \endverbatim 44* 45* Authors: 46* ======== 47* 48*> \author Univ. of Tennessee 49*> \author Univ. of California Berkeley 50*> \author Univ. of Colorado Denver 51*> \author NAG Ltd. 52* 53*> \ingroup double_eig 54* 55* ===================================================================== 56 SUBROUTINE DERRGG( PATH, NUNIT ) 57* 58* -- LAPACK test routine -- 59* -- LAPACK is a software package provided by Univ. of Tennessee, -- 60* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 61* 62* .. Scalar Arguments .. 63 CHARACTER*3 PATH 64 INTEGER NUNIT 65* .. 66* 67* ===================================================================== 68* 69* .. Parameters .. 70 INTEGER NMAX, LW 71 PARAMETER ( NMAX = 3, LW = 6*NMAX ) 72 DOUBLE PRECISION ONE, ZERO 73 PARAMETER ( ONE = 1.0D+0, ZERO = 0.0D+0 ) 74* .. 75* .. Local Scalars .. 76 CHARACTER*2 C2 77 INTEGER DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO, 78 $ J, M, NCYCLE, NT, SDIM, LWORK 79 DOUBLE PRECISION ANRM, BNRM, DIF, SCALE, TOLA, TOLB 80* .. 81* .. Local Arrays .. 82 LOGICAL BW( NMAX ), SEL( NMAX ) 83 INTEGER IW( NMAX ), IDUM(NMAX) 84 DOUBLE PRECISION A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ), 85 $ Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ), 86 $ R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ), 87 $ TAU( NMAX ), U( NMAX, NMAX ), V( NMAX, NMAX ), 88 $ W( LW ), Z( NMAX, NMAX ) 89* .. 90* .. External Functions .. 91 LOGICAL DLCTES, DLCTSX, LSAMEN 92 EXTERNAL DLCTES, DLCTSX, LSAMEN 93* .. 94* .. External Subroutines .. 95 EXTERNAL CHKXER, DGGES, DGGESX, DGGEV, DGGEVX, DGGGLM, 96 $ DGGHRD, DGGLSE, DGGQRF, DGGRQF, 97 $ DHGEQZ, DORCSD, DTGEVC, DTGEXC, DTGSEN, DTGSJA, 98 $ DTGSNA, DTGSYL, DGGHD3, DGGES3, DGGEV3, 99 $ DGGSVD3, DGGSVP3, XLAENV 100* .. 101* .. Scalars in Common .. 102 LOGICAL LERR, OK 103 CHARACTER*32 SRNAMT 104 INTEGER INFOT, NOUT 105* .. 106* .. Common blocks .. 107 COMMON / INFOC / INFOT, NOUT, OK, LERR 108 COMMON / SRNAMC / SRNAMT 109* .. 110* .. Executable Statements .. 111* 112 NOUT = NUNIT 113 WRITE( NOUT, FMT = * ) 114 C2 = PATH( 2: 3 ) 115* 116* Set the variables to innocuous values. 117* 118 DO 20 J = 1, NMAX 119 SEL( J ) = .TRUE. 120 DO 10 I = 1, NMAX 121 A( I, J ) = ZERO 122 B( I, J ) = ZERO 123 10 CONTINUE 124 20 CONTINUE 125 DO 30 I = 1, NMAX 126 A( I, I ) = ONE 127 B( I, I ) = ONE 128 30 CONTINUE 129 OK = .TRUE. 130 TOLA = 1.0D0 131 TOLB = 1.0D0 132 IFST = 1 133 ILST = 1 134 NT = 0 135 LWORK = 1 136* 137* Call XLAENV to set the parameters used in CLAQZ0 138* 139 CALL XLAENV( 12, 10 ) 140 CALL XLAENV( 13, 12 ) 141 CALL XLAENV( 14, 13 ) 142 CALL XLAENV( 15, 2 ) 143 CALL XLAENV( 17, 10 ) 144* 145* Test error exits for the GG path. 146* 147 IF( LSAMEN( 2, C2, 'GG' ) ) THEN 148* 149* DGGHRD 150* 151 SRNAMT = 'DGGHRD' 152 INFOT = 1 153 CALL DGGHRD( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 154 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 155 INFOT = 2 156 CALL DGGHRD( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 157 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 158 INFOT = 3 159 CALL DGGHRD( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 160 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 161 INFOT = 4 162 CALL DGGHRD( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, INFO ) 163 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 164 INFOT = 5 165 CALL DGGHRD( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, INFO ) 166 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 167 INFOT = 7 168 CALL DGGHRD( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, INFO ) 169 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 170 INFOT = 9 171 CALL DGGHRD( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, INFO ) 172 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 173 INFOT = 11 174 CALL DGGHRD( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO ) 175 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 176 INFOT = 13 177 CALL DGGHRD( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, INFO ) 178 CALL CHKXER( 'DGGHRD', INFOT, NOUT, LERR, OK ) 179 NT = NT + 9 180* 181* DGGHD3 182* 183 SRNAMT = 'DGGHD3' 184 INFOT = 1 185 CALL DGGHD3( '/', 'N', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW, 186 $ INFO ) 187 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 188 INFOT = 2 189 CALL DGGHD3( 'N', '/', 0, 1, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW, 190 $ INFO ) 191 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 192 INFOT = 3 193 CALL DGGHD3( 'N', 'N', -1, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW, 194 $ INFO ) 195 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 196 INFOT = 4 197 CALL DGGHD3( 'N', 'N', 0, 0, 0, A, 1, B, 1, Q, 1, Z, 1, W, LW, 198 $ INFO ) 199 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 200 INFOT = 5 201 CALL DGGHD3( 'N', 'N', 0, 1, 1, A, 1, B, 1, Q, 1, Z, 1, W, LW, 202 $ INFO ) 203 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 204 INFOT = 7 205 CALL DGGHD3( 'N', 'N', 2, 1, 1, A, 1, B, 2, Q, 1, Z, 1, W, LW, 206 $ INFO ) 207 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 208 INFOT = 9 209 CALL DGGHD3( 'N', 'N', 2, 1, 1, A, 2, B, 1, Q, 1, Z, 1, W, LW, 210 $ INFO ) 211 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 212 INFOT = 11 213 CALL DGGHD3( 'V', 'N', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW, 214 $ INFO ) 215 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 216 INFOT = 13 217 CALL DGGHD3( 'N', 'V', 2, 1, 1, A, 2, B, 2, Q, 1, Z, 1, W, LW, 218 $ INFO ) 219 CALL CHKXER( 'DGGHD3', INFOT, NOUT, LERR, OK ) 220 NT = NT + 9 221* 222* DHGEQZ 223* 224 SRNAMT = 'DHGEQZ' 225 INFOT = 1 226 CALL DHGEQZ( '/', 'N', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q, 227 $ 1, Z, 1, W, LW, INFO ) 228 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 229 INFOT = 2 230 CALL DHGEQZ( 'E', '/', 'N', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q, 231 $ 1, Z, 1, W, LW, INFO ) 232 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 233 INFOT = 3 234 CALL DHGEQZ( 'E', 'N', '/', 0, 1, 0, A, 1, B, 1, R1, R2, R3, Q, 235 $ 1, Z, 1, W, LW, INFO ) 236 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 237 INFOT = 4 238 CALL DHGEQZ( 'E', 'N', 'N', -1, 0, 0, A, 1, B, 1, R1, R2, R3, 239 $ Q, 1, Z, 1, W, LW, INFO ) 240 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 241 INFOT = 5 242 CALL DHGEQZ( 'E', 'N', 'N', 0, 0, 0, A, 1, B, 1, R1, R2, R3, Q, 243 $ 1, Z, 1, W, LW, INFO ) 244 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 245 INFOT = 6 246 CALL DHGEQZ( 'E', 'N', 'N', 0, 1, 1, A, 1, B, 1, R1, R2, R3, Q, 247 $ 1, Z, 1, W, LW, INFO ) 248 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 249 INFOT = 8 250 CALL DHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 1, B, 2, R1, R2, R3, Q, 251 $ 1, Z, 1, W, LW, INFO ) 252 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 253 INFOT = 10 254 CALL DHGEQZ( 'E', 'N', 'N', 2, 1, 1, A, 2, B, 1, R1, R2, R3, Q, 255 $ 1, Z, 1, W, LW, INFO ) 256 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 257 INFOT = 15 258 CALL DHGEQZ( 'E', 'V', 'N', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q, 259 $ 1, Z, 1, W, LW, INFO ) 260 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 261 INFOT = 17 262 CALL DHGEQZ( 'E', 'N', 'V', 2, 1, 1, A, 2, B, 2, R1, R2, R3, Q, 263 $ 1, Z, 1, W, LW, INFO ) 264 CALL CHKXER( 'DHGEQZ', INFOT, NOUT, LERR, OK ) 265 NT = NT + 10 266* 267* DTGEVC 268* 269 SRNAMT = 'DTGEVC' 270 INFOT = 1 271 CALL DTGEVC( '/', 'A', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W, 272 $ INFO ) 273 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 274 INFOT = 2 275 CALL DTGEVC( 'R', '/', SEL, 0, A, 1, B, 1, Q, 1, Z, 1, 0, M, W, 276 $ INFO ) 277 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 278 INFOT = 4 279 CALL DTGEVC( 'R', 'A', SEL, -1, A, 1, B, 1, Q, 1, Z, 1, 0, M, 280 $ W, INFO ) 281 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 282 INFOT = 6 283 CALL DTGEVC( 'R', 'A', SEL, 2, A, 1, B, 2, Q, 1, Z, 2, 0, M, W, 284 $ INFO ) 285 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 286 INFOT = 8 287 CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 1, Q, 1, Z, 2, 0, M, W, 288 $ INFO ) 289 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 290 INFOT = 10 291 CALL DTGEVC( 'L', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W, 292 $ INFO ) 293 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 294 INFOT = 12 295 CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 1, 0, M, W, 296 $ INFO ) 297 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 298 INFOT = 13 299 CALL DTGEVC( 'R', 'A', SEL, 2, A, 2, B, 2, Q, 1, Z, 2, 1, M, W, 300 $ INFO ) 301 CALL CHKXER( 'DTGEVC', INFOT, NOUT, LERR, OK ) 302 NT = NT + 8 303* 304* Test error exits for the GSV path. 305* 306 ELSE IF( LSAMEN( 3, PATH, 'GSV' ) ) THEN 307* 308* DGGSVD3 309* 310 SRNAMT = 'DGGSVD3' 311 INFOT = 1 312 CALL DGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 313 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 314 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 315 INFOT = 2 316 CALL DGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 317 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 318 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 319 INFOT = 3 320 CALL DGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 321 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 322 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 323 INFOT = 4 324 CALL DGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B, 325 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 326 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 327 INFOT = 5 328 CALL DGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B, 329 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 330 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 331 INFOT = 6 332 CALL DGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B, 333 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 334 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 335 INFOT = 10 336 CALL DGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B, 337 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 338 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 339 INFOT = 12 340 CALL DGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B, 341 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 342 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 343 INFOT = 16 344 CALL DGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B, 345 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 346 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 347 INFOT = 18 348 CALL DGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B, 349 $ 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 350 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 351 INFOT = 20 352 CALL DGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B, 353 $ 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO ) 354 CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK ) 355 NT = NT + 11 356* 357* DGGSVP3 358* 359 SRNAMT = 'DGGSVP3' 360 INFOT = 1 361 CALL DGGSVP3( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 362 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 363 $ LWORK, INFO ) 364 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 365 INFOT = 2 366 CALL DGGSVP3( 'N', '/', 'N', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 367 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 368 $ LWORK, INFO ) 369 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 370 INFOT = 3 371 CALL DGGSVP3( 'N', 'N', '/', 0, 0, 0, A, 1, B, 1, TOLA, TOLB, 372 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 373 $ LWORK, INFO ) 374 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 375 INFOT = 4 376 CALL DGGSVP3( 'N', 'N', 'N', -1, 0, 0, A, 1, B, 1, TOLA, TOLB, 377 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 378 $ LWORK, INFO ) 379 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 380 INFOT = 5 381 CALL DGGSVP3( 'N', 'N', 'N', 0, -1, 0, A, 1, B, 1, TOLA, TOLB, 382 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 383 $ LWORK, INFO ) 384 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 385 INFOT = 6 386 CALL DGGSVP3( 'N', 'N', 'N', 0, 0, -1, A, 1, B, 1, TOLA, TOLB, 387 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 388 $ LWORK, INFO ) 389 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 390 INFOT = 8 391 CALL DGGSVP3( 'N', 'N', 'N', 2, 1, 1, A, 1, B, 1, TOLA, TOLB, 392 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 393 $ LWORK, INFO ) 394 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 395 INFOT = 10 396 CALL DGGSVP3( 'N', 'N', 'N', 1, 2, 1, A, 1, B, 1, TOLA, TOLB, 397 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 398 $ LWORK, INFO ) 399 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 400 INFOT = 16 401 CALL DGGSVP3( 'U', 'N', 'N', 2, 2, 2, A, 2, B, 2, TOLA, TOLB, 402 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 403 $ LWORK, INFO ) 404 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 405 INFOT = 18 406 CALL DGGSVP3( 'N', 'V', 'N', 1, 2, 1, A, 1, B, 2, TOLA, TOLB, 407 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 408 $ LWORK, INFO ) 409 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 410 INFOT = 20 411 CALL DGGSVP3( 'N', 'N', 'Q', 1, 1, 2, A, 1, B, 1, TOLA, TOLB, 412 $ DUMMYK, DUMMYL, U, 1, V, 1, Q, 1, IW, TAU, W, 413 $ LWORK, INFO ) 414 CALL CHKXER( 'DGGSVP3', INFOT, NOUT, LERR, OK ) 415 NT = NT + 11 416* 417* DTGSJA 418* 419 SRNAMT = 'DTGSJA' 420 INFOT = 1 421 CALL DTGSJA( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 422 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 423 $ NCYCLE, INFO ) 424 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 425 INFOT = 2 426 CALL DTGSJA( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 427 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 428 $ NCYCLE, INFO ) 429 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 430 INFOT = 3 431 CALL DTGSJA( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 432 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 433 $ NCYCLE, INFO ) 434 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 435 INFOT = 4 436 CALL DTGSJA( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B, 437 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 438 $ NCYCLE, INFO ) 439 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 440 INFOT = 5 441 CALL DTGSJA( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B, 442 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 443 $ NCYCLE, INFO ) 444 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 445 INFOT = 6 446 CALL DTGSJA( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B, 447 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 448 $ NCYCLE, INFO ) 449 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 450 INFOT = 10 451 CALL DTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 0, B, 452 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 453 $ NCYCLE, INFO ) 454 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 455 INFOT = 12 456 CALL DTGSJA( 'N', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 457 $ 0, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 1, W, 458 $ NCYCLE, INFO ) 459 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 460 INFOT = 18 461 CALL DTGSJA( 'U', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 462 $ 1, TOLA, TOLB, R1, R2, U, 0, V, 1, Q, 1, W, 463 $ NCYCLE, INFO ) 464 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 465 INFOT = 20 466 CALL DTGSJA( 'N', 'V', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 467 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 0, Q, 1, W, 468 $ NCYCLE, INFO ) 469 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 470 INFOT = 22 471 CALL DTGSJA( 'N', 'N', 'Q', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B, 472 $ 1, TOLA, TOLB, R1, R2, U, 1, V, 1, Q, 0, W, 473 $ NCYCLE, INFO ) 474 CALL CHKXER( 'DTGSJA', INFOT, NOUT, LERR, OK ) 475 NT = NT + 11 476* 477* Test error exits for the GLM path. 478* 479 ELSE IF( LSAMEN( 3, PATH, 'GLM' ) ) THEN 480* 481* DGGGLM 482* 483 SRNAMT = 'DGGGLM' 484 INFOT = 1 485 CALL DGGGLM( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 486 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 487 INFOT = 2 488 CALL DGGGLM( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 489 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 490 INFOT = 2 491 CALL DGGGLM( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 492 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 493 INFOT = 3 494 CALL DGGGLM( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 495 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 496 INFOT = 3 497 CALL DGGGLM( 1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 498 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 499 INFOT = 5 500 CALL DGGGLM( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO ) 501 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 502 INFOT = 7 503 CALL DGGGLM( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO ) 504 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 505 INFOT = 12 506 CALL DGGGLM( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO ) 507 CALL CHKXER( 'DGGGLM', INFOT, NOUT, LERR, OK ) 508 NT = NT + 8 509* 510* Test error exits for the LSE path. 511* 512 ELSE IF( LSAMEN( 3, PATH, 'LSE' ) ) THEN 513* 514* DGGLSE 515* 516 SRNAMT = 'DGGLSE' 517 INFOT = 1 518 CALL DGGLSE( -1, 0, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 519 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 520 INFOT = 2 521 CALL DGGLSE( 0, -1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 522 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 523 INFOT = 3 524 CALL DGGLSE( 0, 0, -1, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 525 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 526 INFOT = 3 527 CALL DGGLSE( 0, 0, 1, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 528 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 529 INFOT = 3 530 CALL DGGLSE( 0, 1, 0, A, 1, B, 1, R1, R2, R3, W, LW, INFO ) 531 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 532 INFOT = 5 533 CALL DGGLSE( 0, 0, 0, A, 0, B, 1, R1, R2, R3, W, LW, INFO ) 534 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 535 INFOT = 7 536 CALL DGGLSE( 0, 0, 0, A, 1, B, 0, R1, R2, R3, W, LW, INFO ) 537 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 538 INFOT = 12 539 CALL DGGLSE( 1, 1, 1, A, 1, B, 1, R1, R2, R3, W, 1, INFO ) 540 CALL CHKXER( 'DGGLSE', INFOT, NOUT, LERR, OK ) 541 NT = NT + 8 542* 543* Test error exits for the CSD path. 544* 545 ELSE IF( LSAMEN( 3, PATH, 'CSD' ) ) THEN 546* 547* DORCSD 548* 549 SRNAMT = 'DORCSD' 550 INFOT = 7 551 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 552 $ -1, 0, 0, A, 1, A, 553 $ 1, A, 1, A, 1, A, 554 $ A, 1, A, 1, A, 1, A, 555 $ 1, W, LW, IW, INFO ) 556 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 557 INFOT = 8 558 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 559 $ 1, -1, 0, A, 1, A, 560 $ 1, A, 1, A, 1, A, 561 $ A, 1, A, 1, A, 1, A, 562 $ 1, W, LW, IW, INFO ) 563 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 564 INFOT = 9 565 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 566 $ 1, 1, -1, A, 1, A, 567 $ 1, A, 1, A, 1, A, 568 $ A, 1, A, 1, A, 1, A, 569 $ 1, W, LW, IW, INFO ) 570 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 571 INFOT = 11 572 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 573 $ 1, 1, 1, A, -1, A, 574 $ 1, A, 1, A, 1, A, 575 $ A, 1, A, 1, A, 1, A, 576 $ 1, W, LW, IW, INFO ) 577 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 578 INFOT = 20 579 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 580 $ 1, 1, 1, A, 1, A, 581 $ 1, A, 1, A, 1, A, 582 $ A, -1, A, 1, A, 1, A, 583 $ 1, W, LW, IW, INFO ) 584 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 585 INFOT = 22 586 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 587 $ 1, 1, 1, A, 1, A, 588 $ 1, A, 1, A, 1, A, 589 $ A, 1, A, -1, A, 1, A, 590 $ 1, W, LW, IW, INFO ) 591 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 592 INFOT = 24 593 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 594 $ 1, 1, 1, A, 1, A, 595 $ 1, A, 1, A, 1, A, 596 $ A, 1, A, 1, A, -1, A, 597 $ 1, W, LW, IW, INFO ) 598 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 599 INFOT = 26 600 CALL DORCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N', 601 $ 1, 1, 1, A, 1, A, 602 $ 1, A, 1, A, 1, A, 603 $ A, 1, A, 1, A, 1, A, 604 $ -1, W, LW, IW, INFO ) 605 CALL CHKXER( 'DORCSD', INFOT, NOUT, LERR, OK ) 606 NT = NT + 8 607* 608* Test error exits for the GQR path. 609* 610 ELSE IF( LSAMEN( 3, PATH, 'GQR' ) ) THEN 611* 612* DGGQRF 613* 614 SRNAMT = 'DGGQRF' 615 INFOT = 1 616 CALL DGGQRF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO ) 617 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 618 INFOT = 2 619 CALL DGGQRF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO ) 620 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 621 INFOT = 3 622 CALL DGGQRF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO ) 623 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 624 INFOT = 5 625 CALL DGGQRF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO ) 626 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 627 INFOT = 8 628 CALL DGGQRF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO ) 629 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 630 INFOT = 11 631 CALL DGGQRF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO ) 632 CALL CHKXER( 'DGGQRF', INFOT, NOUT, LERR, OK ) 633 NT = NT + 6 634* 635* DGGRQF 636* 637 SRNAMT = 'DGGRQF' 638 INFOT = 1 639 CALL DGGRQF( -1, 0, 0, A, 1, R1, B, 1, R2, W, LW, INFO ) 640 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 641 INFOT = 2 642 CALL DGGRQF( 0, -1, 0, A, 1, R1, B, 1, R2, W, LW, INFO ) 643 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 644 INFOT = 3 645 CALL DGGRQF( 0, 0, -1, A, 1, R1, B, 1, R2, W, LW, INFO ) 646 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 647 INFOT = 5 648 CALL DGGRQF( 0, 0, 0, A, 0, R1, B, 1, R2, W, LW, INFO ) 649 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 650 INFOT = 8 651 CALL DGGRQF( 0, 0, 0, A, 1, R1, B, 0, R2, W, LW, INFO ) 652 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 653 INFOT = 11 654 CALL DGGRQF( 1, 1, 2, A, 1, R1, B, 1, R2, W, 1, INFO ) 655 CALL CHKXER( 'DGGRQF', INFOT, NOUT, LERR, OK ) 656 NT = NT + 6 657* 658* Test error exits for the DGS, DGV, DGX, and DXV paths. 659* 660 ELSE IF( LSAMEN( 3, PATH, 'DGS' ) .OR. 661 $ LSAMEN( 3, PATH, 'DGV' ) .OR. 662 $ LSAMEN( 3, PATH, 'DGX' ) .OR. LSAMEN( 3, PATH, 'DXV' ) ) 663 $ THEN 664* 665* DGGES 666* 667 SRNAMT = 'DGGES ' 668 INFOT = 1 669 CALL DGGES( '/', 'N', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2, 670 $ R3, Q, 1, U, 1, W, 1, BW, INFO ) 671 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 672 INFOT = 2 673 CALL DGGES( 'N', '/', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2, 674 $ R3, Q, 1, U, 1, W, 1, BW, INFO ) 675 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 676 INFOT = 3 677 CALL DGGES( 'N', 'V', '/', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2, 678 $ R3, Q, 1, U, 1, W, 1, BW, INFO ) 679 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 680 INFOT = 5 681 CALL DGGES( 'N', 'V', 'S', DLCTES, -1, A, 1, B, 1, SDIM, R1, 682 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 683 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 684 INFOT = 7 685 CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 0, B, 1, SDIM, R1, R2, 686 $ R3, Q, 1, U, 1, W, 1, BW, INFO ) 687 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 688 INFOT = 9 689 CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 0, SDIM, R1, R2, 690 $ R3, Q, 1, U, 1, W, 1, BW, INFO ) 691 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 692 INFOT = 15 693 CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2, 694 $ R3, Q, 0, U, 1, W, 1, BW, INFO ) 695 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 696 INFOT = 15 697 CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2, 698 $ R3, Q, 1, U, 2, W, 1, BW, INFO ) 699 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 700 INFOT = 17 701 CALL DGGES( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, R2, 702 $ R3, Q, 1, U, 0, W, 1, BW, INFO ) 703 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 704 INFOT = 17 705 CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2, 706 $ R3, Q, 2, U, 1, W, 1, BW, INFO ) 707 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 708 INFOT = 19 709 CALL DGGES( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, R2, 710 $ R3, Q, 2, U, 2, W, 1, BW, INFO ) 711 CALL CHKXER( 'DGGES ', INFOT, NOUT, LERR, OK ) 712 NT = NT + 11 713* 714* DGGES3 715* 716 SRNAMT = 'DGGES3 ' 717 INFOT = 1 718 CALL DGGES3( '/', 'N', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, 719 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 720 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 721 INFOT = 2 722 CALL DGGES3( 'N', '/', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, 723 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 724 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 725 INFOT = 3 726 CALL DGGES3( 'N', 'V', '/', DLCTES, 1, A, 1, B, 1, SDIM, R1, 727 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 728 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 729 INFOT = 5 730 CALL DGGES3( 'N', 'V', 'S', DLCTES, -1, A, 1, B, 1, SDIM, R1, 731 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 732 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 733 INFOT = 7 734 CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 0, B, 1, SDIM, R1, 735 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 736 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 737 INFOT = 9 738 CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 0, SDIM, R1, 739 $ R2, R3, Q, 1, U, 1, W, 1, BW, INFO ) 740 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 741 INFOT = 15 742 CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, 743 $ R2, R3, Q, 0, U, 1, W, 1, BW, INFO ) 744 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 745 INFOT = 15 746 CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, 747 $ R2, R3, Q, 1, U, 2, W, 1, BW, INFO ) 748 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 749 INFOT = 17 750 CALL DGGES3( 'N', 'V', 'S', DLCTES, 1, A, 1, B, 1, SDIM, R1, 751 $ R2, R3, Q, 1, U, 0, W, 1, BW, INFO ) 752 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 753 INFOT = 17 754 CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, 755 $ R2, R3, Q, 2, U, 1, W, 1, BW, INFO ) 756 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 757 INFOT = 19 758 CALL DGGES3( 'V', 'V', 'S', DLCTES, 2, A, 2, B, 2, SDIM, R1, 759 $ R2, R3, Q, 2, U, 2, W, 1, BW, INFO ) 760 CALL CHKXER( 'DGGES3 ', INFOT, NOUT, LERR, OK ) 761 NT = NT + 11 762* 763* DGGESX 764* 765 SRNAMT = 'DGGESX' 766 INFOT = 1 767 CALL DGGESX( '/', 'N', 'S', DLCTSX, 'N', 1, A, 1, B, 1, SDIM, 768 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 769 $ INFO ) 770 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 771 INFOT = 2 772 CALL DGGESX( 'N', '/', 'S', DLCTSX, 'N', 1, A, 1, B, 1, SDIM, 773 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 774 $ INFO ) 775 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 776 INFOT = 3 777 CALL DGGESX( 'V', 'V', '/', DLCTSX, 'N', 1, A, 1, B, 1, SDIM, 778 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 779 $ INFO ) 780 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 781 INFOT = 5 782 CALL DGGESX( 'V', 'V', 'S', DLCTSX, '/', 1, A, 1, B, 1, SDIM, 783 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 784 $ INFO ) 785 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 786 INFOT = 6 787 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', -1, A, 1, B, 1, SDIM, 788 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 789 $ INFO ) 790 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 791 INFOT = 8 792 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 0, B, 1, SDIM, 793 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 794 $ INFO ) 795 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 796 INFOT = 10 797 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 0, SDIM, 798 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 799 $ INFO ) 800 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 801 INFOT = 16 802 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 1, SDIM, 803 $ R1, R2, R3, Q, 0, U, 1, RCE, RCV, W, 1, IW, 1, BW, 804 $ INFO ) 805 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 806 INFOT = 16 807 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM, 808 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 1, IW, 1, BW, 809 $ INFO ) 810 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 811 INFOT = 18 812 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 1, A, 1, B, 1, SDIM, 813 $ R1, R2, R3, Q, 1, U, 0, RCE, RCV, W, 1, IW, 1, BW, 814 $ INFO ) 815 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 816 INFOT = 18 817 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM, 818 $ R1, R2, R3, Q, 2, U, 1, RCE, RCV, W, 1, IW, 1, BW, 819 $ INFO ) 820 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 821 INFOT = 22 822 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'B', 2, A, 2, B, 2, SDIM, 823 $ R1, R2, R3, Q, 2, U, 2, RCE, RCV, W, 1, IW, 1, BW, 824 $ INFO ) 825 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 826 INFOT = 24 827 CALL DGGESX( 'V', 'V', 'S', DLCTSX, 'V', 1, A, 1, B, 1, SDIM, 828 $ R1, R2, R3, Q, 1, U, 1, RCE, RCV, W, 32, IW, 0, 829 $ BW, INFO ) 830 CALL CHKXER( 'DGGESX', INFOT, NOUT, LERR, OK ) 831 NT = NT + 13 832* 833* DGGEV 834* 835 SRNAMT = 'DGGEV ' 836 INFOT = 1 837 CALL DGGEV( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W, 838 $ 1, INFO ) 839 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 840 INFOT = 2 841 CALL DGGEV( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W, 842 $ 1, INFO ) 843 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 844 INFOT = 3 845 CALL DGGEV( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, 846 $ W, 1, INFO ) 847 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 848 INFOT = 5 849 CALL DGGEV( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, W, 850 $ 1, INFO ) 851 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 852 INFOT = 7 853 CALL DGGEV( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, W, 854 $ 1, INFO ) 855 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 856 INFOT = 12 857 CALL DGGEV( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, W, 858 $ 1, INFO ) 859 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 860 INFOT = 12 861 CALL DGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, W, 862 $ 1, INFO ) 863 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 864 INFOT = 14 865 CALL DGGEV( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, W, 866 $ 1, INFO ) 867 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 868 INFOT = 14 869 CALL DGGEV( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, W, 870 $ 1, INFO ) 871 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 872 INFOT = 16 873 CALL DGGEV( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, W, 874 $ 1, INFO ) 875 CALL CHKXER( 'DGGEV ', INFOT, NOUT, LERR, OK ) 876 NT = NT + 10 877* 878* DGGEV3 879* 880 CALL XLAENV( 12, 20 ) 881 CALL XLAENV( 13, 4 ) 882 CALL XLAENV( 14, 13 ) 883 CALL XLAENV( 15, 2 ) 884 CALL XLAENV( 17, 10 ) 885 SRNAMT = 'DGGEV3 ' 886 INFOT = 1 887 CALL DGGEV3( '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, 888 $ W, 1, INFO ) 889 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 890 INFOT = 2 891 CALL DGGEV3( 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, 892 $ W, 1, INFO ) 893 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 894 INFOT = 3 895 CALL DGGEV3( 'V', 'V', -1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, 896 $ W, 1, INFO ) 897 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 898 INFOT = 5 899 CALL DGGEV3( 'V', 'V', 1, A, 0, B, 1, R1, R2, R3, Q, 1, U, 1, 900 $ W, 1, INFO ) 901 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 902 INFOT = 7 903 CALL DGGEV3( 'V', 'V', 1, A, 1, B, 0, R1, R2, R3, Q, 1, U, 1, 904 $ W, 1, INFO ) 905 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 906 INFOT = 12 907 CALL DGGEV3( 'N', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 0, U, 1, 908 $ W, 1, INFO ) 909 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 910 INFOT = 12 911 CALL DGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 1, U, 2, 912 $ W, 1, INFO ) 913 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 914 INFOT = 14 915 CALL DGGEV3( 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 0, 916 $ W, 1, INFO ) 917 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 918 INFOT = 14 919 CALL DGGEV3( 'V', 'V', 2, A, 2, B, 2, R1, R2, R3, Q, 2, U, 1, 920 $ W, 1, INFO ) 921 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 922 INFOT = 16 923 CALL DGGEV3( 'V', 'V', 1, A, 1, B, 1, R1, R2, R3, Q, 1, U, 1, 924 $ W, 1, INFO ) 925 CALL CHKXER( 'DGGEV3 ', INFOT, NOUT, LERR, OK ) 926 NT = NT + 10 927* 928* DGGEVX 929* 930 SRNAMT = 'DGGEVX' 931 INFOT = 1 932 CALL DGGEVX( '/', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 933 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 934 $ W, 1, IW, BW, INFO ) 935 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 936 INFOT = 2 937 CALL DGGEVX( 'N', '/', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 938 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 939 $ W, 1, IW, BW, INFO ) 940 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 941 INFOT = 3 942 CALL DGGEVX( 'N', 'N', '/', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 943 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 944 $ W, 1, IW, BW, INFO ) 945 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 946 INFOT = 4 947 CALL DGGEVX( 'N', 'N', 'N', '/', 1, A, 1, B, 1, R1, R2, R3, Q, 948 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 949 $ W, 1, IW, BW, INFO ) 950 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 951 INFOT = 5 952 CALL DGGEVX( 'N', 'N', 'N', 'N', -1, A, 1, B, 1, R1, R2, R3, Q, 953 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 954 $ W, 1, IW, BW, INFO ) 955 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 956 INFOT = 7 957 CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 0, B, 1, R1, R2, R3, Q, 958 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 959 $ W, 1, IW, BW, INFO ) 960 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 961 INFOT = 9 962 CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 0, R1, R2, R3, Q, 963 $ 1, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 964 $ W, 1, IW, BW, INFO ) 965 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 966 INFOT = 14 967 CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 968 $ 0, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 969 $ W, 1, IW, BW, INFO ) 970 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 971 INFOT = 14 972 CALL DGGEVX( 'N', 'V', 'N', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 973 $ 1, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 974 $ W, 1, IW, BW, INFO ) 975 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 976 INFOT = 16 977 CALL DGGEVX( 'N', 'N', 'N', 'N', 1, A, 1, B, 1, R1, R2, R3, Q, 978 $ 1, U, 0, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 979 $ W, 1, IW, BW, INFO ) 980 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 981 INFOT = 16 982 CALL DGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 983 $ 2, U, 1, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 984 $ W, 1, IW, BW, INFO ) 985 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 986 INFOT = 26 987 CALL DGGEVX( 'N', 'N', 'V', 'N', 2, A, 2, B, 2, R1, R2, R3, Q, 988 $ 2, U, 2, ILO, IHI, LS, RS, ANRM, BNRM, RCE, RCV, 989 $ W, 1, IW, BW, INFO ) 990 CALL CHKXER( 'DGGEVX', INFOT, NOUT, LERR, OK ) 991 NT = NT + 12 992* 993* DTGEXC 994* 995 SRNAMT = 'DTGEXC' 996 INFOT = 3 997 CALL DTGEXC( .TRUE., .TRUE., -1, A, 1, B, 1, Q, 1, Z, 1, IFST, 998 $ ILST, W, 1, INFO ) 999 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1000 INFOT = 5 1001 CALL DTGEXC( .TRUE., .TRUE., 1, A, 0, B, 1, Q, 1, Z, 1, IFST, 1002 $ ILST, W, 1, INFO ) 1003 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1004 INFOT = 7 1005 CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 0, Q, 1, Z, 1, IFST, 1006 $ ILST, W, 1, INFO ) 1007 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1008 INFOT = 9 1009 CALL DTGEXC( .FALSE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST, 1010 $ ILST, W, 1, INFO ) 1011 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1012 INFOT = 9 1013 CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 0, Z, 1, IFST, 1014 $ ILST, W, 1, INFO ) 1015 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1016 INFOT = 11 1017 CALL DTGEXC( .TRUE., .FALSE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST, 1018 $ ILST, W, 1, INFO ) 1019 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1020 INFOT = 11 1021 CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 0, IFST, 1022 $ ILST, W, 1, INFO ) 1023 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1024 INFOT = 15 1025 CALL DTGEXC( .TRUE., .TRUE., 1, A, 1, B, 1, Q, 1, Z, 1, IFST, 1026 $ ILST, W, 0, INFO ) 1027 CALL CHKXER( 'DTGEXC', INFOT, NOUT, LERR, OK ) 1028 NT = NT + 8 1029* 1030* DTGSEN 1031* 1032 SRNAMT = 'DTGSEN' 1033 INFOT = 1 1034 CALL DTGSEN( -1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, 1035 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1036 $ INFO ) 1037 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1038 INFOT = 5 1039 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, -1, A, 1, B, 1, R1, R2, 1040 $ R3, Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1041 $ INFO ) 1042 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1043 INFOT = 7 1044 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 0, B, 1, R1, R2, R3, 1045 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1046 $ INFO ) 1047 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1048 INFOT = 9 1049 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 0, R1, R2, R3, 1050 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1051 $ INFO ) 1052 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1053 INFOT = 14 1054 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1055 $ Q, 0, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1056 $ INFO ) 1057 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1058 INFOT = 16 1059 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1060 $ Q, 1, Z, 0, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1061 $ INFO ) 1062 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1063 INFOT = 22 1064 CALL DTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1065 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1066 $ INFO ) 1067 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1068 INFOT = 22 1069 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1070 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1071 $ INFO ) 1072 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1073 INFOT = 22 1074 CALL DTGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1075 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 1, IW, 1, 1076 $ INFO ) 1077 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1078 INFOT = 24 1079 CALL DTGSEN( 0, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1080 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0, 1081 $ INFO ) 1082 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1083 INFOT = 24 1084 CALL DTGSEN( 1, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1085 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 0, 1086 $ INFO ) 1087 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1088 INFOT = 24 1089 CALL DTGSEN( 2, .TRUE., .TRUE., SEL, 1, A, 1, B, 1, R1, R2, R3, 1090 $ Q, 1, Z, 1, M, TOLA, TOLB, RCV, W, 20, IW, 1, 1091 $ INFO ) 1092 CALL CHKXER( 'DTGSEN', INFOT, NOUT, LERR, OK ) 1093 NT = NT + 12 1094* 1095* DTGSNA 1096* 1097 SRNAMT = 'DTGSNA' 1098 INFOT = 1 1099 CALL DTGSNA( '/', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 1100 $ 1, M, W, 1, IW, INFO ) 1101 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1102 INFOT = 2 1103 CALL DTGSNA( 'B', '/', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 1104 $ 1, M, W, 1, IW, INFO ) 1105 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1106 INFOT = 4 1107 CALL DTGSNA( 'B', 'A', SEL, -1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 1108 $ 1, M, W, 1, IW, INFO ) 1109 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1110 INFOT = 6 1111 CALL DTGSNA( 'B', 'A', SEL, 1, A, 0, B, 1, Q, 1, U, 1, R1, R2, 1112 $ 1, M, W, 1, IW, INFO ) 1113 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1114 INFOT = 8 1115 CALL DTGSNA( 'B', 'A', SEL, 1, A, 1, B, 0, Q, 1, U, 1, R1, R2, 1116 $ 1, M, W, 1, IW, INFO ) 1117 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1118 INFOT = 10 1119 CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 0, U, 1, R1, R2, 1120 $ 1, M, W, 1, IW, INFO ) 1121 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1122 INFOT = 12 1123 CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 0, R1, R2, 1124 $ 1, M, W, 1, IW, INFO ) 1125 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1126 INFOT = 15 1127 CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 1128 $ 0, M, W, 1, IW, INFO ) 1129 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1130 INFOT = 18 1131 CALL DTGSNA( 'E', 'A', SEL, 1, A, 1, B, 1, Q, 1, U, 1, R1, R2, 1132 $ 1, M, W, 0, IW, INFO ) 1133 CALL CHKXER( 'DTGSNA', INFOT, NOUT, LERR, OK ) 1134 NT = NT + 9 1135* 1136* DTGSYL 1137* 1138 SRNAMT = 'DTGSYL' 1139 INFOT = 1 1140 CALL DTGSYL( '/', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1141 $ SCALE, DIF, W, 1, IW, INFO ) 1142 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1143 INFOT = 2 1144 CALL DTGSYL( 'N', -1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1145 $ SCALE, DIF, W, 1, IW, INFO ) 1146 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1147 INFOT = 3 1148 CALL DTGSYL( 'N', 0, 0, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1149 $ SCALE, DIF, W, 1, IW, INFO ) 1150 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1151 INFOT = 4 1152 CALL DTGSYL( 'N', 0, 1, 0, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1153 $ SCALE, DIF, W, 1, IW, INFO ) 1154 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1155 INFOT = 6 1156 CALL DTGSYL( 'N', 0, 1, 1, A, 0, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1157 $ SCALE, DIF, W, 1, IW, INFO ) 1158 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1159 INFOT = 8 1160 CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 0, Q, 1, U, 1, V, 1, Z, 1, 1161 $ SCALE, DIF, W, 1, IW, INFO ) 1162 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1163 INFOT = 10 1164 CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 0, U, 1, V, 1, Z, 1, 1165 $ SCALE, DIF, W, 1, IW, INFO ) 1166 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1167 INFOT = 12 1168 CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 0, V, 1, Z, 1, 1169 $ SCALE, DIF, W, 1, IW, INFO ) 1170 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1171 INFOT = 14 1172 CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 0, Z, 1, 1173 $ SCALE, DIF, W, 1, IW, INFO ) 1174 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1175 INFOT = 16 1176 CALL DTGSYL( 'N', 0, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 0, 1177 $ SCALE, DIF, W, 1, IW, INFO ) 1178 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1179 INFOT = 20 1180 CALL DTGSYL( 'N', 1, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1181 $ SCALE, DIF, W, 1, IW, INFO ) 1182 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1183 INFOT = 20 1184 CALL DTGSYL( 'N', 2, 1, 1, A, 1, B, 1, Q, 1, U, 1, V, 1, Z, 1, 1185 $ SCALE, DIF, W, 1, IW, INFO ) 1186 CALL CHKXER( 'DTGSYL', INFOT, NOUT, LERR, OK ) 1187 NT = NT + 12 1188 END IF 1189* 1190* Print a summary line. 1191* 1192 IF( OK ) THEN 1193 WRITE( NOUT, FMT = 9999 )PATH, NT 1194 ELSE 1195 WRITE( NOUT, FMT = 9998 )PATH 1196 END IF 1197* 1198 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits (', 1199 $ I3, ' tests done)' ) 1200 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ', 1201 $ 'exits ***' ) 1202* 1203 RETURN 1204* 1205* End of DERRGG 1206* 1207 END 1208