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.

derrtr.f 19 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. *> \brief \b DERRTR
  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 DERRTR( 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. *> DERRTR tests the error exits for the DOUBLE PRECISION triangular
  25. *> routines.
  26. *> \endverbatim
  27. *
  28. * Arguments:
  29. * ==========
  30. *
  31. *> \param[in] PATH
  32. *> \verbatim
  33. *> PATH is CHARACTER*3
  34. *> The LAPACK path name for the routines to be tested.
  35. *> \endverbatim
  36. *>
  37. *> \param[in] NUNIT
  38. *> \verbatim
  39. *> NUNIT is INTEGER
  40. *> The unit number for output.
  41. *> \endverbatim
  42. *
  43. * Authors:
  44. * ========
  45. *
  46. *> \author Univ. of Tennessee
  47. *> \author Univ. of California Berkeley
  48. *> \author Univ. of Colorado Denver
  49. *> \author NAG Ltd.
  50. *
  51. *> \ingroup double_lin
  52. *
  53. * =====================================================================
  54. SUBROUTINE DERRTR( PATH, NUNIT )
  55. *
  56. * -- LAPACK test routine --
  57. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  58. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  59. *
  60. * .. Scalar Arguments ..
  61. CHARACTER*3 PATH
  62. INTEGER NUNIT
  63. * ..
  64. *
  65. * =====================================================================
  66. *
  67. * .. Parameters ..
  68. INTEGER NMAX
  69. PARAMETER ( NMAX = 2 )
  70. * ..
  71. * .. Local Scalars ..
  72. CHARACTER*2 C2
  73. INTEGER INFO
  74. DOUBLE PRECISION RCOND, SCALE
  75. * ..
  76. * .. Local Arrays ..
  77. INTEGER IW( NMAX )
  78. DOUBLE PRECISION A( NMAX, NMAX ), B( NMAX ), R1( NMAX ),
  79. $ R2( NMAX ), W( NMAX ), X( NMAX )
  80. * ..
  81. * .. External Functions ..
  82. LOGICAL LSAMEN
  83. EXTERNAL LSAMEN
  84. * ..
  85. * .. External Subroutines ..
  86. EXTERNAL ALAESM, CHKXER, DLATBS, DLATPS, DLATRS,
  87. $ DLATRS3, DTBCON, DTBRFS, DTBTRS, DTPCON,
  88. $ DTPRFS, DTPTRI, DTPTRS, DTRCON, DTRRFS,
  89. $ DTRTI2, DTRTRI, DTRTRS
  90. * ..
  91. * .. Scalars in Common ..
  92. LOGICAL LERR, OK
  93. CHARACTER*32 SRNAMT
  94. INTEGER INFOT, NOUT
  95. * ..
  96. * .. Common blocks ..
  97. COMMON / INFOC / INFOT, NOUT, OK, LERR
  98. COMMON / SRNAMC / SRNAMT
  99. * ..
  100. * .. Executable Statements ..
  101. *
  102. NOUT = NUNIT
  103. WRITE( NOUT, FMT = * )
  104. C2 = PATH( 2: 3 )
  105. A( 1, 1 ) = 1.D0
  106. A( 1, 2 ) = 2.D0
  107. A( 2, 2 ) = 3.D0
  108. A( 2, 1 ) = 4.D0
  109. OK = .TRUE.
  110. *
  111. IF( LSAMEN( 2, C2, 'TR' ) ) THEN
  112. *
  113. * Test error exits for the general triangular routines.
  114. *
  115. * DTRTRI
  116. *
  117. SRNAMT = 'DTRTRI'
  118. INFOT = 1
  119. CALL DTRTRI( '/', 'N', 0, A, 1, INFO )
  120. CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
  121. INFOT = 2
  122. CALL DTRTRI( 'U', '/', 0, A, 1, INFO )
  123. CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
  124. INFOT = 3
  125. CALL DTRTRI( 'U', 'N', -1, A, 1, INFO )
  126. CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
  127. INFOT = 5
  128. CALL DTRTRI( 'U', 'N', 2, A, 1, INFO )
  129. CALL CHKXER( 'DTRTRI', INFOT, NOUT, LERR, OK )
  130. *
  131. * DTRTI2
  132. *
  133. SRNAMT = 'DTRTI2'
  134. INFOT = 1
  135. CALL DTRTI2( '/', 'N', 0, A, 1, INFO )
  136. CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
  137. INFOT = 2
  138. CALL DTRTI2( 'U', '/', 0, A, 1, INFO )
  139. CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
  140. INFOT = 3
  141. CALL DTRTI2( 'U', 'N', -1, A, 1, INFO )
  142. CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
  143. INFOT = 5
  144. CALL DTRTI2( 'U', 'N', 2, A, 1, INFO )
  145. CALL CHKXER( 'DTRTI2', INFOT, NOUT, LERR, OK )
  146. *
  147. * DTRTRS
  148. *
  149. SRNAMT = 'DTRTRS'
  150. INFOT = 1
  151. CALL DTRTRS( '/', 'N', 'N', 0, 0, A, 1, X, 1, INFO )
  152. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  153. INFOT = 2
  154. CALL DTRTRS( 'U', '/', 'N', 0, 0, A, 1, X, 1, INFO )
  155. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  156. INFOT = 3
  157. CALL DTRTRS( 'U', 'N', '/', 0, 0, A, 1, X, 1, INFO )
  158. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  159. INFOT = 4
  160. CALL DTRTRS( 'U', 'N', 'N', -1, 0, A, 1, X, 1, INFO )
  161. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  162. INFOT = 5
  163. CALL DTRTRS( 'U', 'N', 'N', 0, -1, A, 1, X, 1, INFO )
  164. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  165. INFOT = 7
  166. CALL DTRTRS( 'U', 'N', 'N', 2, 1, A, 1, X, 2, INFO )
  167. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  168. INFOT = 9
  169. CALL DTRTRS( 'U', 'N', 'N', 2, 1, A, 2, X, 1, INFO )
  170. CALL CHKXER( 'DTRTRS', INFOT, NOUT, LERR, OK )
  171. *
  172. * DTRRFS
  173. *
  174. SRNAMT = 'DTRRFS'
  175. INFOT = 1
  176. CALL DTRRFS( '/', 'N', 'N', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
  177. $ IW, INFO )
  178. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  179. INFOT = 2
  180. CALL DTRRFS( 'U', '/', 'N', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
  181. $ IW, INFO )
  182. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  183. INFOT = 3
  184. CALL DTRRFS( 'U', 'N', '/', 0, 0, A, 1, B, 1, X, 1, R1, R2, W,
  185. $ IW, INFO )
  186. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  187. INFOT = 4
  188. CALL DTRRFS( 'U', 'N', 'N', -1, 0, A, 1, B, 1, X, 1, R1, R2, W,
  189. $ IW, INFO )
  190. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  191. INFOT = 5
  192. CALL DTRRFS( 'U', 'N', 'N', 0, -1, A, 1, B, 1, X, 1, R1, R2, W,
  193. $ IW, INFO )
  194. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  195. INFOT = 7
  196. CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 1, B, 2, X, 2, R1, R2, W,
  197. $ IW, INFO )
  198. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  199. INFOT = 9
  200. CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 2, B, 1, X, 2, R1, R2, W,
  201. $ IW, INFO )
  202. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  203. INFOT = 11
  204. CALL DTRRFS( 'U', 'N', 'N', 2, 1, A, 2, B, 2, X, 1, R1, R2, W,
  205. $ IW, INFO )
  206. CALL CHKXER( 'DTRRFS', INFOT, NOUT, LERR, OK )
  207. *
  208. * DTRCON
  209. *
  210. SRNAMT = 'DTRCON'
  211. INFOT = 1
  212. CALL DTRCON( '/', 'U', 'N', 0, A, 1, RCOND, W, IW, INFO )
  213. CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
  214. INFOT = 2
  215. CALL DTRCON( '1', '/', 'N', 0, A, 1, RCOND, W, IW, INFO )
  216. CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
  217. INFOT = 3
  218. CALL DTRCON( '1', 'U', '/', 0, A, 1, RCOND, W, IW, INFO )
  219. CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
  220. INFOT = 4
  221. CALL DTRCON( '1', 'U', 'N', -1, A, 1, RCOND, W, IW, INFO )
  222. CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
  223. INFOT = 6
  224. CALL DTRCON( '1', 'U', 'N', 2, A, 1, RCOND, W, IW, INFO )
  225. CALL CHKXER( 'DTRCON', INFOT, NOUT, LERR, OK )
  226. *
  227. * DLATRS
  228. *
  229. SRNAMT = 'DLATRS'
  230. INFOT = 1
  231. CALL DLATRS( '/', 'N', 'N', 'N', 0, A, 1, X, SCALE, W, INFO )
  232. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  233. INFOT = 2
  234. CALL DLATRS( 'U', '/', 'N', 'N', 0, A, 1, X, SCALE, W, INFO )
  235. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  236. INFOT = 3
  237. CALL DLATRS( 'U', 'N', '/', 'N', 0, A, 1, X, SCALE, W, INFO )
  238. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  239. INFOT = 4
  240. CALL DLATRS( 'U', 'N', 'N', '/', 0, A, 1, X, SCALE, W, INFO )
  241. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  242. INFOT = 5
  243. CALL DLATRS( 'U', 'N', 'N', 'N', -1, A, 1, X, SCALE, W, INFO )
  244. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  245. INFOT = 7
  246. CALL DLATRS( 'U', 'N', 'N', 'N', 2, A, 1, X, SCALE, W, INFO )
  247. CALL CHKXER( 'DLATRS', INFOT, NOUT, LERR, OK )
  248. *
  249. * DLATRS3
  250. *
  251. SRNAMT = 'DLATRS3'
  252. INFOT = 1
  253. CALL DLATRS3( '/', 'N', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W,
  254. $ W( 2 ), 1, INFO )
  255. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  256. INFOT = 2
  257. CALL DLATRS3( 'U', '/', 'N', 'N', 0, 0, A, 1, X, 1, SCALE, W,
  258. $ W( 2 ), 1, INFO )
  259. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  260. INFOT = 3
  261. CALL DLATRS3( 'U', 'N', '/', 'N', 0, 0, A, 1, X, 1, SCALE, W,
  262. $ W( 2 ), 1, INFO )
  263. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  264. INFOT = 4
  265. CALL DLATRS3( 'U', 'N', 'N', '/', 0, 0, A, 1, X, 1, SCALE, W,
  266. $ W( 2 ), 1, INFO )
  267. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  268. INFOT = 5
  269. CALL DLATRS3( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, 1, SCALE, W,
  270. $ W( 2 ), 1, INFO )
  271. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  272. INFOT = 6
  273. CALL DLATRS3( 'U', 'N', 'N', 'N', 0, -1, A, 1, X, 1, SCALE, W,
  274. $ W( 2 ), 1, INFO )
  275. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  276. INFOT = 8
  277. CALL DLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 1, X, 1, SCALE, W,
  278. $ W( 2 ), 1, INFO )
  279. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  280. INFOT = 10
  281. CALL DLATRS3( 'U', 'N', 'N', 'N', 2, 0, A, 2, X, 1, SCALE, W,
  282. $ W( 2 ), 1, INFO )
  283. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  284. INFOT = 14
  285. CALL DLATRS3( 'U', 'N', 'N', 'N', 1, 0, A, 1, X, 1, SCALE, W,
  286. $ W( 2 ), 0, INFO )
  287. CALL CHKXER( 'DLATRS3', INFOT, NOUT, LERR, OK )
  288. *
  289. ELSE IF( LSAMEN( 2, C2, 'TP' ) ) THEN
  290. *
  291. * Test error exits for the packed triangular routines.
  292. *
  293. * DTPTRI
  294. *
  295. SRNAMT = 'DTPTRI'
  296. INFOT = 1
  297. CALL DTPTRI( '/', 'N', 0, A, INFO )
  298. CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
  299. INFOT = 2
  300. CALL DTPTRI( 'U', '/', 0, A, INFO )
  301. CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
  302. INFOT = 3
  303. CALL DTPTRI( 'U', 'N', -1, A, INFO )
  304. CALL CHKXER( 'DTPTRI', INFOT, NOUT, LERR, OK )
  305. *
  306. * DTPTRS
  307. *
  308. SRNAMT = 'DTPTRS'
  309. INFOT = 1
  310. CALL DTPTRS( '/', 'N', 'N', 0, 0, A, X, 1, INFO )
  311. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  312. INFOT = 2
  313. CALL DTPTRS( 'U', '/', 'N', 0, 0, A, X, 1, INFO )
  314. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  315. INFOT = 3
  316. CALL DTPTRS( 'U', 'N', '/', 0, 0, A, X, 1, INFO )
  317. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  318. INFOT = 4
  319. CALL DTPTRS( 'U', 'N', 'N', -1, 0, A, X, 1, INFO )
  320. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  321. INFOT = 5
  322. CALL DTPTRS( 'U', 'N', 'N', 0, -1, A, X, 1, INFO )
  323. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  324. INFOT = 8
  325. CALL DTPTRS( 'U', 'N', 'N', 2, 1, A, X, 1, INFO )
  326. CALL CHKXER( 'DTPTRS', INFOT, NOUT, LERR, OK )
  327. *
  328. * DTPRFS
  329. *
  330. SRNAMT = 'DTPRFS'
  331. INFOT = 1
  332. CALL DTPRFS( '/', 'N', 'N', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
  333. $ INFO )
  334. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  335. INFOT = 2
  336. CALL DTPRFS( 'U', '/', 'N', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
  337. $ INFO )
  338. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  339. INFOT = 3
  340. CALL DTPRFS( 'U', 'N', '/', 0, 0, A, B, 1, X, 1, R1, R2, W, IW,
  341. $ INFO )
  342. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  343. INFOT = 4
  344. CALL DTPRFS( 'U', 'N', 'N', -1, 0, A, B, 1, X, 1, R1, R2, W,
  345. $ IW, INFO )
  346. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  347. INFOT = 5
  348. CALL DTPRFS( 'U', 'N', 'N', 0, -1, A, B, 1, X, 1, R1, R2, W,
  349. $ IW, INFO )
  350. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  351. INFOT = 8
  352. CALL DTPRFS( 'U', 'N', 'N', 2, 1, A, B, 1, X, 2, R1, R2, W, IW,
  353. $ INFO )
  354. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  355. INFOT = 10
  356. CALL DTPRFS( 'U', 'N', 'N', 2, 1, A, B, 2, X, 1, R1, R2, W, IW,
  357. $ INFO )
  358. CALL CHKXER( 'DTPRFS', INFOT, NOUT, LERR, OK )
  359. *
  360. * DTPCON
  361. *
  362. SRNAMT = 'DTPCON'
  363. INFOT = 1
  364. CALL DTPCON( '/', 'U', 'N', 0, A, RCOND, W, IW, INFO )
  365. CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
  366. INFOT = 2
  367. CALL DTPCON( '1', '/', 'N', 0, A, RCOND, W, IW, INFO )
  368. CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
  369. INFOT = 3
  370. CALL DTPCON( '1', 'U', '/', 0, A, RCOND, W, IW, INFO )
  371. CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
  372. INFOT = 4
  373. CALL DTPCON( '1', 'U', 'N', -1, A, RCOND, W, IW, INFO )
  374. CALL CHKXER( 'DTPCON', INFOT, NOUT, LERR, OK )
  375. *
  376. * DLATPS
  377. *
  378. SRNAMT = 'DLATPS'
  379. INFOT = 1
  380. CALL DLATPS( '/', 'N', 'N', 'N', 0, A, X, SCALE, W, INFO )
  381. CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
  382. INFOT = 2
  383. CALL DLATPS( 'U', '/', 'N', 'N', 0, A, X, SCALE, W, INFO )
  384. CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
  385. INFOT = 3
  386. CALL DLATPS( 'U', 'N', '/', 'N', 0, A, X, SCALE, W, INFO )
  387. CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
  388. INFOT = 4
  389. CALL DLATPS( 'U', 'N', 'N', '/', 0, A, X, SCALE, W, INFO )
  390. CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
  391. INFOT = 5
  392. CALL DLATPS( 'U', 'N', 'N', 'N', -1, A, X, SCALE, W, INFO )
  393. CALL CHKXER( 'DLATPS', INFOT, NOUT, LERR, OK )
  394. *
  395. ELSE IF( LSAMEN( 2, C2, 'TB' ) ) THEN
  396. *
  397. * Test error exits for the banded triangular routines.
  398. *
  399. * DTBTRS
  400. *
  401. SRNAMT = 'DTBTRS'
  402. INFOT = 1
  403. CALL DTBTRS( '/', 'N', 'N', 0, 0, 0, A, 1, X, 1, INFO )
  404. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  405. INFOT = 2
  406. CALL DTBTRS( 'U', '/', 'N', 0, 0, 0, A, 1, X, 1, INFO )
  407. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  408. INFOT = 3
  409. CALL DTBTRS( 'U', 'N', '/', 0, 0, 0, A, 1, X, 1, INFO )
  410. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  411. INFOT = 4
  412. CALL DTBTRS( 'U', 'N', 'N', -1, 0, 0, A, 1, X, 1, INFO )
  413. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  414. INFOT = 5
  415. CALL DTBTRS( 'U', 'N', 'N', 0, -1, 0, A, 1, X, 1, INFO )
  416. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  417. INFOT = 6
  418. CALL DTBTRS( 'U', 'N', 'N', 0, 0, -1, A, 1, X, 1, INFO )
  419. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  420. INFOT = 8
  421. CALL DTBTRS( 'U', 'N', 'N', 2, 1, 1, A, 1, X, 2, INFO )
  422. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  423. INFOT = 10
  424. CALL DTBTRS( 'U', 'N', 'N', 2, 0, 1, A, 1, X, 1, INFO )
  425. CALL CHKXER( 'DTBTRS', INFOT, NOUT, LERR, OK )
  426. *
  427. * DTBRFS
  428. *
  429. SRNAMT = 'DTBRFS'
  430. INFOT = 1
  431. CALL DTBRFS( '/', 'N', 'N', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
  432. $ W, IW, INFO )
  433. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  434. INFOT = 2
  435. CALL DTBRFS( 'U', '/', 'N', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
  436. $ W, IW, INFO )
  437. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  438. INFOT = 3
  439. CALL DTBRFS( 'U', 'N', '/', 0, 0, 0, A, 1, B, 1, X, 1, R1, R2,
  440. $ W, IW, INFO )
  441. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  442. INFOT = 4
  443. CALL DTBRFS( 'U', 'N', 'N', -1, 0, 0, A, 1, B, 1, X, 1, R1, R2,
  444. $ W, IW, INFO )
  445. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  446. INFOT = 5
  447. CALL DTBRFS( 'U', 'N', 'N', 0, -1, 0, A, 1, B, 1, X, 1, R1, R2,
  448. $ W, IW, INFO )
  449. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  450. INFOT = 6
  451. CALL DTBRFS( 'U', 'N', 'N', 0, 0, -1, A, 1, B, 1, X, 1, R1, R2,
  452. $ W, IW, INFO )
  453. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  454. INFOT = 8
  455. CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 1, B, 2, X, 2, R1, R2,
  456. $ W, IW, INFO )
  457. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  458. INFOT = 10
  459. CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 2, B, 1, X, 2, R1, R2,
  460. $ W, IW, INFO )
  461. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  462. INFOT = 12
  463. CALL DTBRFS( 'U', 'N', 'N', 2, 1, 1, A, 2, B, 2, X, 1, R1, R2,
  464. $ W, IW, INFO )
  465. CALL CHKXER( 'DTBRFS', INFOT, NOUT, LERR, OK )
  466. *
  467. * DTBCON
  468. *
  469. SRNAMT = 'DTBCON'
  470. INFOT = 1
  471. CALL DTBCON( '/', 'U', 'N', 0, 0, A, 1, RCOND, W, IW, INFO )
  472. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  473. INFOT = 2
  474. CALL DTBCON( '1', '/', 'N', 0, 0, A, 1, RCOND, W, IW, INFO )
  475. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  476. INFOT = 3
  477. CALL DTBCON( '1', 'U', '/', 0, 0, A, 1, RCOND, W, IW, INFO )
  478. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  479. INFOT = 4
  480. CALL DTBCON( '1', 'U', 'N', -1, 0, A, 1, RCOND, W, IW, INFO )
  481. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  482. INFOT = 5
  483. CALL DTBCON( '1', 'U', 'N', 0, -1, A, 1, RCOND, W, IW, INFO )
  484. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  485. INFOT = 7
  486. CALL DTBCON( '1', 'U', 'N', 2, 1, A, 1, RCOND, W, IW, INFO )
  487. CALL CHKXER( 'DTBCON', INFOT, NOUT, LERR, OK )
  488. *
  489. * DLATBS
  490. *
  491. SRNAMT = 'DLATBS'
  492. INFOT = 1
  493. CALL DLATBS( '/', 'N', 'N', 'N', 0, 0, A, 1, X, SCALE, W,
  494. $ INFO )
  495. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  496. INFOT = 2
  497. CALL DLATBS( 'U', '/', 'N', 'N', 0, 0, A, 1, X, SCALE, W,
  498. $ INFO )
  499. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  500. INFOT = 3
  501. CALL DLATBS( 'U', 'N', '/', 'N', 0, 0, A, 1, X, SCALE, W,
  502. $ INFO )
  503. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  504. INFOT = 4
  505. CALL DLATBS( 'U', 'N', 'N', '/', 0, 0, A, 1, X, SCALE, W,
  506. $ INFO )
  507. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  508. INFOT = 5
  509. CALL DLATBS( 'U', 'N', 'N', 'N', -1, 0, A, 1, X, SCALE, W,
  510. $ INFO )
  511. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  512. INFOT = 6
  513. CALL DLATBS( 'U', 'N', 'N', 'N', 1, -1, A, 1, X, SCALE, W,
  514. $ INFO )
  515. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  516. INFOT = 8
  517. CALL DLATBS( 'U', 'N', 'N', 'N', 2, 1, A, 1, X, SCALE, W,
  518. $ INFO )
  519. CALL CHKXER( 'DLATBS', INFOT, NOUT, LERR, OK )
  520. END IF
  521. *
  522. * Print a summary line.
  523. *
  524. CALL ALAESM( PATH, OK, NOUT )
  525. *
  526. RETURN
  527. *
  528. * End of DERRTR
  529. *
  530. END