You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

zerrgg.f 51 kB

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