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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012
  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 November 2017
  52. *
  53. *> \ingroup complex_lin
  54. *
  55. * =====================================================================
  56. SUBROUTINE CERRVX( PATH, NUNIT )
  57. *
  58. * -- LAPACK test routine (version 3.8.0) --
  59. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  60. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  61. * November 2017
  62. *
  63. * .. Scalar Arguments ..
  64. CHARACTER*3 PATH
  65. INTEGER NUNIT
  66. * ..
  67. *
  68. * =====================================================================
  69. *
  70. * .. Parameters ..
  71. INTEGER NMAX
  72. PARAMETER ( NMAX = 4 )
  73. * ..
  74. * .. Local Scalars ..
  75. CHARACTER EQ
  76. CHARACTER*2 C2
  77. INTEGER I, INFO, J
  78. 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, CSYSV_AA_2STAGE
  98. * ..
  99. * .. Scalars in Common ..
  100. LOGICAL LERR, OK
  101. CHARACTER*32 SRNAMT
  102. INTEGER INFOT, NOUT
  103. * ..
  104. * .. Common blocks ..
  105. COMMON / INFOC / INFOT, NOUT, OK, LERR
  106. COMMON / SRNAMC / SRNAMT
  107. * ..
  108. * .. Intrinsic Functions ..
  109. INTRINSIC 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, 'H2' ) ) THEN
  721. *
  722. * CHESV_AASEN_2STAGE
  723. *
  724. SRNAMT = 'CHESV_AA_2STAGE'
  725. INFOT = 1
  726. CALL CHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  727. $ W, 1, INFO )
  728. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  729. INFOT = 2
  730. CALL CHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  731. $ W, 1, INFO )
  732. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  733. INFOT = 3
  734. CALL CHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  735. $ W, 1, INFO )
  736. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  737. INFOT = 5
  738. CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  739. $ W, 1, INFO )
  740. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  741. INFOT = 11
  742. CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  743. $ W, 1, INFO )
  744. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  745. INFOT = 7
  746. CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  747. $ W, 1, INFO )
  748. CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  749. *
  750. ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
  751. *
  752. * CSYSV_AASEN_2STAGE
  753. *
  754. SRNAMT = 'CSYSV_AA_2STAGE'
  755. INFOT = 1
  756. CALL CSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  757. $ W, 1, INFO )
  758. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  759. INFOT = 2
  760. CALL CSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  761. $ W, 1, INFO )
  762. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  763. INFOT = 3
  764. CALL CSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  765. $ W, 1, INFO )
  766. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  767. INFOT = 5
  768. CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  769. $ W, 1, INFO )
  770. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  771. INFOT = 11
  772. CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  773. $ W, 1, INFO )
  774. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  775. INFOT = 7
  776. CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  777. $ W, 1, INFO )
  778. CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  779. *
  780. ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
  781. *
  782. * CHPSV
  783. *
  784. SRNAMT = 'CHPSV '
  785. INFOT = 1
  786. CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO )
  787. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  788. INFOT = 2
  789. CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  790. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  791. INFOT = 3
  792. CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  793. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  794. INFOT = 7
  795. CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  796. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  797. *
  798. * CHPSVX
  799. *
  800. SRNAMT = 'CHPSVX'
  801. INFOT = 1
  802. CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  803. $ R2, W, RW, INFO )
  804. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  805. INFOT = 2
  806. CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  807. $ R2, W, RW, INFO )
  808. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  809. INFOT = 3
  810. CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  811. $ R2, W, RW, INFO )
  812. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  813. INFOT = 4
  814. CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  815. $ R2, W, RW, INFO )
  816. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  817. INFOT = 9
  818. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  819. $ R2, W, RW, INFO )
  820. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  821. INFOT = 11
  822. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  823. $ R2, W, RW, INFO )
  824. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  825. *
  826. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  827. *
  828. * CSYSV
  829. *
  830. SRNAMT = 'CSYSV '
  831. INFOT = 1
  832. CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  833. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  834. INFOT = 2
  835. CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  836. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  837. INFOT = 3
  838. CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  839. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  840. INFOT = 8
  841. CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  842. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  843. INFOT = 10
  844. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  845. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  846. INFOT = 10
  847. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  848. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  849. *
  850. * CSYSVX
  851. *
  852. SRNAMT = 'CSYSVX'
  853. INFOT = 1
  854. CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  855. $ RCOND, R1, R2, W, 1, RW, INFO )
  856. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  857. INFOT = 2
  858. CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  859. $ RCOND, R1, R2, W, 1, RW, INFO )
  860. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  861. INFOT = 3
  862. CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  863. $ RCOND, R1, R2, W, 1, RW, INFO )
  864. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  865. INFOT = 4
  866. CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  867. $ RCOND, R1, R2, W, 1, RW, INFO )
  868. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  869. INFOT = 6
  870. CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  871. $ RCOND, R1, R2, W, 4, RW, INFO )
  872. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  873. INFOT = 8
  874. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  875. $ RCOND, R1, R2, W, 4, RW, INFO )
  876. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  877. INFOT = 11
  878. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  879. $ RCOND, R1, R2, W, 4, RW, INFO )
  880. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  881. INFOT = 13
  882. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  883. $ RCOND, R1, R2, W, 4, RW, INFO )
  884. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  885. INFOT = 18
  886. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  887. $ RCOND, R1, R2, W, 3, RW, INFO )
  888. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  889. *
  890. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  891. *
  892. * CSYSV_ROOK
  893. *
  894. SRNAMT = 'CSYSV_ROOK'
  895. INFOT = 1
  896. CALL CSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  897. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  898. INFOT = 2
  899. CALL CSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  900. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  901. INFOT = 3
  902. CALL CSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  903. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  904. INFOT = 8
  905. CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, 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, 0, INFO )
  909. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  910. INFOT = 10
  911. CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  912. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  913. *
  914. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  915. *
  916. * CSYSV_RK
  917. *
  918. * Test error exits of the driver that uses factorization
  919. * of a symmetric indefinite matrix with rook
  920. * (bounded Bunch-Kaufman) pivoting with the new storage
  921. * format for factors L ( or U) and D.
  922. *
  923. * L (or U) is stored in A, diagonal of D is stored on the
  924. * diagonal of A, subdiagonal of D is stored in a separate array E.
  925. *
  926. SRNAMT = 'CSYSV_RK'
  927. INFOT = 1
  928. CALL CSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  929. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  930. INFOT = 2
  931. CALL CSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  932. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  933. INFOT = 3
  934. CALL CSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  935. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  936. INFOT = 5
  937. CALL CSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  938. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  939. INFOT = 9
  940. CALL CSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, 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, 0, INFO )
  944. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  945. INFOT = 11
  946. CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  947. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  948. *
  949. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  950. *
  951. * CSPSV
  952. *
  953. SRNAMT = 'CSPSV '
  954. INFOT = 1
  955. CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  956. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  957. INFOT = 2
  958. CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  959. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  960. INFOT = 3
  961. CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  962. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  963. INFOT = 7
  964. CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  965. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  966. *
  967. * CSPSVX
  968. *
  969. SRNAMT = 'CSPSVX'
  970. INFOT = 1
  971. CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  972. $ R2, W, RW, INFO )
  973. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  974. INFOT = 2
  975. CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  976. $ R2, W, RW, INFO )
  977. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  978. INFOT = 3
  979. CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  980. $ R2, W, RW, INFO )
  981. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  982. INFOT = 4
  983. CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  984. $ R2, W, RW, INFO )
  985. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  986. INFOT = 9
  987. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  988. $ R2, W, RW, INFO )
  989. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  990. INFOT = 11
  991. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  992. $ R2, W, RW, INFO )
  993. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  994. END IF
  995. *
  996. * Print a summary line.
  997. *
  998. IF( OK ) THEN
  999. WRITE( NOUT, FMT = 9999 )PATH
  1000. ELSE
  1001. WRITE( NOUT, FMT = 9998 )PATH
  1002. END IF
  1003. *
  1004. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  1005. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  1006. $ 'exits ***' )
  1007. *
  1008. RETURN
  1009. *
  1010. * End of CERRVX
  1011. *
  1012. END