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

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