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.

derrst.f 36 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929
  1. *> \brief \b DERRST
  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 DERRST( 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. *> DERRST tests the error exits for DSYTRD, DORGTR, DORMTR, DSPTRD,
  25. *> DOPGTR, DOPMTR, DSTEQR, SSTERF, SSTEBZ, SSTEIN, DPTEQR, DSBTRD,
  26. *> DSYEV, SSYEVX, SSYEVD, DSBEV, SSBEVX, SSBEVD,
  27. *> DSPEV, SSPEVX, SSPEVD, DSTEV, SSTEVX, SSTEVD, and SSTEDC.
  28. *> \endverbatim
  29. *
  30. * Arguments:
  31. * ==========
  32. *
  33. *> \param[in] PATH
  34. *> \verbatim
  35. *> PATH is CHARACTER*3
  36. *> The LAPACK path name for the routines to be tested.
  37. *> \endverbatim
  38. *>
  39. *> \param[in] NUNIT
  40. *> \verbatim
  41. *> NUNIT is INTEGER
  42. *> The unit number for output.
  43. *> \endverbatim
  44. *
  45. * Authors:
  46. * ========
  47. *
  48. *> \author Univ. of Tennessee
  49. *> \author Univ. of California Berkeley
  50. *> \author Univ. of Colorado Denver
  51. *> \author NAG Ltd.
  52. *
  53. *> \date November 2011
  54. *
  55. *> \ingroup double_eig
  56. *
  57. * =====================================================================
  58. SUBROUTINE DERRST( PATH, NUNIT )
  59. *
  60. * -- LAPACK test routine (version 3.4.0) --
  61. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  62. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  63. * November 2011
  64. *
  65. * .. Scalar Arguments ..
  66. CHARACTER*3 PATH
  67. INTEGER NUNIT
  68. * ..
  69. *
  70. * =====================================================================
  71. *
  72. * NMAX has to be at least 3 or LIW may be too small
  73. * .. Parameters ..
  74. INTEGER NMAX, LIW, LW
  75. PARAMETER ( NMAX = 3, LIW = 12*NMAX, LW = 20*NMAX )
  76. * ..
  77. * .. Local Scalars ..
  78. CHARACTER*2 C2
  79. INTEGER I, INFO, J, M, N, NSPLIT, NT
  80. * ..
  81. * .. Local Arrays ..
  82. INTEGER I1( NMAX ), I2( NMAX ), I3( NMAX ), IW( LIW )
  83. DOUBLE PRECISION A( NMAX, NMAX ), C( NMAX, NMAX ), D( NMAX ),
  84. $ E( NMAX ), Q( NMAX, NMAX ), R( NMAX ),
  85. $ TAU( NMAX ), W( LW ), X( NMAX ),
  86. $ Z( NMAX, NMAX )
  87. * ..
  88. * .. External Functions ..
  89. LOGICAL LSAMEN
  90. EXTERNAL LSAMEN
  91. * ..
  92. * .. External Subroutines ..
  93. EXTERNAL CHKXER, DOPGTR, DOPMTR, DORGTR, DORMTR, DPTEQR,
  94. $ DSBEV, DSBEVD, DSBEVX, DSBTRD, DSPEV, DSPEVD,
  95. $ DSPEVX, DSPTRD, DSTEBZ, DSTEDC, DSTEIN, DSTEQR,
  96. $ DSTERF, DSTEV, DSTEVD, DSTEVR, DSTEVX, DSYEV,
  97. $ DSYEVD, DSYEVR, DSYEVX, DSYTRD
  98. * ..
  99. * .. Scalars in Common ..
  100. LOGICAL LERR, OK
  101. CHARACTER*32 SRNAMT
  102. INTEGER INFOT, NOUT
  103. * ..
  104. * .. Common blocks ..
  105. COMMON / INFOC / INFOT, NOUT, OK, LERR
  106. COMMON / SRNAMC / SRNAMT
  107. * ..
  108. * .. Intrinsic Functions ..
  109. INTRINSIC DBLE
  110. * ..
  111. * .. Executable Statements ..
  112. *
  113. NOUT = NUNIT
  114. WRITE( NOUT, FMT = * )
  115. C2 = PATH( 2: 3 )
  116. *
  117. * Set the variables to innocuous values.
  118. *
  119. DO 20 J = 1, NMAX
  120. DO 10 I = 1, NMAX
  121. A( I, J ) = 1.D0 / DBLE( I+J )
  122. 10 CONTINUE
  123. 20 CONTINUE
  124. DO 30 J = 1, NMAX
  125. D( J ) = DBLE( J )
  126. E( J ) = 0.0D0
  127. I1( J ) = J
  128. I2( J ) = J
  129. TAU( J ) = 1.D0
  130. 30 CONTINUE
  131. OK = .TRUE.
  132. NT = 0
  133. *
  134. * Test error exits for the ST path.
  135. *
  136. IF( LSAMEN( 2, C2, 'ST' ) ) THEN
  137. *
  138. * DSYTRD
  139. *
  140. SRNAMT = 'DSYTRD'
  141. INFOT = 1
  142. CALL DSYTRD( '/', 0, A, 1, D, E, TAU, W, 1, INFO )
  143. CALL CHKXER( 'DSYTRD', INFOT, NOUT, LERR, OK )
  144. INFOT = 2
  145. CALL DSYTRD( 'U', -1, A, 1, D, E, TAU, W, 1, INFO )
  146. CALL CHKXER( 'DSYTRD', INFOT, NOUT, LERR, OK )
  147. INFOT = 4
  148. CALL DSYTRD( 'U', 2, A, 1, D, E, TAU, W, 1, INFO )
  149. CALL CHKXER( 'DSYTRD', INFOT, NOUT, LERR, OK )
  150. INFOT = 9
  151. CALL DSYTRD( 'U', 0, A, 1, D, E, TAU, W, 0, INFO )
  152. CALL CHKXER( 'DSYTRD', INFOT, NOUT, LERR, OK )
  153. NT = NT + 4
  154. *
  155. * DORGTR
  156. *
  157. SRNAMT = 'DORGTR'
  158. INFOT = 1
  159. CALL DORGTR( '/', 0, A, 1, TAU, W, 1, INFO )
  160. CALL CHKXER( 'DORGTR', INFOT, NOUT, LERR, OK )
  161. INFOT = 2
  162. CALL DORGTR( 'U', -1, A, 1, TAU, W, 1, INFO )
  163. CALL CHKXER( 'DORGTR', INFOT, NOUT, LERR, OK )
  164. INFOT = 4
  165. CALL DORGTR( 'U', 2, A, 1, TAU, W, 1, INFO )
  166. CALL CHKXER( 'DORGTR', INFOT, NOUT, LERR, OK )
  167. INFOT = 7
  168. CALL DORGTR( 'U', 3, A, 3, TAU, W, 1, INFO )
  169. CALL CHKXER( 'DORGTR', INFOT, NOUT, LERR, OK )
  170. NT = NT + 4
  171. *
  172. * DORMTR
  173. *
  174. SRNAMT = 'DORMTR'
  175. INFOT = 1
  176. CALL DORMTR( '/', 'U', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  177. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  178. INFOT = 2
  179. CALL DORMTR( 'L', '/', 'N', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  180. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  181. INFOT = 3
  182. CALL DORMTR( 'L', 'U', '/', 0, 0, A, 1, TAU, C, 1, W, 1, INFO )
  183. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  184. INFOT = 4
  185. CALL DORMTR( 'L', 'U', 'N', -1, 0, A, 1, TAU, C, 1, W, 1,
  186. $ INFO )
  187. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  188. INFOT = 5
  189. CALL DORMTR( 'L', 'U', 'N', 0, -1, A, 1, TAU, C, 1, W, 1,
  190. $ INFO )
  191. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  192. INFOT = 7
  193. CALL DORMTR( 'L', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
  194. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  195. INFOT = 7
  196. CALL DORMTR( 'R', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
  197. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  198. INFOT = 10
  199. CALL DORMTR( 'L', 'U', 'N', 2, 0, A, 2, TAU, C, 1, W, 1, INFO )
  200. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  201. INFOT = 12
  202. CALL DORMTR( 'L', 'U', 'N', 0, 2, A, 1, TAU, C, 1, W, 1, INFO )
  203. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  204. INFOT = 12
  205. CALL DORMTR( 'R', 'U', 'N', 2, 0, A, 1, TAU, C, 2, W, 1, INFO )
  206. CALL CHKXER( 'DORMTR', INFOT, NOUT, LERR, OK )
  207. NT = NT + 10
  208. *
  209. * DSPTRD
  210. *
  211. SRNAMT = 'DSPTRD'
  212. INFOT = 1
  213. CALL DSPTRD( '/', 0, A, D, E, TAU, INFO )
  214. CALL CHKXER( 'DSPTRD', INFOT, NOUT, LERR, OK )
  215. INFOT = 2
  216. CALL DSPTRD( 'U', -1, A, D, E, TAU, INFO )
  217. CALL CHKXER( 'DSPTRD', INFOT, NOUT, LERR, OK )
  218. NT = NT + 2
  219. *
  220. * DOPGTR
  221. *
  222. SRNAMT = 'DOPGTR'
  223. INFOT = 1
  224. CALL DOPGTR( '/', 0, A, TAU, Z, 1, W, INFO )
  225. CALL CHKXER( 'DOPGTR', INFOT, NOUT, LERR, OK )
  226. INFOT = 2
  227. CALL DOPGTR( 'U', -1, A, TAU, Z, 1, W, INFO )
  228. CALL CHKXER( 'DOPGTR', INFOT, NOUT, LERR, OK )
  229. INFOT = 6
  230. CALL DOPGTR( 'U', 2, A, TAU, Z, 1, W, INFO )
  231. CALL CHKXER( 'DOPGTR', INFOT, NOUT, LERR, OK )
  232. NT = NT + 3
  233. *
  234. * DOPMTR
  235. *
  236. SRNAMT = 'DOPMTR'
  237. INFOT = 1
  238. CALL DOPMTR( '/', 'U', 'N', 0, 0, A, TAU, C, 1, W, INFO )
  239. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  240. INFOT = 2
  241. CALL DOPMTR( 'L', '/', 'N', 0, 0, A, TAU, C, 1, W, INFO )
  242. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  243. INFOT = 3
  244. CALL DOPMTR( 'L', 'U', '/', 0, 0, A, TAU, C, 1, W, INFO )
  245. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  246. INFOT = 4
  247. CALL DOPMTR( 'L', 'U', 'N', -1, 0, A, TAU, C, 1, W, INFO )
  248. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  249. INFOT = 5
  250. CALL DOPMTR( 'L', 'U', 'N', 0, -1, A, TAU, C, 1, W, INFO )
  251. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  252. INFOT = 9
  253. CALL DOPMTR( 'L', 'U', 'N', 2, 0, A, TAU, C, 1, W, INFO )
  254. CALL CHKXER( 'DOPMTR', INFOT, NOUT, LERR, OK )
  255. NT = NT + 6
  256. *
  257. * DPTEQR
  258. *
  259. SRNAMT = 'DPTEQR'
  260. INFOT = 1
  261. CALL DPTEQR( '/', 0, D, E, Z, 1, W, INFO )
  262. CALL CHKXER( 'DPTEQR', INFOT, NOUT, LERR, OK )
  263. INFOT = 2
  264. CALL DPTEQR( 'N', -1, D, E, Z, 1, W, INFO )
  265. CALL CHKXER( 'DPTEQR', INFOT, NOUT, LERR, OK )
  266. INFOT = 6
  267. CALL DPTEQR( 'V', 2, D, E, Z, 1, W, INFO )
  268. CALL CHKXER( 'DPTEQR', INFOT, NOUT, LERR, OK )
  269. NT = NT + 3
  270. *
  271. * DSTEBZ
  272. *
  273. SRNAMT = 'DSTEBZ'
  274. INFOT = 1
  275. CALL DSTEBZ( '/', 'E', 0, 0.0D0, 1.0D0, 1, 0, 0.0D0, D, E, M,
  276. $ NSPLIT, X, I1, I2, W, IW, INFO )
  277. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  278. INFOT = 2
  279. CALL DSTEBZ( 'A', '/', 0, 0.0D0, 0.0D0, 0, 0, 0.0D0, D, E, M,
  280. $ NSPLIT, X, I1, I2, W, IW, INFO )
  281. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  282. INFOT = 3
  283. CALL DSTEBZ( 'A', 'E', -1, 0.0D0, 0.0D0, 0, 0, 0.0D0, D, E, M,
  284. $ NSPLIT, X, I1, I2, W, IW, INFO )
  285. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  286. INFOT = 5
  287. CALL DSTEBZ( 'V', 'E', 0, 0.0D0, 0.0D0, 0, 0, 0.0D0, D, E, M,
  288. $ NSPLIT, X, I1, I2, W, IW, INFO )
  289. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  290. INFOT = 6
  291. CALL DSTEBZ( 'I', 'E', 0, 0.0D0, 0.0D0, 0, 0, 0.0D0, D, E, M,
  292. $ NSPLIT, X, I1, I2, W, IW, INFO )
  293. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  294. INFOT = 6
  295. CALL DSTEBZ( 'I', 'E', 1, 0.0D0, 0.0D0, 2, 1, 0.0D0, D, E, M,
  296. $ NSPLIT, X, I1, I2, W, IW, INFO )
  297. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  298. INFOT = 7
  299. CALL DSTEBZ( 'I', 'E', 1, 0.0D0, 0.0D0, 1, 0, 0.0D0, D, E, M,
  300. $ NSPLIT, X, I1, I2, W, IW, INFO )
  301. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  302. INFOT = 7
  303. CALL DSTEBZ( 'I', 'E', 1, 0.0D0, 0.0D0, 1, 2, 0.0D0, D, E, M,
  304. $ NSPLIT, X, I1, I2, W, IW, INFO )
  305. CALL CHKXER( 'DSTEBZ', INFOT, NOUT, LERR, OK )
  306. NT = NT + 8
  307. *
  308. * DSTEIN
  309. *
  310. SRNAMT = 'DSTEIN'
  311. INFOT = 1
  312. CALL DSTEIN( -1, D, E, 0, X, I1, I2, Z, 1, W, IW, I3, INFO )
  313. CALL CHKXER( 'DSTEIN', INFOT, NOUT, LERR, OK )
  314. INFOT = 4
  315. CALL DSTEIN( 0, D, E, -1, X, I1, I2, Z, 1, W, IW, I3, INFO )
  316. CALL CHKXER( 'DSTEIN', INFOT, NOUT, LERR, OK )
  317. INFOT = 4
  318. CALL DSTEIN( 0, D, E, 1, X, I1, I2, Z, 1, W, IW, I3, INFO )
  319. CALL CHKXER( 'DSTEIN', INFOT, NOUT, LERR, OK )
  320. INFOT = 9
  321. CALL DSTEIN( 2, D, E, 0, X, I1, I2, Z, 1, W, IW, I3, INFO )
  322. CALL CHKXER( 'DSTEIN', INFOT, NOUT, LERR, OK )
  323. NT = NT + 4
  324. *
  325. * DSTEQR
  326. *
  327. SRNAMT = 'DSTEQR'
  328. INFOT = 1
  329. CALL DSTEQR( '/', 0, D, E, Z, 1, W, INFO )
  330. CALL CHKXER( 'DSTEQR', INFOT, NOUT, LERR, OK )
  331. INFOT = 2
  332. CALL DSTEQR( 'N', -1, D, E, Z, 1, W, INFO )
  333. CALL CHKXER( 'DSTEQR', INFOT, NOUT, LERR, OK )
  334. INFOT = 6
  335. CALL DSTEQR( 'V', 2, D, E, Z, 1, W, INFO )
  336. CALL CHKXER( 'DSTEQR', INFOT, NOUT, LERR, OK )
  337. NT = NT + 3
  338. *
  339. * DSTERF
  340. *
  341. SRNAMT = 'DSTERF'
  342. INFOT = 1
  343. CALL DSTERF( -1, D, E, INFO )
  344. CALL CHKXER( 'DSTERF', INFOT, NOUT, LERR, OK )
  345. NT = NT + 1
  346. *
  347. * DSTEDC
  348. *
  349. SRNAMT = 'DSTEDC'
  350. INFOT = 1
  351. CALL DSTEDC( '/', 0, D, E, Z, 1, W, 1, IW, 1, INFO )
  352. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  353. INFOT = 2
  354. CALL DSTEDC( 'N', -1, D, E, Z, 1, W, 1, IW, 1, INFO )
  355. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  356. INFOT = 6
  357. CALL DSTEDC( 'V', 2, D, E, Z, 1, W, 23, IW, 28, INFO )
  358. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  359. INFOT = 8
  360. CALL DSTEDC( 'N', 1, D, E, Z, 1, W, 0, IW, 1, INFO )
  361. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  362. INFOT = 8
  363. CALL DSTEDC( 'I', 2, D, E, Z, 2, W, 0, IW, 12, INFO )
  364. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  365. INFOT = 8
  366. CALL DSTEDC( 'V', 2, D, E, Z, 2, W, 0, IW, 28, INFO )
  367. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  368. INFOT = 10
  369. CALL DSTEDC( 'N', 1, D, E, Z, 1, W, 1, IW, 0, INFO )
  370. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  371. INFOT = 10
  372. CALL DSTEDC( 'I', 2, D, E, Z, 2, W, 19, IW, 0, INFO )
  373. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  374. INFOT = 10
  375. CALL DSTEDC( 'V', 2, D, E, Z, 2, W, 23, IW, 0, INFO )
  376. CALL CHKXER( 'DSTEDC', INFOT, NOUT, LERR, OK )
  377. NT = NT + 9
  378. *
  379. * DSTEVD
  380. *
  381. SRNAMT = 'DSTEVD'
  382. INFOT = 1
  383. CALL DSTEVD( '/', 0, D, E, Z, 1, W, 1, IW, 1, INFO )
  384. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  385. INFOT = 2
  386. CALL DSTEVD( 'N', -1, D, E, Z, 1, W, 1, IW, 1, INFO )
  387. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  388. INFOT = 6
  389. CALL DSTEVD( 'V', 2, D, E, Z, 1, W, 19, IW, 12, INFO )
  390. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  391. INFOT = 8
  392. CALL DSTEVD( 'N', 1, D, E, Z, 1, W, 0, IW, 1, INFO )
  393. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  394. INFOT = 8
  395. CALL DSTEVD( 'V', 2, D, E, Z, 2, W, 12, IW, 12, INFO )
  396. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  397. INFOT = 10
  398. CALL DSTEVD( 'N', 0, D, E, Z, 1, W, 1, IW, 0, INFO )
  399. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  400. INFOT = 10
  401. CALL DSTEVD( 'V', 2, D, E, Z, 2, W, 19, IW, 11, INFO )
  402. CALL CHKXER( 'DSTEVD', INFOT, NOUT, LERR, OK )
  403. NT = NT + 7
  404. *
  405. * DSTEV
  406. *
  407. SRNAMT = 'DSTEV '
  408. INFOT = 1
  409. CALL DSTEV( '/', 0, D, E, Z, 1, W, INFO )
  410. CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
  411. INFOT = 2
  412. CALL DSTEV( 'N', -1, D, E, Z, 1, W, INFO )
  413. CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
  414. INFOT = 6
  415. CALL DSTEV( 'V', 2, D, E, Z, 1, W, INFO )
  416. CALL CHKXER( 'DSTEV ', INFOT, NOUT, LERR, OK )
  417. NT = NT + 3
  418. *
  419. * DSTEVX
  420. *
  421. SRNAMT = 'DSTEVX'
  422. INFOT = 1
  423. CALL DSTEVX( '/', 'A', 0, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  424. $ X, Z, 1, W, IW, I3, INFO )
  425. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  426. INFOT = 2
  427. CALL DSTEVX( 'N', '/', 0, D, E, 0.0D0, 1.0D0, 1, 0, 0.0D0, M,
  428. $ X, Z, 1, W, IW, I3, INFO )
  429. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  430. INFOT = 3
  431. CALL DSTEVX( 'N', 'A', -1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  432. $ X, Z, 1, W, IW, I3, INFO )
  433. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  434. INFOT = 7
  435. CALL DSTEVX( 'N', 'V', 1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  436. $ X, Z, 1, W, IW, I3, INFO )
  437. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  438. INFOT = 8
  439. CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  440. $ X, Z, 1, W, IW, I3, INFO )
  441. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  442. INFOT = 8
  443. CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  444. $ X, Z, 1, W, IW, I3, INFO )
  445. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  446. INFOT = 9
  447. CALL DSTEVX( 'N', 'I', 2, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  448. $ X, Z, 1, W, IW, I3, INFO )
  449. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  450. INFOT = 9
  451. CALL DSTEVX( 'N', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 2, 0.0D0, M,
  452. $ X, Z, 1, W, IW, I3, INFO )
  453. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  454. INFOT = 14
  455. CALL DSTEVX( 'V', 'A', 2, D, E, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  456. $ X, Z, 1, W, IW, I3, INFO )
  457. CALL CHKXER( 'DSTEVX', INFOT, NOUT, LERR, OK )
  458. NT = NT + 9
  459. *
  460. * DSTEVR
  461. *
  462. N = 1
  463. SRNAMT = 'DSTEVR'
  464. INFOT = 1
  465. CALL DSTEVR( '/', 'A', 0, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  466. $ R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  467. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  468. INFOT = 2
  469. CALL DSTEVR( 'V', '/', 0, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  470. $ R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  471. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  472. INFOT = 3
  473. CALL DSTEVR( 'V', 'A', -1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  474. $ R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  475. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  476. INFOT = 7
  477. CALL DSTEVR( 'V', 'V', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  478. $ R, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  479. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  480. INFOT = 8
  481. CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 0, 1, 0.0D0, M,
  482. $ W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  483. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  484. INFOT = 9
  485. N = 2
  486. CALL DSTEVR( 'V', 'I', 2, D, E, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  487. $ W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  488. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  489. INFOT = 14
  490. N = 1
  491. CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  492. $ W, Z, 0, IW, X, 20*N, IW( 2*N+1 ), 10*N, INFO )
  493. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  494. INFOT = 17
  495. CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  496. $ W, Z, 1, IW, X, 20*N-1, IW( 2*N+1 ), 10*N, INFO )
  497. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  498. INFOT = 19
  499. CALL DSTEVR( 'V', 'I', 1, D, E, 0.0D0, 0.0D0, 1, 1, 0.0D0, M,
  500. $ W, Z, 1, IW, X, 20*N, IW( 2*N+1 ), 10*N-1, INFO )
  501. CALL CHKXER( 'DSTEVR', INFOT, NOUT, LERR, OK )
  502. NT = NT + 9
  503. *
  504. * DSYEVD
  505. *
  506. SRNAMT = 'DSYEVD'
  507. INFOT = 1
  508. CALL DSYEVD( '/', 'U', 0, A, 1, X, W, 1, IW, 1, INFO )
  509. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  510. INFOT = 2
  511. CALL DSYEVD( 'N', '/', 0, A, 1, X, W, 1, IW, 1, INFO )
  512. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  513. INFOT = 3
  514. CALL DSYEVD( 'N', 'U', -1, A, 1, X, W, 1, IW, 1, INFO )
  515. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  516. INFOT = 5
  517. CALL DSYEVD( 'N', 'U', 2, A, 1, X, W, 3, IW, 1, INFO )
  518. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  519. INFOT = 8
  520. CALL DSYEVD( 'N', 'U', 1, A, 1, X, W, 0, IW, 1, INFO )
  521. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  522. INFOT = 8
  523. CALL DSYEVD( 'N', 'U', 2, A, 2, X, W, 4, IW, 1, INFO )
  524. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  525. INFOT = 8
  526. CALL DSYEVD( 'V', 'U', 2, A, 2, X, W, 20, IW, 12, INFO )
  527. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  528. INFOT = 10
  529. CALL DSYEVD( 'N', 'U', 1, A, 1, X, W, 1, IW, 0, INFO )
  530. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  531. INFOT = 10
  532. CALL DSYEVD( 'N', 'U', 2, A, 2, X, W, 5, IW, 0, INFO )
  533. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  534. INFOT = 10
  535. CALL DSYEVD( 'V', 'U', 2, A, 2, X, W, 27, IW, 11, INFO )
  536. CALL CHKXER( 'DSYEVD', INFOT, NOUT, LERR, OK )
  537. NT = NT + 10
  538. *
  539. * DSYEVR
  540. *
  541. SRNAMT = 'DSYEVR'
  542. N = 1
  543. INFOT = 1
  544. CALL DSYEVR( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  545. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  546. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  547. INFOT = 2
  548. CALL DSYEVR( 'V', '/', 'U', 0, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  549. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  550. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  551. INFOT = 3
  552. CALL DSYEVR( 'V', 'A', '/', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
  553. $ 0.0D0, M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N,
  554. $ INFO )
  555. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  556. INFOT = 4
  557. CALL DSYEVR( 'V', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 1, 1,
  558. $ 0.0D0, M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N,
  559. $ INFO )
  560. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  561. INFOT = 6
  562. CALL DSYEVR( 'V', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  563. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  564. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  565. INFOT = 8
  566. CALL DSYEVR( 'V', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  567. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  568. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  569. INFOT = 9
  570. CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 1, 0.0D0,
  571. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  572. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  573. INFOT = 10
  574. *
  575. CALL DSYEVR( 'V', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
  576. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  577. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  578. INFOT = 15
  579. CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  580. $ M, R, Z, 0, IW, Q, 26*N, IW( 2*N+1 ), 10*N, INFO )
  581. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  582. INFOT = 18
  583. CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  584. $ M, R, Z, 1, IW, Q, 26*N-1, IW( 2*N+1 ), 10*N,
  585. $ INFO )
  586. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  587. INFOT = 20
  588. CALL DSYEVR( 'V', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 1, 0.0D0,
  589. $ M, R, Z, 1, IW, Q, 26*N, IW( 2*N+1 ), 10*N-1,
  590. $ INFO )
  591. CALL CHKXER( 'DSYEVR', INFOT, NOUT, LERR, OK )
  592. NT = NT + 11
  593. *
  594. * DSYEV
  595. *
  596. SRNAMT = 'DSYEV '
  597. INFOT = 1
  598. CALL DSYEV( '/', 'U', 0, A, 1, X, W, 1, INFO )
  599. CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
  600. INFOT = 2
  601. CALL DSYEV( 'N', '/', 0, A, 1, X, W, 1, INFO )
  602. CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
  603. INFOT = 3
  604. CALL DSYEV( 'N', 'U', -1, A, 1, X, W, 1, INFO )
  605. CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
  606. INFOT = 5
  607. CALL DSYEV( 'N', 'U', 2, A, 1, X, W, 3, INFO )
  608. CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
  609. INFOT = 8
  610. CALL DSYEV( 'N', 'U', 1, A, 1, X, W, 1, INFO )
  611. CALL CHKXER( 'DSYEV ', INFOT, NOUT, LERR, OK )
  612. NT = NT + 5
  613. *
  614. * DSYEVX
  615. *
  616. SRNAMT = 'DSYEVX'
  617. INFOT = 1
  618. CALL DSYEVX( '/', 'A', 'U', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  619. $ M, X, Z, 1, W, 1, IW, I3, INFO )
  620. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  621. INFOT = 2
  622. CALL DSYEVX( 'N', '/', 'U', 0, A, 1, 0.0D0, 1.0D0, 1, 0, 0.0D0,
  623. $ M, X, Z, 1, W, 1, IW, I3, INFO )
  624. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  625. INFOT = 3
  626. CALL DSYEVX( 'N', 'A', '/', 0, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  627. $ M, X, Z, 1, W, 1, IW, I3, INFO )
  628. INFOT = 4
  629. CALL DSYEVX( 'N', 'A', 'U', -1, A, 1, 0.0D0, 0.0D0, 0, 0,
  630. $ 0.0D0, M, X, Z, 1, W, 1, IW, I3, INFO )
  631. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  632. INFOT = 6
  633. CALL DSYEVX( 'N', 'A', 'U', 2, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  634. $ M, X, Z, 1, W, 16, IW, I3, INFO )
  635. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  636. INFOT = 8
  637. CALL DSYEVX( 'N', 'V', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  638. $ M, X, Z, 1, W, 8, IW, I3, INFO )
  639. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  640. INFOT = 9
  641. CALL DSYEVX( 'N', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  642. $ M, X, Z, 1, W, 8, IW, I3, INFO )
  643. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  644. INFOT = 9
  645. CALL DSYEVX( 'N', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 2, 1, 0.0D0,
  646. $ M, X, Z, 1, W, 8, IW, I3, INFO )
  647. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  648. INFOT = 10
  649. CALL DSYEVX( 'N', 'I', 'U', 2, A, 2, 0.0D0, 0.0D0, 2, 1, 0.0D0,
  650. $ M, X, Z, 1, W, 16, IW, I3, INFO )
  651. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  652. INFOT = 10
  653. CALL DSYEVX( 'N', 'I', 'U', 1, A, 1, 0.0D0, 0.0D0, 1, 2, 0.0D0,
  654. $ M, X, Z, 1, W, 8, IW, I3, INFO )
  655. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  656. INFOT = 15
  657. CALL DSYEVX( 'V', 'A', 'U', 2, A, 2, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  658. $ M, X, Z, 1, W, 16, IW, I3, INFO )
  659. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  660. INFOT = 17
  661. CALL DSYEVX( 'V', 'A', 'U', 1, A, 1, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  662. $ M, X, Z, 1, W, 0, IW, I3, INFO )
  663. CALL CHKXER( 'DSYEVX', INFOT, NOUT, LERR, OK )
  664. NT = NT + 12
  665. *
  666. * DSPEVD
  667. *
  668. SRNAMT = 'DSPEVD'
  669. INFOT = 1
  670. CALL DSPEVD( '/', 'U', 0, A, X, Z, 1, W, 1, IW, 1, INFO )
  671. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  672. INFOT = 2
  673. CALL DSPEVD( 'N', '/', 0, A, X, Z, 1, W, 1, IW, 1, INFO )
  674. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  675. INFOT = 3
  676. CALL DSPEVD( 'N', 'U', -1, A, X, Z, 1, W, 1, IW, 1, INFO )
  677. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  678. INFOT = 7
  679. CALL DSPEVD( 'V', 'U', 2, A, X, Z, 1, W, 23, IW, 12, INFO )
  680. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  681. INFOT = 9
  682. CALL DSPEVD( 'N', 'U', 1, A, X, Z, 1, W, 0, IW, 1, INFO )
  683. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  684. INFOT = 9
  685. CALL DSPEVD( 'N', 'U', 2, A, X, Z, 1, W, 3, IW, 1, INFO )
  686. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  687. INFOT = 9
  688. CALL DSPEVD( 'V', 'U', 2, A, X, Z, 2, W, 16, IW, 12, INFO )
  689. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  690. INFOT = 11
  691. CALL DSPEVD( 'N', 'U', 1, A, X, Z, 1, W, 1, IW, 0, INFO )
  692. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  693. INFOT = 11
  694. CALL DSPEVD( 'N', 'U', 2, A, X, Z, 1, W, 4, IW, 0, INFO )
  695. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  696. INFOT = 11
  697. CALL DSPEVD( 'V', 'U', 2, A, X, Z, 2, W, 23, IW, 11, INFO )
  698. CALL CHKXER( 'DSPEVD', INFOT, NOUT, LERR, OK )
  699. NT = NT + 10
  700. *
  701. * DSPEV
  702. *
  703. SRNAMT = 'DSPEV '
  704. INFOT = 1
  705. CALL DSPEV( '/', 'U', 0, A, W, Z, 1, X, INFO )
  706. CALL CHKXER( 'DSPEV ', INFOT, NOUT, LERR, OK )
  707. INFOT = 2
  708. CALL DSPEV( 'N', '/', 0, A, W, Z, 1, X, INFO )
  709. CALL CHKXER( 'DSPEV ', INFOT, NOUT, LERR, OK )
  710. INFOT = 3
  711. CALL DSPEV( 'N', 'U', -1, A, W, Z, 1, X, INFO )
  712. CALL CHKXER( 'DSPEV ', INFOT, NOUT, LERR, OK )
  713. INFOT = 7
  714. CALL DSPEV( 'V', 'U', 2, A, W, Z, 1, X, INFO )
  715. CALL CHKXER( 'DSPEV ', INFOT, NOUT, LERR, OK )
  716. NT = NT + 4
  717. *
  718. * DSPEVX
  719. *
  720. SRNAMT = 'DSPEVX'
  721. INFOT = 1
  722. CALL DSPEVX( '/', 'A', 'U', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  723. $ X, Z, 1, W, IW, I3, INFO )
  724. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  725. INFOT = 2
  726. CALL DSPEVX( 'N', '/', 'U', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  727. $ X, Z, 1, W, IW, I3, INFO )
  728. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  729. INFOT = 3
  730. CALL DSPEVX( 'N', 'A', '/', 0, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  731. $ X, Z, 1, W, IW, I3, INFO )
  732. INFOT = 4
  733. CALL DSPEVX( 'N', 'A', 'U', -1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0,
  734. $ M, X, Z, 1, W, IW, I3, INFO )
  735. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  736. INFOT = 7
  737. CALL DSPEVX( 'N', 'V', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  738. $ X, Z, 1, W, IW, I3, INFO )
  739. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  740. INFOT = 8
  741. CALL DSPEVX( 'N', 'I', 'U', 1, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  742. $ X, Z, 1, W, IW, I3, INFO )
  743. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  744. INFOT = 8
  745. CALL DSPEVX( 'N', 'I', 'U', 1, A, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  746. $ X, Z, 1, W, IW, I3, INFO )
  747. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  748. INFOT = 9
  749. CALL DSPEVX( 'N', 'I', 'U', 2, A, 0.0D0, 0.0D0, 2, 1, 0.0D0, M,
  750. $ X, Z, 1, W, IW, I3, INFO )
  751. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  752. INFOT = 9
  753. CALL DSPEVX( 'N', 'I', 'U', 1, A, 0.0D0, 0.0D0, 1, 2, 0.0D0, M,
  754. $ X, Z, 1, W, IW, I3, INFO )
  755. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  756. INFOT = 14
  757. CALL DSPEVX( 'V', 'A', 'U', 2, A, 0.0D0, 0.0D0, 0, 0, 0.0D0, M,
  758. $ X, Z, 1, W, IW, I3, INFO )
  759. CALL CHKXER( 'DSPEVX', INFOT, NOUT, LERR, OK )
  760. NT = NT + 10
  761. *
  762. * Test error exits for the SB path.
  763. *
  764. ELSE IF( LSAMEN( 2, C2, 'SB' ) ) THEN
  765. *
  766. * DSBTRD
  767. *
  768. SRNAMT = 'DSBTRD'
  769. INFOT = 1
  770. CALL DSBTRD( '/', 'U', 0, 0, A, 1, D, E, Z, 1, W, INFO )
  771. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  772. INFOT = 2
  773. CALL DSBTRD( 'N', '/', 0, 0, A, 1, D, E, Z, 1, W, INFO )
  774. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  775. INFOT = 3
  776. CALL DSBTRD( 'N', 'U', -1, 0, A, 1, D, E, Z, 1, W, INFO )
  777. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  778. INFOT = 4
  779. CALL DSBTRD( 'N', 'U', 0, -1, A, 1, D, E, Z, 1, W, INFO )
  780. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  781. INFOT = 6
  782. CALL DSBTRD( 'N', 'U', 1, 1, A, 1, D, E, Z, 1, W, INFO )
  783. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  784. INFOT = 10
  785. CALL DSBTRD( 'V', 'U', 2, 0, A, 1, D, E, Z, 1, W, INFO )
  786. CALL CHKXER( 'DSBTRD', INFOT, NOUT, LERR, OK )
  787. NT = NT + 6
  788. *
  789. * DSBEVD
  790. *
  791. SRNAMT = 'DSBEVD'
  792. INFOT = 1
  793. CALL DSBEVD( '/', 'U', 0, 0, A, 1, X, Z, 1, W, 1, IW, 1, INFO )
  794. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  795. INFOT = 2
  796. CALL DSBEVD( 'N', '/', 0, 0, A, 1, X, Z, 1, W, 1, IW, 1, INFO )
  797. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  798. INFOT = 3
  799. CALL DSBEVD( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, 1, IW, 1,
  800. $ INFO )
  801. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  802. INFOT = 4
  803. CALL DSBEVD( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, 1, IW, 1,
  804. $ INFO )
  805. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  806. INFOT = 6
  807. CALL DSBEVD( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, 4, IW, 1, INFO )
  808. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  809. INFOT = 9
  810. CALL DSBEVD( 'V', 'U', 2, 1, A, 2, X, Z, 1, W, 25, IW, 12,
  811. $ INFO )
  812. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  813. INFOT = 11
  814. CALL DSBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 0, IW, 1, INFO )
  815. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  816. INFOT = 11
  817. CALL DSBEVD( 'N', 'U', 2, 0, A, 1, X, Z, 1, W, 3, IW, 1, INFO )
  818. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  819. INFOT = 11
  820. CALL DSBEVD( 'V', 'U', 2, 0, A, 1, X, Z, 2, W, 18, IW, 12,
  821. $ INFO )
  822. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  823. INFOT = 13
  824. CALL DSBEVD( 'N', 'U', 1, 0, A, 1, X, Z, 1, W, 1, IW, 0, INFO )
  825. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  826. INFOT = 13
  827. CALL DSBEVD( 'V', 'U', 2, 0, A, 1, X, Z, 2, W, 25, IW, 11,
  828. $ INFO )
  829. CALL CHKXER( 'DSBEVD', INFOT, NOUT, LERR, OK )
  830. NT = NT + 11
  831. *
  832. * DSBEV
  833. *
  834. SRNAMT = 'DSBEV '
  835. INFOT = 1
  836. CALL DSBEV( '/', 'U', 0, 0, A, 1, X, Z, 1, W, INFO )
  837. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  838. INFOT = 2
  839. CALL DSBEV( 'N', '/', 0, 0, A, 1, X, Z, 1, W, INFO )
  840. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  841. INFOT = 3
  842. CALL DSBEV( 'N', 'U', -1, 0, A, 1, X, Z, 1, W, INFO )
  843. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  844. INFOT = 4
  845. CALL DSBEV( 'N', 'U', 0, -1, A, 1, X, Z, 1, W, INFO )
  846. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  847. INFOT = 6
  848. CALL DSBEV( 'N', 'U', 2, 1, A, 1, X, Z, 1, W, INFO )
  849. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  850. INFOT = 9
  851. CALL DSBEV( 'V', 'U', 2, 0, A, 1, X, Z, 1, W, INFO )
  852. CALL CHKXER( 'DSBEV ', INFOT, NOUT, LERR, OK )
  853. NT = NT + 6
  854. *
  855. * DSBEVX
  856. *
  857. SRNAMT = 'DSBEVX'
  858. INFOT = 1
  859. CALL DSBEVX( '/', 'A', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  860. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  861. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  862. INFOT = 2
  863. CALL DSBEVX( 'N', '/', 'U', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  864. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  865. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  866. INFOT = 3
  867. CALL DSBEVX( 'N', 'A', '/', 0, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  868. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  869. INFOT = 4
  870. CALL DSBEVX( 'N', 'A', 'U', -1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  871. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  872. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  873. INFOT = 5
  874. CALL DSBEVX( 'N', 'A', 'U', 0, -1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  875. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  876. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  877. INFOT = 7
  878. CALL DSBEVX( 'N', 'A', 'U', 2, 1, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  879. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  880. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  881. INFOT = 9
  882. CALL DSBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  883. $ 0, 0.0D0, M, X, Z, 2, W, IW, I3, INFO )
  884. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  885. INFOT = 11
  886. CALL DSBEVX( 'N', 'V', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  887. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  888. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  889. INFOT = 12
  890. CALL DSBEVX( 'N', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 0,
  891. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  892. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  893. INFOT = 12
  894. CALL DSBEVX( 'N', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
  895. $ 1, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  896. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  897. INFOT = 13
  898. CALL DSBEVX( 'N', 'I', 'U', 2, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 2,
  899. $ 1, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  900. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  901. INFOT = 13
  902. CALL DSBEVX( 'N', 'I', 'U', 1, 0, A, 1, Q, 1, 0.0D0, 0.0D0, 1,
  903. $ 2, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  904. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  905. INFOT = 18
  906. CALL DSBEVX( 'V', 'A', 'U', 2, 0, A, 1, Q, 2, 0.0D0, 0.0D0, 0,
  907. $ 0, 0.0D0, M, X, Z, 1, W, IW, I3, INFO )
  908. CALL CHKXER( 'DSBEVX', INFOT, NOUT, LERR, OK )
  909. NT = NT + 13
  910. END IF
  911. *
  912. * Print a summary line.
  913. *
  914. IF( OK ) THEN
  915. WRITE( NOUT, FMT = 9999 )PATH, NT
  916. ELSE
  917. WRITE( NOUT, FMT = 9998 )PATH
  918. END IF
  919. *
  920. 9999 FORMAT( 1X, A3, ' routines passed the tests of the error exits',
  921. $ ' (', I3, ' tests done)' )
  922. 9998 FORMAT( ' *** ', A3, ' routines failed the tests of the error ',
  923. $ 'exits ***' )
  924. *
  925. RETURN
  926. *
  927. * End of DERRST
  928. *
  929. END