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

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