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.

alaerh.f 39 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172
  1. *> \brief \b ALAERH
  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 ALAERH( PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU,
  12. * N5, IMAT, NFAIL, NERRS, NOUT )
  13. *
  14. * .. Scalar Arguments ..
  15. * CHARACTER*3 PATH
  16. * CHARACTER*( * ) SUBNAM
  17. * CHARACTER*( * ) OPTS
  18. * INTEGER IMAT, INFO, INFOE, KL, KU, M, N, N5, NERRS,
  19. * $ NFAIL, NOUT
  20. * ..
  21. *
  22. *
  23. *> \par Purpose:
  24. * =============
  25. *>
  26. *> \verbatim
  27. *>
  28. *> ALAERH is an error handler for the LAPACK routines. It prints the
  29. *> header if this is the first error message and prints the error code
  30. *> and form of recovery, if any. The character evaluations in this
  31. *> routine may make it slow, but it should not be called once the LAPACK
  32. *> routines are fully debugged.
  33. *> \endverbatim
  34. *
  35. * Arguments:
  36. * ==========
  37. *
  38. *> \param[in] PATH
  39. *> \verbatim
  40. *> PATH is CHARACTER*3
  41. *> The LAPACK path name of subroutine SUBNAM.
  42. *> \endverbatim
  43. *>
  44. *> \param[in] SUBNAM
  45. *> \verbatim
  46. *> SUBNAM is CHARACTER*(*)
  47. *> The name of the subroutine that returned an error code.
  48. *> \endverbatim
  49. *>
  50. *> \param[in] INFO
  51. *> \verbatim
  52. *> INFO is INTEGER
  53. *> The error code returned from routine SUBNAM.
  54. *> \endverbatim
  55. *>
  56. *> \param[in] INFOE
  57. *> \verbatim
  58. *> INFOE is INTEGER
  59. *> The expected error code from routine SUBNAM, if SUBNAM were
  60. *> error-free. If INFOE = 0, an error message is printed, but
  61. *> if INFOE.NE.0, we assume only the return code INFO is wrong.
  62. *> \endverbatim
  63. *>
  64. *> \param[in] OPTS
  65. *> \verbatim
  66. *> OPTS is CHARACTER*(*)
  67. *> The character options to the subroutine SUBNAM, concatenated
  68. *> into a single character string. For example, UPLO = 'U',
  69. *> TRANS = 'T', and DIAG = 'N' for a triangular routine would
  70. *> be specified as OPTS = 'UTN'.
  71. *> \endverbatim
  72. *>
  73. *> \param[in] M
  74. *> \verbatim
  75. *> M is INTEGER
  76. *> The matrix row dimension.
  77. *> \endverbatim
  78. *>
  79. *> \param[in] N
  80. *> \verbatim
  81. *> N is INTEGER
  82. *> The matrix column dimension. Accessed only if PATH = xGE or
  83. *> xGB.
  84. *> \endverbatim
  85. *>
  86. *> \param[in] KL
  87. *> \verbatim
  88. *> KL is INTEGER
  89. *> The number of sub-diagonals of the matrix. Accessed only if
  90. *> PATH = xGB, xPB, or xTB. Also used for NRHS for PATH = xLS.
  91. *> \endverbatim
  92. *>
  93. *> \param[in] KU
  94. *> \verbatim
  95. *> KU is INTEGER
  96. *> The number of super-diagonals of the matrix. Accessed only
  97. *> if PATH = xGB.
  98. *> \endverbatim
  99. *>
  100. *> \param[in] N5
  101. *> \verbatim
  102. *> N5 is INTEGER
  103. *> A fifth integer parameter, may be the blocksize NB or the
  104. *> number of right hand sides NRHS.
  105. *> \endverbatim
  106. *>
  107. *> \param[in] IMAT
  108. *> \verbatim
  109. *> IMAT is INTEGER
  110. *> The matrix type.
  111. *> \endverbatim
  112. *>
  113. *> \param[in] NFAIL
  114. *> \verbatim
  115. *> NFAIL is INTEGER
  116. *> The number of prior tests that did not pass the threshold;
  117. *> used to determine if the header should be printed.
  118. *> \endverbatim
  119. *>
  120. *> \param[in,out] NERRS
  121. *> \verbatim
  122. *> NERRS is INTEGER
  123. *> On entry, the number of errors already detected; used to
  124. *> determine if the header should be printed.
  125. *> On exit, NERRS is increased by 1.
  126. *> \endverbatim
  127. *>
  128. *> \param[in] NOUT
  129. *> \verbatim
  130. *> NOUT is INTEGER
  131. *> The unit number on which results are to be printed.
  132. *> \endverbatim
  133. *
  134. * Authors:
  135. * ========
  136. *
  137. *> \author Univ. of Tennessee
  138. *> \author Univ. of California Berkeley
  139. *> \author Univ. of Colorado Denver
  140. *> \author NAG Ltd.
  141. *
  142. *> \ingroup aux_lin
  143. *
  144. * =====================================================================
  145. SUBROUTINE ALAERH( PATH, SUBNAM, INFO, INFOE, OPTS, M, N, KL, KU,
  146. $ N5, IMAT, NFAIL, NERRS, NOUT )
  147. *
  148. * -- LAPACK test routine --
  149. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  150. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  151. *
  152. * .. Scalar Arguments ..
  153. CHARACTER*3 PATH
  154. CHARACTER*( * ) SUBNAM
  155. CHARACTER*( * ) OPTS
  156. INTEGER IMAT, INFO, INFOE, KL, KU, M, N, N5, NERRS,
  157. $ NFAIL, NOUT
  158. * ..
  159. *
  160. * =====================================================================
  161. *
  162. * .. Local Scalars ..
  163. CHARACTER UPLO
  164. CHARACTER*2 P2
  165. CHARACTER*3 C3
  166. * ..
  167. * .. External Functions ..
  168. LOGICAL LSAME, LSAMEN
  169. EXTERNAL LSAME, LSAMEN
  170. * ..
  171. * .. Intrinsic Functions ..
  172. INTRINSIC LEN_TRIM
  173. * ..
  174. * .. External Subroutines ..
  175. EXTERNAL ALADHD, ALAHD
  176. * ..
  177. * .. Executable Statements ..
  178. *
  179. IF( INFO.EQ.0 )
  180. $ RETURN
  181. P2 = PATH( 2: 3 )
  182. C3 = SUBNAM( 4: 6 )
  183. *
  184. * Print the header if this is the first error message.
  185. *
  186. IF( NFAIL.EQ.0 .AND. NERRS.EQ.0 ) THEN
  187. IF( LSAMEN( 3, C3, 'SV ' ) .OR. LSAMEN( 3, C3, 'SVX' ) ) THEN
  188. CALL ALADHD( NOUT, PATH )
  189. ELSE
  190. CALL ALAHD( NOUT, PATH )
  191. END IF
  192. END IF
  193. NERRS = NERRS + 1
  194. *
  195. * Print the message detailing the error and form of recovery,
  196. * if any.
  197. *
  198. IF( LSAMEN( 2, P2, 'GE' ) ) THEN
  199. *
  200. * xGE: General matrices
  201. *
  202. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  203. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  204. WRITE( NOUT, FMT = 9988 )
  205. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, N5,
  206. $ IMAT
  207. ELSE
  208. WRITE( NOUT, FMT = 9975 )
  209. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, N5, IMAT
  210. END IF
  211. IF( INFO.NE.0 )
  212. $ WRITE( NOUT, FMT = 9949 )
  213. *
  214. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  215. *
  216. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  217. WRITE( NOUT, FMT = 9984 )
  218. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
  219. $ IMAT
  220. ELSE
  221. WRITE( NOUT, FMT = 9970 )
  222. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
  223. END IF
  224. *
  225. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  226. *
  227. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  228. WRITE( NOUT, FMT = 9992 )
  229. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  230. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  231. ELSE
  232. WRITE( NOUT, FMT = 9997 )
  233. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  234. $ OPTS( 2: 2 ), N, N5, IMAT
  235. END IF
  236. *
  237. ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
  238. *
  239. WRITE( NOUT, FMT = 9971 )
  240. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
  241. *
  242. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  243. *
  244. WRITE( NOUT, FMT = 9978 )
  245. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  246. *
  247. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  248. *
  249. WRITE( NOUT, FMT = 9969 )
  250. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M,
  251. $ IMAT
  252. *
  253. ELSE IF( LSAMEN( 3, C3, 'LS ' ) ) THEN
  254. *
  255. WRITE( NOUT, FMT = 9965 )
  256. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, N,
  257. $ KL, N5, IMAT
  258. *
  259. ELSE IF( LSAMEN( 3, C3, 'LSX' ) .OR. LSAMEN( 3, C3, 'LSS' ) )
  260. $ THEN
  261. *
  262. WRITE( NOUT, FMT = 9974 )
  263. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  264. *
  265. ELSE
  266. *
  267. WRITE( NOUT, FMT = 9963 )
  268. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, N5,
  269. $ IMAT
  270. END IF
  271. *
  272. ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
  273. *
  274. * xGB: General band matrices
  275. *
  276. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  277. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  278. WRITE( NOUT, FMT = 9989 )
  279. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, KL,
  280. $ KU, N5, IMAT
  281. ELSE
  282. WRITE( NOUT, FMT = 9976 )
  283. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, KU, N5,
  284. $ IMAT
  285. END IF
  286. IF( INFO.NE.0 )
  287. $ WRITE( NOUT, FMT = 9949 )
  288. *
  289. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  290. *
  291. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  292. WRITE( NOUT, FMT = 9986 )
  293. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, KL, KU,
  294. $ N5, IMAT
  295. ELSE
  296. WRITE( NOUT, FMT = 9972 )
  297. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, KL, KU, N5,
  298. $ IMAT
  299. END IF
  300. *
  301. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  302. *
  303. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  304. WRITE( NOUT, FMT = 9993 )
  305. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  306. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, KL, KU, N5, IMAT
  307. ELSE
  308. WRITE( NOUT, FMT = 9998 )
  309. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  310. $ OPTS( 2: 2 ), N, KL, KU, N5, IMAT
  311. END IF
  312. *
  313. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  314. *
  315. WRITE( NOUT, FMT = 9977 )
  316. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, KU, IMAT
  317. *
  318. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  319. *
  320. WRITE( NOUT, FMT = 9968 )
  321. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, KL,
  322. $ KU, IMAT
  323. *
  324. ELSE
  325. *
  326. WRITE( NOUT, FMT = 9964 )
  327. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, KL,
  328. $ KU, N5, IMAT
  329. END IF
  330. *
  331. ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
  332. *
  333. * xGT: General tridiagonal matrices
  334. *
  335. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  336. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  337. WRITE( NOUT, FMT = 9987 )
  338. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, IMAT
  339. ELSE
  340. WRITE( NOUT, FMT = 9973 )
  341. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, IMAT
  342. END IF
  343. IF( INFO.NE.0 )
  344. $ WRITE( NOUT, FMT = 9949 )
  345. *
  346. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  347. *
  348. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  349. WRITE( NOUT, FMT = 9984 )
  350. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
  351. $ IMAT
  352. ELSE
  353. WRITE( NOUT, FMT = 9970 )
  354. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
  355. END IF
  356. *
  357. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  358. *
  359. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  360. WRITE( NOUT, FMT = 9992 )
  361. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  362. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  363. ELSE
  364. WRITE( NOUT, FMT = 9997 )
  365. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  366. $ OPTS( 2: 2 ), N, N5, IMAT
  367. END IF
  368. *
  369. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  370. *
  371. WRITE( NOUT, FMT = 9969 )
  372. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M,
  373. $ IMAT
  374. *
  375. ELSE
  376. *
  377. WRITE( NOUT, FMT = 9963 )
  378. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, N5,
  379. $ IMAT
  380. END IF
  381. *
  382. ELSE IF( LSAMEN( 2, P2, 'PO' ) ) THEN
  383. *
  384. * xPO: Symmetric or Hermitian positive definite matrices
  385. *
  386. UPLO = OPTS( 1: 1 )
  387. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  388. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  389. WRITE( NOUT, FMT = 9980 )
  390. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
  391. $ N5, IMAT
  392. ELSE
  393. WRITE( NOUT, FMT = 9956 )
  394. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  395. END IF
  396. IF( INFO.NE.0 )
  397. $ WRITE( NOUT, FMT = 9949 )
  398. *
  399. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  400. *
  401. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  402. WRITE( NOUT, FMT = 9979 )
  403. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
  404. $ N5, IMAT
  405. ELSE
  406. WRITE( NOUT, FMT = 9955 )
  407. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
  408. END IF
  409. *
  410. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  411. *
  412. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  413. WRITE( NOUT, FMT = 9990 )
  414. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  415. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  416. ELSE
  417. WRITE( NOUT, FMT = 9995 )
  418. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  419. $ OPTS( 2: 2 ), N, N5, IMAT
  420. END IF
  421. *
  422. ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
  423. *
  424. WRITE( NOUT, FMT = 9956 )
  425. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  426. *
  427. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) .OR.
  428. $ LSAMEN( 3, C3, 'CON' ) ) THEN
  429. *
  430. WRITE( NOUT, FMT = 9960 )
  431. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
  432. *
  433. ELSE
  434. *
  435. WRITE( NOUT, FMT = 9955 )
  436. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  437. END IF
  438. *
  439. ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN
  440. *
  441. * xPS: Symmetric or Hermitian positive semi-definite matrices
  442. *
  443. UPLO = OPTS( 1: 1 )
  444. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  445. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  446. WRITE( NOUT, FMT = 9980 )SUBNAM, INFO, INFOE, UPLO, M,
  447. $ N5, IMAT
  448. ELSE
  449. WRITE( NOUT, FMT = 9956 )SUBNAM, INFO, UPLO, M, N5, IMAT
  450. END IF
  451. IF( INFO.NE.0 )
  452. $ WRITE( NOUT, FMT = 9949 )
  453. *
  454. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  455. *
  456. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  457. WRITE( NOUT, FMT = 9979 )SUBNAM, INFO, INFOE, UPLO, N,
  458. $ N5, IMAT
  459. ELSE
  460. WRITE( NOUT, FMT = 9955 )SUBNAM, INFO, UPLO, N, N5, IMAT
  461. END IF
  462. *
  463. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  464. *
  465. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  466. WRITE( NOUT, FMT = 9990 )SUBNAM, INFO, INFOE,
  467. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  468. ELSE
  469. WRITE( NOUT, FMT = 9995 )SUBNAM, INFO, OPTS( 1: 1 ),
  470. $ OPTS( 2: 2 ), N, N5, IMAT
  471. END IF
  472. *
  473. ELSE IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
  474. *
  475. WRITE( NOUT, FMT = 9956 )SUBNAM, INFO, UPLO, M, N5, IMAT
  476. *
  477. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMT' ) .OR.
  478. $ LSAMEN( 3, C3, 'CON' ) ) THEN
  479. *
  480. WRITE( NOUT, FMT = 9960 )SUBNAM, INFO, UPLO, M, IMAT
  481. *
  482. ELSE
  483. *
  484. WRITE( NOUT, FMT = 9955 )SUBNAM, INFO, UPLO, M, N5, IMAT
  485. END IF
  486. *
  487. ELSE IF( LSAMEN( 2, P2, 'SY' )
  488. $ .OR. LSAMEN( 2, P2, 'SR' )
  489. $ .OR. LSAMEN( 2, P2, 'SK' )
  490. $ .OR. LSAMEN( 2, P2, 'HE' )
  491. $ .OR. LSAMEN( 2, P2, 'HR' )
  492. $ .OR. LSAMEN( 2, P2, 'HK' )
  493. $ .OR. LSAMEN( 2, P2, 'HA' ) ) THEN
  494. *
  495. * xSY: symmetric indefinite matrices
  496. * with partial (Bunch-Kaufman) pivoting;
  497. * xSR: symmetric indefinite matrices
  498. * with rook (bounded Bunch-Kaufman) pivoting;
  499. * xSK: symmetric indefinite matrices
  500. * with rook (bounded Bunch-Kaufman) pivoting,
  501. * new storage format;
  502. * xHE: Hermitian indefinite matrices
  503. * with partial (Bunch-Kaufman) pivoting.
  504. * xHR: Hermitian indefinite matrices
  505. * with rook (bounded Bunch-Kaufman) pivoting;
  506. * xHK: Hermitian indefinite matrices
  507. * with rook (bounded Bunch-Kaufman) pivoting,
  508. * new storage format;
  509. * xHA: Hermitian matrices
  510. * Aasen Algorithm
  511. *
  512. UPLO = OPTS( 1: 1 )
  513. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  514. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  515. WRITE( NOUT, FMT = 9980 )
  516. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
  517. $ N5, IMAT
  518. ELSE
  519. WRITE( NOUT, FMT = 9956 )
  520. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  521. END IF
  522. IF( INFO.NE.0 )
  523. $ WRITE( NOUT, FMT = 9949 )
  524. *
  525. ELSE IF( LSAMEN( 2, C3, 'SV' ) ) THEN
  526. *
  527. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  528. WRITE( NOUT, FMT = 9979 )
  529. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
  530. $ N5, IMAT
  531. ELSE
  532. WRITE( NOUT, FMT = 9955 )
  533. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
  534. END IF
  535. *
  536. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  537. *
  538. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  539. WRITE( NOUT, FMT = 9990 )
  540. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  541. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  542. ELSE
  543. WRITE( NOUT, FMT = 9995 )
  544. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  545. $ OPTS( 2: 2 ), N, N5, IMAT
  546. END IF
  547. *
  548. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) .OR.
  549. $ LSAMEN( 3, C3, 'TRI' ) .OR. LSAMEN( 3, C3, 'CON' ) )
  550. $ THEN
  551. *
  552. WRITE( NOUT, FMT = 9960 )
  553. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
  554. *
  555. ELSE
  556. *
  557. WRITE( NOUT, FMT = 9955 )
  558. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  559. END IF
  560. *
  561. ELSE IF( LSAMEN( 2, P2, 'PP' ) .OR. LSAMEN( 2, P2, 'SP' ) .OR.
  562. $ LSAMEN( 2, P2, 'HP' ) ) THEN
  563. *
  564. * xPP, xHP, or xSP: Symmetric or Hermitian packed matrices
  565. *
  566. UPLO = OPTS( 1: 1 )
  567. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  568. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  569. WRITE( NOUT, FMT = 9983 )
  570. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
  571. $ IMAT
  572. ELSE
  573. WRITE( NOUT, FMT = 9960 )
  574. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
  575. END IF
  576. IF( INFO.NE.0 )
  577. $ WRITE( NOUT, FMT = 9949 )
  578. *
  579. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  580. *
  581. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  582. WRITE( NOUT, FMT = 9979 )
  583. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
  584. $ N5, IMAT
  585. ELSE
  586. WRITE( NOUT, FMT = 9955 )
  587. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, N5, IMAT
  588. END IF
  589. *
  590. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  591. *
  592. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  593. WRITE( NOUT, FMT = 9990 )
  594. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  595. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, N5, IMAT
  596. ELSE
  597. WRITE( NOUT, FMT = 9995 )
  598. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  599. $ OPTS( 2: 2 ), N, N5, IMAT
  600. END IF
  601. *
  602. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) .OR.
  603. $ LSAMEN( 3, C3, 'TRI' ) .OR. LSAMEN( 3, C3, 'CON' ) )
  604. $ THEN
  605. *
  606. WRITE( NOUT, FMT = 9960 )
  607. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, IMAT
  608. *
  609. ELSE
  610. *
  611. WRITE( NOUT, FMT = 9955 )
  612. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, N5, IMAT
  613. END IF
  614. *
  615. ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
  616. *
  617. * xPB: Symmetric (Hermitian) positive definite band matrix
  618. *
  619. UPLO = OPTS( 1: 1 )
  620. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  621. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  622. WRITE( NOUT, FMT = 9982 )
  623. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, M,
  624. $ KL, N5, IMAT
  625. ELSE
  626. WRITE( NOUT, FMT = 9958 )
  627. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, N5,
  628. $ IMAT
  629. END IF
  630. IF( INFO.NE.0 )
  631. $ WRITE( NOUT, FMT = 9949 )
  632. *
  633. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  634. *
  635. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  636. WRITE( NOUT, FMT = 9981 )
  637. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, UPLO, N,
  638. $ KL, N5, IMAT
  639. ELSE
  640. WRITE( NOUT, FMT = 9957 )
  641. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, N, KL, N5,
  642. $ IMAT
  643. END IF
  644. *
  645. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  646. *
  647. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  648. WRITE( NOUT, FMT = 9991 )
  649. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  650. $ OPTS( 1: 1 ), OPTS( 2: 2 ), N, KL, N5, IMAT
  651. ELSE
  652. WRITE( NOUT, FMT = 9996 )
  653. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  654. $ OPTS( 2: 2 ), N, KL, N5, IMAT
  655. END IF
  656. *
  657. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) .OR.
  658. $ LSAMEN( 3, C3, 'CON' ) ) THEN
  659. *
  660. WRITE( NOUT, FMT = 9959 )
  661. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, IMAT
  662. *
  663. ELSE
  664. *
  665. WRITE( NOUT, FMT = 9957 )
  666. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, UPLO, M, KL, N5,
  667. $ IMAT
  668. END IF
  669. *
  670. ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
  671. *
  672. * xPT: Positive definite tridiagonal matrices
  673. *
  674. IF( LSAMEN( 3, C3, 'TRF' ) ) THEN
  675. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  676. WRITE( NOUT, FMT = 9987 )
  677. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, IMAT
  678. ELSE
  679. WRITE( NOUT, FMT = 9973 )
  680. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, IMAT
  681. END IF
  682. IF( INFO.NE.0 )
  683. $ WRITE( NOUT, FMT = 9949 )
  684. *
  685. ELSE IF( LSAMEN( 3, C3, 'SV ' ) ) THEN
  686. *
  687. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  688. WRITE( NOUT, FMT = 9984 )
  689. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, N, N5,
  690. $ IMAT
  691. ELSE
  692. WRITE( NOUT, FMT = 9970 )
  693. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, N, N5, IMAT
  694. END IF
  695. *
  696. ELSE IF( LSAMEN( 3, C3, 'SVX' ) ) THEN
  697. *
  698. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  699. WRITE( NOUT, FMT = 9994 )
  700. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE,
  701. $ OPTS( 1: 1 ), N, N5, IMAT
  702. ELSE
  703. WRITE( NOUT, FMT = 9999 )
  704. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), N,
  705. $ N5, IMAT
  706. END IF
  707. *
  708. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  709. *
  710. IF( LSAME( SUBNAM( 1: 1 ), 'S' ) .OR.
  711. $ LSAME( SUBNAM( 1: 1 ), 'D' ) ) THEN
  712. WRITE( NOUT, FMT = 9973 )
  713. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, IMAT
  714. ELSE
  715. WRITE( NOUT, FMT = 9969 )
  716. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M,
  717. $ IMAT
  718. END IF
  719. *
  720. ELSE
  721. *
  722. WRITE( NOUT, FMT = 9963 )
  723. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ), M, N5,
  724. $ IMAT
  725. END IF
  726. *
  727. ELSE IF( LSAMEN( 2, P2, 'TR' ) ) THEN
  728. *
  729. * xTR: Triangular matrix
  730. *
  731. IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
  732. WRITE( NOUT, FMT = 9961 )
  733. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  734. $ OPTS( 2: 2 ), M, N5, IMAT
  735. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  736. WRITE( NOUT, FMT = 9967 )
  737. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  738. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, IMAT
  739. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATRS' ) ) THEN
  740. WRITE( NOUT, FMT = 9952 )
  741. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  742. $ OPTS( 2: 2 ), OPTS( 3: 3 ), OPTS( 4: 4 ), M, IMAT
  743. ELSE
  744. WRITE( NOUT, FMT = 9953 )
  745. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  746. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, N5, IMAT
  747. END IF
  748. *
  749. ELSE IF( LSAMEN( 2, P2, 'TP' ) ) THEN
  750. *
  751. * xTP: Triangular packed matrix
  752. *
  753. IF( LSAMEN( 3, C3, 'TRI' ) ) THEN
  754. WRITE( NOUT, FMT = 9962 )
  755. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  756. $ OPTS( 2: 2 ), M, IMAT
  757. ELSE IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  758. WRITE( NOUT, FMT = 9967 )
  759. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  760. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, IMAT
  761. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATPS' ) ) THEN
  762. WRITE( NOUT, FMT = 9952 )
  763. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  764. $ OPTS( 2: 2 ), OPTS( 3: 3 ), OPTS( 4: 4 ), M, IMAT
  765. ELSE
  766. WRITE( NOUT, FMT = 9953 )
  767. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  768. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, N5, IMAT
  769. END IF
  770. *
  771. ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN
  772. *
  773. * xTB: Triangular band matrix
  774. *
  775. IF( LSAMEN( 3, C3, 'CON' ) ) THEN
  776. WRITE( NOUT, FMT = 9966 )
  777. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  778. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, KL, IMAT
  779. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATBS' ) ) THEN
  780. WRITE( NOUT, FMT = 9951 )
  781. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  782. $ OPTS( 2: 2 ), OPTS( 3: 3 ), OPTS( 4: 4 ), M, KL, IMAT
  783. ELSE
  784. WRITE( NOUT, FMT = 9954 )
  785. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, OPTS( 1: 1 ),
  786. $ OPTS( 2: 2 ), OPTS( 3: 3 ), M, KL, N5, IMAT
  787. END IF
  788. *
  789. ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN
  790. *
  791. * xQR: QR factorization
  792. *
  793. IF( LSAMEN( 3, C3, 'QRS' ) ) THEN
  794. WRITE( NOUT, FMT = 9974 )
  795. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  796. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  797. WRITE( NOUT, FMT = 9978 )
  798. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  799. END IF
  800. *
  801. ELSE IF( LSAMEN( 2, P2, 'QK' ) ) THEN
  802. *
  803. * xQK: truncated QR factorization with pivoting
  804. *
  805. IF( LSAMEN( 7, SUBNAM( 2: 8 ), 'GEQP3RK' ) ) THEN
  806. WRITE( NOUT, FMT = 9930 )
  807. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  808. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  809. WRITE( NOUT, FMT = 9978 )
  810. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  811. END IF
  812. *
  813. ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN
  814. *
  815. * xLQ: LQ factorization
  816. *
  817. IF( LSAMEN( 3, C3, 'LQS' ) ) THEN
  818. WRITE( NOUT, FMT = 9974 )
  819. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  820. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  821. WRITE( NOUT, FMT = 9978 )
  822. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  823. END IF
  824. *
  825. ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN
  826. *
  827. * xQL: QL factorization
  828. *
  829. IF( LSAMEN( 3, C3, 'QLS' ) ) THEN
  830. WRITE( NOUT, FMT = 9974 )
  831. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  832. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  833. WRITE( NOUT, FMT = 9978 )
  834. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  835. END IF
  836. *
  837. ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN
  838. *
  839. * xRQ: RQ factorization
  840. *
  841. IF( LSAMEN( 3, C3, 'RQS' ) ) THEN
  842. WRITE( NOUT, FMT = 9974 )
  843. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, KL, N5, IMAT
  844. ELSE IF( LSAMEN( 5, SUBNAM( 2: 6 ), 'LATMS' ) ) THEN
  845. WRITE( NOUT, FMT = 9978 )
  846. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, IMAT
  847. END IF
  848. *
  849. ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
  850. *
  851. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  852. WRITE( NOUT, FMT = 9988 )
  853. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, N5,
  854. $ IMAT
  855. ELSE
  856. WRITE( NOUT, FMT = 9975 )
  857. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, N5, IMAT
  858. END IF
  859. *
  860. ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
  861. *
  862. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  863. WRITE( NOUT, FMT = 9985 )
  864. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N5, IMAT
  865. ELSE
  866. WRITE( NOUT, FMT = 9971 )
  867. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N5, IMAT
  868. END IF
  869. *
  870. ELSE
  871. *
  872. * Print a generic message if the path is unknown.
  873. *
  874. WRITE( NOUT, FMT = 9950 )
  875. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO
  876. END IF
  877. *
  878. * Description of error message (alphabetical, left to right)
  879. *
  880. * SUBNAM, INFO, FACT, N, NRHS, IMAT
  881. *
  882. 9999 FORMAT( ' *** Error code from ', A, '=', I5, ', FACT=''', A1,
  883. $ ''', N=', I5, ', NRHS=', I4, ', type ', I2 )
  884. *
  885. * SUBNAM, INFO, FACT, TRANS, N, KL, KU, NRHS, IMAT
  886. *
  887. 9998 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  888. $ A1, ''', TRANS=''', A1, ''', N=', I5, ', KL=', I5, ', KU=',
  889. $ I5, ', NRHS=', I4, ', type ', I1 )
  890. *
  891. * SUBNAM, INFO, FACT, TRANS, N, NRHS, IMAT
  892. *
  893. 9997 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  894. $ A1, ''', TRANS=''', A1, ''', N =', I5, ', NRHS =', I4,
  895. $ ', type ', I2 )
  896. *
  897. * SUBNAM, INFO, FACT, UPLO, N, KD, NRHS, IMAT
  898. *
  899. 9996 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  900. $ A1, ''', UPLO=''', A1, ''', N=', I5, ', KD=', I5, ', NRHS=',
  901. $ I4, ', type ', I2 )
  902. *
  903. * SUBNAM, INFO, FACT, UPLO, N, NRHS, IMAT
  904. *
  905. 9995 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  906. $ A1, ''', UPLO=''', A1, ''', N =', I5, ', NRHS =', I4,
  907. $ ', type ', I2 )
  908. *
  909. * SUBNAM, INFO, INFOE, FACT, N, NRHS, IMAT
  910. *
  911. 9994 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  912. $ I2, / ' ==> FACT=''', A1, ''', N =', I5, ', NRHS =', I4,
  913. $ ', type ', I2 )
  914. *
  915. * SUBNAM, INFO, INFOE, FACT, TRANS, N, KL, KU, NRHS, IMAT
  916. *
  917. 9993 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  918. $ I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N=', I5,
  919. $ ', KL=', I5, ', KU=', I5, ', NRHS=', I4, ', type ', I1 )
  920. *
  921. * SUBNAM, INFO, INFOE, FACT, TRANS, N, NRHS, IMAT
  922. *
  923. 9992 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  924. $ I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N =', I5,
  925. $ ', NRHS =', I4, ', type ', I2 )
  926. *
  927. * SUBNAM, INFO, INFOE, FACT, UPLO, N, KD, NRHS, IMAT
  928. *
  929. 9991 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  930. $ I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N=', I5,
  931. $ ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
  932. *
  933. * SUBNAM, INFO, INFOE, FACT, UPLO, N, NRHS, IMAT
  934. *
  935. 9990 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  936. $ I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N =', I5,
  937. $ ', NRHS =', I4, ', type ', I2 )
  938. *
  939. * SUBNAM, INFO, INFOE, M, N, KL, KU, NB, IMAT
  940. *
  941. 9989 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  942. $ I2, / ' ==> M = ', I5, ', N =', I5, ', KL =', I5, ', KU =',
  943. $ I5, ', NB =', I4, ', type ', I2 )
  944. *
  945. * SUBNAM, INFO, INFOE, M, N, NB, IMAT
  946. *
  947. 9988 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  948. $ I2, / ' ==> M =', I5, ', N =', I5, ', NB =', I4, ', type ',
  949. $ I2 )
  950. *
  951. * SUBNAM, INFO, INFOE, N, IMAT
  952. *
  953. 9987 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  954. $ I2, ' for N=', I5, ', type ', I2 )
  955. *
  956. * SUBNAM, INFO, INFOE, N, KL, KU, NRHS, IMAT
  957. *
  958. 9986 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  959. $ I2, / ' ==> N =', I5, ', KL =', I5, ', KU =', I5,
  960. $ ', NRHS =', I4, ', type ', I2 )
  961. *
  962. * SUBNAM, INFO, INFOE, N, NB, IMAT
  963. *
  964. 9985 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  965. $ I2, / ' ==> N =', I5, ', NB =', I4, ', type ', I2 )
  966. *
  967. * SUBNAM, INFO, INFOE, N, NRHS, IMAT
  968. *
  969. 9984 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  970. $ I2, / ' ==> N =', I5, ', NRHS =', I4, ', type ', I2 )
  971. *
  972. * SUBNAM, INFO, INFOE, UPLO, N, IMAT
  973. *
  974. 9983 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  975. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', type ', I2 )
  976. *
  977. * SUBNAM, INFO, INFOE, UPLO, N, KD, NB, IMAT
  978. *
  979. 9982 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  980. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', KD =', I5,
  981. $ ', NB =', I4, ', type ', I2 )
  982. *
  983. * SUBNAM, INFO, INFOE, UPLO, N, KD, NRHS, IMAT
  984. *
  985. 9981 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  986. $ I2, / ' ==> UPLO=''', A1, ''', N =', I5, ', KD =', I5,
  987. $ ', NRHS =', I4, ', type ', I2 )
  988. *
  989. * SUBNAM, INFO, INFOE, UPLO, N, NB, IMAT
  990. *
  991. 9980 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  992. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NB =', I4,
  993. $ ', type ', I2 )
  994. *
  995. * SUBNAM, INFO, INFOE, UPLO, N, NRHS, IMAT
  996. *
  997. 9979 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  998. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NRHS =', I4,
  999. $ ', type ', I2 )
  1000. *
  1001. * SUBNAM, INFO, M, N, IMAT
  1002. *
  1003. 9978 FORMAT( ' *** Error code from ', A, ' =', I5, ' for M =', I5,
  1004. $ ', N =', I5, ', type ', I2 )
  1005. *
  1006. * SUBNAM, INFO, M, N, KL, KU, IMAT
  1007. *
  1008. 9977 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
  1009. $ ', N =', I5, ', KL =', I5, ', KU =', I5, ', type ', I2 )
  1010. *
  1011. * SUBNAM, INFO, M, N, KL, KU, NB, IMAT
  1012. *
  1013. 9976 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
  1014. $ ', N =', I5, ', KL =', I5, ', KU =', I5, ', NB =', I4,
  1015. $ ', type ', I2 )
  1016. *
  1017. * SUBNAM, INFO, M, N, NB, IMAT
  1018. *
  1019. 9975 FORMAT( ' *** Error code from ', A, '=', I5, ' for M=', I5,
  1020. $ ', N=', I5, ', NB=', I4, ', type ', I2 )
  1021. *
  1022. * SUBNAM, INFO, M, N, NRHS, NB, IMAT
  1023. *
  1024. 9974 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> M =', I5,
  1025. $ ', N =', I5, ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
  1026. *
  1027. * SUBNAM, INFO, N, IMAT
  1028. *
  1029. 9973 FORMAT( ' *** Error code from ', A, ' =', I5, ' for N =', I5,
  1030. $ ', type ', I2 )
  1031. *
  1032. * SUBNAM, INFO, N, KL, KU, NRHS, IMAT
  1033. *
  1034. 9972 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> N =', I5,
  1035. $ ', KL =', I5, ', KU =', I5, ', NRHS =', I4, ', type ', I2 )
  1036. *
  1037. * SUBNAM, INFO, N, NB, IMAT
  1038. *
  1039. 9971 FORMAT( ' *** Error code from ', A, '=', I5, ' for N=', I5,
  1040. $ ', NB=', I4, ', type ', I2 )
  1041. *
  1042. * SUBNAM, INFO, N, NRHS, IMAT
  1043. *
  1044. 9970 FORMAT( ' *** Error code from ', A, ' =', I5, ' for N =', I5,
  1045. $ ', NRHS =', I4, ', type ', I2 )
  1046. *
  1047. * SUBNAM, INFO, NORM, N, IMAT
  1048. *
  1049. 9969 FORMAT( ' *** Error code from ', A, ' =', I5, ' for NORM = ''',
  1050. $ A1, ''', N =', I5, ', type ', I2 )
  1051. *
  1052. * SUBNAM, INFO, NORM, N, KL, KU, IMAT
  1053. *
  1054. 9968 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM =''',
  1055. $ A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', type ',
  1056. $ I2 )
  1057. *
  1058. * SUBNAM, INFO, NORM, UPLO, DIAG, N, IMAT
  1059. *
  1060. 9967 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
  1061. $ A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N =', I5,
  1062. $ ', type ', I2 )
  1063. *
  1064. * SUBNAM, INFO, NORM, UPLO, DIAG, N, KD, IMAT
  1065. *
  1066. 9966 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
  1067. $ A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N=', I5,
  1068. $ ', KD=', I5, ', type ', I2 )
  1069. *
  1070. * SUBNAM, INFO, TRANS, M, N, NRHS, NB, IMAT
  1071. *
  1072. 9965 FORMAT( ' *** Error code from ', A, ' =', I5,
  1073. $ / ' ==> TRANS = ''', A1, ''', M =', I5, ', N =', I5,
  1074. $ ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
  1075. *
  1076. * SUBNAM, INFO, TRANS, N, KL, KU, NRHS, IMAT
  1077. *
  1078. 9964 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> TRANS=''',
  1079. $ A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', NRHS =',
  1080. $ I4, ', type ', I2 )
  1081. *
  1082. * SUBNAM, INFO, TRANS, N, NRHS, IMAT
  1083. *
  1084. 9963 FORMAT( ' *** Error code from ', A, ' =', I5,
  1085. $ / ' ==> TRANS = ''', A1, ''', N =', I5, ', NRHS =', I4,
  1086. $ ', type ', I2 )
  1087. *
  1088. * SUBNAM, INFO, UPLO, DIAG, N, IMAT
  1089. *
  1090. 9962 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1091. $ A1, ''', DIAG =''', A1, ''', N =', I5, ', type ', I2 )
  1092. *
  1093. * SUBNAM, INFO, UPLO, DIAG, N, NB, IMAT
  1094. *
  1095. 9961 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1096. $ A1, ''', DIAG =''', A1, ''', N =', I5, ', NB =', I4,
  1097. $ ', type ', I2 )
  1098. *
  1099. * SUBNAM, INFO, UPLO, N, IMAT
  1100. *
  1101. 9960 FORMAT( ' *** Error code from ', A, ' =', I5, ' for UPLO = ''',
  1102. $ A1, ''', N =', I5, ', type ', I2 )
  1103. *
  1104. * SUBNAM, INFO, UPLO, N, KD, IMAT
  1105. *
  1106. 9959 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1107. $ A1, ''', N =', I5, ', KD =', I5, ', type ', I2 )
  1108. *
  1109. * SUBNAM, INFO, UPLO, N, KD, NB, IMAT
  1110. *
  1111. 9958 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1112. $ A1, ''', N =', I5, ', KD =', I5, ', NB =', I4, ', type ',
  1113. $ I2 )
  1114. *
  1115. * SUBNAM, INFO, UPLO, N, KD, NRHS, IMAT
  1116. *
  1117. 9957 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> UPLO = ''',
  1118. $ A1, ''', N =', I5, ', KD =', I5, ', NRHS =', I4, ', type ',
  1119. $ I2 )
  1120. *
  1121. * SUBNAM, INFO, UPLO, N, NB, IMAT
  1122. *
  1123. 9956 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1124. $ A1, ''', N =', I5, ', NB =', I4, ', type ', I2 )
  1125. *
  1126. * SUBNAM, INFO, UPLO, N, NRHS, IMAT
  1127. *
  1128. 9955 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1129. $ A1, ''', N =', I5, ', NRHS =', I4, ', type ', I2 )
  1130. *
  1131. * SUBNAM, INFO, UPLO, TRANS, DIAG, N, KD, NRHS, IMAT
  1132. *
  1133. 9954 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1134. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N=', I5,
  1135. $ ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
  1136. *
  1137. * SUBNAM, INFO, UPLO, TRANS, DIAG, N, NRHS, IMAT
  1138. *
  1139. 9953 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1140. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N =', I5,
  1141. $ ', NRHS =', I4, ', type ', I2 )
  1142. *
  1143. * SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, IMAT
  1144. *
  1145. 9952 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1146. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
  1147. $ A1, ''', N =', I5, ', type ', I2 )
  1148. *
  1149. * SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, KD, IMAT
  1150. *
  1151. 9951 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1152. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
  1153. $ A1, ''', N=', I5, ', KD=', I5, ', type ', I2 )
  1154. *
  1155. * Unknown type
  1156. *
  1157. 9950 FORMAT( ' *** Error code from ', A, ' =', I5 )
  1158. *
  1159. * What we do next
  1160. *
  1161. 9949 FORMAT( ' ==> Doing only the condition estimate for this case' )
  1162. *
  1163. * SUBNAM, INFO, M, N, NB, IMAT
  1164. *
  1165. 9930 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> M =', I5,
  1166. $ ', N =', I5, ', NX =', I5, ', NB =', I4, ', type ', I2 )
  1167. *
  1168. RETURN
  1169. *
  1170. * End of ALAERH
  1171. *
  1172. END