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

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