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.

zerrst.f 31 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803
  1. *> \brief \b ZERRST
  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 ZERRST( 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. *> ZERRST tests the error exits for ZHETRD, ZUNGTR, CUNMTR, ZHPTRD,
  25. *> ZUNGTR, ZUPMTR, ZSTEQR, CSTEIN, ZPTEQR, ZHBTRD,
  26. *> ZHEEV, CHEEVX, CHEEVD, ZHBEV, CHBEVX, CHBEVD,
  27. *> ZHPEV, CHPEVX, CHPEVD, and ZSTEDC.
  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 November 2011
  54. *
  55. *> \ingroup complex16_eig
  56. *
  57. * =====================================================================
  58. SUBROUTINE ZERRST( PATH, NUNIT )
  59. *
  60. * -- LAPACK test routine (version 3.4.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. * November 2011
  64. *
  65. * .. Scalar Arguments ..
  66. CHARACTER*3 PATH
  67. INTEGER NUNIT
  68. * ..
  69. *
  70. * =====================================================================
  71. *
  72. * .. Parameters ..
  73. INTEGER NMAX, LIW, LW
  74. PARAMETER ( NMAX = 3, LIW = 12*NMAX, LW = 20*NMAX )
  75. * ..
  76. * .. Local Scalars ..
  77. CHARACTER*2 C2
  78. INTEGER I, INFO, J, M, N, NT
  79. * ..
  80. * .. Local Arrays ..
  81. INTEGER I1( NMAX ), I2( NMAX ), I3( NMAX ), IW( LIW )
  82. DOUBLE PRECISION D( NMAX ), E( NMAX ), R( LW ), RW( LW ),
  83. $ X( NMAX )
  84. COMPLEX*16 A( NMAX, NMAX ), C( NMAX, NMAX ),
  85. $ Q( NMAX, NMAX ), TAU( NMAX ), W( LW ),
  86. $ Z( NMAX, NMAX )
  87. * ..
  88. * .. External Functions ..
  89. LOGICAL LSAMEN
  90. EXTERNAL LSAMEN
  91. * ..
  92. * .. External Subroutines ..
  93. EXTERNAL CHKXER, ZHBEV, ZHBEVD, ZHBEVX, ZHBTRD, ZHEEV,
  94. $ ZHEEVD, ZHEEVR, ZHEEVX, ZHETRD, ZHPEV, ZHPEVD,
  95. $ ZHPEVX, ZHPTRD, ZPTEQR, ZSTEDC, ZSTEIN, ZSTEQR,
  96. $ ZUNGTR, ZUNMTR, ZUPGTR, ZUPMTR
  97. * ..
  98. * .. Scalars in Common ..
  99. LOGICAL LERR, OK
  100. CHARACTER*32 SRNAMT
  101. INTEGER INFOT, NOUT
  102. * ..
  103. * .. Common blocks ..
  104. COMMON / INFOC / INFOT, NOUT, OK, LERR
  105. COMMON / SRNAMC / SRNAMT
  106. * ..
  107. * .. Intrinsic Functions ..
  108. INTRINSIC DBLE
  109. * ..
  110. * .. Executable Statements ..
  111. *
  112. NOUT = NUNIT
  113. WRITE( NOUT, FMT = * )
  114. C2 = PATH( 2: 3 )
  115. *
  116. * Set the variables to innocuous values.
  117. *
  118. DO 20 J = 1, NMAX
  119. DO 10 I = 1, NMAX
  120. A( I, J ) = 1.D0 / DBLE( I+J )
  121. 10 CONTINUE
  122. 20 CONTINUE
  123. DO 30 J = 1, NMAX
  124. D( J ) = DBLE( J )
  125. E( J ) = 0.0D0
  126. I1( J ) = J
  127. I2( J ) = J
  128. TAU( J ) = 1.D0
  129. 30 CONTINUE
  130. OK = .TRUE.
  131. NT = 0
  132. *
  133. * Test error exits for the ST path.
  134. *
  135. IF( LSAMEN( 2, C2, 'ST' ) ) THEN
  136. *
  137. * ZHETRD
  138. *
  139. SRNAMT = 'ZHETRD'
  140. INFOT = 1
  141. CALL ZHETRD( '/', 0, A, 1, D, E, TAU, W, 1, INFO )
  142. CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
  143. INFOT = 2
  144. CALL ZHETRD( 'U', -1, A, 1, D, E, TAU, W, 1, INFO )
  145. CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
  146. INFOT = 4
  147. CALL ZHETRD( 'U', 2, A, 1, D, E, TAU, W, 1, INFO )
  148. CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
  149. INFOT = 9
  150. CALL ZHETRD( 'U', 0, A, 1, D, E, TAU, W, 0, INFO )
  151. CALL CHKXER( 'ZHETRD', INFOT, NOUT, LERR, OK )
  152. NT = NT + 4
  153. *
  154. * ZUNGTR
  155. *
  156. SRNAMT = 'ZUNGTR'
  157. INFOT = 1
  158. CALL ZUNGTR( '/', 0, A, 1, TAU, W, 1, INFO )
  159. CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
  160. INFOT = 2
  161. CALL ZUNGTR( 'U', -1, A, 1, TAU, W, 1, INFO )
  162. CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
  163. INFOT = 4
  164. CALL ZUNGTR( 'U', 2, A, 1, TAU, W, 1, INFO )
  165. CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
  166. INFOT = 7
  167. CALL ZUNGTR( 'U', 3, A, 3, TAU, W, 1, INFO )
  168. CALL CHKXER( 'ZUNGTR', INFOT, NOUT, LERR, OK )
  169. NT = NT + 4
  170. *
  171. * ZUNMTR
  172. *
  173. SRNAMT = 'ZUNMTR'
  174. INFOT = 1
  175. CALL ZUNMTR( '/', 'U', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  176. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  177. INFOT = 2
  178. CALL ZUNMTR( 'L', '/', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  179. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  180. INFOT = 3
  181. CALL ZUNMTR( 'L', 'U', '/', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  182. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  183. INFOT = 4
  184. CALL ZUNMTR( 'L', 'U', 'N', -1, 0, A, 1, TAU, C, 1, W, 1,
  185. $ INFO )
  186. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  187. INFOT = 5
  188. CALL ZUNMTR( 'L', 'U', 'N', 0, -1, A, 1, TAU, C, 1, W, 1,
  189. $ INFO )
  190. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  191. INFOT = 7
  192. CALL ZUNMTR( 'L', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
  193. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  194. INFOT = 7
  195. CALL ZUNMTR( 'R', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
  196. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  197. INFOT = 10
  198. CALL ZUNMTR( 'L', 'U', 'N', 2, 0, A, 2, TAU, C, 1, W, 1, INFO )
  199. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  200. INFOT = 12
  201. CALL ZUNMTR( 'L', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
  202. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  203. INFOT = 12
  204. CALL ZUNMTR( 'R', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
  205. CALL CHKXER( 'ZUNMTR', INFOT, NOUT, LERR, OK )
  206. NT = NT + 10
  207. *
  208. * ZHPTRD
  209. *
  210. SRNAMT = 'ZHPTRD'
  211. INFOT = 1
  212. CALL ZHPTRD( '/', 0, A, D, E, TAU, INFO )
  213. CALL CHKXER( 'ZHPTRD', INFOT, NOUT, LERR, OK )
  214. INFOT = 2
  215. CALL ZHPTRD( 'U', -1, A, D, E, TAU, INFO )
  216. CALL CHKXER( 'ZHPTRD', INFOT, NOUT, LERR, OK )
  217. NT = NT + 2
  218. *
  219. * ZUPGTR
  220. *
  221. SRNAMT = 'ZUPGTR'
  222. INFOT = 1
  223. CALL ZUPGTR( '/', 0, A, TAU, Z, 1, W, INFO )
  224. CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
  225. INFOT = 2
  226. CALL ZUPGTR( 'U', -1, A, TAU, Z, 1, W, INFO )
  227. CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
  228. INFOT = 6
  229. CALL ZUPGTR( 'U', 2, A, TAU, Z, 1, W, INFO )
  230. CALL CHKXER( 'ZUPGTR', INFOT, NOUT, LERR, OK )
  231. NT = NT + 3
  232. *
  233. * ZUPMTR
  234. *
  235. SRNAMT = 'ZUPMTR'
  236. INFOT = 1
  237. CALL ZUPMTR( '/', 'U', 'N', 0, 0, A, TAU, C, 1, W, INFO )
  238. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  239. INFOT = 2
  240. CALL ZUPMTR( 'L', '/', 'N', 0, 0, A, TAU, C, 1, W, INFO )
  241. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  242. INFOT = 3
  243. CALL ZUPMTR( 'L', 'U', '/', 0, 0, A, TAU, C, 1, W, INFO )
  244. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  245. INFOT = 4
  246. CALL ZUPMTR( 'L', 'U', 'N', -1, 0, A, TAU, C, 1, W, INFO )
  247. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  248. INFOT = 5
  249. CALL ZUPMTR( 'L', 'U', 'N', 0, -1, A, TAU, C, 1, W, INFO )
  250. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  251. INFOT = 9
  252. CALL ZUPMTR( 'L', 'U', 'N', 2, 0, A, TAU, C, 1, W, INFO )
  253. CALL CHKXER( 'ZUPMTR', INFOT, NOUT, LERR, OK )
  254. NT = NT + 6
  255. *
  256. * ZPTEQR
  257. *
  258. SRNAMT = 'ZPTEQR'
  259. INFOT = 1
  260. CALL ZPTEQR( '/', 0, D, E, Z, 1, RW, INFO )
  261. CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
  262. INFOT = 2
  263. CALL ZPTEQR( 'N', -1, D, E, Z, 1, RW, INFO )
  264. CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
  265. INFOT = 6
  266. CALL ZPTEQR( 'V', 2, D, E, Z, 1, RW, INFO )
  267. CALL CHKXER( 'ZPTEQR', INFOT, NOUT, LERR, OK )
  268. NT = NT + 3
  269. *
  270. * ZSTEIN
  271. *
  272. SRNAMT = 'ZSTEIN'
  273. INFOT = 1
  274. CALL ZSTEIN( -1, D, E, 0, X, I1, I2, Z, 1, RW, IW, I3, INFO )
  275. CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
  276. INFOT = 4
  277. CALL ZSTEIN( 0, D, E, -1, X, I1, I2, Z, 1, RW, IW, I3, INFO )
  278. CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
  279. INFOT = 4
  280. CALL ZSTEIN( 0, D, E, 1, X, I1, I2, Z, 1, RW, IW, I3, INFO )
  281. CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
  282. INFOT = 9
  283. CALL ZSTEIN( 2, D, E, 0, X, I1, I2, Z, 1, RW, IW, I3, INFO )
  284. CALL CHKXER( 'ZSTEIN', INFOT, NOUT, LERR, OK )
  285. NT = NT + 4
  286. *
  287. * ZSTEQR
  288. *
  289. SRNAMT = 'ZSTEQR'
  290. INFOT = 1
  291. CALL ZSTEQR( '/', 0, D, E, Z, 1, RW, INFO )
  292. CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
  293. INFOT = 2
  294. CALL ZSTEQR( 'N', -1, D, E, Z, 1, RW, INFO )
  295. CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
  296. INFOT = 6
  297. CALL ZSTEQR( 'V', 2, D, E, Z, 1, RW, INFO )
  298. CALL CHKXER( 'ZSTEQR', INFOT, NOUT, LERR, OK )
  299. NT = NT + 3
  300. *
  301. * ZSTEDC
  302. *
  303. SRNAMT = 'ZSTEDC'
  304. INFOT = 1
  305. CALL ZSTEDC( '/', 0, D, E, Z, 1, W, 1, RW, 1, IW, 1, INFO )
  306. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  307. INFOT = 2
  308. CALL ZSTEDC( 'N', -1, D, E, Z, 1, W, 1, RW, 1, IW, 1, INFO )
  309. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  310. INFOT = 6
  311. CALL ZSTEDC( 'V', 2, D, E, Z, 1, W, 4, RW, 23, IW, 28, INFO )
  312. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  313. INFOT = 8
  314. CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 0, RW, 1, IW, 1, INFO )
  315. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  316. INFOT = 8
  317. CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 0, RW, 23, IW, 28, INFO )
  318. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  319. INFOT = 10
  320. CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 1, RW, 0, IW, 1, INFO )
  321. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  322. INFOT = 10
  323. CALL ZSTEDC( 'I', 2, D, E, Z, 2, W, 1, RW, 1, IW, 12, INFO )
  324. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  325. INFOT = 10
  326. CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 4, RW, 1, IW, 28, INFO )
  327. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  328. INFOT = 12
  329. CALL ZSTEDC( 'N', 2, D, E, Z, 1, W, 1, RW, 1, IW, 0, INFO )
  330. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  331. INFOT = 12
  332. CALL ZSTEDC( 'I', 2, D, E, Z, 2, W, 1, RW, 23, IW, 0, INFO )
  333. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  334. INFOT = 12
  335. CALL ZSTEDC( 'V', 2, D, E, Z, 2, W, 4, RW, 23, IW, 0, INFO )
  336. CALL CHKXER( 'ZSTEDC', INFOT, NOUT, LERR, OK )
  337. NT = NT + 11
  338. *
  339. * ZHEEVD
  340. *
  341. SRNAMT = 'ZHEEVD'
  342. INFOT = 1
  343. CALL ZHEEVD( '/', 'U', 0, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
  344. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  345. INFOT = 2
  346. CALL ZHEEVD( 'N', '/', 0, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
  347. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  348. INFOT = 3
  349. CALL ZHEEVD( 'N', 'U', -1, A, 1, X, W, 1, RW, 1, IW, 1, INFO )
  350. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  351. INFOT = 5
  352. CALL ZHEEVD( 'N', 'U', 2, A, 1, X, W, 3, RW, 2, IW, 1, INFO )
  353. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  354. INFOT = 8
  355. CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 0, RW, 1, IW, 1, INFO )
  356. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  357. INFOT = 8
  358. CALL ZHEEVD( 'N', 'U', 2, A, 2, X, W, 2, RW, 2, IW, 1, INFO )
  359. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  360. INFOT = 8
  361. CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 3, RW, 25, IW, 12, INFO )
  362. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  363. INFOT = 10
  364. CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 1, RW, 0, IW, 1, INFO )
  365. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  366. INFOT = 10
  367. CALL ZHEEVD( 'N', 'U', 2, A, 2, X, W, 3, RW, 1, IW, 1, INFO )
  368. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  369. INFOT = 10
  370. CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 8, RW, 18, IW, 12, INFO )
  371. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  372. INFOT = 12
  373. CALL ZHEEVD( 'N', 'U', 1, A, 1, X, W, 1, RW, 1, IW, 0, INFO )
  374. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  375. INFOT = 12
  376. CALL ZHEEVD( 'V', 'U', 2, A, 2, X, W, 8, RW, 25, IW, 11, INFO )
  377. CALL CHKXER( 'ZHEEVD', INFOT, NOUT, LERR, OK )
  378. NT = NT + 12
  379. *
  380. * ZHEEV
  381. *
  382. SRNAMT = 'ZHEEV '
  383. INFOT = 1
  384. CALL ZHEEV( '/', 'U', 0, A, 1, X, W, 1, RW, INFO )
  385. CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
  386. INFOT = 2
  387. CALL ZHEEV( 'N', '/', 0, A, 1, X, W, 1, RW, INFO )
  388. CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
  389. INFOT = 3
  390. CALL ZHEEV( 'N', 'U', -1, A, 1, X, W, 1, RW, INFO )
  391. CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
  392. INFOT = 5
  393. CALL ZHEEV( 'N', 'U', 2, A, 1, X, W, 3, RW, INFO )
  394. CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
  395. INFOT = 8
  396. CALL ZHEEV( 'N', 'U', 2, A, 2, X, W, 2, RW, INFO )
  397. CALL CHKXER( 'ZHEEV ', INFOT, NOUT, LERR, OK )
  398. NT = NT + 5
  399. *
  400. * ZHEEVX
  401. *
  402. SRNAMT = 'ZHEEVX'
  403. INFOT = 1
  404. CALL ZHEEVX( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  405. $ M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  406. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  407. INFOT = 2
  408. CALL ZHEEVX( 'V', '/', 'U', 0, A, 1, 0.0D0, 1.0D0, 1, 0, 0.0D0,
  409. $ M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  410. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  411. INFOT = 3
  412. CALL ZHEEVX( 'V', 'A', '/', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  413. $ M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  414. INFOT = 4
  415. CALL ZHEEVX( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
  416. $ 0.0D0, M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  417. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  418. INFOT = 6
  419. CALL ZHEEVX( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  420. $ M, X, Z, 2, W, 3, RW, IW, I3, INFO )
  421. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  422. INFOT = 8
  423. CALL ZHEEVX( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  424. $ M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  425. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  426. INFOT = 9
  427. CALL ZHEEVX( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  428. $ M, X, Z, 1, W, 1, RW, IW, I3, INFO )
  429. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  430. INFOT = 10
  431. CALL ZHEEVX( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
  432. $ M, X, Z, 2, W, 3, RW, IW, I3, INFO )
  433. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  434. INFOT = 15
  435. CALL ZHEEVX( 'V', 'A', 'U', 2, A, 2, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  436. $ M, X, Z, 1, W, 3, RW, IW, I3, INFO )
  437. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  438. INFOT = 17
  439. CALL ZHEEVX( 'V', 'A', 'U', 2, A, 2, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  440. $ M, X, Z, 2, W, 2, RW, IW, I1, INFO )
  441. CALL CHKXER( 'ZHEEVX', INFOT, NOUT, LERR, OK )
  442. NT = NT + 10
  443. *
  444. * ZHEEVR
  445. *
  446. SRNAMT = 'ZHEEVR'
  447. N = 1
  448. INFOT = 1
  449. CALL ZHEEVR( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  450. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  451. $ 10*N, INFO )
  452. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  453. INFOT = 2
  454. CALL ZHEEVR( 'V', '/', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  455. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  456. $ 10*N, INFO )
  457. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  458. INFOT = 3
  459. CALL ZHEEVR( 'V', 'A', '/', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
  460. $ 0.0D0, M, R, Z, 1, IW, Q, 2*N, RW, 24*N,
  461. $ IW( 2*N+1 ), 10*N, INFO )
  462. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  463. INFOT = 4
  464. CALL ZHEEVR( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
  465. $ 0.0D0, M, R, Z, 1, IW, Q, 2*N, RW, 24*N,
  466. $ IW( 2*N+1 ), 10*N, INFO )
  467. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  468. INFOT = 6
  469. CALL ZHEEVR( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  470. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  471. $ 10*N, INFO )
  472. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  473. INFOT = 8
  474. CALL ZHEEVR( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  475. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  476. $ 10*N, INFO )
  477. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  478. INFOT = 9
  479. CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 1, 0.0D0,
  480. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  481. $ 10*N, INFO )
  482. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  483. INFOT = 10
  484. *
  485. CALL ZHEEVR( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
  486. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  487. $ 10*N, INFO )
  488. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  489. INFOT = 15
  490. CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  491. $ M, R, Z, 0, IW, Q, 2*N, RW, 24*N, IW( 2*N+1 ),
  492. $ 10*N, INFO )
  493. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  494. INFOT = 18
  495. CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  496. $ M, R, Z, 1, IW, Q, 2*N-1, RW, 24*N, IW( 2*N+1 ),
  497. $ 10*N, INFO )
  498. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  499. INFOT = 20
  500. CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  501. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N-1, IW( 2*N-1 ),
  502. $ 10*N, INFO )
  503. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  504. INFOT = 22
  505. CALL ZHEEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  506. $ M, R, Z, 1, IW, Q, 2*N, RW, 24*N, IW, 10*N-1,
  507. $ INFO )
  508. CALL CHKXER( 'ZHEEVR', INFOT, NOUT, LERR, OK )
  509. NT = NT + 12
  510. *
  511. * ZHPEVD
  512. *
  513. SRNAMT = 'ZHPEVD'
  514. INFOT = 1
  515. CALL ZHPEVD( '/', 'U', 0, A, X, Z, 1, W, 1, RW, 1, IW, 1,
  516. $ INFO )
  517. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  518. INFOT = 2
  519. CALL ZHPEVD( 'N', '/', 0, A, X, Z, 1, W, 1, RW, 1, IW, 1,
  520. $ INFO )
  521. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  522. INFOT = 3
  523. CALL ZHPEVD( 'N', 'U', -1, A, X, Z, 1, W, 1, RW, 1, IW, 1,
  524. $ INFO )
  525. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  526. INFOT = 7
  527. CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 1, W, 4, RW, 25, IW, 12,
  528. $ INFO )
  529. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  530. INFOT = 9
  531. CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 0, RW, 1, IW, 1,
  532. $ INFO )
  533. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  534. INFOT = 9
  535. CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 1, RW, 2, IW, 1,
  536. $ INFO )
  537. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  538. INFOT = 9
  539. CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 2, RW, 25, IW, 12,
  540. $ INFO )
  541. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  542. INFOT = 11
  543. CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 1, RW, 0, IW, 1,
  544. $ INFO )
  545. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  546. INFOT = 11
  547. CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 2, RW, 1, IW, 1,
  548. $ INFO )
  549. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  550. INFOT = 11
  551. CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 4, RW, 18, IW, 12,
  552. $ INFO )
  553. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  554. INFOT = 13
  555. CALL ZHPEVD( 'N', 'U', 1, A, X, Z, 1, W, 1, RW, 1, IW, 0,
  556. $ INFO )
  557. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  558. INFOT = 13
  559. CALL ZHPEVD( 'N', 'U', 2, A, X, Z, 2, W, 2, RW, 2, IW, 0,
  560. $ INFO )
  561. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  562. INFOT = 13
  563. CALL ZHPEVD( 'V', 'U', 2, A, X, Z, 2, W, 4, RW, 25, IW, 2,
  564. $ INFO )
  565. CALL CHKXER( 'ZHPEVD', INFOT, NOUT, LERR, OK )
  566. NT = NT + 13
  567. *
  568. * ZHPEV
  569. *
  570. SRNAMT = 'ZHPEV '
  571. INFOT = 1
  572. CALL ZHPEV( '/', 'U', 0, A, X, Z, 1, W, RW, INFO )
  573. CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
  574. INFOT = 2
  575. CALL ZHPEV( 'N', '/', 0, A, X, Z, 1, W, RW, INFO )
  576. CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
  577. INFOT = 3
  578. CALL ZHPEV( 'N', 'U', -1, A, X, Z, 1, W, RW, INFO )
  579. CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
  580. INFOT = 7
  581. CALL ZHPEV( 'V', 'U', 2, A, X, Z, 1, W, RW, INFO )
  582. CALL CHKXER( 'ZHPEV ', INFOT, NOUT, LERR, OK )
  583. NT = NT + 4
  584. *
  585. * ZHPEVX
  586. *
  587. SRNAMT = 'ZHPEVX'
  588. INFOT = 1
  589. CALL ZHPEVX( '/', 'A', 'U', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  590. $ X, Z, 1, W, RW, IW, I3, INFO )
  591. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  592. INFOT = 2
  593. CALL ZHPEVX( 'V', '/', 'U', 0, A, 0.0D0, 1.0D0, 1, 0, 0.0D0, M,
  594. $ X, Z, 1, W, RW, IW, I3, INFO )
  595. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  596. INFOT = 3
  597. CALL ZHPEVX( 'V', 'A', '/', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  598. $ X, Z, 1, W, RW, IW, I3, INFO )
  599. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  600. INFOT = 4
  601. CALL ZHPEVX( 'V', 'A', 'U', -1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  602. $ M, X, Z, 1, W, RW, IW, I3, INFO )
  603. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  604. INFOT = 7
  605. CALL ZHPEVX( 'V', 'V', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  606. $ X, Z, 1, W, RW, IW, I3, INFO )
  607. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  608. INFOT = 8
  609. CALL ZHPEVX( 'V', 'I', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  610. $ X, Z, 1, W, RW, IW, I3, INFO )
  611. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  612. INFOT = 9
  613. CALL ZHPEVX( 'V', 'I', 'U', 2, A, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  614. $ X, Z, 2, W, RW, IW, I3, INFO )
  615. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  616. INFOT = 14
  617. CALL ZHPEVX( 'V', 'A', 'U', 2, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  618. $ X, Z, 1, W, RW, IW, I3, INFO )
  619. CALL CHKXER( 'ZHPEVX', INFOT, NOUT, LERR, OK )
  620. NT = NT + 8
  621. *
  622. * Test error exits for the HB path.
  623. *
  624. ELSE IF( LSAMEN( 2, C2, 'HB' ) ) THEN
  625. *
  626. * ZHBTRD
  627. *
  628. SRNAMT = 'ZHBTRD'
  629. INFOT = 1
  630. CALL ZHBTRD( '/', 'U', 0, 0, A, 1, D, E, Z, 1, W, INFO )
  631. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  632. INFOT = 2
  633. CALL ZHBTRD( 'N', '/', 0, 0, A, 1, D, E, Z, 1, W, INFO )
  634. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  635. INFOT = 3
  636. CALL ZHBTRD( 'N', 'U', -1, 0, A, 1, D, E, Z, 1, W, INFO )
  637. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  638. INFOT = 4
  639. CALL ZHBTRD( 'N', 'U', 0, -1, A, 1, D, E, Z, 1, W, INFO )
  640. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  641. INFOT = 6
  642. CALL ZHBTRD( 'N', 'U', 1, 1, A, 1, D, E, Z, 1, W, INFO )
  643. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  644. INFOT = 10
  645. CALL ZHBTRD( 'V', 'U', 2, 0, A, 1, D, E, Z, 1, W, INFO )
  646. CALL CHKXER( 'ZHBTRD', INFOT, NOUT, LERR, OK )
  647. NT = NT + 6
  648. *
  649. * ZHBEVD
  650. *
  651. SRNAMT = 'ZHBEVD'
  652. INFOT = 1
  653. CALL ZHBEVD( '/', 'U', 0, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 1,
  654. $ INFO )
  655. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  656. INFOT = 2
  657. CALL ZHBEVD( 'N', '/', 0, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 1,
  658. $ INFO )
  659. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  660. INFOT = 3
  661. CALL ZHBEVD( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW,
  662. $ 1, INFO )
  663. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  664. INFOT = 4
  665. CALL ZHBEVD( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, 1, RW, 1, IW,
  666. $ 1, INFO )
  667. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  668. INFOT = 6
  669. CALL ZHBEVD( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, 2, RW, 2, IW, 1,
  670. $ INFO )
  671. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  672. INFOT = 9
  673. CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 1, W, 8, RW, 25, IW,
  674. $ 12, INFO )
  675. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  676. INFOT = 11
  677. CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 0, RW, 1, IW, 1,
  678. $ INFO )
  679. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  680. INFOT = 11
  681. CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 1, RW, 2, IW, 1,
  682. $ INFO )
  683. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  684. INFOT = 11
  685. CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 25, IW,
  686. $ 12, INFO )
  687. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  688. INFOT = 13
  689. CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 1, RW, 0, IW, 1,
  690. $ INFO )
  691. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  692. INFOT = 13
  693. CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 1, IW, 1,
  694. $ INFO )
  695. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  696. INFOT = 13
  697. CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 8, RW, 2, IW,
  698. $ 12, INFO )
  699. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  700. INFOT = 15
  701. CALL ZHBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 1, RW, 1, IW, 0,
  702. $ INFO )
  703. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  704. INFOT = 15
  705. CALL ZHBEVD( 'N', 'U', 2, 1, A, 2, X, Z, 2, W, 2, RW, 2, IW, 0,
  706. $ INFO )
  707. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  708. INFOT = 15
  709. CALL ZHBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 2, W, 8, RW, 25, IW,
  710. $ 2, INFO )
  711. CALL CHKXER( 'ZHBEVD', INFOT, NOUT, LERR, OK )
  712. NT = NT + 15
  713. *
  714. * ZHBEV
  715. *
  716. SRNAMT = 'ZHBEV '
  717. INFOT = 1
  718. CALL ZHBEV( '/', 'U', 0, 0, A, 1, X, Z, 1, W, RW, INFO )
  719. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  720. INFOT = 2
  721. CALL ZHBEV( 'N', '/', 0, 0, A, 1, X, Z, 1, W, RW, INFO )
  722. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  723. INFOT = 3
  724. CALL ZHBEV( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, RW, INFO )
  725. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  726. INFOT = 4
  727. CALL ZHBEV( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, RW, INFO )
  728. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  729. INFOT = 6
  730. CALL ZHBEV( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, RW, INFO )
  731. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  732. INFOT = 9
  733. CALL ZHBEV( 'V', 'U', 2, 0, A, 1, X, Z, 1, W, RW, INFO )
  734. CALL CHKXER( 'ZHBEV ', INFOT, NOUT, LERR, OK )
  735. NT = NT + 6
  736. *
  737. * ZHBEVX
  738. *
  739. SRNAMT = 'ZHBEVX'
  740. INFOT = 1
  741. CALL ZHBEVX( '/', 'A', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  742. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  743. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  744. INFOT = 2
  745. CALL ZHBEVX( 'V', '/', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 1.0D0, 1,
  746. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  747. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  748. INFOT = 3
  749. CALL ZHBEVX( 'V', 'A', '/', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  750. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  751. INFOT = 4
  752. CALL ZHBEVX( 'V', 'A', 'U', -1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  753. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  754. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  755. INFOT = 5
  756. CALL ZHBEVX( 'V', 'A', 'U', 0, -1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  757. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  758. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  759. INFOT = 7
  760. CALL ZHBEVX( 'V', 'A', 'U', 2, 1, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
  761. $ 0, 0.0D0, M, X, Z, 2, W, RW, IW, I3, INFO )
  762. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  763. INFOT = 9
  764. CALL ZHBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  765. $ 0, 0.0D0, M, X, Z, 2, W, RW, IW, I3, INFO )
  766. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  767. INFOT = 11
  768. CALL ZHBEVX( 'V', 'V', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  769. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  770. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  771. INFOT = 12
  772. CALL ZHBEVX( 'V', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  773. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  774. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  775. INFOT = 13
  776. CALL ZHBEVX( 'V', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 1,
  777. $ 2, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  778. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  779. INFOT = 18
  780. CALL ZHBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
  781. $ 0, 0.0D0, M, X, Z, 1, W, RW, IW, I3, INFO )
  782. CALL CHKXER( 'ZHBEVX', INFOT, NOUT, LERR, OK )
  783. NT = NT + 11
  784. END IF
  785. *
  786. * Print a summary line.
  787. *
  788. IF( OK ) THEN
  789. WRITE( NOUT, FMT = 9999 )PATH, NT
  790. ELSE
  791. WRITE( NOUT, FMT = 9998 )PATH
  792. END IF
  793. *
  794. 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits',
  795. $ ' (', I3, ' tests done)' )
  796. 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
  797. $ 'exits ***' )
  798. *
  799. RETURN
  800. *
  801. * End of ZERRST
  802. *
  803. END