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.

derrvxx.f 44 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044
  1. *> \brief \b DERRVXX
  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. REAL ONE
  71. PARAMETER ( ONE = 1.0D+0 )
  72. * ..
  73. * .. Local Scalars ..
  74. CHARACTER EQ
  75. CHARACTER*2 C2
  76. INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
  77. DOUBLE PRECISION RCOND, RPVGRW, BERR
  78. * ..
  79. * .. Local Arrays ..
  80. INTEGER IP( NMAX ), IW( NMAX )
  81. DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
  82. $ C( NMAX ), E( NMAX ), R( NMAX ), R1( NMAX ),
  83. $ R2( NMAX ), W( 2*NMAX ), X( NMAX ),
  84. $ ERR_BNDS_N( NMAX, 3 ), ERR_BNDS_C( NMAX, 3 ),
  85. $ PARAMS( 1 )
  86. * ..
  87. * .. External Functions ..
  88. LOGICAL LSAMEN
  89. EXTERNAL LSAMEN
  90. * ..
  91. * .. External Subroutines ..
  92. EXTERNAL CHKXER, DGBSV, DGBSVX, DGESV, DGESVX, DGTSV,
  93. $ DGTSVX, DPBSV, DPBSVX, DPOSV, DPOSVX, DPPSV,
  94. $ DPPSVX, DPTSV, DPTSVX, DSPSV, DSPSVX, DSYSV,
  95. $ DSYSV_RK, DSYSV_ROOK, DSYSVX, DGESVXX, DSYSVXX,
  96. $ DPOSVXX, DGBSVXX
  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 DBLE
  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.D0 / DBLE( I+J )
  121. AF( I, J ) = 1.D0 / DBLE( I+J )
  122. 10 CONTINUE
  123. B( J ) = 0.D+0
  124. E( J ) = 0.D+0
  125. R1( J ) = 0.D+0
  126. R2( J ) = 0.D+0
  127. W( J ) = 0.D+0
  128. X( J ) = 0.D+0
  129. C( J ) = 0.D+0
  130. R( J ) = 0.D+0
  131. IP( J ) = J
  132. 20 CONTINUE
  133. EQ = ' '
  134. OK = .TRUE.
  135. *
  136. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  137. *
  138. * DGESV
  139. *
  140. SRNAMT = 'DGESV '
  141. INFOT = 1
  142. CALL DGESV( -1, 0, A, 1, IP, B, 1, INFO )
  143. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  144. INFOT = 2
  145. CALL DGESV( 0, -1, A, 1, IP, B, 1, INFO )
  146. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  147. INFOT = 4
  148. CALL DGESV( 2, 1, A, 1, IP, B, 2, INFO )
  149. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  150. INFOT = 7
  151. CALL DGESV( 2, 1, A, 2, IP, B, 1, INFO )
  152. CALL CHKXER( 'DGESV ', INFOT, NOUT, LERR, OK )
  153. *
  154. * DGESVX
  155. *
  156. SRNAMT = 'DGESVX'
  157. INFOT = 1
  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 = 2
  162. CALL DGESVX( 'N', '/', 0, 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 = 3
  166. CALL DGESVX( 'N', 'N', -1, 0, 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 = 4
  170. CALL DGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  171. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  172. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  173. INFOT = 6
  174. CALL DGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, 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 = 8
  178. CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  179. $ X, 2, RCOND, R1, R2, W, IW, INFO )
  180. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  181. INFOT = 10
  182. EQ = '/'
  183. CALL DGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  184. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  185. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  186. INFOT = 11
  187. EQ = 'R'
  188. CALL DGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  189. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  190. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  191. INFOT = 12
  192. EQ = 'C'
  193. CALL DGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  194. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  195. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  196. INFOT = 14
  197. CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  198. $ X, 2, RCOND, R1, R2, W, IW, INFO )
  199. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  200. INFOT = 16
  201. CALL DGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  202. $ X, 1, RCOND, R1, R2, W, IW, INFO )
  203. CALL CHKXER( 'DGESVX', INFOT, NOUT, LERR, OK )
  204. *
  205. * DGESVXX
  206. *
  207. N_ERR_BNDS = 3
  208. NPARAMS = 1
  209. SRNAMT = 'DGESVXX'
  210. INFOT = 1
  211. CALL DGESVXX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  212. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  213. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  214. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  215. INFOT = 2
  216. CALL DGESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  217. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  218. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  219. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  220. INFOT = 3
  221. CALL DGESVXX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  222. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  223. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  224. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  225. INFOT = 4
  226. CALL DGESVXX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  227. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  228. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  229. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  230. INFOT = 6
  231. CALL DGESVXX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  232. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  233. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  234. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  235. INFOT = 8
  236. CALL DGESVXX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  237. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  238. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  239. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  240. INFOT = 10
  241. EQ = '/'
  242. CALL DGESVXX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  243. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  244. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  245. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  246. INFOT = 11
  247. EQ = 'R'
  248. CALL DGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  249. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  250. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  251. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  252. INFOT = 12
  253. EQ = 'C'
  254. CALL DGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  255. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  256. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  257. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  258. INFOT = 14
  259. CALL DGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  260. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  261. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  262. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  263. INFOT = 16
  264. CALL DGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  265. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  266. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  267. CALL CHKXER( 'DGESVXX', INFOT, NOUT, LERR, OK )
  268. *
  269. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  270. *
  271. * DGBSV
  272. *
  273. SRNAMT = 'DGBSV '
  274. INFOT = 1
  275. CALL DGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  276. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  277. INFOT = 2
  278. CALL DGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  279. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  280. INFOT = 3
  281. CALL DGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  282. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  283. INFOT = 4
  284. CALL DGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  285. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  286. INFOT = 6
  287. CALL DGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  288. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  289. INFOT = 9
  290. CALL DGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  291. CALL CHKXER( 'DGBSV ', INFOT, NOUT, LERR, OK )
  292. *
  293. * DGBSVX
  294. *
  295. SRNAMT = 'DGBSVX'
  296. INFOT = 1
  297. CALL DGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  298. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  299. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  300. INFOT = 2
  301. CALL DGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  302. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  303. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  304. INFOT = 3
  305. CALL DGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  306. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  307. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  308. INFOT = 4
  309. CALL DGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  310. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  311. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  312. INFOT = 5
  313. CALL DGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  314. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  315. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  316. INFOT = 6
  317. CALL DGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  318. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  319. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  320. INFOT = 8
  321. CALL DGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  322. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  323. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  324. INFOT = 10
  325. CALL DGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  326. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  327. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  328. INFOT = 12
  329. EQ = '/'
  330. CALL DGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  331. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  332. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  333. INFOT = 13
  334. EQ = 'R'
  335. CALL DGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  336. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  337. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  338. INFOT = 14
  339. EQ = 'C'
  340. CALL DGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  341. $ B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  342. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  343. INFOT = 16
  344. CALL DGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  345. $ B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  346. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  347. INFOT = 18
  348. CALL DGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  349. $ B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  350. CALL CHKXER( 'DGBSVX', INFOT, NOUT, LERR, OK )
  351. *
  352. * DGBSVXX
  353. *
  354. N_ERR_BNDS = 3
  355. NPARAMS = 1
  356. SRNAMT = 'DGBSVXX'
  357. INFOT = 1
  358. CALL DGBSVXX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  359. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  360. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  361. $ INFO )
  362. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  363. INFOT = 2
  364. CALL DGBSVXX( 'N', '/', 0, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  365. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  366. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  367. $ INFO )
  368. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  369. INFOT = 3
  370. CALL DGBSVXX( 'N', 'N', -1, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  371. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  372. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  373. $ INFO )
  374. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  375. INFOT = 4
  376. CALL DGBSVXX( 'N', 'N', 2, -1, 1, 0, A, 1, AF, 1, IP, EQ,
  377. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  378. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  379. $ INFO )
  380. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  381. INFOT = 5
  382. CALL DGBSVXX( 'N', 'N', 2, 1, -1, 0, A, 1, AF, 1, IP, EQ,
  383. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  384. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  385. $ INFO )
  386. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  387. INFOT = 6
  388. CALL DGBSVXX( 'N', 'N', 0, 1, 1, -1, A, 1, AF, 1, IP, EQ, R, C,
  389. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  390. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  391. $ INFO )
  392. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  393. INFOT = 8
  394. CALL DGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 2, AF, 2, IP, EQ, R, C,
  395. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  396. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  397. $ INFO )
  398. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  399. INFOT = 10
  400. CALL DGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, EQ, R, C,
  401. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  402. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  403. $ INFO )
  404. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  405. INFOT = 12
  406. EQ = '/'
  407. CALL DGBSVXX( 'F', 'N', 0, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  408. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  409. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  410. $ INFO )
  411. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  412. INFOT = 13
  413. EQ = 'R'
  414. CALL DGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  415. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  416. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  417. $ INFO )
  418. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  419. INFOT = 14
  420. EQ = 'C'
  421. CALL DGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  422. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  423. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  424. $ INFO )
  425. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  426. INFOT = 15
  427. CALL DGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  428. $ B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  429. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  430. $ INFO )
  431. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  432. INFOT = 16
  433. CALL DGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  434. $ B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  435. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, IW,
  436. $ INFO )
  437. CALL CHKXER( 'DGBSVXX', INFOT, NOUT, LERR, OK )
  438. *
  439. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  440. *
  441. * DGTSV
  442. *
  443. SRNAMT = 'DGTSV '
  444. INFOT = 1
  445. CALL DGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  446. $ INFO )
  447. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  448. INFOT = 2
  449. CALL DGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  450. $ INFO )
  451. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  452. INFOT = 7
  453. CALL DGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  454. CALL CHKXER( 'DGTSV ', INFOT, NOUT, LERR, OK )
  455. *
  456. * DGTSVX
  457. *
  458. SRNAMT = 'DGTSVX'
  459. INFOT = 1
  460. CALL DGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  461. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  462. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  463. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  464. INFOT = 2
  465. CALL DGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  466. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  467. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  468. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  469. INFOT = 3
  470. CALL DGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  471. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  472. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  473. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  474. INFOT = 4
  475. CALL DGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  476. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  477. $ IP, B, 1, X, 1, RCOND, R1, R2, W, IW, INFO )
  478. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  479. INFOT = 14
  480. CALL DGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  481. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  482. $ IP, B, 1, X, 2, RCOND, R1, R2, W, IW, INFO )
  483. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  484. INFOT = 16
  485. CALL DGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  486. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  487. $ IP, B, 2, X, 1, RCOND, R1, R2, W, IW, INFO )
  488. CALL CHKXER( 'DGTSVX', INFOT, NOUT, LERR, OK )
  489. *
  490. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  491. *
  492. * DPOSV
  493. *
  494. SRNAMT = 'DPOSV '
  495. INFOT = 1
  496. CALL DPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  497. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  498. INFOT = 2
  499. CALL DPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  500. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  501. INFOT = 3
  502. CALL DPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  503. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  504. INFOT = 5
  505. CALL DPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  506. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  507. INFOT = 7
  508. CALL DPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  509. CALL CHKXER( 'DPOSV ', INFOT, NOUT, LERR, OK )
  510. *
  511. * DPOSVX
  512. *
  513. SRNAMT = 'DPOSVX'
  514. INFOT = 1
  515. CALL DPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  516. $ RCOND, R1, R2, W, IW, INFO )
  517. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  518. INFOT = 2
  519. CALL DPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  520. $ RCOND, R1, R2, W, IW, INFO )
  521. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  522. INFOT = 3
  523. CALL DPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  524. $ RCOND, R1, R2, W, IW, INFO )
  525. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  526. INFOT = 4
  527. CALL DPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  528. $ RCOND, R1, R2, W, IW, INFO )
  529. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  530. INFOT = 6
  531. CALL DPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  532. $ RCOND, R1, R2, W, IW, INFO )
  533. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  534. INFOT = 8
  535. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  536. $ RCOND, R1, R2, W, IW, INFO )
  537. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  538. INFOT = 9
  539. EQ = '/'
  540. CALL DPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  541. $ RCOND, R1, R2, W, IW, INFO )
  542. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  543. INFOT = 10
  544. EQ = 'Y'
  545. CALL DPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  546. $ RCOND, R1, R2, W, IW, INFO )
  547. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  548. INFOT = 12
  549. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  550. $ RCOND, R1, R2, W, IW, INFO )
  551. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  552. INFOT = 14
  553. CALL DPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  554. $ RCOND, R1, R2, W, IW, INFO )
  555. CALL CHKXER( 'DPOSVX', INFOT, NOUT, LERR, OK )
  556. *
  557. * DPOSVXX
  558. *
  559. N_ERR_BNDS = 3
  560. NPARAMS = 1
  561. SRNAMT = 'DPOSVXX'
  562. INFOT = 1
  563. CALL DPOSVXX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  564. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  565. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  566. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  567. INFOT = 2
  568. CALL DPOSVXX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  569. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  570. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  571. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  572. INFOT = 3
  573. CALL DPOSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  574. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  575. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  576. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  577. INFOT = 4
  578. CALL DPOSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  579. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  580. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  581. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  582. INFOT = 6
  583. CALL DPOSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  584. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  585. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  586. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  587. INFOT = 8
  588. CALL DPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  589. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  590. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  591. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  592. INFOT = 9
  593. EQ = '/'
  594. CALL DPOSVXX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  595. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  596. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  597. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  598. INFOT = 10
  599. EQ = 'Y'
  600. CALL DPOSVXX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  601. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  602. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  603. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  604. INFOT = 12
  605. CALL DPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  606. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  607. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  608. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  609. INFOT = 14
  610. CALL DPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  611. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  612. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  613. CALL CHKXER( 'DPOSVXX', INFOT, NOUT, LERR, OK )
  614. *
  615. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  616. *
  617. * DPPSV
  618. *
  619. SRNAMT = 'DPPSV '
  620. INFOT = 1
  621. CALL DPPSV( '/', 0, 0, A, B, 1, INFO )
  622. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  623. INFOT = 2
  624. CALL DPPSV( 'U', -1, 0, A, B, 1, INFO )
  625. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  626. INFOT = 3
  627. CALL DPPSV( 'U', 0, -1, A, B, 1, INFO )
  628. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  629. INFOT = 6
  630. CALL DPPSV( 'U', 2, 0, A, B, 1, INFO )
  631. CALL CHKXER( 'DPPSV ', INFOT, NOUT, LERR, OK )
  632. *
  633. * DPPSVX
  634. *
  635. SRNAMT = 'DPPSVX'
  636. INFOT = 1
  637. CALL DPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  638. $ R1, R2, W, IW, INFO )
  639. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  640. INFOT = 2
  641. CALL DPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  642. $ R1, R2, W, IW, INFO )
  643. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  644. INFOT = 3
  645. CALL DPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  646. $ R1, R2, W, IW, INFO )
  647. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  648. INFOT = 4
  649. CALL DPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  650. $ R1, R2, W, IW, INFO )
  651. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  652. INFOT = 7
  653. EQ = '/'
  654. CALL DPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  655. $ R1, R2, W, IW, INFO )
  656. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  657. INFOT = 8
  658. EQ = 'Y'
  659. CALL DPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  660. $ R1, R2, W, IW, INFO )
  661. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  662. INFOT = 10
  663. CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  664. $ R1, R2, W, IW, INFO )
  665. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  666. INFOT = 12
  667. CALL DPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  668. $ R1, R2, W, IW, INFO )
  669. CALL CHKXER( 'DPPSVX', INFOT, NOUT, LERR, OK )
  670. *
  671. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  672. *
  673. * DPBSV
  674. *
  675. SRNAMT = 'DPBSV '
  676. INFOT = 1
  677. CALL DPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  678. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  679. INFOT = 2
  680. CALL DPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  681. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  682. INFOT = 3
  683. CALL DPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  684. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  685. INFOT = 4
  686. CALL DPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  687. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  688. INFOT = 6
  689. CALL DPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  690. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  691. INFOT = 8
  692. CALL DPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  693. CALL CHKXER( 'DPBSV ', INFOT, NOUT, LERR, OK )
  694. *
  695. * DPBSVX
  696. *
  697. SRNAMT = 'DPBSVX'
  698. INFOT = 1
  699. CALL DPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  700. $ RCOND, R1, R2, W, IW, INFO )
  701. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  702. INFOT = 2
  703. CALL DPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  704. $ RCOND, R1, R2, W, IW, INFO )
  705. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  706. INFOT = 3
  707. CALL DPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  708. $ 1, RCOND, R1, R2, W, IW, INFO )
  709. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  710. INFOT = 4
  711. CALL DPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  712. $ 1, RCOND, R1, R2, W, IW, INFO )
  713. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  714. INFOT = 5
  715. CALL DPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  716. $ 1, RCOND, R1, R2, W, IW, INFO )
  717. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  718. INFOT = 7
  719. CALL DPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  720. $ RCOND, R1, R2, W, IW, INFO )
  721. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  722. INFOT = 9
  723. CALL DPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  724. $ RCOND, R1, R2, W, IW, INFO )
  725. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  726. INFOT = 10
  727. EQ = '/'
  728. CALL DPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  729. $ RCOND, R1, R2, W, IW, INFO )
  730. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  731. INFOT = 11
  732. EQ = 'Y'
  733. CALL DPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  734. $ RCOND, R1, R2, W, IW, INFO )
  735. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  736. INFOT = 13
  737. CALL DPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  738. $ RCOND, R1, R2, W, IW, INFO )
  739. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  740. INFOT = 15
  741. CALL DPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  742. $ RCOND, R1, R2, W, IW, INFO )
  743. CALL CHKXER( 'DPBSVX', INFOT, NOUT, LERR, OK )
  744. *
  745. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  746. *
  747. * DPTSV
  748. *
  749. SRNAMT = 'DPTSV '
  750. INFOT = 1
  751. CALL DPTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  752. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  753. INFOT = 2
  754. CALL DPTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  755. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  756. INFOT = 6
  757. CALL DPTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), B, 1, INFO )
  758. CALL CHKXER( 'DPTSV ', INFOT, NOUT, LERR, OK )
  759. *
  760. * DPTSVX
  761. *
  762. SRNAMT = 'DPTSVX'
  763. INFOT = 1
  764. CALL DPTSVX( '/', 0, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  765. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  766. CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
  767. INFOT = 2
  768. CALL DPTSVX( 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  769. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  770. CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
  771. INFOT = 3
  772. CALL DPTSVX( 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  773. $ AF( 1, 2 ), B, 1, X, 1, RCOND, R1, R2, W, INFO )
  774. CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
  775. INFOT = 9
  776. CALL DPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  777. $ AF( 1, 2 ), B, 1, X, 2, RCOND, R1, R2, W, INFO )
  778. CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
  779. INFOT = 11
  780. CALL DPTSVX( 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), AF( 1, 1 ),
  781. $ AF( 1, 2 ), B, 2, X, 1, RCOND, R1, R2, W, INFO )
  782. CALL CHKXER( 'DPTSVX', INFOT, NOUT, LERR, OK )
  783. *
  784. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  785. *
  786. * DSYSV
  787. *
  788. SRNAMT = 'DSYSV '
  789. INFOT = 1
  790. CALL DSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  791. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  792. INFOT = 2
  793. CALL DSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  794. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  795. INFOT = 3
  796. CALL DSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  797. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  798. INFOT = 5
  799. CALL DSYSV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  800. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  801. INFOT = 8
  802. CALL DSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  803. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  804. INFOT = 10
  805. CALL DSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  806. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  807. INFOT = 10
  808. CALL DSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  809. CALL CHKXER( 'DSYSV ', INFOT, NOUT, LERR, OK )
  810. *
  811. * DSYSVX
  812. *
  813. SRNAMT = 'DSYSVX'
  814. INFOT = 1
  815. CALL DSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  816. $ RCOND, R1, R2, W, 1, IW, INFO )
  817. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  818. INFOT = 2
  819. CALL DSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  820. $ RCOND, R1, R2, W, 1, IW, INFO )
  821. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  822. INFOT = 3
  823. CALL DSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  824. $ RCOND, R1, R2, W, 1, IW, INFO )
  825. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  826. INFOT = 4
  827. CALL DSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  828. $ RCOND, R1, R2, W, 1, IW, INFO )
  829. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  830. INFOT = 6
  831. CALL DSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  832. $ RCOND, R1, R2, W, 4, IW, INFO )
  833. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  834. INFOT = 8
  835. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  836. $ RCOND, R1, R2, W, 4, IW, INFO )
  837. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  838. INFOT = 11
  839. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  840. $ RCOND, R1, R2, W, 4, IW, INFO )
  841. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  842. INFOT = 13
  843. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  844. $ RCOND, R1, R2, W, 4, IW, INFO )
  845. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  846. INFOT = 18
  847. CALL DSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  848. $ RCOND, R1, R2, W, 3, IW, INFO )
  849. CALL CHKXER( 'DSYSVX', INFOT, NOUT, LERR, OK )
  850. *
  851. * DSYSVXX
  852. *
  853. N_ERR_BNDS = 3
  854. NPARAMS = 1
  855. SRNAMT = 'DSYSVXX'
  856. INFOT = 1
  857. EQ = 'N'
  858. CALL DSYSVXX( '/', 'U', 0, 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( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  862. INFOT = 2
  863. CALL DSYSVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  864. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  865. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  866. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  867. INFOT = 3
  868. CALL DSYSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  869. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  870. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  871. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  872. INFOT = 4
  873. EQ = '/'
  874. CALL DSYSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  875. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  876. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  877. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  878. EQ = 'Y'
  879. INFOT = 6
  880. CALL DSYSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, R, B, 2, X,
  881. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  882. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  883. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  884. INFOT = 8
  885. CALL DSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, R, B, 2, X,
  886. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  887. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  888. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  889. INFOT = 10
  890. CALL DSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, 'A', R, B, 2, X,
  891. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  892. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  893. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  894. INFOT = 11
  895. EQ='Y'
  896. CALL DSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  897. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  898. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  899. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  900. INFOT = 11
  901. EQ='Y'
  902. R(1) = -ONE
  903. CALL DSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  904. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  905. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  906. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  907. INFOT = 13
  908. EQ = 'N'
  909. CALL DSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
  910. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  911. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  912. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  913. INFOT = 15
  914. CALL DSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  915. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  916. $ ERR_BNDS_C, NPARAMS, PARAMS, W, IW, INFO )
  917. CALL CHKXER( 'DSYSVXX', INFOT, NOUT, LERR, OK )
  918. *
  919. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  920. *
  921. * DSYSV_ROOK
  922. *
  923. SRNAMT = 'DSYSV_ROOK'
  924. INFOT = 1
  925. CALL DSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  926. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  927. INFOT = 2
  928. CALL DSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  929. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  930. INFOT = 3
  931. CALL DSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  932. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  933. INFOT = 5
  934. CALL DSYSV_ROOK( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  935. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  936. INFOT = 8
  937. CALL DSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  938. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  939. INFOT = 10
  940. CALL DSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  941. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  942. INFOT = 10
  943. CALL DSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  944. CALL CHKXER( 'DSYSV_ROOK', INFOT, NOUT, LERR, OK )
  945. *
  946. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  947. *
  948. * DSYSV_RK
  949. *
  950. * Test error exits of the driver that uses factorization
  951. * of a symmetric indefinite matrix with rook
  952. * (bounded Bunch-Kaufman) pivoting with the new storage
  953. * format for factors L ( or U) and D.
  954. *
  955. * L (or U) is stored in A, diagonal of D is stored on the
  956. * diagonal of A, subdiagonal of D is stored in a separate array E.
  957. *
  958. SRNAMT = 'DSYSV_RK'
  959. INFOT = 1
  960. CALL DSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  961. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  962. INFOT = 2
  963. CALL DSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  964. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  965. INFOT = 3
  966. CALL DSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  967. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  968. INFOT = 5
  969. CALL DSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  970. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  971. INFOT = 9
  972. CALL DSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  973. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  974. INFOT = 11
  975. CALL DSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  976. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  977. INFOT = 11
  978. CALL DSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  979. CALL CHKXER( 'DSYSV_RK', INFOT, NOUT, LERR, OK )
  980. *
  981. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  982. *
  983. * DSPSV
  984. *
  985. SRNAMT = 'DSPSV '
  986. INFOT = 1
  987. CALL DSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  988. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  989. INFOT = 2
  990. CALL DSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  991. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  992. INFOT = 3
  993. CALL DSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  994. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  995. INFOT = 7
  996. CALL DSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  997. CALL CHKXER( 'DSPSV ', INFOT, NOUT, LERR, OK )
  998. *
  999. * DSPSVX
  1000. *
  1001. SRNAMT = 'DSPSVX'
  1002. INFOT = 1
  1003. CALL DSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1004. $ R2, W, IW, INFO )
  1005. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1006. INFOT = 2
  1007. CALL DSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1008. $ R2, W, IW, INFO )
  1009. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1010. INFOT = 3
  1011. CALL DSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1012. $ R2, W, IW, INFO )
  1013. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1014. INFOT = 4
  1015. CALL DSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1016. $ R2, W, IW, INFO )
  1017. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1018. INFOT = 9
  1019. CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  1020. $ R2, W, IW, INFO )
  1021. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1022. INFOT = 11
  1023. CALL DSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  1024. $ R2, W, IW, INFO )
  1025. CALL CHKXER( 'DSPSVX', INFOT, NOUT, LERR, OK )
  1026. END IF
  1027. *
  1028. * Print a summary line.
  1029. *
  1030. IF( OK ) THEN
  1031. WRITE( NOUT, FMT = 9999 )PATH
  1032. ELSE
  1033. WRITE( NOUT, FMT = 9998 )PATH
  1034. END IF
  1035. *
  1036. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  1037. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  1038. $ 'exits ***' )
  1039. *
  1040. RETURN
  1041. *
  1042. * End of DERRVXX
  1043. *
  1044. END