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

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