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.

serrvxx.f 40 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970
  1. *> \brief \b SERRVXX
  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 2013
  52. *
  53. *> \ingroup single_lin
  54. *
  55. * =====================================================================
  56. SUBROUTINE SERRVX( PATH, NUNIT )
  57. *
  58. * -- LAPACK test routine (version 3.5.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 2013
  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, N_ERR_BNDS, NPARAMS
  78. REAL RCOND, RPVGRW, BERR
  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 ), ERR_BNDS_N( NMAX, 3 ),
  85. $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
  86. * ..
  87. * .. External Functions ..
  88. LOGICAL LSAMEN
  89. EXTERNAL LSAMEN
  90. * ..
  91. * .. External Subroutines ..
  92. EXTERNAL CHKXER, SGBSV, SGBSVX, SGESV, SGESVX, SGTSV,
  93. $ SGTSVX, SPBSV, SPBSVX, SPOSV, SPOSVX, SPPSV,
  94. $ SPPSVX, SPTSV, SPTSVX, SSPSV, SSPSVX, SSYSV,
  95. $ SSYSV_ROOK, SSYSVX, SGESVXX, SSYSVXX, SPOSVXX,
  96. $ SGBSVXX
  97. * ..
  98. * .. Scalars in Common ..
  99. LOGICAL LERR, OK
  100. CHARACTER*32 SRNAMT
  101. INTEGER INFOT, NOUT
  102. * ..
  103. * .. Common blocks ..
  104. COMMON / INFOC / INFOT, NOUT, OK, LERR
  105. COMMON / SRNAMC / SRNAMT
  106. * ..
  107. * .. Intrinsic Functions ..
  108. INTRINSIC REAL
  109. * ..
  110. * .. Executable Statements ..
  111. *
  112. NOUT = NUNIT
  113. WRITE( NOUT, FMT = * )
  114. C2 = PATH( 2: 3 )
  115. *
  116. * Set the variables to innocuous values.
  117. *
  118. DO 20 J = 1, NMAX
  119. DO 10 I = 1, NMAX
  120. A( I, J ) = 1. / REAL( I+J )
  121. AF( I, J ) = 1. / REAL( I+J )
  122. 10 CONTINUE
  123. B( J ) = 0.
  124. R1( J ) = 0.
  125. R2( J ) = 0.
  126. W( J ) = 0.
  127. X( J ) = 0.
  128. C( J ) = 0.
  129. R( J ) = 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. * SGESVXX
  205. *
  206. N_ERR_BNDS = 3
  207. NPARAMS = 1
  208. SRNAMT = 'SGESVXX'
  209. INFOT = 1
  210. CALL SGESVXX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  211. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  212. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  213. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  214. INFOT = 2
  215. CALL SGESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  216. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  217. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  218. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  219. INFOT = 3
  220. CALL SGESVXX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  221. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  222. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  223. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  224. INFOT = 4
  225. CALL SGESVXX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  226. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  227. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  228. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  229. INFOT = 6
  230. CALL SGESVXX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  231. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  232. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  233. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  234. INFOT = 8
  235. CALL SGESVXX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  236. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  237. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  238. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  239. INFOT = 10
  240. EQ = '/'
  241. CALL SGESVXX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  242. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  243. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  244. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  245. INFOT = 11
  246. EQ = 'R'
  247. CALL SGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  248. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  249. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  250. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  251. INFOT = 12
  252. EQ = 'C'
  253. CALL SGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  254. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  255. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  256. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  257. INFOT = 14
  258. CALL SGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  259. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  260. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  261. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  262. INFOT = 16
  263. CALL SGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  264. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  265. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  266. CALL CHKXER( 'SGESVXX', INFOT, NOUT, LERR, OK )
  267. *
  268. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  269. *
  270. * SGBSV
  271. *
  272. SRNAMT = 'SGBSV '
  273. INFOT = 1
  274. CALL SGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  275. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  276. INFOT = 2
  277. CALL SGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  278. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  279. INFOT = 3
  280. CALL SGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  281. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  282. INFOT = 4
  283. CALL SGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  284. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  285. INFOT = 6
  286. CALL SGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  287. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  288. INFOT = 9
  289. CALL SGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  290. CALL CHKXER( 'SGBSV ', INFOT, NOUT, LERR, OK )
  291. *
  292. * SGBSVX
  293. *
  294. SRNAMT = 'SGBSVX'
  295. INFOT = 1
  296. CALL SGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  297. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  298. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  299. INFOT = 2
  300. CALL SGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  301. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  302. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  303. INFOT = 3
  304. CALL SGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  305. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  306. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  307. INFOT = 4
  308. CALL SGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  309. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  310. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  311. INFOT = 5
  312. CALL SGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  313. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  314. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  315. INFOT = 6
  316. CALL SGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  317. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  318. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  319. INFOT = 8
  320. CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  321. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  322. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  323. INFOT = 10
  324. CALL SGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  325. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  326. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  327. INFOT = 12
  328. EQ = '/'
  329. CALL SGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  330. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  331. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  332. INFOT = 13
  333. EQ = 'R'
  334. CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  335. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  336. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  337. INFOT = 14
  338. EQ = 'C'
  339. CALL SGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  340. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  341. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  342. INFOT = 16
  343. CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  344. $ B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  345. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  346. INFOT = 18
  347. CALL SGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  348. $ B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  349. CALL CHKXER( 'SGBSVX', INFOT, NOUT, LERR, OK )
  350. *
  351. * SGBSVXX
  352. *
  353. N_ERR_BNDS = 3
  354. NPARAMS = 1
  355. SRNAMT = 'SGBSVXX'
  356. INFOT = 1
  357. CALL SGBSVXX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  358. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  359. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  360. $ INFO )
  361. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  362. INFOT = 2
  363. CALL SGBSVXX( 'N', '/', 0, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  364. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  365. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  366. $ INFO )
  367. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  368. INFOT = 3
  369. CALL SGBSVXX( 'N', 'N', -1, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  370. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  371. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  372. $ INFO )
  373. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  374. INFOT = 4
  375. CALL SGBSVXX( 'N', 'N', 2, -1, 1, 0, A, 1, AF, 1, IP, EQ,
  376. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  377. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  378. $ INFO )
  379. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  380. INFOT = 5
  381. CALL SGBSVXX( 'N', 'N', 2, 1, -1, 0, A, 1, AF, 1, IP, EQ,
  382. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  383. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  384. $ INFO )
  385. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  386. INFOT = 6
  387. CALL SGBSVXX( 'N', 'N', 0, 1, 1, -1, A, 1, AF, 1, IP, EQ, R, C,
  388. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  389. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  390. $ INFO )
  391. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  392. INFOT = 8
  393. CALL SGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 2, AF, 2, IP, EQ, R, C,
  394. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  395. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  396. $ INFO )
  397. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  398. INFOT = 10
  399. CALL SGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, EQ, R, C,
  400. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  401. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  402. $ INFO )
  403. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  404. INFOT = 12
  405. EQ = '/'
  406. CALL SGBSVXX( 'F', 'N', 0, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  407. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  408. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  409. $ INFO )
  410. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  411. INFOT = 13
  412. EQ = 'R'
  413. CALL SGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  414. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  415. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  416. $ INFO )
  417. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  418. INFOT = 14
  419. EQ = 'C'
  420. CALL SGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  421. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  422. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  423. $ INFO )
  424. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  425. INFOT = 15
  426. CALL SGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  427. $ B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  428. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  429. $ INFO )
  430. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  431. INFOT = 16
  432. CALL SGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  433. $ B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  434. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  435. $ INFO )
  436. CALL CHKXER( 'SGBSVXX', INFOT, NOUT, LERR, OK )
  437. *
  438. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  439. *
  440. * SGTSV
  441. *
  442. SRNAMT = 'SGTSV '
  443. INFOT = 1
  444. CALL SGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  445. $ INFO )
  446. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  447. INFOT = 2
  448. CALL SGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  449. $ INFO )
  450. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  451. INFOT = 7
  452. CALL SGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  453. CALL CHKXER( 'SGTSV ', INFOT, NOUT, LERR, OK )
  454. *
  455. * SGTSVX
  456. *
  457. SRNAMT = 'SGTSVX'
  458. INFOT = 1
  459. CALL SGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  460. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  461. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  462. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  463. INFOT = 2
  464. CALL SGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  465. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  466. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  467. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  468. INFOT = 3
  469. CALL SGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  470. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  471. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  472. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  473. INFOT = 4
  474. CALL SGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  475. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  476. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  477. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  478. INFOT = 14
  479. CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  480. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  481. $ IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  482. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  483. INFOT = 16
  484. CALL SGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  485. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  486. $ IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  487. CALL CHKXER( 'SGTSVX', INFOT, NOUT, LERR, OK )
  488. *
  489. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  490. *
  491. * SPOSV
  492. *
  493. SRNAMT = 'SPOSV '
  494. INFOT = 1
  495. CALL SPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  496. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  497. INFOT = 2
  498. CALL SPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  499. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  500. INFOT = 3
  501. CALL SPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  502. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  503. INFOT = 5
  504. CALL SPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  505. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  506. INFOT = 7
  507. CALL SPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  508. CALL CHKXER( 'SPOSV ', INFOT, NOUT, LERR, OK )
  509. *
  510. * SPOSVX
  511. *
  512. SRNAMT = 'SPOSVX'
  513. INFOT = 1
  514. CALL SPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  515. $ RCOND, R1, R2, W, IW, INFO )
  516. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  517. INFOT = 2
  518. CALL SPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  519. $ RCOND, R1, R2, W, IW, INFO )
  520. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  521. INFOT = 3
  522. CALL SPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  523. $ RCOND, R1, R2, W, IW, INFO )
  524. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  525. INFOT = 4
  526. CALL SPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  527. $ RCOND, R1, R2, W, IW, INFO )
  528. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  529. INFOT = 6
  530. CALL SPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  531. $ RCOND, R1, R2, W, IW, INFO )
  532. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  533. INFOT = 8
  534. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  535. $ RCOND, R1, R2, W, IW, INFO )
  536. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  537. INFOT = 9
  538. EQ = '/'
  539. CALL SPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  540. $ RCOND, R1, R2, W, IW, INFO )
  541. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  542. INFOT = 10
  543. EQ = 'Y'
  544. CALL SPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  545. $ RCOND, R1, R2, W, IW, INFO )
  546. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  547. INFOT = 12
  548. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  549. $ RCOND, R1, R2, W, IW, INFO )
  550. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  551. INFOT = 14
  552. CALL SPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  553. $ RCOND, R1, R2, W, IW, INFO )
  554. CALL CHKXER( 'SPOSVX', INFOT, NOUT, LERR, OK )
  555. *
  556. * SPOSVXX
  557. *
  558. N_ERR_BNDS = 3
  559. NPARAMS = 1
  560. SRNAMT = 'SPOSVXX'
  561. INFOT = 1
  562. CALL SPOSVXX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  563. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  564. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  565. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  566. INFOT = 2
  567. CALL SPOSVXX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  568. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  569. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  570. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  571. INFOT = 3
  572. CALL SPOSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  573. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  574. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  575. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  576. INFOT = 4
  577. CALL SPOSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  578. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  579. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  580. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  581. INFOT = 6
  582. CALL SPOSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  583. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  584. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  585. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  586. INFOT = 8
  587. CALL SPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  588. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  589. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  590. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  591. INFOT = 9
  592. EQ = '/'
  593. CALL SPOSVXX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  594. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  595. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  596. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  597. INFOT = 10
  598. EQ = 'Y'
  599. CALL SPOSVXX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  600. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  601. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  602. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  603. INFOT = 12
  604. CALL SPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  605. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  606. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  607. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  608. INFOT = 14
  609. CALL SPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  610. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  611. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  612. CALL CHKXER( 'SPOSVXX', INFOT, NOUT, LERR, OK )
  613. *
  614. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  615. *
  616. * SPPSV
  617. *
  618. SRNAMT = 'SPPSV '
  619. INFOT = 1
  620. CALL SPPSV( '/', 0, 0, A, B, 1, INFO )
  621. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  622. INFOT = 2
  623. CALL SPPSV( 'U', -1, 0, A, B, 1, INFO )
  624. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  625. INFOT = 3
  626. CALL SPPSV( 'U', 0, -1, A, B, 1, INFO )
  627. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  628. INFOT = 6
  629. CALL SPPSV( 'U', 2, 0, A, B, 1, INFO )
  630. CALL CHKXER( 'SPPSV ', INFOT, NOUT, LERR, OK )
  631. *
  632. * SPPSVX
  633. *
  634. SRNAMT = 'SPPSVX'
  635. INFOT = 1
  636. CALL SPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  637. $ R1, R2, W, IW, INFO )
  638. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  639. INFOT = 2
  640. CALL SPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  641. $ R1, R2, W, IW, INFO )
  642. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  643. INFOT = 3
  644. CALL SPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  645. $ R1, R2, W, IW, INFO )
  646. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  647. INFOT = 4
  648. CALL SPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  649. $ R1, R2, W, IW, INFO )
  650. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  651. INFOT = 7
  652. EQ = '/'
  653. CALL SPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  654. $ R1, R2, W, IW, INFO )
  655. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  656. INFOT = 8
  657. EQ = 'Y'
  658. CALL SPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  659. $ R1, R2, W, IW, INFO )
  660. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  661. INFOT = 10
  662. CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  663. $ R1, R2, W, IW, INFO )
  664. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  665. INFOT = 12
  666. CALL SPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  667. $ R1, R2, W, IW, INFO )
  668. CALL CHKXER( 'SPPSVX', INFOT, NOUT, LERR, OK )
  669. *
  670. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  671. *
  672. * SPBSV
  673. *
  674. SRNAMT = 'SPBSV '
  675. INFOT = 1
  676. CALL SPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  677. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  678. INFOT = 2
  679. CALL SPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  680. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  681. INFOT = 3
  682. CALL SPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  683. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  684. INFOT = 4
  685. CALL SPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  686. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  687. INFOT = 6
  688. CALL SPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  689. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  690. INFOT = 8
  691. CALL SPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  692. CALL CHKXER( 'SPBSV ', INFOT, NOUT, LERR, OK )
  693. *
  694. * SPBSVX
  695. *
  696. SRNAMT = 'SPBSVX'
  697. INFOT = 1
  698. CALL SPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  699. $ RCOND, R1, R2, W, IW, INFO )
  700. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  701. INFOT = 2
  702. CALL SPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  703. $ RCOND, R1, R2, W, IW, INFO )
  704. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  705. INFOT = 3
  706. CALL SPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  707. $ 1, RCOND, R1, R2, W, IW, INFO )
  708. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  709. INFOT = 4
  710. CALL SPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  711. $ 1, RCOND, R1, R2, W, IW, INFO )
  712. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  713. INFOT = 5
  714. CALL SPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  715. $ 1, RCOND, R1, R2, W, IW, INFO )
  716. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  717. INFOT = 7
  718. CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  719. $ RCOND, R1, R2, W, IW, INFO )
  720. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  721. INFOT = 9
  722. CALL SPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  723. $ RCOND, R1, R2, W, IW, INFO )
  724. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  725. INFOT = 10
  726. EQ = '/'
  727. CALL SPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  728. $ RCOND, R1, R2, W, IW, INFO )
  729. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  730. INFOT = 11
  731. EQ = 'Y'
  732. CALL SPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  733. $ RCOND, R1, R2, W, IW, INFO )
  734. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  735. INFOT = 13
  736. CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  737. $ RCOND, R1, R2, W, IW, INFO )
  738. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  739. INFOT = 15
  740. CALL SPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  741. $ RCOND, R1, R2, W, IW, INFO )
  742. CALL CHKXER( 'SPBSVX', INFOT, NOUT, LERR, OK )
  743. *
  744. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  745. *
  746. * SPTSV
  747. *
  748. SRNAMT = 'SPTSV '
  749. INFOT = 1
  750. CALL SPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  751. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  752. INFOT = 2
  753. CALL SPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  754. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  755. INFOT = 6
  756. CALL SPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  757. CALL CHKXER( 'SPTSV ', INFOT, NOUT, LERR, OK )
  758. *
  759. * SPTSVX
  760. *
  761. SRNAMT = 'SPTSVX'
  762. INFOT = 1
  763. CALL SPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  764. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  765. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  766. INFOT = 2
  767. CALL SPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  768. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  769. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  770. INFOT = 3
  771. CALL SPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  772. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  773. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  774. INFOT = 9
  775. CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  776. $ AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
  777. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  778. INFOT = 11
  779. CALL SPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  780. $ AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
  781. CALL CHKXER( 'SPTSVX', INFOT, NOUT, LERR, OK )
  782. *
  783. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  784. *
  785. * SSYSV
  786. *
  787. SRNAMT = 'SSYSV '
  788. INFOT = 1
  789. CALL SSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  790. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  791. INFOT = 2
  792. CALL SSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  793. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  794. INFOT = 3
  795. CALL SSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  796. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  797. INFOT = 8
  798. CALL SSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  799. CALL CHKXER( 'SSYSV ', INFOT, NOUT, LERR, OK )
  800. *
  801. * SSYSVX
  802. *
  803. SRNAMT = 'SSYSVX'
  804. INFOT = 1
  805. CALL SSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  806. $ RCOND, R1, R2, W, 1, IW, INFO )
  807. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  808. INFOT = 2
  809. CALL SSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  810. $ RCOND, R1, R2, W, 1, IW, INFO )
  811. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  812. INFOT = 3
  813. CALL SSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  814. $ RCOND, R1, R2, W, 1, IW, INFO )
  815. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  816. INFOT = 4
  817. CALL SSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  818. $ RCOND, R1, R2, W, 1, IW, INFO )
  819. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  820. INFOT = 6
  821. CALL SSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  822. $ RCOND, R1, R2, W, 4, IW, INFO )
  823. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  824. INFOT = 8
  825. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  826. $ RCOND, R1, R2, W, 4, IW, INFO )
  827. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  828. INFOT = 11
  829. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  830. $ RCOND, R1, R2, W, 4, IW, INFO )
  831. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  832. INFOT = 13
  833. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  834. $ RCOND, R1, R2, W, 4, IW, INFO )
  835. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  836. INFOT = 18
  837. CALL SSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  838. $ RCOND, R1, R2, W, 3, IW, INFO )
  839. CALL CHKXER( 'SSYSVX', INFOT, NOUT, LERR, OK )
  840. *
  841. * SSYSVXX
  842. *
  843. N_ERR_BNDS = 3
  844. NPARAMS = 1
  845. SRNAMT = 'SSYSVXX'
  846. INFOT = 1
  847. EQ = 'N'
  848. CALL SSYSVXX( '/', 'U', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  849. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  850. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  851. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  852. INFOT = 2
  853. CALL SSYSVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  854. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  855. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  856. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  857. INFOT = 3
  858. CALL SSYSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  859. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  860. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  861. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  862. INFOT = 4
  863. EQ = '/'
  864. CALL SSYSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  865. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  866. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  867. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  868. EQ = 'Y'
  869. INFOT = 6
  870. CALL SSYSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, R, B, 2, X,
  871. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  872. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  873. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  874. INFOT = 8
  875. CALL SSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, R, B, 2, X,
  876. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  877. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  878. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  879. INFOT = 12
  880. EQ = 'N'
  881. CALL SSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
  882. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  883. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  884. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  885. INFOT = 14
  886. CALL SSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  887. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  888. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  889. CALL CHKXER( 'SSYSVXX', INFOT, NOUT, LERR, OK )
  890. *
  891. * SSYSV_ROOK
  892. *
  893. SRNAMT = 'SSYSV_ROOK'
  894. INFOT = 1
  895. CALL SSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  896. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  897. INFOT = 2
  898. CALL SSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  899. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  900. INFOT = 3
  901. CALL SSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  902. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  903. INFOT = 8
  904. CALL SSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  905. CALL CHKXER( 'SSYSV_ROOK', INFOT, NOUT, LERR, OK )
  906. *
  907. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  908. *
  909. * SSPSV
  910. *
  911. SRNAMT = 'SSPSV '
  912. INFOT = 1
  913. CALL SSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  914. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  915. INFOT = 2
  916. CALL SSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  917. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  918. INFOT = 3
  919. CALL SSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  920. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  921. INFOT = 7
  922. CALL SSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  923. CALL CHKXER( 'SSPSV ', INFOT, NOUT, LERR, OK )
  924. *
  925. * SSPSVX
  926. *
  927. SRNAMT = 'SSPSVX'
  928. INFOT = 1
  929. CALL SSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  930. $ R2, W, IW, INFO )
  931. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  932. INFOT = 2
  933. CALL SSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  934. $ R2, W, IW, INFO )
  935. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  936. INFOT = 3
  937. CALL SSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  938. $ R2, W, IW, INFO )
  939. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  940. INFOT = 4
  941. CALL SSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  942. $ R2, W, IW, INFO )
  943. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  944. INFOT = 9
  945. CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  946. $ R2, W, IW, INFO )
  947. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  948. INFOT = 11
  949. CALL SSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  950. $ R2, W, IW, INFO )
  951. CALL CHKXER( 'SSPSVX', INFOT, NOUT, LERR, OK )
  952. END IF
  953. *
  954. * Print a summary line.
  955. *
  956. IF( OK ) THEN
  957. WRITE( NOUT, FMT = 9999 )PATH
  958. ELSE
  959. WRITE( NOUT, FMT = 9998 )PATH
  960. END IF
  961. *
  962. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  963. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  964. $ 'exits ***' )
  965. *
  966. RETURN
  967. *
  968. * End of SERRVX
  969. *
  970. END