PageRenderTime 60ms CodeModel.GetById 31ms 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

Large files files are truncated, but you can click here to view the full file

  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,

Large files files are truncated, but you can click here to view the full file