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.

derrvx.f 32 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821
  1. *> \brief \b DERRVX
  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 DERRVX( 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. *> DERRVX tests the error exits for the DOUBLE PRECISION 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 double_lin
  52. *
  53. * =====================================================================
  54. SUBROUTINE DERRVX( 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. DOUBLE PRECISION RCOND
  76. * ..
  77. * .. Local Arrays ..
  78. INTEGER IP( NMAX ), IW( NMAX )
  79. DOUBLE PRECISION 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, DGBSV, DGBSVX, DGESV, DGESVX, DGTSV,
  89. $ DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV,
  90. $ DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV,
  91. $ DSYSV_AA, DSYSV_RK, DSYSV_ROOK, DSYSVX,
  92. $ DSYSV_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 DBLE
  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.D0 / DBLE( I+J )
  117. AF( I, J ) = 1.D0 / DBLE( I+J )
  118. 10 CONTINUE
  119. B( J ) = 0.D+0
  120. E( J ) = 0.D+0
  121. R1( J ) = 0.D+0
  122. R2( J ) = 0.D+0
  123. W( J ) = 0.D+0
  124. X( J ) = 0.D+0
  125. C( J ) = 0.D+0
  126. R( J ) = 0.D+0
  127. IP( J ) = J
  128. 20 CONTINUE
  129. EQ = ' '
  130. OK = .TRUE.
  131. *
  132. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  133. *
  134. * DGESV
  135. *
  136. SRNAMT = 'DGESV '
  137. INFOT = 1
  138. CALL DGESV( -1, 0, A, 1, IP, B, 1, INFO )
  139. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  140. INFOT = 2
  141. CALL DGESV( 0, -1, A, 1, IP, B, 1, INFO )
  142. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  143. INFOT = 4
  144. CALL DGESV( 2, 1, A, 1, IP, B, 2, INFO )
  145. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  146. INFOT = 7
  147. CALL DGESV( 2, 1, A, 2, IP, B, 1, INFO )
  148. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  149. *
  150. * DGESVX
  151. *
  152. SRNAMT = 'DGESVX'
  153. INFOT = 1
  154. CALL DGESVX( '/', '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  157. INFOT = 2
  158. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  161. INFOT = 3
  162. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  165. INFOT = 4
  166. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  169. INFOT = 6
  170. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  173. INFOT = 8
  174. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  177. INFOT = 10
  178. EQ = '/'
  179. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  182. INFOT = 11
  183. EQ = 'R'
  184. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  187. INFOT = 12
  188. EQ = 'C'
  189. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  192. INFOT = 14
  193. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  196. INFOT = 16
  197. CALL DGESVX( '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( 'DGESVX', INFOT, NOUT, LERR, OK )
  200. *
  201. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  202. *
  203. * DGBSV
  204. *
  205. SRNAMT = 'DGBSV '
  206. INFOT = 1
  207. CALL DGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  208. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  209. INFOT = 2
  210. CALL DGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  211. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  212. INFOT = 3
  213. CALL DGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  214. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  215. INFOT = 4
  216. CALL DGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  217. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  218. INFOT = 6
  219. CALL DGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  220. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  221. INFOT = 9
  222. CALL DGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  223. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  224. *
  225. * DGBSVX
  226. *
  227. SRNAMT = 'DGBSVX'
  228. INFOT = 1
  229. CALL DGBSVX( '/', '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  232. INFOT = 2
  233. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  236. INFOT = 3
  237. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  240. INFOT = 4
  241. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  244. INFOT = 5
  245. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  248. INFOT = 6
  249. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  252. INFOT = 8
  253. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  256. INFOT = 10
  257. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  260. INFOT = 12
  261. EQ = '/'
  262. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  265. INFOT = 13
  266. EQ = 'R'
  267. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  270. INFOT = 14
  271. EQ = 'C'
  272. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  275. INFOT = 16
  276. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  279. INFOT = 18
  280. CALL DGBSVX( '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( 'DGBSVX', INFOT, NOUT, LERR, OK )
  283. *
  284. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  285. *
  286. * DGTSV
  287. *
  288. SRNAMT = 'DGTSV '
  289. INFOT = 1
  290. CALL DGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  291. $ INFO )
  292. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  293. INFOT = 2
  294. CALL DGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  295. $ INFO )
  296. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  297. INFOT = 7
  298. CALL DGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  299. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  300. *
  301. * DGTSVX
  302. *
  303. SRNAMT = 'DGTSVX'
  304. INFOT = 1
  305. CALL DGTSVX( '/', '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  309. INFOT = 2
  310. CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  314. INFOT = 3
  315. CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  319. INFOT = 4
  320. CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  324. INFOT = 14
  325. CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  329. INFOT = 16
  330. CALL DGTSVX( '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( 'DGTSVX', INFOT, NOUT, LERR, OK )
  334. *
  335. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  336. *
  337. * DPOSV
  338. *
  339. SRNAMT = 'DPOSV '
  340. INFOT = 1
  341. CALL DPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  342. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  343. INFOT = 2
  344. CALL DPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  345. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  346. INFOT = 3
  347. CALL DPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  348. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  349. INFOT = 5
  350. CALL DPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  351. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  352. INFOT = 7
  353. CALL DPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  354. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  355. *
  356. * DPOSVX
  357. *
  358. SRNAMT = 'DPOSVX'
  359. INFOT = 1
  360. CALL DPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  361. $ RCOND, R1, R2, W, IW, INFO )
  362. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  363. INFOT = 2
  364. CALL DPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  365. $ RCOND, R1, R2, W, IW, INFO )
  366. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  367. INFOT = 3
  368. CALL DPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  369. $ RCOND, R1, R2, W, IW, INFO )
  370. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  371. INFOT = 4
  372. CALL DPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  373. $ RCOND, R1, R2, W, IW, INFO )
  374. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  375. INFOT = 6
  376. CALL DPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  377. $ RCOND, R1, R2, W, IW, INFO )
  378. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  379. INFOT = 8
  380. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  381. $ RCOND, R1, R2, W, IW, INFO )
  382. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  383. INFOT = 9
  384. EQ = '/'
  385. CALL DPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  386. $ RCOND, R1, R2, W, IW, INFO )
  387. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  388. INFOT = 10
  389. EQ = 'Y'
  390. CALL DPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  391. $ RCOND, R1, R2, W, IW, INFO )
  392. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  393. INFOT = 12
  394. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  395. $ RCOND, R1, R2, W, IW, INFO )
  396. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  397. INFOT = 14
  398. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  399. $ RCOND, R1, R2, W, IW, INFO )
  400. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  401. *
  402. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  403. *
  404. * DPPSV
  405. *
  406. SRNAMT = 'DPPSV '
  407. INFOT = 1
  408. CALL DPPSV( '/', 0, 0, A, B, 1, INFO )
  409. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  410. INFOT = 2
  411. CALL DPPSV( 'U', -1, 0, A, B, 1, INFO )
  412. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  413. INFOT = 3
  414. CALL DPPSV( 'U', 0, -1, A, B, 1, INFO )
  415. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  416. INFOT = 6
  417. CALL DPPSV( 'U', 2, 0, A, B, 1, INFO )
  418. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  419. *
  420. * DPPSVX
  421. *
  422. SRNAMT = 'DPPSVX'
  423. INFOT = 1
  424. CALL DPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  425. $ R1, R2, W, IW, INFO )
  426. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  427. INFOT = 2
  428. CALL DPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  429. $ R1, R2, W, IW, INFO )
  430. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  431. INFOT = 3
  432. CALL DPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  433. $ R1, R2, W, IW, INFO )
  434. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  435. INFOT = 4
  436. CALL DPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  437. $ R1, R2, W, IW, INFO )
  438. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  439. INFOT = 7
  440. EQ = '/'
  441. CALL DPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  442. $ R1, R2, W, IW, INFO )
  443. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  444. INFOT = 8
  445. EQ = 'Y'
  446. CALL DPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  447. $ R1, R2, W, IW, INFO )
  448. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  449. INFOT = 10
  450. CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  451. $ R1, R2, W, IW, INFO )
  452. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  453. INFOT = 12
  454. CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  455. $ R1, R2, W, IW, INFO )
  456. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  457. *
  458. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  459. *
  460. * DPBSV
  461. *
  462. SRNAMT = 'DPBSV '
  463. INFOT = 1
  464. CALL DPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  465. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  466. INFOT = 2
  467. CALL DPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  468. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  469. INFOT = 3
  470. CALL DPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  471. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  472. INFOT = 4
  473. CALL DPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  474. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  475. INFOT = 6
  476. CALL DPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  477. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  478. INFOT = 8
  479. CALL DPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  480. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  481. *
  482. * DPBSVX
  483. *
  484. SRNAMT = 'DPBSVX'
  485. INFOT = 1
  486. CALL DPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  487. $ RCOND, R1, R2, W, IW, INFO )
  488. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  489. INFOT = 2
  490. CALL DPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  491. $ RCOND, R1, R2, W, IW, INFO )
  492. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  493. INFOT = 3
  494. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  497. INFOT = 4
  498. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  501. INFOT = 5
  502. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  505. INFOT = 7
  506. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  509. INFOT = 9
  510. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  513. INFOT = 10
  514. EQ = '/'
  515. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  518. INFOT = 11
  519. EQ = 'Y'
  520. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  523. INFOT = 13
  524. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  527. INFOT = 15
  528. CALL DPBSVX( '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( 'DPBSVX', INFOT, NOUT, LERR, OK )
  531. *
  532. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  533. *
  534. * DPTSV
  535. *
  536. SRNAMT = 'DPTSV '
  537. INFOT = 1
  538. CALL DPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  539. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  540. INFOT = 2
  541. CALL DPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  542. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  543. INFOT = 6
  544. CALL DPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  545. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  546. *
  547. * DPTSVX
  548. *
  549. SRNAMT = 'DPTSVX'
  550. INFOT = 1
  551. CALL DPTSVX( '/', 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( 'DPTSVX', INFOT, NOUT, LERR, OK )
  554. INFOT = 2
  555. CALL DPTSVX( '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( 'DPTSVX', INFOT, NOUT, LERR, OK )
  558. INFOT = 3
  559. CALL DPTSVX( '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( 'DPTSVX', INFOT, NOUT, LERR, OK )
  562. INFOT = 9
  563. CALL DPTSVX( '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( 'DPTSVX', INFOT, NOUT, LERR, OK )
  566. INFOT = 11
  567. CALL DPTSVX( '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( 'DPTSVX', INFOT, NOUT, LERR, OK )
  570. *
  571. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  572. *
  573. * DSYSV
  574. *
  575. SRNAMT = 'DSYSV '
  576. INFOT = 1
  577. CALL DSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  578. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  579. INFOT = 2
  580. CALL DSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  581. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  582. INFOT = 3
  583. CALL DSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  584. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  585. INFOT = 5
  586. CALL DSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  587. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  588. INFOT = 8
  589. CALL DSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  590. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  591. INFOT = 10
  592. CALL DSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  593. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  594. INFOT = 10
  595. CALL DSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  596. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  597. *
  598. * DSYSVX
  599. *
  600. SRNAMT = 'DSYSVX'
  601. INFOT = 1
  602. CALL DSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  603. $ RCOND, R1, R2, W, 1, IW, INFO )
  604. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  605. INFOT = 2
  606. CALL DSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  607. $ RCOND, R1, R2, W, 1, IW, INFO )
  608. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  609. INFOT = 3
  610. CALL DSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  611. $ RCOND, R1, R2, W, 1, IW, INFO )
  612. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  613. INFOT = 4
  614. CALL DSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  615. $ RCOND, R1, R2, W, 1, IW, INFO )
  616. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  617. INFOT = 6
  618. CALL DSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  619. $ RCOND, R1, R2, W, 4, IW, INFO )
  620. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  621. INFOT = 8
  622. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  623. $ RCOND, R1, R2, W, 4, IW, INFO )
  624. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  625. INFOT = 11
  626. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  627. $ RCOND, R1, R2, W, 4, IW, INFO )
  628. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  629. INFOT = 13
  630. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  631. $ RCOND, R1, R2, W, 4, IW, INFO )
  632. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  633. INFOT = 18
  634. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  635. $ RCOND, R1, R2, W, 3, IW, INFO )
  636. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  637. *
  638. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  639. *
  640. * DSYSV_ROOK
  641. *
  642. SRNAMT = 'DSYSV_ROOK'
  643. INFOT = 1
  644. CALL DSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  645. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  646. INFOT = 2
  647. CALL DSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  648. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  649. INFOT = 3
  650. CALL DSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  651. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  652. INFOT = 5
  653. CALL DSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  654. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  655. INFOT = 8
  656. CALL DSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  657. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  658. INFOT = 10
  659. CALL DSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  660. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  661. INFOT = 10
  662. CALL DSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  663. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  664. *
  665. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  666. *
  667. * DSYSV_RK
  668. *
  669. * Test error exits of the driver that uses factorization
  670. * of a symmetric indefinite matrix with rook
  671. * (bounded Bunch-Kaufman) pivoting with the new storage
  672. * format for factors L ( or U) and D.
  673. *
  674. * L (or U) is stored in A, diagonal of D is stored on the
  675. * diagonal of A, subdiagonal of D is stored in a separate array E.
  676. *
  677. SRNAMT = 'DSYSV_RK'
  678. INFOT = 1
  679. CALL DSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  680. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  681. INFOT = 2
  682. CALL DSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  683. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  684. INFOT = 3
  685. CALL DSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  686. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  687. INFOT = 5
  688. CALL DSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  689. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  690. INFOT = 9
  691. CALL DSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  692. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  693. INFOT = 11
  694. CALL DSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  695. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  696. INFOT = 11
  697. CALL DSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  698. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  699. *
  700. ELSE IF( LSAMEN( 2, C2, 'SA' ) ) THEN
  701. *
  702. * DSYSV_AASEN
  703. *
  704. SRNAMT = 'DSYSV_AA'
  705. INFOT = 1
  706. CALL DSYSV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  707. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  708. INFOT = 2
  709. CALL DSYSV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  710. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  711. INFOT = 3
  712. CALL DSYSV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  713. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  714. INFOT = 5
  715. CALL DSYSV_AA( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  716. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  717. INFOT = 8
  718. CALL DSYSV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  719. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  720. INFOT = 10
  721. CALL DSYSV_AA( 'U', 3, 1, A, 3, IP, B, 3, W, 6, INFO )
  722. CALL CHKXER( 'DSYSV_AA', INFOT, NOUT, LERR, OK )
  723. *
  724. ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN
  725. *
  726. * DSYSV_AASEN_2STAGE
  727. *
  728. SRNAMT = 'DSYSV_AA_2STAGE'
  729. INFOT = 1
  730. CALL DSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1,
  731. $ W, 1, INFO )
  732. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  733. INFOT = 2
  734. CALL DSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1,
  735. $ W, 1, INFO )
  736. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  737. INFOT = 3
  738. CALL DSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1,
  739. $ W, 1, INFO )
  740. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  741. INFOT = 5
  742. CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1,
  743. $ W, 1, INFO )
  744. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  745. INFOT = 7
  746. CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2,
  747. $ W, 1, INFO )
  748. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  749. INFOT = 11
  750. CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1,
  751. $ W, 1, INFO )
  752. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  753. INFOT = 13
  754. CALL DSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 2,
  755. $ W, 1, INFO )
  756. CALL CHKXER( 'DSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK )
  757. *
  758. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  759. *
  760. * DSPSV
  761. *
  762. SRNAMT = 'DSPSV '
  763. INFOT = 1
  764. CALL DSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  765. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  766. INFOT = 2
  767. CALL DSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  768. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  769. INFOT = 3
  770. CALL DSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  771. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  772. INFOT = 7
  773. CALL DSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  774. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  775. *
  776. * DSPSVX
  777. *
  778. SRNAMT = 'DSPSVX'
  779. INFOT = 1
  780. CALL DSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  781. $ R2, W, IW, INFO )
  782. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  783. INFOT = 2
  784. CALL DSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  785. $ R2, W, IW, INFO )
  786. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  787. INFOT = 3
  788. CALL DSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  789. $ R2, W, IW, INFO )
  790. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  791. INFOT = 4
  792. CALL DSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  793. $ R2, W, IW, INFO )
  794. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  795. INFOT = 9
  796. CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  797. $ R2, W, IW, INFO )
  798. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  799. INFOT = 11
  800. CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  801. $ R2, W, IW, INFO )
  802. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  803. END IF
  804. *
  805. * Print a summary line.
  806. *
  807. IF( OK ) THEN
  808. WRITE( NOUT, FMT = 9999 )PATH
  809. ELSE
  810. WRITE( NOUT, FMT = 9998 )PATH
  811. END IF
  812. *
  813. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  814. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  815. $ 'exits ***' )
  816. *
  817. RETURN
  818. *
  819. * End of DERRVX
  820. *
  821. END