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.

serrvx.f 32 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809
  1. *> \brief \b SERRVX
  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 SERRVX( 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. *> SERRVX tests the error exits for the REAL 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 single_lin
  54. *
  55. * =====================================================================
  56. SUBROUTINE SERRVX( 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 ), IW( NMAX )
  82. REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
  83. $ C( NMAX ), E( NMAX ), R( NMAX ), R1( NMAX ),
  84. $ R2( NMAX ), W( 2*NMAX ), X( NMAX )
  85. * ..
  86. * .. External Functions ..
  87. LOGICAL LSAMEN
  88. EXTERNAL LSAMEN
  89. * ..
  90. * .. External Subroutines ..
  91. EXTERNAL CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV,
  92. $ SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
  93. $ SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
  94. $ SSYSV_AA, SSYSV_RK, SSYSV_ROOK, SSYSVX,
  95. $ SSYSV_AA_2STAGE
  96. * ..
  97. * .. Scalars in Common ..
  98. LOGICAL LERR, OK
  99. CHARACTER*32 SRNAMT
  100. INTEGER INFOT, NOUT
  101. * ..
  102. * .. Common blocks ..
  103. COMMON / INFOC / INFOT, NOUT, OK, LERR
  104. COMMON / SRNAMC / SRNAMT
  105. * ..
  106. * .. Intrinsic Functions ..
  107. INTRINSIC REAL
  108. * ..
  109. * .. Executable Statements ..
  110. *
  111. NOUT = NUNIT
  112. WRITE( NOUT, FMT = * )
  113. C2 = PATH( 2: 3 )
  114. *
  115. * Set the variables to innocuous values.
  116. *
  117. DO 20 J = 1, NMAX
  118. DO 10 I = 1, NMAX
  119. A( I, J ) = 1. / REAL( I+J )
  120. AF( I, J ) = 1. / REAL( I+J )
  121. 10 CONTINUE
  122. B( J ) = 0.E+0
  123. E( J ) = 0.E+0
  124. R1( J ) = 0.E+0
  125. R2( J ) = 0.E+0
  126. W( J ) = 0.E+0
  127. X( J ) = 0.E+0
  128. C( J ) = 0.E+0
  129. R( J ) = 0.E+0
  130. IP( J ) = J
  131. 20 CONTINUE
  132. EQ = ' '
  133. OK = .TRUE.
  134. *
  135. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  136. *
  137. * SGESV
  138. *
  139. SRNAMT = 'SGESV '
  140. INFOT = 1
  141. CALL SGESV( -1, 0, A, 1, IP, B, 1, INFO )
  142. CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
  143. INFOT = 2
  144. CALL SGESV( 0, -1, A, 1, IP, B, 1, INFO )
  145. CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
  146. INFOT = 4
  147. CALL SGESV( 2, 1, A, 1, IP, B, 2, INFO )
  148. CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
  149. INFOT = 7
  150. CALL SGESV( 2, 1, A, 2, IP, B, 1, INFO )
  151. CALL CHKXER( 'SGESV ', INFOT, NOUT, LERR, OK )
  152. *
  153. * SGESVX
  154. *
  155. SRNAMT = 'SGESVX'
  156. INFOT = 1
  157. CALL SGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  158. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  159. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  160. INFOT = 2
  161. CALL SGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  162. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  163. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  164. INFOT = 3
  165. CALL SGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  166. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  167. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  168. INFOT = 4
  169. CALL SGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  170. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  171. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  172. INFOT = 6
  173. CALL SGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  174. $ X, 2, RCOND, R1, R2, W, IW, INFO )
  175. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  176. INFOT = 8
  177. CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  178. $ X, 2, RCOND, R1, R2, W, IW, INFO )
  179. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  180. INFOT = 10
  181. EQ = '/'
  182. CALL SGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  183. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  184. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  185. INFOT = 11
  186. EQ = 'R'
  187. CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  188. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  189. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  190. INFOT = 12
  191. EQ = 'C'
  192. CALL SGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  193. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  194. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  195. INFOT = 14
  196. CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  197. $ X, 2, RCOND, R1, R2, W, IW, INFO )
  198. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  199. INFOT = 16
  200. CALL SGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  201. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  202. CALL CHKXER( 'SGESVX', INFOT, NOUT, LERR, OK )
  203. *
  204. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  205. *
  206. * SGBSV
  207. *
  208. SRNAMT = 'SGBSV '
  209. INFOT = 1
  210. CALL SGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  211. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  212. INFOT = 2
  213. CALL SGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  214. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  215. INFOT = 3
  216. CALL SGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  217. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  218. INFOT = 4
  219. CALL SGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  220. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  221. INFOT = 6
  222. CALL SGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  223. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  224. INFOT = 9
  225. CALL SGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  226. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  227. *
  228. * SGBSVX
  229. *
  230. SRNAMT = 'SGBSVX'
  231. INFOT = 1
  232. CALL SGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  233. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  234. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  235. INFOT = 2
  236. CALL SGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  237. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  238. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  239. INFOT = 3
  240. CALL SGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  241. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  242. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  243. INFOT = 4
  244. CALL SGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  245. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  246. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  247. INFOT = 5
  248. CALL SGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  249. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  250. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  251. INFOT = 6
  252. CALL SGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  253. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  254. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  255. INFOT = 8
  256. CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  257. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  258. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  259. INFOT = 10
  260. CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  261. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  262. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  263. INFOT = 12
  264. EQ = '/'
  265. CALL SGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  266. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  267. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  268. INFOT = 13
  269. EQ = 'R'
  270. CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  271. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  272. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  273. INFOT = 14
  274. EQ = 'C'
  275. CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  276. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  277. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  278. INFOT = 16
  279. CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  280. $ B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  281. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  282. INFOT = 18
  283. CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  284. $ B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  285. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  286. *
  287. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  288. *
  289. * SGTSV
  290. *
  291. SRNAMT = 'SGTSV '
  292. INFOT = 1
  293. CALL SGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  294. $ INFO )
  295. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  296. INFOT = 2
  297. CALL SGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  298. $ INFO )
  299. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  300. INFOT = 7
  301. CALL SGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  302. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  303. *
  304. * SGTSVX
  305. *
  306. SRNAMT = 'SGTSVX'
  307. INFOT = 1
  308. CALL SGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  309. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  310. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  311. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  312. INFOT = 2
  313. CALL SGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  314. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  315. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  316. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  317. INFOT = 3
  318. CALL SGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  319. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  320. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  321. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  322. INFOT = 4
  323. CALL SGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  324. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  325. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  326. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  327. INFOT = 14
  328. CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  329. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  330. $ IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  331. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  332. INFOT = 16
  333. CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  334. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  335. $ IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  336. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  337. *
  338. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  339. *
  340. * SPOSV
  341. *
  342. SRNAMT = 'SPOSV '
  343. INFOT = 1
  344. CALL SPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  345. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  346. INFOT = 2
  347. CALL SPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  348. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  349. INFOT = 3
  350. CALL SPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  351. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  352. INFOT = 5
  353. CALL SPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  354. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  355. INFOT = 7
  356. CALL SPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  357. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  358. *
  359. * SPOSVX
  360. *
  361. SRNAMT = 'SPOSVX'
  362. INFOT = 1
  363. CALL SPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  364. $ RCOND, R1, R2, W, IW, INFO )
  365. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  366. INFOT = 2
  367. CALL SPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  368. $ RCOND, R1, R2, W, IW, INFO )
  369. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  370. INFOT = 3
  371. CALL SPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  372. $ RCOND, R1, R2, W, IW, INFO )
  373. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  374. INFOT = 4
  375. CALL SPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  376. $ RCOND, R1, R2, W, IW, INFO )
  377. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  378. INFOT = 6
  379. CALL SPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  380. $ RCOND, R1, R2, W, IW, INFO )
  381. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  382. INFOT = 8
  383. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  384. $ RCOND, R1, R2, W, IW, INFO )
  385. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  386. INFOT = 9
  387. EQ = '/'
  388. CALL SPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  389. $ RCOND, R1, R2, W, IW, INFO )
  390. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  391. INFOT = 10
  392. EQ = 'Y'
  393. CALL SPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  394. $ RCOND, R1, R2, W, IW, INFO )
  395. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  396. INFOT = 12
  397. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  398. $ RCOND, R1, R2, W, IW, INFO )
  399. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  400. INFOT = 14
  401. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  402. $ RCOND, R1, R2, W, IW, INFO )
  403. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  404. *
  405. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  406. *
  407. * SPPSV
  408. *
  409. SRNAMT = 'SPPSV '
  410. INFOT = 1
  411. CALL SPPSV( '/', 0, 0, A, B, 1, INFO )
  412. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  413. INFOT = 2
  414. CALL SPPSV( 'U', -1, 0, A, B, 1, INFO )
  415. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  416. INFOT = 3
  417. CALL SPPSV( 'U', 0, -1, A, B, 1, INFO )
  418. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  419. INFOT = 6
  420. CALL SPPSV( 'U', 2, 0, A, B, 1, INFO )
  421. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  422. *
  423. * SPPSVX
  424. *
  425. SRNAMT = 'SPPSVX'
  426. INFOT = 1
  427. CALL SPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  428. $ R1, R2, W, IW, INFO )
  429. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  430. INFOT = 2
  431. CALL SPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  432. $ R1, R2, W, IW, INFO )
  433. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  434. INFOT = 3
  435. CALL SPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  436. $ R1, R2, W, IW, INFO )
  437. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  438. INFOT = 4
  439. CALL SPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  440. $ R1, R2, W, IW, INFO )
  441. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  442. INFOT = 7
  443. EQ = '/'
  444. CALL SPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  445. $ R1, R2, W, IW, INFO )
  446. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  447. INFOT = 8
  448. EQ = 'Y'
  449. CALL SPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  450. $ R1, R2, W, IW, INFO )
  451. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  452. INFOT = 10
  453. CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  454. $ R1, R2, W, IW, INFO )
  455. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  456. INFOT = 12
  457. CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  458. $ R1, R2, W, IW, INFO )
  459. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  460. *
  461. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  462. *
  463. * SPBSV
  464. *
  465. SRNAMT = 'SPBSV '
  466. INFOT = 1
  467. CALL SPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  468. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  469. INFOT = 2
  470. CALL SPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  471. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  472. INFOT = 3
  473. CALL SPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  474. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  475. INFOT = 4
  476. CALL SPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  477. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  478. INFOT = 6
  479. CALL SPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  480. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  481. INFOT = 8
  482. CALL SPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  483. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  484. *
  485. * SPBSVX
  486. *
  487. SRNAMT = 'SPBSVX'
  488. INFOT = 1
  489. CALL SPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  490. $ RCOND, R1, R2, W, IW, INFO )
  491. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  492. INFOT = 2
  493. CALL SPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  494. $ RCOND, R1, R2, W, IW, INFO )
  495. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  496. INFOT = 3
  497. CALL SPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  498. $ 1, RCOND, R1, R2, W, IW, INFO )
  499. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  500. INFOT = 4
  501. CALL SPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  502. $ 1, RCOND, R1, R2, W, IW, INFO )
  503. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  504. INFOT = 5
  505. CALL SPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  506. $ 1, RCOND, R1, R2, W, IW, INFO )
  507. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  508. INFOT = 7
  509. CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  510. $ RCOND, R1, R2, W, IW, INFO )
  511. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  512. INFOT = 9
  513. CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  514. $ RCOND, R1, R2, W, IW, INFO )
  515. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  516. INFOT = 10
  517. EQ = '/'
  518. CALL SPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  519. $ RCOND, R1, R2, W, IW, INFO )
  520. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  521. INFOT = 11
  522. EQ = 'Y'
  523. CALL SPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  524. $ RCOND, R1, R2, W, IW, INFO )
  525. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  526. INFOT = 13
  527. CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  528. $ RCOND, R1, R2, W, IW, INFO )
  529. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  530. INFOT = 15
  531. CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  532. $ RCOND, R1, R2, W, IW, INFO )
  533. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  534. *
  535. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  536. *
  537. * SPTSV
  538. *
  539. SRNAMT = 'SPTSV '
  540. INFOT = 1
  541. CALL SPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  542. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  543. INFOT = 2
  544. CALL SPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  545. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  546. INFOT = 6
  547. CALL SPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  548. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  549. *
  550. * SPTSVX
  551. *
  552. SRNAMT = 'SPTSVX'
  553. INFOT = 1
  554. CALL SPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  555. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  556. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  557. INFOT = 2
  558. CALL SPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  559. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  560. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  561. INFOT = 3
  562. CALL SPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  563. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  564. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  565. INFOT = 9
  566. CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  567. $ AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
  568. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  569. INFOT = 11
  570. CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  571. $ AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
  572. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  573. *
  574. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  575. *
  576. * SSYSV
  577. *
  578. SRNAMT = 'SSYSV '
  579. INFOT = 1
  580. CALL SSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  581. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  582. INFOT = 2
  583. CALL SSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  584. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  585. INFOT = 3
  586. CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  587. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  588. INFOT = 8
  589. CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  590. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  591. INFOT = 10
  592. CALL SSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  593. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  594. INFOT = 10
  595. CALL SSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  596. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  597. *
  598. * SSYSVX
  599. *
  600. SRNAMT = 'SSYSVX'
  601. INFOT = 1
  602. CALL SSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  603. $ RCOND, R1, R2, W, 1, IW, INFO )
  604. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  605. INFOT = 2
  606. CALL SSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  607. $ RCOND, R1, R2, W, 1, IW, INFO )
  608. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  609. INFOT = 3
  610. CALL SSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  611. $ RCOND, R1, R2, W, 1, IW, INFO )
  612. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  613. INFOT = 4
  614. CALL SSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  615. $ RCOND, R1, R2, W, 1, IW, INFO )
  616. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  617. INFOT = 6
  618. CALL SSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  619. $ RCOND, R1, R2, W, 4, IW, INFO )
  620. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  621. INFOT = 8
  622. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  623. $ RCOND, R1, R2, W, 4, IW, INFO )
  624. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  625. INFOT = 11
  626. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  627. $ RCOND, R1, R2, W, 4, IW, INFO )
  628. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  629. INFOT = 13
  630. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  631. $ RCOND, R1, R2, W, 4, IW, INFO )
  632. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  633. INFOT = 18
  634. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  635. $ RCOND, R1, R2, W, 3, IW, INFO )
  636. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  637. *
  638. *
  639. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  640. *
  641. * SSYSV_ROOK
  642. *
  643. SRNAMT = 'SSYSV_ROOK'
  644. INFOT = 1
  645. CALL SSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  646. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  647. INFOT = 2
  648. CALL SSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  649. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  650. INFOT = 3
  651. CALL SSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  652. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  653. INFOT = 8
  654. CALL SSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  655. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  656. INFOT = 10
  657. CALL SSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  658. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  659. INFOT = 10
  660. CALL SSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  661. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  662. *
  663. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  664. *
  665. * SSYSV_RK
  666. *
  667. * Test error exits of the driver that uses factorization
  668. * of a symmetric indefinite matrix with rook
  669. * (bounded Bunch-Kaufman) pivoting with the new storage
  670. * format for factors L ( or U) and D.
  671. *
  672. * L (or U) is stored in A, diagonal of D is stored on the
  673. * diagonal of A, subdiagonal of D is stored in a separate array E.
  674. *
  675. SRNAMT = 'SSYSV_RK'
  676. INFOT = 1
  677. CALL SSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  678. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  679. INFOT = 2
  680. CALL SSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  681. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  682. INFOT = 3
  683. CALL SSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  684. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  685. INFOT = 5
  686. CALL SSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  687. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  688. INFOT = 9
  689. CALL SSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  690. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  691. INFOT = 11
  692. CALL SSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  693. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  694. INFOT = 11
  695. CALL SSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  696. CALL CHKXER( 'SSYSV_RK', INFOT, NOUT, LERR, OK )
  697. *
  698. ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN
  699. *
  700. * SSYSV_AA
  701. *
  702. SRNAMT = 'SSYSV_AA'
  703. INFOT = 1
  704. CALL SSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  705. CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK )
  706. INFOT = 2
  707. CALL SSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  708. CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK )
  709. INFOT = 3
  710. CALL SSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  711. CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK )
  712. INFOT = 8
  713. CALL SSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  714. CALL CHKXER( 'SSYSV_AA', INFOT, NOUT, LERR, OK )
  715. *
  716. ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
  717. *
  718. * DSYSV_AASEN_2STAGE
  719. *
  720. SRNAMT = 'SSYSV_AA_2STAGE'
  721. INFOT = 1
  722. CALL SSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  723. $ W, 1, INFO )
  724. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  725. INFOT = 2
  726. CALL SSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  727. $ W, 1, INFO )
  728. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  729. INFOT = 3
  730. CALL SSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  731. $ W, 1, INFO )
  732. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  733. INFOT = 5
  734. CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  735. $ W, 1, INFO )
  736. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  737. INFOT = 11
  738. CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  739. $ W, 1, INFO )
  740. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  741. INFOT = 7
  742. CALL SSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  743. $ W, 1, INFO )
  744. CALL CHKXER( 'SSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  745. *
  746. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  747. *
  748. * SSPSV
  749. *
  750. SRNAMT = 'SSPSV '
  751. INFOT = 1
  752. CALL SSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  753. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  754. INFOT = 2
  755. CALL SSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  756. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  757. INFOT = 3
  758. CALL SSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  759. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  760. INFOT = 7
  761. CALL SSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  762. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  763. *
  764. * SSPSVX
  765. *
  766. SRNAMT = 'SSPSVX'
  767. INFOT = 1
  768. CALL SSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  769. $ R2, W, IW, INFO )
  770. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  771. INFOT = 2
  772. CALL SSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  773. $ R2, W, IW, INFO )
  774. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  775. INFOT = 3
  776. CALL SSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  777. $ R2, W, IW, INFO )
  778. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  779. INFOT = 4
  780. CALL SSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  781. $ R2, W, IW, INFO )
  782. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  783. INFOT = 9
  784. CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  785. $ R2, W, IW, INFO )
  786. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  787. INFOT = 11
  788. CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  789. $ R2, W, IW, INFO )
  790. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  791. END IF
  792. *
  793. * Print a summary line.
  794. *
  795. IF( OK ) THEN
  796. WRITE( NOUT, FMT = 9999 )PATH
  797. ELSE
  798. WRITE( NOUT, FMT = 9998 )PATH
  799. END IF
  800. *
  801. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  802. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  803. $ 'exits ***' )
  804. *
  805. RETURN
  806. *
  807. * End of SERRVX
  808. *
  809. END