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