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.

zerrgex.f 21 kB

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