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

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