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

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