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.

cerrvxx.f 54 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272
  1. *> \brief \b CERRVXX
  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 CERRVX( 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. *> CERRVX tests the error exits for the COMPLEX driver routines
  25. *> for solving linear systems of equations.
  26. *> \endverbatim
  27. *
  28. * Arguments:
  29. * ==========
  30. *
  31. *> \param[in] PATH
  32. *> \verbatim
  33. *> PATH is CHARACTER*3
  34. *> The LAPACK path name for the routines to be tested.
  35. *> \endverbatim
  36. *>
  37. *> \param[in] NUNIT
  38. *> \verbatim
  39. *> NUNIT is INTEGER
  40. *> The unit number for output.
  41. *> \endverbatim
  42. *
  43. * Authors:
  44. * ========
  45. *
  46. *> \author Univ. of Tennessee
  47. *> \author Univ. of California Berkeley
  48. *> \author Univ. of Colorado Denver
  49. *> \author NAG Ltd.
  50. *
  51. *> \date December 2016
  52. *
  53. *> \ingroup complex_lin
  54. *
  55. * =====================================================================
  56. SUBROUTINE CERRVX( PATH, NUNIT )
  57. *
  58. * -- LAPACK test routine (version 3.7.0) --
  59. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  60. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  61. * December 2016
  62. *
  63. * .. Scalar Arguments ..
  64. CHARACTER*3 PATH
  65. INTEGER NUNIT
  66. * ..
  67. *
  68. * =====================================================================
  69. *
  70. * .. Parameters ..
  71. INTEGER NMAX
  72. PARAMETER ( NMAX = 4 )
  73. REAL ONE
  74. PARAMETER ( ONE = 1.0E+0 )
  75. * ..
  76. * .. Local Scalars ..
  77. CHARACTER EQ
  78. CHARACTER*2 C2
  79. INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS
  80. REAL RCOND, RPVGRW, BERR
  81. * ..
  82. * .. Local Arrays ..
  83. INTEGER IP( NMAX )
  84. REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ),
  85. $ RF( NMAX ), RW( NMAX ), ERR_BNDS_N( NMAX, 3 ),
  86. $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 )
  87. COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
  88. $ E( NMAX ), W( 2*NMAX ), X( NMAX )
  89. * ..
  90. * .. External Functions ..
  91. LOGICAL LSAMEN
  92. EXTERNAL LSAMEN
  93. * ..
  94. * .. External Subroutines ..
  95. EXTERNAL CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX,
  96. $ CHESV, CHESV_RK, CHESV_ROOK, CHESVX, CHKXER,
  97. $ CHPSV, CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX,
  98. $ CPPSV, CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX,
  99. $ CSYSV, CSYSV_RK, CSYSV_ROOK, CSYSVX, CGESVXX,
  100. $ CPOSVXX, CSYSVXX, CHESVXX, CGBSVXX
  101. * ..
  102. * .. Scalars in Common ..
  103. LOGICAL LERR, OK
  104. CHARACTER*32 SRNAMT
  105. INTEGER INFOT, NOUT
  106. * ..
  107. * .. Common blocks ..
  108. COMMON / INFOC / INFOT, NOUT, OK, LERR
  109. COMMON / SRNAMC / SRNAMT
  110. * ..
  111. * .. Intrinsic Functions ..
  112. INTRINSIC CMPLX, REAL
  113. * ..
  114. * .. Executable Statements ..
  115. *
  116. NOUT = NUNIT
  117. WRITE( NOUT, FMT = * )
  118. C2 = PATH( 2: 3 )
  119. *
  120. * Set the variables to innocuous values.
  121. *
  122. DO 20 J = 1, NMAX
  123. DO 10 I = 1, NMAX
  124. A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
  125. AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
  126. 10 CONTINUE
  127. B( J ) = 0.E+0
  128. E( J ) = 0E+0
  129. R1( J ) = 0.E+0
  130. R2( J ) = 0.E+0
  131. W( J ) = 0.E+0
  132. X( J ) = 0.E+0
  133. C( J ) = 0.E+0
  134. R( J ) = 0.E+0
  135. IP( J ) = J
  136. 20 CONTINUE
  137. EQ = ' '
  138. OK = .TRUE.
  139. *
  140. IF( LSAMEN( 2, C2, 'GE' ) ) THEN
  141. *
  142. * CGESV
  143. *
  144. SRNAMT = 'CGESV '
  145. INFOT = 1
  146. CALL CGESV( -1, 0, A, 1, IP, B, 1, INFO )
  147. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  148. INFOT = 2
  149. CALL CGESV( 0, -1, A, 1, IP, B, 1, INFO )
  150. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  151. INFOT = 4
  152. CALL CGESV( 2, 1, A, 1, IP, B, 2, INFO )
  153. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  154. INFOT = 7
  155. CALL CGESV( 2, 1, A, 2, IP, B, 1, INFO )
  156. CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK )
  157. *
  158. * CGESVX
  159. *
  160. SRNAMT = 'CGESVX'
  161. INFOT = 1
  162. CALL CGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  163. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  164. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  165. INFOT = 2
  166. CALL CGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  167. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  168. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  169. INFOT = 3
  170. CALL CGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  171. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  172. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  173. INFOT = 4
  174. CALL CGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  175. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  176. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  177. INFOT = 6
  178. CALL CGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  179. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  180. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  181. INFOT = 8
  182. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  183. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  184. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  185. INFOT = 10
  186. EQ = '/'
  187. CALL CGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  188. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  189. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  190. INFOT = 11
  191. EQ = 'R'
  192. CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  193. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  194. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  195. INFOT = 12
  196. EQ = 'C'
  197. CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  198. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  199. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  200. INFOT = 14
  201. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  202. $ X, 2, RCOND, R1, R2, W, RW, INFO )
  203. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  204. INFOT = 16
  205. CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  206. $ X, 1, RCOND, R1, R2, W, RW, INFO )
  207. CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK )
  208. *
  209. * CGESVXX
  210. *
  211. N_ERR_BNDS = 3
  212. NPARAMS = 1
  213. SRNAMT = 'CGESVXX'
  214. INFOT = 1
  215. CALL CGESVXX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  216. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  217. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  218. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  219. INFOT = 2
  220. CALL CGESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  221. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  222. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  223. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  224. INFOT = 3
  225. CALL CGESVXX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  226. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  227. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  228. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  229. INFOT = 4
  230. CALL CGESVXX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  231. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  232. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  233. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  234. INFOT = 6
  235. CALL CGESVXX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2,
  236. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  237. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  238. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  239. INFOT = 8
  240. CALL CGESVXX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2,
  241. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  242. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  243. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  244. INFOT = 10
  245. EQ = '/'
  246. CALL CGESVXX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  247. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  248. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  249. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  250. INFOT = 11
  251. EQ = 'R'
  252. CALL CGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  253. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  254. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  255. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  256. INFOT = 12
  257. EQ = 'C'
  258. CALL CGESVXX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1,
  259. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  260. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  261. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  262. INFOT = 14
  263. CALL CGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1,
  264. $ X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  265. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  266. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  267. INFOT = 16
  268. CALL CGESVXX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2,
  269. $ X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  270. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  271. CALL CHKXER( 'CGESVXX', INFOT, NOUT, LERR, OK )
  272. *
  273. ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
  274. *
  275. * CGBSV
  276. *
  277. SRNAMT = 'CGBSV '
  278. INFOT = 1
  279. CALL CGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO )
  280. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  281. INFOT = 2
  282. CALL CGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO )
  283. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  284. INFOT = 3
  285. CALL CGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO )
  286. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  287. INFOT = 4
  288. CALL CGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO )
  289. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  290. INFOT = 6
  291. CALL CGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO )
  292. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  293. INFOT = 9
  294. CALL CGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO )
  295. CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK )
  296. *
  297. * CGBSVX
  298. *
  299. SRNAMT = 'CGBSVX'
  300. INFOT = 1
  301. CALL CGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  302. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  303. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  304. INFOT = 2
  305. CALL CGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  306. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  307. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  308. INFOT = 3
  309. CALL CGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  310. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  311. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  312. INFOT = 4
  313. CALL CGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  314. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  315. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  316. INFOT = 5
  317. CALL CGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C,
  318. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  319. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  320. INFOT = 6
  321. CALL CGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C,
  322. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  323. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  324. INFOT = 8
  325. CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C,
  326. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  327. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  328. INFOT = 10
  329. CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C,
  330. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  331. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  332. INFOT = 12
  333. EQ = '/'
  334. CALL CGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  335. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  336. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  337. INFOT = 13
  338. EQ = 'R'
  339. CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  340. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  341. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  342. INFOT = 14
  343. EQ = 'C'
  344. CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  345. $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  346. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  347. INFOT = 16
  348. CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  349. $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  350. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  351. INFOT = 18
  352. CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  353. $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  354. CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK )
  355. *
  356. * CGBSVXX
  357. *
  358. N_ERR_BNDS = 3
  359. NPARAMS = 1
  360. SRNAMT = 'CGBSVXX'
  361. INFOT = 1
  362. CALL CGBSVXX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C,
  363. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  364. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  365. $ INFO )
  366. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  367. INFOT = 2
  368. CALL CGBSVXX( 'N', '/', 0, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  369. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  370. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  371. $ INFO )
  372. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  373. INFOT = 3
  374. CALL CGBSVXX( 'N', 'N', -1, 1, 1, 0, A, 1, AF, 1, IP, EQ, R, C,
  375. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  376. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  377. $ INFO )
  378. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  379. INFOT = 4
  380. CALL CGBSVXX( 'N', 'N', 2, -1, 1, 0, A, 1, AF, 1, IP, EQ,
  381. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  382. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  383. $ INFO )
  384. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  385. INFOT = 5
  386. CALL CGBSVXX( 'N', 'N', 2, 1, -1, 0, A, 1, AF, 1, IP, EQ,
  387. $ R, C, B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  388. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  389. $ INFO )
  390. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  391. INFOT = 6
  392. CALL CGBSVXX( 'N', 'N', 0, 1, 1, -1, A, 1, AF, 1, IP, EQ, R, C,
  393. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  394. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  395. $ INFO )
  396. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  397. INFOT = 8
  398. CALL CGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 2, AF, 2, IP, EQ, R, C,
  399. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  400. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  401. $ INFO )
  402. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  403. INFOT = 10
  404. CALL CGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, EQ, R, C,
  405. $ B, 2, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  406. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  407. $ INFO )
  408. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  409. INFOT = 12
  410. EQ = '/'
  411. CALL CGBSVXX( 'F', 'N', 0, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  412. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  413. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  414. $ INFO )
  415. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  416. INFOT = 13
  417. EQ = 'R'
  418. CALL CGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  419. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  420. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  421. $ INFO )
  422. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  423. INFOT = 14
  424. EQ = 'C'
  425. CALL CGBSVXX( 'F', 'N', 1, 1, 1, 0, A, 3, AF, 4, IP, EQ, R, C,
  426. $ B, 1, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  427. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  428. $ INFO )
  429. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  430. INFOT = 15
  431. CALL CGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  432. $ B, 1, X, 2, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  433. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  434. $ INFO )
  435. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  436. INFOT = 16
  437. CALL CGBSVXX( 'N', 'N', 2, 1, 1, 1, A, 3, AF, 4, IP, EQ, R, C,
  438. $ B, 2, X, 1, RCOND, RPVGRW, BERR, N_ERR_BNDS,
  439. $ ERR_BNDS_N, ERR_BNDS_C, NPARAMS, PARAMS, W, RW,
  440. $ INFO )
  441. CALL CHKXER( 'CGBSVXX', INFOT, NOUT, LERR, OK )
  442. *
  443. ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN
  444. *
  445. * CGTSV
  446. *
  447. SRNAMT = 'CGTSV '
  448. INFOT = 1
  449. CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  450. $ INFO )
  451. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  452. INFOT = 2
  453. CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1,
  454. $ INFO )
  455. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  456. INFOT = 7
  457. CALL CGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO )
  458. CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK )
  459. *
  460. * CGTSVX
  461. *
  462. SRNAMT = 'CGTSVX'
  463. INFOT = 1
  464. CALL CGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  465. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  466. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  467. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  468. INFOT = 2
  469. CALL CGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  470. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  471. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  472. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  473. INFOT = 3
  474. CALL CGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  475. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  476. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  477. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  478. INFOT = 4
  479. CALL CGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  480. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  481. $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO )
  482. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  483. INFOT = 14
  484. CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  485. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  486. $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO )
  487. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  488. INFOT = 16
  489. CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ),
  490. $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ),
  491. $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO )
  492. CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK )
  493. *
  494. ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN
  495. *
  496. * CPOSV
  497. *
  498. SRNAMT = 'CPOSV '
  499. INFOT = 1
  500. CALL CPOSV( '/', 0, 0, A, 1, B, 1, INFO )
  501. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  502. INFOT = 2
  503. CALL CPOSV( 'U', -1, 0, A, 1, B, 1, INFO )
  504. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  505. INFOT = 3
  506. CALL CPOSV( 'U', 0, -1, A, 1, B, 1, INFO )
  507. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  508. INFOT = 5
  509. CALL CPOSV( 'U', 2, 0, A, 1, B, 2, INFO )
  510. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  511. INFOT = 7
  512. CALL CPOSV( 'U', 2, 0, A, 2, B, 1, INFO )
  513. CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK )
  514. *
  515. * CPOSVX
  516. *
  517. SRNAMT = 'CPOSVX'
  518. INFOT = 1
  519. CALL CPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  520. $ RCOND, R1, R2, W, RW, INFO )
  521. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  522. INFOT = 2
  523. CALL CPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  524. $ RCOND, R1, R2, W, RW, INFO )
  525. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  526. INFOT = 3
  527. CALL CPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  528. $ RCOND, R1, R2, W, RW, INFO )
  529. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  530. INFOT = 4
  531. CALL CPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  532. $ RCOND, R1, R2, W, RW, INFO )
  533. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  534. INFOT = 6
  535. CALL CPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  536. $ RCOND, R1, R2, W, RW, INFO )
  537. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  538. INFOT = 8
  539. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  540. $ RCOND, R1, R2, W, RW, INFO )
  541. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  542. INFOT = 9
  543. EQ = '/'
  544. CALL CPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  545. $ RCOND, R1, R2, W, RW, INFO )
  546. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  547. INFOT = 10
  548. EQ = 'Y'
  549. CALL CPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  550. $ RCOND, R1, R2, W, RW, INFO )
  551. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  552. INFOT = 12
  553. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  554. $ RCOND, R1, R2, W, RW, INFO )
  555. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  556. INFOT = 14
  557. CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  558. $ RCOND, R1, R2, W, RW, INFO )
  559. CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK )
  560. *
  561. * CPOSVXX
  562. *
  563. N_ERR_BNDS = 3
  564. NPARAMS = 1
  565. SRNAMT = 'CPOSVXX'
  566. INFOT = 1
  567. CALL CPOSVXX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  568. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  569. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  570. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  571. INFOT = 2
  572. CALL CPOSVXX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  573. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  574. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  575. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  576. INFOT = 3
  577. CALL CPOSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  578. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  579. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  580. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  581. INFOT = 4
  582. CALL CPOSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  583. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  584. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  585. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  586. INFOT = 6
  587. CALL CPOSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  588. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  589. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  590. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  591. INFOT = 8
  592. CALL CPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  593. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  594. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  595. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  596. INFOT = 9
  597. EQ = '/'
  598. CALL CPOSVXX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  599. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  600. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  601. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  602. INFOT = 10
  603. EQ = 'Y'
  604. CALL CPOSVXX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  605. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  606. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  607. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  608. INFOT = 12
  609. CALL CPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2,
  610. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  611. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  612. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  613. INFOT = 14
  614. CALL CPOSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1,
  615. $ RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  616. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  617. CALL CHKXER( 'CPOSVXX', INFOT, NOUT, LERR, OK )
  618. *
  619. ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN
  620. *
  621. * CPPSV
  622. *
  623. SRNAMT = 'CPPSV '
  624. INFOT = 1
  625. CALL CPPSV( '/', 0, 0, A, B, 1, INFO )
  626. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  627. INFOT = 2
  628. CALL CPPSV( 'U', -1, 0, A, B, 1, INFO )
  629. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  630. INFOT = 3
  631. CALL CPPSV( 'U', 0, -1, A, B, 1, INFO )
  632. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  633. INFOT = 6
  634. CALL CPPSV( 'U', 2, 0, A, B, 1, INFO )
  635. CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK )
  636. *
  637. * CPPSVX
  638. *
  639. SRNAMT = 'CPPSVX'
  640. INFOT = 1
  641. CALL CPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  642. $ R1, R2, W, RW, INFO )
  643. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  644. INFOT = 2
  645. CALL CPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  646. $ R1, R2, W, RW, INFO )
  647. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  648. INFOT = 3
  649. CALL CPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  650. $ R1, R2, W, RW, INFO )
  651. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  652. INFOT = 4
  653. CALL CPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND,
  654. $ R1, R2, W, RW, INFO )
  655. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  656. INFOT = 7
  657. EQ = '/'
  658. CALL CPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  659. $ R1, R2, W, RW, INFO )
  660. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  661. INFOT = 8
  662. EQ = 'Y'
  663. CALL CPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND,
  664. $ R1, R2, W, RW, INFO )
  665. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  666. INFOT = 10
  667. CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND,
  668. $ R1, R2, W, RW, INFO )
  669. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  670. INFOT = 12
  671. CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND,
  672. $ R1, R2, W, RW, INFO )
  673. CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK )
  674. *
  675. ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN
  676. *
  677. * CPBSV
  678. *
  679. SRNAMT = 'CPBSV '
  680. INFOT = 1
  681. CALL CPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO )
  682. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  683. INFOT = 2
  684. CALL CPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO )
  685. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  686. INFOT = 3
  687. CALL CPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO )
  688. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  689. INFOT = 4
  690. CALL CPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO )
  691. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  692. INFOT = 6
  693. CALL CPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO )
  694. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  695. INFOT = 8
  696. CALL CPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO )
  697. CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK )
  698. *
  699. * CPBSVX
  700. *
  701. SRNAMT = 'CPBSVX'
  702. INFOT = 1
  703. CALL CPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  704. $ RCOND, R1, R2, W, RW, INFO )
  705. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  706. INFOT = 2
  707. CALL CPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  708. $ RCOND, R1, R2, W, RW, INFO )
  709. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  710. INFOT = 3
  711. CALL CPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  712. $ 1, RCOND, R1, R2, W, RW, INFO )
  713. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  714. INFOT = 4
  715. CALL CPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X,
  716. $ 1, RCOND, R1, R2, W, RW, INFO )
  717. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  718. INFOT = 5
  719. CALL CPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X,
  720. $ 1, RCOND, R1, R2, W, RW, INFO )
  721. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  722. INFOT = 7
  723. CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2,
  724. $ RCOND, R1, R2, W, RW, INFO )
  725. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  726. INFOT = 9
  727. CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2,
  728. $ RCOND, R1, R2, W, RW, INFO )
  729. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  730. INFOT = 10
  731. EQ = '/'
  732. CALL CPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  733. $ RCOND, R1, R2, W, RW, INFO )
  734. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  735. INFOT = 11
  736. EQ = 'Y'
  737. CALL CPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1,
  738. $ RCOND, R1, R2, W, RW, INFO )
  739. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  740. INFOT = 13
  741. CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2,
  742. $ RCOND, R1, R2, W, RW, INFO )
  743. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  744. INFOT = 15
  745. CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1,
  746. $ RCOND, R1, R2, W, RW, INFO )
  747. CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK )
  748. *
  749. ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN
  750. *
  751. * CPTSV
  752. *
  753. SRNAMT = 'CPTSV '
  754. INFOT = 1
  755. CALL CPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO )
  756. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  757. INFOT = 2
  758. CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO )
  759. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  760. INFOT = 6
  761. CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO )
  762. CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK )
  763. *
  764. * CPTSVX
  765. *
  766. SRNAMT = 'CPTSVX'
  767. INFOT = 1
  768. CALL CPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  769. $ 1, RCOND, R1, R2, W, RW, INFO )
  770. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  771. INFOT = 2
  772. CALL CPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  773. $ 1, RCOND, R1, R2, W, RW, INFO )
  774. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  775. INFOT = 3
  776. CALL CPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  777. $ 1, RCOND, R1, R2, W, RW, INFO )
  778. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  779. INFOT = 9
  780. CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X,
  781. $ 2, RCOND, R1, R2, W, RW, INFO )
  782. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  783. INFOT = 11
  784. CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X,
  785. $ 1, RCOND, R1, R2, W, RW, INFO )
  786. CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK )
  787. *
  788. ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN
  789. *
  790. * CHESV
  791. *
  792. SRNAMT = 'CHESV '
  793. INFOT = 1
  794. CALL CHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  795. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  796. INFOT = 2
  797. CALL CHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  798. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  799. INFOT = 3
  800. CALL CHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  801. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  802. INFOT = 5
  803. CALL CHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO )
  804. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  805. INFOT = 8
  806. CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  807. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  808. INFOT = 10
  809. CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  810. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  811. INFOT = 10
  812. CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  813. CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK )
  814. *
  815. * CHESVX
  816. *
  817. SRNAMT = 'CHESVX'
  818. INFOT = 1
  819. CALL CHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  820. $ RCOND, R1, R2, W, 1, RW, INFO )
  821. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  822. INFOT = 2
  823. CALL CHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  824. $ RCOND, R1, R2, W, 1, RW, INFO )
  825. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  826. INFOT = 3
  827. CALL CHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  828. $ RCOND, R1, R2, W, 1, RW, INFO )
  829. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  830. INFOT = 4
  831. CALL CHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  832. $ RCOND, R1, R2, W, 1, RW, INFO )
  833. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  834. INFOT = 6
  835. CALL CHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  836. $ RCOND, R1, R2, W, 4, RW, INFO )
  837. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  838. INFOT = 8
  839. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  840. $ RCOND, R1, R2, W, 4, RW, INFO )
  841. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  842. INFOT = 11
  843. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  844. $ RCOND, R1, R2, W, 4, RW, INFO )
  845. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  846. INFOT = 13
  847. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  848. $ RCOND, R1, R2, W, 4, RW, INFO )
  849. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  850. INFOT = 18
  851. CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  852. $ RCOND, R1, R2, W, 3, RW, INFO )
  853. CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK )
  854. *
  855. * CHESVXX
  856. *
  857. N_ERR_BNDS = 3
  858. NPARAMS = 1
  859. SRNAMT = 'CHESVXX'
  860. INFOT = 1
  861. CALL CHESVXX( '/', 'U', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  862. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  863. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  864. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  865. INFOT = 2
  866. CALL CHESVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  867. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  868. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  869. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  870. INFOT = 3
  871. CALL CHESVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  872. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  873. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  874. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  875. INFOT = 4
  876. CALL CHESVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  877. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  878. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  879. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  880. INFOT = 6
  881. CALL CHESVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, C, B, 2, X,
  882. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  883. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  884. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  885. INFOT = 8
  886. CALL CHESVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, C, B, 2, X,
  887. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  888. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  889. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  890. INFOT = 9
  891. EQ = '/'
  892. CALL CHESVXX( 'F', 'U', 0, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  893. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  894. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  895. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  896. INFOT = 10
  897. EQ = 'Y'
  898. CALL CHESVXX( 'F', 'U', 1, 0, A, 1, AF, 1, IP, EQ, C, B, 1, X,
  899. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  900. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  901. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  902. INFOT = 12
  903. CALL CHESVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, C, B, 1, X,
  904. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  905. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  906. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  907. INFOT = 14
  908. CALL CHESVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, C, B, 2, X,
  909. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  910. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  911. CALL CHKXER( 'CHESVXX', INFOT, NOUT, LERR, OK )
  912. *
  913. ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN
  914. *
  915. * CHESV_ROOK
  916. *
  917. SRNAMT = 'CHESV_ROOK'
  918. INFOT = 1
  919. CALL CHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  920. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  921. INFOT = 2
  922. CALL CHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  923. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  924. INFOT = 3
  925. CALL CHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  926. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  927. INFOT = 8
  928. CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  929. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  930. INFOT = 10
  931. CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  932. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  933. INFOT = 10
  934. CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  935. CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK )
  936. *
  937. ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN
  938. *
  939. * CHESV_RK
  940. *
  941. * Test error exits of the driver that uses factorization
  942. * of a symmetric indefinite matrix with rook
  943. * (bounded Bunch-Kaufman) pivoting with the new storage
  944. * format for factors L ( or U) and D.
  945. *
  946. * L (or U) is stored in A, diagonal of D is stored on the
  947. * diagonal of A, subdiagonal of D is stored in a separate array E.
  948. *
  949. SRNAMT = 'CHESV_RK'
  950. INFOT = 1
  951. CALL CHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  952. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  953. INFOT = 2
  954. CALL CHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  955. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  956. INFOT = 3
  957. CALL CHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  958. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  959. INFOT = 5
  960. CALL CHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  961. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  962. INFOT = 9
  963. CALL CHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  964. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  965. INFOT = 11
  966. CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  967. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  968. INFOT = 11
  969. CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  970. CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK )
  971. *
  972. ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN
  973. *
  974. * CHPSV
  975. *
  976. SRNAMT = 'CHPSV '
  977. INFOT = 1
  978. CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO )
  979. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  980. INFOT = 2
  981. CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  982. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  983. INFOT = 3
  984. CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  985. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  986. INFOT = 7
  987. CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  988. CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK )
  989. *
  990. * CHPSVX
  991. *
  992. SRNAMT = 'CHPSVX'
  993. INFOT = 1
  994. CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  995. $ R2, W, RW, INFO )
  996. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  997. INFOT = 2
  998. CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  999. $ R2, W, RW, INFO )
  1000. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  1001. INFOT = 3
  1002. CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1003. $ R2, W, RW, INFO )
  1004. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  1005. INFOT = 4
  1006. CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1007. $ R2, W, RW, INFO )
  1008. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  1009. INFOT = 9
  1010. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  1011. $ R2, W, RW, INFO )
  1012. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  1013. INFOT = 11
  1014. CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  1015. $ R2, W, RW, INFO )
  1016. CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK )
  1017. *
  1018. ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN
  1019. *
  1020. * CSYSV
  1021. *
  1022. SRNAMT = 'CSYSV '
  1023. INFOT = 1
  1024. CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  1025. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1026. INFOT = 2
  1027. CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  1028. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1029. INFOT = 3
  1030. CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  1031. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1032. INFOT = 8
  1033. CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  1034. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1035. INFOT = 10
  1036. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  1037. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1038. INFOT = 10
  1039. CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  1040. CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK )
  1041. *
  1042. * CSYSVX
  1043. *
  1044. SRNAMT = 'CSYSVX'
  1045. INFOT = 1
  1046. CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  1047. $ RCOND, R1, R2, W, 1, RW, INFO )
  1048. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1049. INFOT = 2
  1050. CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  1051. $ RCOND, R1, R2, W, 1, RW, INFO )
  1052. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1053. INFOT = 3
  1054. CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1,
  1055. $ RCOND, R1, R2, W, 1, RW, INFO )
  1056. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1057. INFOT = 4
  1058. CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1,
  1059. $ RCOND, R1, R2, W, 1, RW, INFO )
  1060. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1061. INFOT = 6
  1062. CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2,
  1063. $ RCOND, R1, R2, W, 4, RW, INFO )
  1064. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1065. INFOT = 8
  1066. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2,
  1067. $ RCOND, R1, R2, W, 4, RW, INFO )
  1068. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1069. INFOT = 11
  1070. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2,
  1071. $ RCOND, R1, R2, W, 4, RW, INFO )
  1072. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1073. INFOT = 13
  1074. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1,
  1075. $ RCOND, R1, R2, W, 4, RW, INFO )
  1076. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1077. INFOT = 18
  1078. CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2,
  1079. $ RCOND, R1, R2, W, 3, RW, INFO )
  1080. CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK )
  1081. *
  1082. * CSYSVXX
  1083. *
  1084. N_ERR_BNDS = 3
  1085. NPARAMS = 1
  1086. SRNAMT = 'CSYSVXX'
  1087. INFOT = 1
  1088. EQ = 'N'
  1089. CALL CSYSVXX( '/', 'U', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  1090. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1091. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1092. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1093. INFOT = 2
  1094. CALL CSYSVXX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  1095. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1096. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1097. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1098. INFOT = 3
  1099. CALL CSYSVXX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  1100. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1101. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1102. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1103. INFOT = 4
  1104. EQ = '/'
  1105. CALL CSYSVXX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, EQ, R, B, 1, X,
  1106. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1107. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1108. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1109. EQ = 'Y'
  1110. INFOT = 6
  1111. CALL CSYSVXX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, EQ, R, B, 2, X,
  1112. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1113. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1114. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1115. INFOT = 8
  1116. CALL CSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, EQ, R, B, 2, X,
  1117. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1118. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1119. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1120. INFOT = 10
  1121. CALL CSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, 'A', R, B, 2, X,
  1122. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1123. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1124. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1125. INFOT = 11
  1126. EQ='Y'
  1127. CALL CSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  1128. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1129. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1130. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1131. INFOT = 11
  1132. EQ='Y'
  1133. R(1) = -ONE
  1134. CALL CSYSVXX( 'F', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  1135. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1136. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1137. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1138. INFOT = 13
  1139. EQ = 'N'
  1140. CALL CSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 1, X,
  1141. $ 2, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1142. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1143. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1144. INFOT = 15
  1145. CALL CSYSVXX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, EQ, R, B, 2, X,
  1146. $ 1, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_N,
  1147. $ ERR_BNDS_C, NPARAMS, PARAMS, W, RW, INFO )
  1148. CALL CHKXER( 'CSYSVXX', INFOT, NOUT, LERR, OK )
  1149. *
  1150. ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN
  1151. *
  1152. * CSYSV_ROOK
  1153. *
  1154. SRNAMT = 'CSYSV_ROOK'
  1155. INFOT = 1
  1156. CALL CSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO )
  1157. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1158. INFOT = 2
  1159. CALL CSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO )
  1160. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1161. INFOT = 3
  1162. CALL CSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO )
  1163. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1164. INFOT = 8
  1165. CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO )
  1166. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1167. INFOT = 10
  1168. CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO )
  1169. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1170. INFOT = 10
  1171. CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO )
  1172. CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK )
  1173. *
  1174. ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN
  1175. *
  1176. * CSYSV_RK
  1177. *
  1178. * Test error exits of the driver that uses factorization
  1179. * of a symmetric indefinite matrix with rook
  1180. * (bounded Bunch-Kaufman) pivoting with the new storage
  1181. * format for factors L ( or U) and D.
  1182. *
  1183. * L (or U) is stored in A, diagonal of D is stored on the
  1184. * diagonal of A, subdiagonal of D is stored in a separate array E.
  1185. *
  1186. SRNAMT = 'CSYSV_RK'
  1187. INFOT = 1
  1188. CALL CSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  1189. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1190. INFOT = 2
  1191. CALL CSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO )
  1192. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1193. INFOT = 3
  1194. CALL CSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO )
  1195. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1196. INFOT = 5
  1197. CALL CSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO )
  1198. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1199. INFOT = 9
  1200. CALL CSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO )
  1201. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1202. INFOT = 11
  1203. CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO )
  1204. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1205. INFOT = 11
  1206. CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO )
  1207. CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK )
  1208. *
  1209. ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN
  1210. *
  1211. * CSPSV
  1212. *
  1213. SRNAMT = 'CSPSV '
  1214. INFOT = 1
  1215. CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO )
  1216. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  1217. INFOT = 2
  1218. CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO )
  1219. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  1220. INFOT = 3
  1221. CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO )
  1222. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  1223. INFOT = 7
  1224. CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO )
  1225. CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK )
  1226. *
  1227. * CSPSVX
  1228. *
  1229. SRNAMT = 'CSPSVX'
  1230. INFOT = 1
  1231. CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1232. $ R2, W, RW, INFO )
  1233. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1234. INFOT = 2
  1235. CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1236. $ R2, W, RW, INFO )
  1237. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1238. INFOT = 3
  1239. CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1240. $ R2, W, RW, INFO )
  1241. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1242. INFOT = 4
  1243. CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1,
  1244. $ R2, W, RW, INFO )
  1245. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1246. INFOT = 9
  1247. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1,
  1248. $ R2, W, RW, INFO )
  1249. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1250. INFOT = 11
  1251. CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1,
  1252. $ R2, W, RW, INFO )
  1253. CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK )
  1254. END IF
  1255. *
  1256. * Print a summary line.
  1257. *
  1258. IF( OK ) THEN
  1259. WRITE( NOUT, FMT = 9999 )PATH
  1260. ELSE
  1261. WRITE( NOUT, FMT = 9998 )PATH
  1262. END IF
  1263. *
  1264. 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' )
  1265. 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ',
  1266. $ 'exits ***' )
  1267. *
  1268. RETURN
  1269. *
  1270. * End of CERRVX
  1271. *
  1272. END