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.

serrst.f 36 kB

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