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.

cerrvx.f 37 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952
  1. *> \brief \b CERRVX
  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 CERRVX( 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. *> CERRVX tests the error exits for the COMPLEX 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 complex_lin
  54. *
  55. * =====================================================================
  56. SUBROUTINE CERRVX( 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. * ..
  74. * .. Local Scalars ..
  75. CHARACTER EQ
  76. CHARACTER*2 C2
  77. INTEGER I, INFO, J
  78. REAL RCOND
  79. * ..
  80. * .. Local Arrays ..
  81. INTEGER IP( NMAX )
  82. REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
  83. $ RF( NMAX ), RW( NMAX )
  84. COMPLEX 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 CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
  93. $ CHESV, CHESV_RK ,CHESV_ROOK, CHESVX, CHKXER,
  94. $ CHPSV, CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX,
  95. $ CPPSV, CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX,
  96. $ CSYSV, CSYSV_AA, CSYSV_RK, CSYSV_ROOK,
  97. $ CSYSVX
  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 CMPLX, REAL
  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 ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
  122. AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
  123. 10 CONTINUE
  124. B( J ) = 0.E+0
  125. E( J ) = 0.E+0
  126. R1( J ) = 0.E+0
  127. R2( J ) = 0.E+0
  128. W( J ) = 0.E+0
  129. X( J ) = 0.E+0
  130. C( J ) = 0.E+0
  131. R( J ) = 0.E+0
  132. IP( J ) = J
  133. 20 CONTINUE
  134. EQ = ' '
  135. OK = .TRUE.
  136. *
  137. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  138. *
  139. * CGESV
  140. *
  141. SRNAMT = 'CGESV '
  142. INFOT = 1
  143. CALL CGESV( -1, 0, A, 1, IP, B, 1, INFO )
  144. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  145. INFOT = 2
  146. CALL CGESV( 0, -1, A, 1, IP, B, 1, INFO )
  147. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  148. INFOT = 4
  149. CALL CGESV( 2, 1, A, 1, IP, B, 2, INFO )
  150. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  151. INFOT = 7
  152. CALL CGESV( 2, 1, A, 2, IP, B, 1, INFO )
  153. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  154. *
  155. * CGESVX
  156. *
  157. SRNAMT = 'CGESVX'
  158. INFOT = 1
  159. CALL CGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  160. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  161. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  162. INFOT = 2
  163. CALL CGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  164. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  165. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  166. INFOT = 3
  167. CALL CGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  168. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  169. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  170. INFOT = 4
  171. CALL CGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  172. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  173. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  174. INFOT = 6
  175. CALL CGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  176. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  177. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  178. INFOT = 8
  179. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  180. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  181. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  182. INFOT = 10
  183. EQ = '/'
  184. CALL CGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  185. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  186. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  187. INFOT = 11
  188. EQ = 'R'
  189. CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  190. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  191. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  192. INFOT = 12
  193. EQ = 'C'
  194. CALL CGESVX( '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( 'CGESVX', INFOT, NOUT, LERR, OK )
  197. INFOT = 14
  198. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  199. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  200. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  201. INFOT = 16
  202. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  203. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  204. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  205. *
  206. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  207. *
  208. * CGBSV
  209. *
  210. SRNAMT = 'CGBSV '
  211. INFOT = 1
  212. CALL CGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  213. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  214. INFOT = 2
  215. CALL CGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  216. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  217. INFOT = 3
  218. CALL CGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  219. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  220. INFOT = 4
  221. CALL CGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  222. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  223. INFOT = 6
  224. CALL CGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  225. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  226. INFOT = 9
  227. CALL CGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  228. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  229. *
  230. * CGBSVX
  231. *
  232. SRNAMT = 'CGBSVX'
  233. INFOT = 1
  234. CALL CGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  235. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  236. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  237. INFOT = 2
  238. CALL CGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  239. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  240. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  241. INFOT = 3
  242. CALL CGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  243. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  244. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  245. INFOT = 4
  246. CALL CGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  247. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  248. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  249. INFOT = 5
  250. CALL CGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  251. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  252. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  253. INFOT = 6
  254. CALL CGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  255. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  256. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  257. INFOT = 8
  258. CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  259. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  260. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  261. INFOT = 10
  262. CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  263. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  264. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  265. INFOT = 12
  266. EQ = '/'
  267. CALL CGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  268. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  269. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  270. INFOT = 13
  271. EQ = 'R'
  272. CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  273. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  274. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  275. INFOT = 14
  276. EQ = 'C'
  277. CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  278. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  279. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  280. INFOT = 16
  281. CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  282. $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  283. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  284. INFOT = 18
  285. CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  286. $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  287. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  288. *
  289. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  290. *
  291. * CGTSV
  292. *
  293. SRNAMT = 'CGTSV '
  294. INFOT = 1
  295. CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  296. $ INFO )
  297. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  298. INFOT = 2
  299. CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  300. $ INFO )
  301. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  302. INFOT = 7
  303. CALL CGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  304. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  305. *
  306. * CGTSVX
  307. *
  308. SRNAMT = 'CGTSVX'
  309. INFOT = 1
  310. CALL CGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  311. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  312. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  313. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  314. INFOT = 2
  315. CALL CGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  316. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  317. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  318. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  319. INFOT = 3
  320. CALL CGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  321. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  322. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  323. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  324. INFOT = 4
  325. CALL CGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  326. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  327. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  328. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  329. INFOT = 14
  330. CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  331. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  332. $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  333. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  334. INFOT = 16
  335. CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  336. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  337. $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  338. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  339. *
  340. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  341. *
  342. * CPOSV
  343. *
  344. SRNAMT = 'CPOSV '
  345. INFOT = 1
  346. CALL CPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  347. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  348. INFOT = 2
  349. CALL CPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  350. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  351. INFOT = 3
  352. CALL CPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  353. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  354. INFOT = 5
  355. CALL CPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  356. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  357. INFOT = 7
  358. CALL CPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  359. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  360. *
  361. * CPOSVX
  362. *
  363. SRNAMT = 'CPOSVX'
  364. INFOT = 1
  365. CALL CPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  366. $ RCOND, R1, R2, W, RW, INFO )
  367. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  368. INFOT = 2
  369. CALL CPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  370. $ RCOND, R1, R2, W, RW, INFO )
  371. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  372. INFOT = 3
  373. CALL CPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  374. $ RCOND, R1, R2, W, RW, INFO )
  375. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  376. INFOT = 4
  377. CALL CPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  378. $ RCOND, R1, R2, W, RW, INFO )
  379. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  380. INFOT = 6
  381. CALL CPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  382. $ RCOND, R1, R2, W, RW, INFO )
  383. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  384. INFOT = 8
  385. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  386. $ RCOND, R1, R2, W, RW, INFO )
  387. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  388. INFOT = 9
  389. EQ = '/'
  390. CALL CPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  391. $ RCOND, R1, R2, W, RW, INFO )
  392. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  393. INFOT = 10
  394. EQ = 'Y'
  395. CALL CPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  396. $ RCOND, R1, R2, W, RW, INFO )
  397. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  398. INFOT = 12
  399. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  400. $ RCOND, R1, R2, W, RW, INFO )
  401. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  402. INFOT = 14
  403. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  404. $ RCOND, R1, R2, W, RW, INFO )
  405. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  406. *
  407. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  408. *
  409. * CPPSV
  410. *
  411. SRNAMT = 'CPPSV '
  412. INFOT = 1
  413. CALL CPPSV( '/', 0, 0, A, B, 1, INFO )
  414. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  415. INFOT = 2
  416. CALL CPPSV( 'U', -1, 0, A, B, 1, INFO )
  417. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  418. INFOT = 3
  419. CALL CPPSV( 'U', 0, -1, A, B, 1, INFO )
  420. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  421. INFOT = 6
  422. CALL CPPSV( 'U', 2, 0, A, B, 1, INFO )
  423. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  424. *
  425. * CPPSVX
  426. *
  427. SRNAMT = 'CPPSVX'
  428. INFOT = 1
  429. CALL CPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  430. $ R1, R2, W, RW, INFO )
  431. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  432. INFOT = 2
  433. CALL CPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  434. $ R1, R2, W, RW, INFO )
  435. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  436. INFOT = 3
  437. CALL CPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  438. $ R1, R2, W, RW, INFO )
  439. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  440. INFOT = 4
  441. CALL CPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  442. $ R1, R2, W, RW, INFO )
  443. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  444. INFOT = 7
  445. EQ = '/'
  446. CALL CPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  447. $ R1, R2, W, RW, INFO )
  448. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  449. INFOT = 8
  450. EQ = 'Y'
  451. CALL CPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  452. $ R1, R2, W, RW, INFO )
  453. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  454. INFOT = 10
  455. CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  456. $ R1, R2, W, RW, INFO )
  457. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  458. INFOT = 12
  459. CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  460. $ R1, R2, W, RW, INFO )
  461. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  462. *
  463. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  464. *
  465. * CPBSV
  466. *
  467. SRNAMT = 'CPBSV '
  468. INFOT = 1
  469. CALL CPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  470. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  471. INFOT = 2
  472. CALL CPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  473. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  474. INFOT = 3
  475. CALL CPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  476. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  477. INFOT = 4
  478. CALL CPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  479. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  480. INFOT = 6
  481. CALL CPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  482. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  483. INFOT = 8
  484. CALL CPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  485. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  486. *
  487. * CPBSVX
  488. *
  489. SRNAMT = 'CPBSVX'
  490. INFOT = 1
  491. CALL CPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  492. $ RCOND, R1, R2, W, RW, INFO )
  493. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  494. INFOT = 2
  495. CALL CPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  496. $ RCOND, R1, R2, W, RW, INFO )
  497. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  498. INFOT = 3
  499. CALL CPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  500. $ 1, RCOND, R1, R2, W, RW, INFO )
  501. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  502. INFOT = 4
  503. CALL CPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  504. $ 1, RCOND, R1, R2, W, RW, INFO )
  505. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  506. INFOT = 5
  507. CALL CPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  508. $ 1, RCOND, R1, R2, W, RW, INFO )
  509. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  510. INFOT = 7
  511. CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  512. $ RCOND, R1, R2, W, RW, INFO )
  513. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  514. INFOT = 9
  515. CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  516. $ RCOND, R1, R2, W, RW, INFO )
  517. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  518. INFOT = 10
  519. EQ = '/'
  520. CALL CPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  521. $ RCOND, R1, R2, W, RW, INFO )
  522. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  523. INFOT = 11
  524. EQ = 'Y'
  525. CALL CPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  526. $ RCOND, R1, R2, W, RW, INFO )
  527. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  528. INFOT = 13
  529. CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  530. $ RCOND, R1, R2, W, RW, INFO )
  531. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  532. INFOT = 15
  533. CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  534. $ RCOND, R1, R2, W, RW, INFO )
  535. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  536. *
  537. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  538. *
  539. * CPTSV
  540. *
  541. SRNAMT = 'CPTSV '
  542. INFOT = 1
  543. CALL CPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
  544. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  545. INFOT = 2
  546. CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
  547. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  548. INFOT = 6
  549. CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
  550. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  551. *
  552. * CPTSVX
  553. *
  554. SRNAMT = 'CPTSVX'
  555. INFOT = 1
  556. CALL CPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  557. $ 1, RCOND, R1, R2, W, RW, INFO )
  558. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  559. INFOT = 2
  560. CALL CPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  561. $ 1, RCOND, R1, R2, W, RW, INFO )
  562. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  563. INFOT = 3
  564. CALL CPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  565. $ 1, RCOND, R1, R2, W, RW, INFO )
  566. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  567. INFOT = 9
  568. CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  569. $ 2, RCOND, R1, R2, W, RW, INFO )
  570. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  571. INFOT = 11
  572. CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
  573. $ 1, RCOND, R1, R2, W, RW, INFO )
  574. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  575. *
  576. ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
  577. *
  578. * CHESV
  579. *
  580. SRNAMT = 'CHESV '
  581. INFOT = 1
  582. CALL CHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  583. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  584. INFOT = 2
  585. CALL CHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  586. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  587. INFOT = 3
  588. CALL CHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  589. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  590. INFOT = 5
  591. CALL CHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  592. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  593. INFOT = 8
  594. CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  595. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  596. INFOT = 10
  597. CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  598. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  599. INFOT = 10
  600. CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  601. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  602. *
  603. * CHESVX
  604. *
  605. SRNAMT = 'CHESVX'
  606. INFOT = 1
  607. CALL CHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  608. $ RCOND, R1, R2, W, 1, RW, INFO )
  609. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  610. INFOT = 2
  611. CALL CHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  612. $ RCOND, R1, R2, W, 1, RW, INFO )
  613. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  614. INFOT = 3
  615. CALL CHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  616. $ RCOND, R1, R2, W, 1, RW, INFO )
  617. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  618. INFOT = 4
  619. CALL CHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  620. $ RCOND, R1, R2, W, 1, RW, INFO )
  621. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  622. INFOT = 6
  623. CALL CHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  624. $ RCOND, R1, R2, W, 4, RW, INFO )
  625. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  626. INFOT = 8
  627. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  628. $ RCOND, R1, R2, W, 4, RW, INFO )
  629. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  630. INFOT = 11
  631. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  632. $ RCOND, R1, R2, W, 4, RW, INFO )
  633. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  634. INFOT = 13
  635. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  636. $ RCOND, R1, R2, W, 4, RW, INFO )
  637. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  638. INFOT = 18
  639. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  640. $ RCOND, R1, R2, W, 3, RW, INFO )
  641. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  642. *
  643. ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
  644. *
  645. * CHESV_ROOK
  646. *
  647. SRNAMT = 'CHESV_ROOK'
  648. INFOT = 1
  649. CALL CHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  650. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  651. INFOT = 2
  652. CALL CHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  653. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  654. INFOT = 3
  655. CALL CHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  656. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  657. INFOT = 8
  658. CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  659. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  660. INFOT = 10
  661. CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  662. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  663. INFOT = 10
  664. CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  665. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  666. *
  667. ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
  668. *
  669. * CHESV_RK
  670. *
  671. * Test error exits of the driver that uses factorization
  672. * of a symmetric indefinite matrix with rook
  673. * (bounded Bunch-Kaufman) pivoting with the new storage
  674. * format for factors L ( or U) and D.
  675. *
  676. * L (or U) is stored in A, diagonal of D is stored on the
  677. * diagonal of A, subdiagonal of D is stored in a separate array E.
  678. *
  679. SRNAMT = 'CHESV_RK'
  680. INFOT = 1
  681. CALL CHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  682. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  683. INFOT = 2
  684. CALL CHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  685. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  686. INFOT = 3
  687. CALL CHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  688. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  689. INFOT = 5
  690. CALL CHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  691. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  692. INFOT = 9
  693. CALL CHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  694. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  695. INFOT = 11
  696. CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  697. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  698. INFOT = 11
  699. CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  700. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  701. *
  702. ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN
  703. *
  704. * CHESV_AASEN
  705. *
  706. SRNAMT = 'CHESV_AA'
  707. INFOT = 1
  708. CALL CHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  709. CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
  710. INFOT = 2
  711. CALL CHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  712. CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
  713. INFOT = 3
  714. CALL CHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  715. CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
  716. INFOT = 8
  717. CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  718. CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK )
  719. *
  720. ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
  721. *
  722. * CHPSV
  723. *
  724. SRNAMT = 'CHPSV '
  725. INFOT = 1
  726. CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO )
  727. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  728. INFOT = 2
  729. CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  730. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  731. INFOT = 3
  732. CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  733. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  734. INFOT = 7
  735. CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  736. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  737. *
  738. * CHPSVX
  739. *
  740. SRNAMT = 'CHPSVX'
  741. INFOT = 1
  742. CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  743. $ R2, W, RW, INFO )
  744. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  745. INFOT = 2
  746. CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  747. $ R2, W, RW, INFO )
  748. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  749. INFOT = 3
  750. CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  751. $ R2, W, RW, INFO )
  752. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  753. INFOT = 4
  754. CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  755. $ R2, W, RW, INFO )
  756. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  757. INFOT = 9
  758. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  759. $ R2, W, RW, INFO )
  760. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  761. INFOT = 11
  762. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  763. $ R2, W, RW, INFO )
  764. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  765. *
  766. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  767. *
  768. * CSYSV
  769. *
  770. SRNAMT = 'CSYSV '
  771. INFOT = 1
  772. CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  773. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  774. INFOT = 2
  775. CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  776. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  777. INFOT = 3
  778. CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  779. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  780. INFOT = 8
  781. CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  782. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  783. INFOT = 10
  784. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  785. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  786. INFOT = 10
  787. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  788. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  789. *
  790. * CSYSVX
  791. *
  792. SRNAMT = 'CSYSVX'
  793. INFOT = 1
  794. CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  795. $ RCOND, R1, R2, W, 1, RW, INFO )
  796. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  797. INFOT = 2
  798. CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  799. $ RCOND, R1, R2, W, 1, RW, INFO )
  800. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  801. INFOT = 3
  802. CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  803. $ RCOND, R1, R2, W, 1, RW, INFO )
  804. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  805. INFOT = 4
  806. CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  807. $ RCOND, R1, R2, W, 1, RW, INFO )
  808. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  809. INFOT = 6
  810. CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  811. $ RCOND, R1, R2, W, 4, RW, INFO )
  812. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  813. INFOT = 8
  814. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  815. $ RCOND, R1, R2, W, 4, RW, INFO )
  816. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  817. INFOT = 11
  818. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  819. $ RCOND, R1, R2, W, 4, RW, INFO )
  820. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  821. INFOT = 13
  822. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  823. $ RCOND, R1, R2, W, 4, RW, INFO )
  824. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  825. INFOT = 18
  826. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  827. $ RCOND, R1, R2, W, 3, RW, INFO )
  828. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  829. *
  830. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  831. *
  832. * CSYSV_ROOK
  833. *
  834. SRNAMT = 'CSYSV_ROOK'
  835. INFOT = 1
  836. CALL CSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  837. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  838. INFOT = 2
  839. CALL CSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  840. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  841. INFOT = 3
  842. CALL CSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  843. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  844. INFOT = 8
  845. CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  846. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  847. INFOT = 10
  848. CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  849. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  850. INFOT = 10
  851. CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  852. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  853. *
  854. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  855. *
  856. * CSYSV_RK
  857. *
  858. * Test error exits of the driver that uses factorization
  859. * of a symmetric indefinite matrix with rook
  860. * (bounded Bunch-Kaufman) pivoting with the new storage
  861. * format for factors L ( or U) and D.
  862. *
  863. * L (or U) is stored in A, diagonal of D is stored on the
  864. * diagonal of A, subdiagonal of D is stored in a separate array E.
  865. *
  866. SRNAMT = 'CSYSV_RK'
  867. INFOT = 1
  868. CALL CSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  869. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  870. INFOT = 2
  871. CALL CSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  872. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  873. INFOT = 3
  874. CALL CSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  875. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  876. INFOT = 5
  877. CALL CSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  878. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  879. INFOT = 9
  880. CALL CSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  881. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  882. INFOT = 11
  883. CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  884. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  885. INFOT = 11
  886. CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  887. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  888. *
  889. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  890. *
  891. * CSPSV
  892. *
  893. SRNAMT = 'CSPSV '
  894. INFOT = 1
  895. CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  896. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  897. INFOT = 2
  898. CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  899. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  900. INFOT = 3
  901. CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  902. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  903. INFOT = 7
  904. CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  905. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  906. *
  907. * CSPSVX
  908. *
  909. SRNAMT = 'CSPSVX'
  910. INFOT = 1
  911. CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  912. $ R2, W, RW, INFO )
  913. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  914. INFOT = 2
  915. CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  916. $ R2, W, RW, INFO )
  917. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  918. INFOT = 3
  919. CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  920. $ R2, W, RW, INFO )
  921. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  922. INFOT = 4
  923. CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  924. $ R2, W, RW, INFO )
  925. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  926. INFOT = 9
  927. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  928. $ R2, W, RW, INFO )
  929. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  930. INFOT = 11
  931. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  932. $ R2, W, RW, INFO )
  933. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  934. END IF
  935. *
  936. * Print a summary line.
  937. *
  938. IF( OK ) THEN
  939. WRITE( NOUT, FMT = 9999 )PATH
  940. ELSE
  941. WRITE( NOUT, FMT = 9998 )PATH
  942. END IF
  943. *
  944. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  945. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  946. $ 'exits ***' )
  947. *
  948. RETURN
  949. *
  950. * End of CERRVX
  951. *
  952. END