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 40 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010
  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 = 8
  657. CALL ZHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  658. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  659. INFOT = 10
  660. CALL ZHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, 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, -2, INFO )
  664. CALL CHKXER( 'ZHESV_ROOK', INFOT, NOUT, LERR, OK )
  665. *
  666. ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
  667. *
  668. * ZSYSV_RK
  669. *
  670. * Test error exits of the driver that uses factorization
  671. * of a Hermitian indefinite matrix with rook
  672. * (bounded Bunch-Kaufman) pivoting with the new storage
  673. * format for factors L ( or U) and D.
  674. *
  675. * L (or U) is stored in A, diagonal of D is stored on the
  676. * diagonal of A, subdiagonal of D is stored in a separate array E.
  677. *
  678. SRNAMT = 'ZHESV_RK'
  679. INFOT = 1
  680. CALL ZHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  681. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  682. INFOT = 2
  683. CALL ZHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  684. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  685. INFOT = 3
  686. CALL ZHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  687. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  688. INFOT = 5
  689. CALL ZHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  690. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  691. INFOT = 9
  692. CALL ZHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  693. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  694. INFOT = 11
  695. CALL ZHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, 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, -2, INFO )
  699. CALL CHKXER( 'ZHESV_RK', INFOT, NOUT, LERR, OK )
  700. *
  701. ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
  702. *
  703. * ZHESV_AA
  704. *
  705. SRNAMT = 'ZHESV_AA'
  706. INFOT = 1
  707. CALL ZHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  708. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  709. INFOT = 2
  710. CALL ZHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  711. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  712. INFOT = 3
  713. CALL ZHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  714. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  715. INFOT = 8
  716. CALL ZHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  717. CALL CHKXER( 'ZHESV_AA', INFOT, NOUT, LERR, OK )
  718. *
  719. ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN
  720. *
  721. * ZHESV_AASEN_2STAGE
  722. *
  723. SRNAMT = 'ZHESV_AA_2STAGE'
  724. INFOT = 1
  725. CALL ZHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  726. $ W, 1, INFO )
  727. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  728. INFOT = 2
  729. CALL ZHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  730. $ W, 1, INFO )
  731. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  732. INFOT = 3
  733. CALL ZHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  734. $ W, 1, INFO )
  735. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  736. INFOT = 5
  737. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  738. $ W, 1, INFO )
  739. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  740. INFOT = 11
  741. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  742. $ W, 1, INFO )
  743. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  744. INFOT = 7
  745. CALL ZHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  746. $ W, 1, INFO )
  747. CALL CHKXER( 'ZHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  748. *
  749. ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
  750. *
  751. * ZSYSV_AASEN_2STAGE
  752. *
  753. SRNAMT = 'ZSYSV_AA_2STAGE'
  754. INFOT = 1
  755. CALL ZSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  756. $ W, 1, INFO )
  757. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  758. INFOT = 2
  759. CALL ZSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  760. $ W, 1, INFO )
  761. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  762. INFOT = 3
  763. CALL ZSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  764. $ W, 1, INFO )
  765. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  766. INFOT = 5
  767. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  768. $ W, 1, INFO )
  769. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  770. INFOT = 11
  771. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  772. $ W, 1, INFO )
  773. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  774. INFOT = 7
  775. CALL ZSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  776. $ W, 1, INFO )
  777. CALL CHKXER( 'ZSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  778. **
  779. ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
  780. *
  781. * ZHPSV
  782. *
  783. SRNAMT = 'ZHPSV '
  784. INFOT = 1
  785. CALL ZHPSV( '/', 0, 0, A, IP, B, 1, INFO )
  786. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  787. INFOT = 2
  788. CALL ZHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  789. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  790. INFOT = 3
  791. CALL ZHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  792. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  793. INFOT = 7
  794. CALL ZHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  795. CALL CHKXER( 'ZHPSV ', INFOT, NOUT, LERR, OK )
  796. *
  797. * ZHPSVX
  798. *
  799. SRNAMT = 'ZHPSVX'
  800. INFOT = 1
  801. CALL ZHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  802. $ R2, W, RW, INFO )
  803. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  804. INFOT = 2
  805. CALL ZHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  806. $ R2, W, RW, INFO )
  807. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  808. INFOT = 3
  809. CALL ZHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  810. $ R2, W, RW, INFO )
  811. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  812. INFOT = 4
  813. CALL ZHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  814. $ R2, W, RW, INFO )
  815. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  816. INFOT = 9
  817. CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  818. $ R2, W, RW, INFO )
  819. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  820. INFOT = 11
  821. CALL ZHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  822. $ R2, W, RW, INFO )
  823. CALL CHKXER( 'ZHPSVX', INFOT, NOUT, LERR, OK )
  824. *
  825. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  826. *
  827. * ZSYSV
  828. *
  829. SRNAMT = 'ZSYSV '
  830. INFOT = 1
  831. CALL ZSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  832. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  833. INFOT = 2
  834. CALL ZSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  835. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  836. INFOT = 3
  837. CALL ZSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  838. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  839. INFOT = 8
  840. CALL ZSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  841. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  842. INFOT = 10
  843. CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  844. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  845. INFOT = 10
  846. CALL ZSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  847. CALL CHKXER( 'ZSYSV ', INFOT, NOUT, LERR, OK )
  848. *
  849. * ZSYSVX
  850. *
  851. SRNAMT = 'ZSYSVX'
  852. INFOT = 1
  853. CALL ZSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  854. $ RCOND, R1, R2, W, 1, RW, INFO )
  855. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  856. INFOT = 2
  857. CALL ZSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  858. $ RCOND, R1, R2, W, 1, RW, INFO )
  859. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  860. INFOT = 3
  861. CALL ZSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  862. $ RCOND, R1, R2, W, 1, RW, INFO )
  863. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  864. INFOT = 4
  865. CALL ZSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  866. $ RCOND, R1, R2, W, 1, RW, INFO )
  867. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  868. INFOT = 6
  869. CALL ZSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  870. $ RCOND, R1, R2, W, 4, RW, INFO )
  871. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  872. INFOT = 8
  873. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  874. $ RCOND, R1, R2, W, 4, RW, INFO )
  875. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  876. INFOT = 11
  877. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  878. $ RCOND, R1, R2, W, 4, RW, INFO )
  879. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  880. INFOT = 13
  881. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  882. $ RCOND, R1, R2, W, 4, RW, INFO )
  883. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  884. INFOT = 18
  885. CALL ZSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  886. $ RCOND, R1, R2, W, 3, RW, INFO )
  887. CALL CHKXER( 'ZSYSVX', INFOT, NOUT, LERR, OK )
  888. *
  889. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  890. *
  891. * ZSYSV_ROOK
  892. *
  893. SRNAMT = 'ZSYSV_ROOK'
  894. INFOT = 1
  895. CALL ZSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  896. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  897. INFOT = 2
  898. CALL ZSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  899. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  900. INFOT = 3
  901. CALL ZSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  902. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  903. INFOT = 8
  904. CALL ZSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  905. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  906. INFOT = 10
  907. CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  908. CALL CHKXER( 'ZSYSV_ROOK', INFOT, NOUT, LERR, OK )
  909. INFOT = 10
  910. CALL ZSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  911. *
  912. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  913. *
  914. * ZSYSV_RK
  915. *
  916. * Test error exits of the driver that uses factorization
  917. * of a symmetric indefinite matrix with rook
  918. * (bounded Bunch-Kaufman) pivoting with the new storage
  919. * format for factors L ( or U) and D.
  920. *
  921. * L (or U) is stored in A, diagonal of D is stored on the
  922. * diagonal of A, subdiagonal of D is stored in a separate array E.
  923. *
  924. SRNAMT = 'ZSYSV_RK'
  925. INFOT = 1
  926. CALL ZSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  927. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  928. INFOT = 2
  929. CALL ZSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  930. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  931. INFOT = 3
  932. CALL ZSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  933. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  934. INFOT = 5
  935. CALL ZSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  936. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  937. INFOT = 9
  938. CALL ZSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  939. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  940. INFOT = 11
  941. CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  942. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  943. INFOT = 11
  944. CALL ZSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  945. CALL CHKXER( 'ZSYSV_RK', INFOT, NOUT, LERR, OK )
  946. *
  947. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  948. *
  949. * ZSPSV
  950. *
  951. SRNAMT = 'ZSPSV '
  952. INFOT = 1
  953. CALL ZSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  954. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  955. INFOT = 2
  956. CALL ZSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  957. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  958. INFOT = 3
  959. CALL ZSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  960. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  961. INFOT = 7
  962. CALL ZSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  963. CALL CHKXER( 'ZSPSV ', INFOT, NOUT, LERR, OK )
  964. *
  965. * ZSPSVX
  966. *
  967. SRNAMT = 'ZSPSVX'
  968. INFOT = 1
  969. CALL ZSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  970. $ R2, W, RW, INFO )
  971. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  972. INFOT = 2
  973. CALL ZSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  974. $ R2, W, RW, INFO )
  975. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  976. INFOT = 3
  977. CALL ZSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  978. $ R2, W, RW, INFO )
  979. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  980. INFOT = 4
  981. CALL ZSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  982. $ R2, W, RW, INFO )
  983. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  984. INFOT = 9
  985. CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  986. $ R2, W, RW, INFO )
  987. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  988. INFOT = 11
  989. CALL ZSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  990. $ R2, W, RW, INFO )
  991. CALL CHKXER( 'ZSPSVX', INFOT, NOUT, LERR, OK )
  992. END IF
  993. *
  994. * Print a summary line.
  995. *
  996. IF( OK ) THEN
  997. WRITE( NOUT, FMT = 9999 )PATH
  998. ELSE
  999. WRITE( NOUT, FMT = 9998 )PATH
  1000. END IF
  1001. *
  1002. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  1003. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  1004. $ 'exits ***' )
  1005. *
  1006. RETURN
  1007. *
  1008. * End of ZERRVX
  1009. *
  1010. END