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 53 kB

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