PageRenderTime 56ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 1ms

/lapack-netlib/TESTING/EIG/derrgg.f

http://github.com/xianyi/OpenBLAS
FORTRAN Legacy | 1197 lines | 583 code | 0 blank | 614 comment | 0 complexity | c79b53e970810af182cca385a708e69e MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.0

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

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