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.

zerrvxx.f 54 kB

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