PageRenderTime 81ms CodeModel.GetById 39ms RepoModel.GetById 1ms app.codeStats 0ms

/TESTING/EIG/derrgg.f

https://bitbucket.org/iricpt/lapack
FORTRAN Legacy | 1207 lines | 583 code | 0 blank | 624 comment | 0 complexity | 6c1ea523a235849db80834ea78f438f7 MD5 | raw file
Possible License(s): BSD-3-Clause
  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