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.

zerrvx.f 42 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  1. *> \brief \b ZERRVX
  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 ZERRVX( 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. *> ZERRVX tests the error exits for the COMPLEX*16 driver routines
  25. *> for solving linear systems of equations.
  26. *> \endverbatim
  27. *
  28. * Arguments:
  29. * ==========
  30. *
  31. *> \param[in] PATH
  32. *> \verbatim
  33. *> PATH is CHARACTER*3
  34. *> The LAPACK path name for the routines to be tested.
  35. *> \endverbatim
  36. *>
  37. *> \param[in] NUNIT
  38. *> \verbatim
  39. *> NUNIT is INTEGER
  40. *> The unit number for output.
  41. *> \endverbatim
  42. *
  43. * Authors:
  44. * ========
  45. *
  46. *> \author Univ. of Tennessee
  47. *> \author Univ. of California Berkeley
  48. *> \author Univ. of Colorado Denver
  49. *> \author NAG Ltd.
  50. *
  51. *> \ingroup complex16_lin
  52. *
  53. * =====================================================================
  54. SUBROUTINE ZERRVX( PATH, NUNIT )
  55. *
  56. * -- LAPACK test routine --
  57. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  58. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  59. *
  60. * .. Scalar Arguments ..
  61. CHARACTER*3 PATH
  62. INTEGER NUNIT
  63. * ..
  64. *
  65. * =====================================================================
  66. *
  67. * .. Parameters ..
  68. INTEGER NMAX
  69. PARAMETER ( NMAX = 4 )
  70. * ..
  71. * .. Local Scalars ..
  72. CHARACTER EQ
  73. CHARACTER*2 C2
  74. INTEGER I, INFO, J
  75. DOUBLE PRECISION RCOND
  76. * ..
  77. * .. Local Arrays ..
  78. INTEGER IP( NMAX )
  79. DOUBLE PRECISION C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
  80. $ RF( NMAX ), RW( NMAX )
  81. COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
  82. $ E( NMAX ), W( 2*NMAX ), X( NMAX )
  83. * ..
  84. * .. External Functions ..
  85. LOGICAL LSAMEN
  86. EXTERNAL LSAMEN
  87. * ..
  88. * .. External Subroutines ..
  89. EXTERNAL CHKXER, ZGBSV, ZGBSVX, ZGESV, ZGESVX, ZGTSV,
  90. $ ZGTSVX, ZHESV, ZHESV_RK, ZHESV_ROOK, ZHESVX,
  91. $ ZHPSV, ZHPSVX, ZPBSV, ZPBSVX, ZPOSV, ZPOSVX,
  92. $ ZPPSV, ZPPSVX, ZPTSV, ZPTSVX, ZSPSV, ZSPSVX,
  93. $ ZSYSV, ZSYSV_AA, ZSYSV_RK, ZSYSV_ROOK,
  94. $ ZSYSVX, ZHESV_AA_2STAGE
  95. * ..
  96. * .. Scalars in Common ..
  97. LOGICAL LERR, OK
  98. CHARACTER*32 SRNAMT
  99. INTEGER INFOT, NOUT
  100. * ..
  101. * .. Common blocks ..
  102. COMMON / INFOC / INFOT, NOUT, OK, LERR
  103. COMMON / SRNAMC / SRNAMT
  104. * ..
  105. * .. Intrinsic Functions ..
  106. INTRINSIC DBLE, DCMPLX
  107. * ..
  108. * .. Executable Statements ..
  109. *
  110. NOUT = NUNIT
  111. WRITE( NOUT, FMT = * )
  112. C2 = PATH( 2: 3 )
  113. *
  114. * Set the variables to innocuous values.
  115. *
  116. DO 20 J = 1, NMAX
  117. DO 10 I = 1, NMAX
  118. A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
  119. $ -1.D0 / DBLE( I+J ) )
  120. AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
  121. $ -1.D0 / DBLE( I+J ) )
  122. 10 CONTINUE
  123. B( J ) = 0.D0
  124. E( J ) = 0.D0
  125. R1( J ) = 0.D0
  126. R2( J ) = 0.D0
  127. W( J ) = 0.D0
  128. X( J ) = 0.D0
  129. C( J ) = 0.D0
  130. R( J ) = 0.D0
  131. IP( J ) = J
  132. 20 CONTINUE
  133. EQ = ' '
  134. OK = .TRUE.
  135. *
  136. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  137. *
  138. * ZGESV
  139. *
  140. SRNAMT = 'ZGESV '
  141. INFOT = 1
  142. CALL ZGESV( -1, 0, A, 1, IP, B, 1, INFO )
  143. CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
  144. INFOT = 2
  145. CALL ZGESV( 0, -1, A, 1, IP, B, 1, INFO )
  146. CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
  147. INFOT = 4
  148. CALL ZGESV( 2, 1, A, 1, IP, B, 2, INFO )
  149. CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
  150. INFOT = 7
  151. CALL ZGESV( 2, 1, A, 2, IP, B, 1, INFO )
  152. CALL CHKXER( 'ZGESV ', INFOT, NOUT, LERR, OK )
  153. *
  154. * ZGESVX
  155. *
  156. SRNAMT = 'ZGESVX'
  157. INFOT = 1
  158. CALL ZGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  159. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  160. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  161. INFOT = 2
  162. CALL ZGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  163. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  164. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  165. INFOT = 3
  166. CALL ZGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  167. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  168. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  169. INFOT = 4
  170. CALL ZGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  171. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  172. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  173. INFOT = 6
  174. CALL ZGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  175. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  176. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  177. INFOT = 8
  178. CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  179. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  180. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  181. INFOT = 10
  182. EQ = '/'
  183. CALL ZGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  184. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  185. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  186. INFOT = 11
  187. EQ = 'R'
  188. CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  189. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  190. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  191. INFOT = 12
  192. EQ = 'C'
  193. CALL ZGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  194. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  195. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  196. INFOT = 14
  197. CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  198. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  199. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  200. INFOT = 16
  201. CALL ZGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  202. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  203. CALL CHKXER( 'ZGESVX', INFOT, NOUT, LERR, OK )
  204. *
  205. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  206. *
  207. * ZGBSV
  208. *
  209. SRNAMT = 'ZGBSV '
  210. INFOT = 1
  211. CALL ZGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  212. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  213. INFOT = 2
  214. CALL ZGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  215. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  216. INFOT = 3
  217. CALL ZGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  218. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  219. INFOT = 4
  220. CALL ZGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  221. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  222. INFOT = 6
  223. CALL ZGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  224. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  225. INFOT = 9
  226. CALL ZGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  227. CALL CHKXER( 'ZGBSV ', INFOT, NOUT, LERR, OK )
  228. *
  229. * ZGBSVX
  230. *
  231. SRNAMT = 'ZGBSVX'
  232. INFOT = 1
  233. CALL ZGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  234. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  235. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  236. INFOT = 2
  237. CALL ZGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  238. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  239. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  240. INFOT = 3
  241. CALL ZGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  242. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  243. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  244. INFOT = 4
  245. CALL ZGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  246. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  247. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  248. INFOT = 5
  249. CALL ZGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  250. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  251. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  252. INFOT = 6
  253. CALL ZGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  254. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  255. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  256. INFOT = 8
  257. CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  258. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  259. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  260. INFOT = 10
  261. CALL ZGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  262. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  263. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  264. INFOT = 12
  265. EQ = '/'
  266. CALL ZGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  267. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  268. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  269. INFOT = 13
  270. EQ = 'R'
  271. CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  272. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  273. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  274. INFOT = 14
  275. EQ = 'C'
  276. CALL ZGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  277. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  278. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  279. INFOT = 16
  280. CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  281. $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  282. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  283. INFOT = 18
  284. CALL ZGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  285. $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  286. CALL CHKXER( 'ZGBSVX', INFOT, NOUT, LERR, OK )
  287. *
  288. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  289. *
  290. * ZGTSV
  291. *
  292. SRNAMT = 'ZGTSV '
  293. INFOT = 1
  294. CALL ZGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  295. $ INFO )
  296. CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
  297. INFOT = 2
  298. CALL ZGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  299. $ INFO )
  300. CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
  301. INFOT = 7
  302. CALL ZGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  303. CALL CHKXER( 'ZGTSV ', INFOT, NOUT, LERR, OK )
  304. *
  305. * ZGTSVX
  306. *
  307. SRNAMT = 'ZGTSVX'
  308. INFOT = 1
  309. CALL ZGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  310. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  311. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  312. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  313. INFOT = 2
  314. CALL ZGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  315. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  316. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  317. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  318. INFOT = 3
  319. CALL ZGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  320. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  321. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  322. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  323. INFOT = 4
  324. CALL ZGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  325. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  326. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  327. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  328. INFOT = 14
  329. CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  330. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  331. $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  332. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  333. INFOT = 16
  334. CALL ZGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  335. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  336. $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  337. CALL CHKXER( 'ZGTSVX', INFOT, NOUT, LERR, OK )
  338. *
  339. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  340. *
  341. * ZPOSV
  342. *
  343. SRNAMT = 'ZPOSV '
  344. INFOT = 1
  345. CALL ZPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  346. CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
  347. INFOT = 2
  348. CALL ZPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  349. CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
  350. INFOT = 3
  351. CALL ZPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  352. CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
  353. INFOT = 5
  354. CALL ZPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  355. CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
  356. INFOT = 7
  357. CALL ZPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  358. CALL CHKXER( 'ZPOSV ', INFOT, NOUT, LERR, OK )
  359. *
  360. * ZPOSVX
  361. *
  362. SRNAMT = 'ZPOSVX'
  363. INFOT = 1
  364. CALL ZPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  365. $ RCOND, R1, R2, W, RW, INFO )
  366. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  367. INFOT = 2
  368. CALL ZPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  369. $ RCOND, R1, R2, W, RW, INFO )
  370. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  371. INFOT = 3
  372. CALL ZPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  373. $ RCOND, R1, R2, W, RW, INFO )
  374. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  375. INFOT = 4
  376. CALL ZPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  377. $ RCOND, R1, R2, W, RW, INFO )
  378. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  379. INFOT = 6
  380. CALL ZPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  381. $ RCOND, R1, R2, W, RW, INFO )
  382. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  383. INFOT = 8
  384. CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  385. $ RCOND, R1, R2, W, RW, INFO )
  386. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  387. INFOT = 9
  388. EQ = '/'
  389. CALL ZPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  390. $ RCOND, R1, R2, W, RW, INFO )
  391. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  392. INFOT = 10
  393. EQ = 'Y'
  394. CALL ZPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  395. $ RCOND, R1, R2, W, RW, INFO )
  396. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  397. INFOT = 12
  398. CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  399. $ RCOND, R1, R2, W, RW, INFO )
  400. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  401. INFOT = 14
  402. CALL ZPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  403. $ RCOND, R1, R2, W, RW, INFO )
  404. CALL CHKXER( 'ZPOSVX', INFOT, NOUT, LERR, OK )
  405. *
  406. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  407. *
  408. * ZPPSV
  409. *
  410. SRNAMT = 'ZPPSV '
  411. INFOT = 1
  412. CALL ZPPSV( '/', 0, 0, A, B, 1, INFO )
  413. CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
  414. INFOT = 2
  415. CALL ZPPSV( 'U', -1, 0, A, B, 1, INFO )
  416. CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
  417. INFOT = 3
  418. CALL ZPPSV( 'U', 0, -1, A, B, 1, INFO )
  419. CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
  420. INFOT = 6
  421. CALL ZPPSV( 'U', 2, 0, A, B, 1, INFO )
  422. CALL CHKXER( 'ZPPSV ', INFOT, NOUT, LERR, OK )
  423. *
  424. * ZPPSVX
  425. *
  426. SRNAMT = 'ZPPSVX'
  427. INFOT = 1
  428. CALL ZPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  429. $ R1, R2, W, RW, INFO )
  430. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  431. INFOT = 2
  432. CALL ZPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  433. $ R1, R2, W, RW, INFO )
  434. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  435. INFOT = 3
  436. CALL ZPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  437. $ R1, R2, W, RW, INFO )
  438. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  439. INFOT = 4
  440. CALL ZPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  441. $ R1, R2, W, RW, INFO )
  442. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  443. INFOT = 7
  444. EQ = '/'
  445. CALL ZPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  446. $ R1, R2, W, RW, INFO )
  447. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  448. INFOT = 8
  449. EQ = 'Y'
  450. CALL ZPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  451. $ R1, R2, W, RW, INFO )
  452. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  453. INFOT = 10
  454. CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  455. $ R1, R2, W, RW, INFO )
  456. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  457. INFOT = 12
  458. CALL ZPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  459. $ R1, R2, W, RW, INFO )
  460. CALL CHKXER( 'ZPPSVX', INFOT, NOUT, LERR, OK )
  461. *
  462. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  463. *
  464. * ZPBSV
  465. *
  466. SRNAMT = 'ZPBSV '
  467. INFOT = 1
  468. CALL ZPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  469. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  470. INFOT = 2
  471. CALL ZPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  472. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  473. INFOT = 3
  474. CALL ZPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  475. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  476. INFOT = 4
  477. CALL ZPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  478. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  479. INFOT = 6
  480. CALL ZPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  481. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  482. INFOT = 8
  483. CALL ZPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  484. CALL CHKXER( 'ZPBSV ', INFOT, NOUT, LERR, OK )
  485. *
  486. * ZPBSVX
  487. *
  488. SRNAMT = 'ZPBSVX'
  489. INFOT = 1
  490. CALL ZPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  491. $ RCOND, R1, R2, W, RW, INFO )
  492. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  493. INFOT = 2
  494. CALL ZPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  495. $ RCOND, R1, R2, W, RW, INFO )
  496. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  497. INFOT = 3
  498. CALL ZPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  499. $ 1, RCOND, R1, R2, W, RW, INFO )
  500. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  501. INFOT = 4
  502. CALL ZPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  503. $ 1, RCOND, R1, R2, W, RW, INFO )
  504. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  505. INFOT = 5
  506. CALL ZPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  507. $ 1, RCOND, R1, R2, W, RW, INFO )
  508. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  509. INFOT = 7
  510. CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  511. $ RCOND, R1, R2, W, RW, INFO )
  512. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  513. INFOT = 9
  514. CALL ZPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  515. $ RCOND, R1, R2, W, RW, INFO )
  516. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  517. INFOT = 10
  518. EQ = '/'
  519. CALL ZPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  520. $ RCOND, R1, R2, W, RW, INFO )
  521. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  522. INFOT = 11
  523. EQ = 'Y'
  524. CALL ZPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  525. $ RCOND, R1, R2, W, RW, INFO )
  526. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  527. INFOT = 13
  528. CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  529. $ RCOND, R1, R2, W, RW, INFO )
  530. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  531. INFOT = 15
  532. CALL ZPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  533. $ RCOND, R1, R2, W, RW, INFO )
  534. CALL CHKXER( 'ZPBSVX', INFOT, NOUT, LERR, OK )
  535. *
  536. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  537. *
  538. * ZPTSV
  539. *
  540. SRNAMT = 'ZPTSV '
  541. INFOT = 1
  542. CALL ZPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
  543. CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
  544. INFOT = 2
  545. CALL ZPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
  546. CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
  547. INFOT = 6
  548. CALL ZPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
  549. CALL CHKXER( 'ZPTSV ', INFOT, NOUT, LERR, OK )
  550. *
  551. * ZPTSVX
  552. *
  553. SRNAMT = 'ZPTSVX'
  554. INFOT = 1
  555. CALL ZPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  556. $ 1, RCOND, R1, R2, W, RW, INFO )
  557. CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
  558. INFOT = 2
  559. CALL ZPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  560. $ 1, RCOND, R1, R2, W, RW, INFO )
  561. CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
  562. INFOT = 3
  563. CALL ZPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  564. $ 1, RCOND, R1, R2, W, RW, INFO )
  565. CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
  566. INFOT = 9
  567. CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  568. $ 2, RCOND, R1, R2, W, RW, INFO )
  569. CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
  570. INFOT = 11
  571. CALL ZPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
  572. $ 1, RCOND, R1, R2, W, RW, INFO )
  573. CALL CHKXER( 'ZPTSVX', INFOT, NOUT, LERR, OK )
  574. *
  575. ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
  576. *
  577. * ZHESV
  578. *
  579. SRNAMT = 'ZHESV '
  580. INFOT = 1
  581. CALL ZHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  582. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  583. INFOT = 2
  584. CALL ZHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  585. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  586. INFOT = 3
  587. CALL ZHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  588. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  589. INFOT = 5
  590. CALL ZHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  591. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  592. INFOT = 8
  593. CALL ZHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  594. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  595. INFOT = 10
  596. CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  597. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  598. INFOT = 10
  599. CALL ZHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  600. CALL CHKXER( 'ZHESV ', INFOT, NOUT, LERR, OK )
  601. *
  602. * ZHESVX
  603. *
  604. SRNAMT = 'ZHESVX'
  605. INFOT = 1
  606. CALL ZHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  607. $ RCOND, R1, R2, W, 1, RW, INFO )
  608. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  609. INFOT = 2
  610. CALL ZHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  611. $ RCOND, R1, R2, W, 1, RW, INFO )
  612. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  613. INFOT = 3
  614. CALL ZHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  615. $ RCOND, R1, R2, W, 1, RW, INFO )
  616. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  617. INFOT = 4
  618. CALL ZHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  619. $ RCOND, R1, R2, W, 1, RW, INFO )
  620. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  621. INFOT = 6
  622. CALL ZHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  623. $ RCOND, R1, R2, W, 4, RW, INFO )
  624. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  625. INFOT = 8
  626. CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  627. $ RCOND, R1, R2, W, 4, RW, INFO )
  628. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  629. INFOT = 11
  630. CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  631. $ RCOND, R1, R2, W, 4, RW, INFO )
  632. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  633. INFOT = 13
  634. CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  635. $ RCOND, R1, R2, W, 4, RW, INFO )
  636. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  637. INFOT = 18
  638. CALL ZHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  639. $ RCOND, R1, R2, W, 3, RW, INFO )
  640. CALL CHKXER( 'ZHESVX', INFOT, NOUT, LERR, OK )
  641. *
  642. ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
  643. *
  644. * ZHESV_ROOK
  645. *
  646. SRNAMT = 'ZHESV_ROOK'
  647. INFOT = 1
  648. CALL ZHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  649. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  650. INFOT = 2
  651. CALL ZHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  652. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  653. INFOT = 3
  654. CALL ZHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  655. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  656. INFOT = 5
  657. CALL ZHESV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  658. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  659. INFOT = 8
  660. CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  661. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  662. INFOT = 10
  663. CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  664. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  665. INFOT = 10
  666. CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  667. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  668. *
  669. ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
  670. *
  671. * ZSYSV_RK
  672. *
  673. * Test error exits of the driver that uses factorization
  674. * of a Hermitian indefinite matrix with rook
  675. * (bounded Bunch-Kaufman) pivoting with the new storage
  676. * format for factors L ( or U) and D.
  677. *
  678. * L (or U) is stored in A, diagonal of D is stored on the
  679. * diagonal of A, subdiagonal of D is stored in a separate array E.
  680. *
  681. SRNAMT = 'ZHESV_RK'
  682. INFOT = 1
  683. CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  684. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  685. INFOT = 2
  686. CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  687. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  688. INFOT = 3
  689. CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  690. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  691. INFOT = 5
  692. CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  693. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  694. INFOT = 9
  695. CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  696. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  697. INFOT = 11
  698. CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  699. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  700. INFOT = 11
  701. CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  702. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  703. *
  704. ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
  705. *
  706. * ZHESV_AASEN
  707. *
  708. SRNAMT = 'ZHESV_AA'
  709. INFOT = 1
  710. CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  711. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  712. INFOT = 2
  713. CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  714. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  715. INFOT = 3
  716. CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  717. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  718. INFOT = 5
  719. CALL ZHESV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  720. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  721. INFOT = 8
  722. CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  723. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  724. INFOT = 10
  725. CALL ZHESV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO )
  726. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  727. *
  728. ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
  729. *
  730. * ZHESV_AASEN_2STAGE
  731. *
  732. SRNAMT = 'ZHESV_AA_2STAGE'
  733. INFOT = 1
  734. CALL ZHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  735. $ W, 1, INFO )
  736. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  737. INFOT = 2
  738. CALL ZHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  739. $ W, 1, INFO )
  740. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  741. INFOT = 3
  742. CALL ZHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  743. $ W, 1, INFO )
  744. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  745. INFOT = 5
  746. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  747. $ W, 1, INFO )
  748. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  749. INFOT = 7
  750. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  751. $ W, 1, INFO )
  752. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  753. INFOT = 11
  754. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  755. $ W, 1, INFO )
  756. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  757. INFOT = 13
  758. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2,
  759. $ W, 1, INFO )
  760. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  761. *
  762. ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN
  763. *
  764. * ZSYSV_AASEN
  765. *
  766. SRNAMT = 'ZSYSV_AA'
  767. INFOT = 1
  768. CALL ZSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  769. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  770. INFOT = 2
  771. CALL ZSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  772. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  773. INFOT = 3
  774. CALL ZSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  775. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  776. INFOT = 5
  777. CALL ZSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  778. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  779. INFOT = 8
  780. CALL ZSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  781. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  782. INFOT = 10
  783. CALL ZSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO )
  784. CALL CHKXER( 'ZSYSV_AA', INFOT, NOUT, LERR, OK )
  785. *
  786. ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
  787. *
  788. * ZSYSV_AASEN_2STAGE
  789. *
  790. SRNAMT = 'ZSYSV_AA_2STAGE'
  791. INFOT = 1
  792. CALL ZSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  793. $ W, 1, INFO )
  794. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  795. INFOT = 2
  796. CALL ZSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  797. $ W, 1, INFO )
  798. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  799. INFOT = 3
  800. CALL ZSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  801. $ W, 1, INFO )
  802. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  803. INFOT = 5
  804. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  805. $ W, 1, INFO )
  806. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  807. INFOT = 7
  808. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  809. $ W, 1, INFO )
  810. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  811. INFOT = 11
  812. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  813. $ W, 1, INFO )
  814. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  815. INFOT = 13
  816. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2,
  817. $ W, 1, INFO )
  818. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  819. *
  820. ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
  821. *
  822. * ZHPSV
  823. *
  824. SRNAMT = 'ZHPSV '
  825. INFOT = 1
  826. CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
  827. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  828. INFOT = 2
  829. CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  830. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  831. INFOT = 3
  832. CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  833. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  834. INFOT = 7
  835. CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  836. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  837. *
  838. * ZHPSVX
  839. *
  840. SRNAMT = 'ZHPSVX'
  841. INFOT = 1
  842. CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  843. $ R2, W, RW, INFO )
  844. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  845. INFOT = 2
  846. CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  847. $ R2, W, RW, INFO )
  848. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  849. INFOT = 3
  850. CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  851. $ R2, W, RW, INFO )
  852. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  853. INFOT = 4
  854. CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  855. $ R2, W, RW, INFO )
  856. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  857. INFOT = 9
  858. CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  859. $ R2, W, RW, INFO )
  860. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  861. INFOT = 11
  862. CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  863. $ R2, W, RW, INFO )
  864. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  865. *
  866. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  867. *
  868. * ZSYSV
  869. *
  870. SRNAMT = 'ZSYSV '
  871. INFOT = 1
  872. CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  873. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  874. INFOT = 2
  875. CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  876. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  877. INFOT = 3
  878. CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  879. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  880. INFOT = 5
  881. CALL ZSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  882. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  883. INFOT = 8
  884. CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  885. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  886. INFOT = 10
  887. CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  888. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  889. INFOT = 10
  890. CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  891. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  892. *
  893. * ZSYSVX
  894. *
  895. SRNAMT = 'ZSYSVX'
  896. INFOT = 1
  897. CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  898. $ RCOND, R1, R2, W, 1, RW, INFO )
  899. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  900. INFOT = 2
  901. CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  902. $ RCOND, R1, R2, W, 1, RW, INFO )
  903. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  904. INFOT = 3
  905. CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  906. $ RCOND, R1, R2, W, 1, RW, INFO )
  907. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  908. INFOT = 4
  909. CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  910. $ RCOND, R1, R2, W, 1, RW, INFO )
  911. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  912. INFOT = 6
  913. CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  914. $ RCOND, R1, R2, W, 4, RW, INFO )
  915. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  916. INFOT = 8
  917. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  918. $ RCOND, R1, R2, W, 4, RW, INFO )
  919. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  920. INFOT = 11
  921. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  922. $ RCOND, R1, R2, W, 4, RW, INFO )
  923. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  924. INFOT = 13
  925. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  926. $ RCOND, R1, R2, W, 4, RW, INFO )
  927. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  928. INFOT = 18
  929. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  930. $ RCOND, R1, R2, W, 3, RW, INFO )
  931. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  932. *
  933. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  934. *
  935. * ZSYSV_ROOK
  936. *
  937. SRNAMT = 'ZSYSV_ROOK'
  938. INFOT = 1
  939. CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  940. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  941. INFOT = 2
  942. CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  943. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  944. INFOT = 3
  945. CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  946. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  947. INFOT = 5
  948. CALL ZSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  949. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  950. INFOT = 8
  951. CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  952. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  953. INFOT = 10
  954. CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  955. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  956. INFOT = 10
  957. CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  958. *
  959. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  960. *
  961. * ZSYSV_RK
  962. *
  963. * Test error exits of the driver that uses factorization
  964. * of a symmetric indefinite matrix with rook
  965. * (bounded Bunch-Kaufman) pivoting with the new storage
  966. * format for factors L ( or U) and D.
  967. *
  968. * L (or U) is stored in A, diagonal of D is stored on the
  969. * diagonal of A, subdiagonal of D is stored in a separate array E.
  970. *
  971. SRNAMT = 'ZSYSV_RK'
  972. INFOT = 1
  973. CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  974. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  975. INFOT = 2
  976. CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  977. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  978. INFOT = 3
  979. CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  980. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  981. INFOT = 5
  982. CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  983. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  984. INFOT = 9
  985. CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  986. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  987. INFOT = 11
  988. CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  989. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  990. INFOT = 11
  991. CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  992. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  993. *
  994. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  995. *
  996. * ZSPSV
  997. *
  998. SRNAMT = 'ZSPSV '
  999. INFOT = 1
  1000. CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  1001. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  1002. INFOT = 2
  1003. CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  1004. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  1005. INFOT = 3
  1006. CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  1007. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  1008. INFOT = 7
  1009. CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  1010. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  1011. *
  1012. * ZSPSVX
  1013. *
  1014. SRNAMT = 'ZSPSVX'
  1015. INFOT = 1
  1016. CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1017. $ R2, W, RW, INFO )
  1018. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1019. INFOT = 2
  1020. CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1021. $ R2, W, RW, INFO )
  1022. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1023. INFOT = 3
  1024. CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1025. $ R2, W, RW, INFO )
  1026. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1027. INFOT = 4
  1028. CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1029. $ R2, W, RW, INFO )
  1030. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1031. INFOT = 9
  1032. CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  1033. $ R2, W, RW, INFO )
  1034. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1035. INFOT = 11
  1036. CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  1037. $ R2, W, RW, INFO )
  1038. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  1039. END IF
  1040. *
  1041. * Print a summary line.
  1042. *
  1043. IF( OK ) THEN
  1044. WRITE( NOUT, FMT = 9999 )PATH
  1045. ELSE
  1046. WRITE( NOUT, FMT = 9998 )PATH
  1047. END IF
  1048. *
  1049. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  1050. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  1051. $ 'exits ***' )
  1052. *
  1053. RETURN
  1054. *
  1055. * End of ZERRVX
  1056. *
  1057. END