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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155
  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, 'LQ' ) ) THEN
  802. *
  803. * xLQ: LQ factorization
  804. *
  805. IF( LSAMEN( 3, C3, 'LQS' ) ) THEN
  806. WRITE( NOUT, FMT = 9974 )
  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, 'QL' ) ) THEN
  814. *
  815. * xQL: QL factorization
  816. *
  817. IF( LSAMEN( 3, C3, 'QLS' ) ) 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, 'RQ' ) ) THEN
  826. *
  827. * xRQ: RQ factorization
  828. *
  829. IF( LSAMEN( 3, C3, 'RQS' ) ) 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, 'LU' ) ) THEN
  838. *
  839. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  840. WRITE( NOUT, FMT = 9988 )
  841. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N, N5,
  842. $ IMAT
  843. ELSE
  844. WRITE( NOUT, FMT = 9975 )
  845. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N, N5, IMAT
  846. END IF
  847. *
  848. ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
  849. *
  850. IF( INFO.NE.INFOE .AND. INFOE.NE.0 ) THEN
  851. WRITE( NOUT, FMT = 9985 )
  852. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, INFOE, M, N5, IMAT
  853. ELSE
  854. WRITE( NOUT, FMT = 9971 )
  855. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO, M, N5, IMAT
  856. END IF
  857. *
  858. ELSE
  859. *
  860. * Print a generic message if the path is unknown.
  861. *
  862. WRITE( NOUT, FMT = 9950 )
  863. $ SUBNAM(1:LEN_TRIM( SUBNAM )), INFO
  864. END IF
  865. *
  866. * Description of error message (alphabetical, left to right)
  867. *
  868. * SUBNAM, INFO, FACT, N, NRHS, IMAT
  869. *
  870. 9999 FORMAT( ' *** Error code from ', A, '=', I5, ', FACT=''', A1,
  871. $ ''', N=', I5, ', NRHS=', I4, ', type ', I2 )
  872. *
  873. * SUBNAM, INFO, FACT, TRANS, N, KL, KU, NRHS, IMAT
  874. *
  875. 9998 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  876. $ A1, ''', TRANS=''', A1, ''', N=', I5, ', KL=', I5, ', KU=',
  877. $ I5, ', NRHS=', I4, ', type ', I1 )
  878. *
  879. * SUBNAM, INFO, FACT, TRANS, N, NRHS, IMAT
  880. *
  881. 9997 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  882. $ A1, ''', TRANS=''', A1, ''', N =', I5, ', NRHS =', I4,
  883. $ ', type ', I2 )
  884. *
  885. * SUBNAM, INFO, FACT, UPLO, N, KD, NRHS, IMAT
  886. *
  887. 9996 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  888. $ A1, ''', UPLO=''', A1, ''', N=', I5, ', KD=', I5, ', NRHS=',
  889. $ I4, ', type ', I2 )
  890. *
  891. * SUBNAM, INFO, FACT, UPLO, N, NRHS, IMAT
  892. *
  893. 9995 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> FACT=''',
  894. $ A1, ''', UPLO=''', A1, ''', N =', I5, ', NRHS =', I4,
  895. $ ', type ', I2 )
  896. *
  897. * SUBNAM, INFO, INFOE, FACT, N, NRHS, IMAT
  898. *
  899. 9994 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  900. $ I2, / ' ==> FACT=''', A1, ''', N =', I5, ', NRHS =', I4,
  901. $ ', type ', I2 )
  902. *
  903. * SUBNAM, INFO, INFOE, FACT, TRANS, N, KL, KU, NRHS, IMAT
  904. *
  905. 9993 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  906. $ I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N=', I5,
  907. $ ', KL=', I5, ', KU=', I5, ', NRHS=', I4, ', type ', I1 )
  908. *
  909. * SUBNAM, INFO, INFOE, FACT, TRANS, N, NRHS, IMAT
  910. *
  911. 9992 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  912. $ I2, / ' ==> FACT=''', A1, ''', TRANS=''', A1, ''', N =', I5,
  913. $ ', NRHS =', I4, ', type ', I2 )
  914. *
  915. * SUBNAM, INFO, INFOE, FACT, UPLO, N, KD, NRHS, IMAT
  916. *
  917. 9991 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  918. $ I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N=', I5,
  919. $ ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
  920. *
  921. * SUBNAM, INFO, INFOE, FACT, UPLO, N, NRHS, IMAT
  922. *
  923. 9990 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  924. $ I2, / ' ==> FACT=''', A1, ''', UPLO=''', A1, ''', N =', I5,
  925. $ ', NRHS =', I4, ', type ', I2 )
  926. *
  927. * SUBNAM, INFO, INFOE, M, N, KL, KU, NB, IMAT
  928. *
  929. 9989 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  930. $ I2, / ' ==> M = ', I5, ', N =', I5, ', KL =', I5, ', KU =',
  931. $ I5, ', NB =', I4, ', type ', I2 )
  932. *
  933. * SUBNAM, INFO, INFOE, M, N, NB, IMAT
  934. *
  935. 9988 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  936. $ I2, / ' ==> M =', I5, ', N =', I5, ', NB =', I4, ', type ',
  937. $ I2 )
  938. *
  939. * SUBNAM, INFO, INFOE, N, IMAT
  940. *
  941. 9987 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  942. $ I2, ' for N=', I5, ', type ', I2 )
  943. *
  944. * SUBNAM, INFO, INFOE, N, KL, KU, NRHS, IMAT
  945. *
  946. 9986 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  947. $ I2, / ' ==> N =', I5, ', KL =', I5, ', KU =', I5,
  948. $ ', NRHS =', I4, ', type ', I2 )
  949. *
  950. * SUBNAM, INFO, INFOE, N, NB, IMAT
  951. *
  952. 9985 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  953. $ I2, / ' ==> N =', I5, ', NB =', I4, ', type ', I2 )
  954. *
  955. * SUBNAM, INFO, INFOE, N, NRHS, IMAT
  956. *
  957. 9984 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  958. $ I2, / ' ==> N =', I5, ', NRHS =', I4, ', type ', I2 )
  959. *
  960. * SUBNAM, INFO, INFOE, UPLO, N, IMAT
  961. *
  962. 9983 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  963. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', type ', I2 )
  964. *
  965. * SUBNAM, INFO, INFOE, UPLO, N, KD, NB, IMAT
  966. *
  967. 9982 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  968. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', KD =', I5,
  969. $ ', NB =', I4, ', type ', I2 )
  970. *
  971. * SUBNAM, INFO, INFOE, UPLO, N, KD, NRHS, IMAT
  972. *
  973. 9981 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  974. $ I2, / ' ==> UPLO=''', A1, ''', N =', I5, ', KD =', I5,
  975. $ ', NRHS =', I4, ', type ', I2 )
  976. *
  977. * SUBNAM, INFO, INFOE, UPLO, N, NB, IMAT
  978. *
  979. 9980 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  980. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NB =', I4,
  981. $ ', type ', I2 )
  982. *
  983. * SUBNAM, INFO, INFOE, UPLO, N, NRHS, IMAT
  984. *
  985. 9979 FORMAT( ' *** ', A, ' returned with INFO =', I5, ' instead of ',
  986. $ I2, / ' ==> UPLO = ''', A1, ''', N =', I5, ', NRHS =', I4,
  987. $ ', type ', I2 )
  988. *
  989. * SUBNAM, INFO, M, N, IMAT
  990. *
  991. 9978 FORMAT( ' *** Error code from ', A, ' =', I5, ' for M =', I5,
  992. $ ', N =', I5, ', type ', I2 )
  993. *
  994. * SUBNAM, INFO, M, N, KL, KU, IMAT
  995. *
  996. 9977 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
  997. $ ', N =', I5, ', KL =', I5, ', KU =', I5, ', type ', I2 )
  998. *
  999. * SUBNAM, INFO, M, N, KL, KU, NB, IMAT
  1000. *
  1001. 9976 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> M = ', I5,
  1002. $ ', N =', I5, ', KL =', I5, ', KU =', I5, ', NB =', I4,
  1003. $ ', type ', I2 )
  1004. *
  1005. * SUBNAM, INFO, M, N, NB, IMAT
  1006. *
  1007. 9975 FORMAT( ' *** Error code from ', A, '=', I5, ' for M=', I5,
  1008. $ ', N=', I5, ', NB=', I4, ', type ', I2 )
  1009. *
  1010. * SUBNAM, INFO, M, N, NRHS, NB, IMAT
  1011. *
  1012. 9974 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> M =', I5,
  1013. $ ', N =', I5, ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
  1014. *
  1015. * SUBNAM, INFO, N, IMAT
  1016. *
  1017. 9973 FORMAT( ' *** Error code from ', A, ' =', I5, ' for N =', I5,
  1018. $ ', type ', I2 )
  1019. *
  1020. * SUBNAM, INFO, N, KL, KU, NRHS, IMAT
  1021. *
  1022. 9972 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> N =', I5,
  1023. $ ', KL =', I5, ', KU =', I5, ', NRHS =', I4, ', type ', I2 )
  1024. *
  1025. * SUBNAM, INFO, N, NB, IMAT
  1026. *
  1027. 9971 FORMAT( ' *** Error code from ', A, '=', I5, ' for N=', I5,
  1028. $ ', NB=', I4, ', type ', I2 )
  1029. *
  1030. * SUBNAM, INFO, N, NRHS, IMAT
  1031. *
  1032. 9970 FORMAT( ' *** Error code from ', A, ' =', I5, ' for N =', I5,
  1033. $ ', NRHS =', I4, ', type ', I2 )
  1034. *
  1035. * SUBNAM, INFO, NORM, N, IMAT
  1036. *
  1037. 9969 FORMAT( ' *** Error code from ', A, ' =', I5, ' for NORM = ''',
  1038. $ A1, ''', N =', I5, ', type ', I2 )
  1039. *
  1040. * SUBNAM, INFO, NORM, N, KL, KU, IMAT
  1041. *
  1042. 9968 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM =''',
  1043. $ A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', type ',
  1044. $ I2 )
  1045. *
  1046. * SUBNAM, INFO, NORM, UPLO, DIAG, N, IMAT
  1047. *
  1048. 9967 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
  1049. $ A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N =', I5,
  1050. $ ', type ', I2 )
  1051. *
  1052. * SUBNAM, INFO, NORM, UPLO, DIAG, N, KD, IMAT
  1053. *
  1054. 9966 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> NORM=''',
  1055. $ A1, ''', UPLO =''', A1, ''', DIAG=''', A1, ''', N=', I5,
  1056. $ ', KD=', I5, ', type ', I2 )
  1057. *
  1058. * SUBNAM, INFO, TRANS, M, N, NRHS, NB, IMAT
  1059. *
  1060. 9965 FORMAT( ' *** Error code from ', A, ' =', I5,
  1061. $ / ' ==> TRANS = ''', A1, ''', M =', I5, ', N =', I5,
  1062. $ ', NRHS =', I4, ', NB =', I4, ', type ', I2 )
  1063. *
  1064. * SUBNAM, INFO, TRANS, N, KL, KU, NRHS, IMAT
  1065. *
  1066. 9964 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> TRANS=''',
  1067. $ A1, ''', N =', I5, ', KL =', I5, ', KU =', I5, ', NRHS =',
  1068. $ I4, ', type ', I2 )
  1069. *
  1070. * SUBNAM, INFO, TRANS, N, NRHS, IMAT
  1071. *
  1072. 9963 FORMAT( ' *** Error code from ', A, ' =', I5,
  1073. $ / ' ==> TRANS = ''', A1, ''', N =', I5, ', NRHS =', I4,
  1074. $ ', type ', I2 )
  1075. *
  1076. * SUBNAM, INFO, UPLO, DIAG, N, IMAT
  1077. *
  1078. 9962 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1079. $ A1, ''', DIAG =''', A1, ''', N =', I5, ', type ', I2 )
  1080. *
  1081. * SUBNAM, INFO, UPLO, DIAG, N, NB, IMAT
  1082. *
  1083. 9961 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1084. $ A1, ''', DIAG =''', A1, ''', N =', I5, ', NB =', I4,
  1085. $ ', type ', I2 )
  1086. *
  1087. * SUBNAM, INFO, UPLO, N, IMAT
  1088. *
  1089. 9960 FORMAT( ' *** Error code from ', A, ' =', I5, ' for UPLO = ''',
  1090. $ A1, ''', N =', I5, ', type ', I2 )
  1091. *
  1092. * SUBNAM, INFO, UPLO, N, KD, IMAT
  1093. *
  1094. 9959 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1095. $ A1, ''', N =', I5, ', KD =', I5, ', type ', I2 )
  1096. *
  1097. * SUBNAM, INFO, UPLO, N, KD, NB, IMAT
  1098. *
  1099. 9958 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1100. $ A1, ''', N =', I5, ', KD =', I5, ', NB =', I4, ', type ',
  1101. $ I2 )
  1102. *
  1103. * SUBNAM, INFO, UPLO, N, KD, NRHS, IMAT
  1104. *
  1105. 9957 FORMAT( ' *** Error code from ', A, '=', I5, / ' ==> UPLO = ''',
  1106. $ A1, ''', N =', I5, ', KD =', I5, ', NRHS =', I4, ', type ',
  1107. $ I2 )
  1108. *
  1109. * SUBNAM, INFO, UPLO, N, NB, IMAT
  1110. *
  1111. 9956 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1112. $ A1, ''', N =', I5, ', NB =', I4, ', type ', I2 )
  1113. *
  1114. * SUBNAM, INFO, UPLO, N, NRHS, IMAT
  1115. *
  1116. 9955 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO = ''',
  1117. $ A1, ''', N =', I5, ', NRHS =', I4, ', type ', I2 )
  1118. *
  1119. * SUBNAM, INFO, UPLO, TRANS, DIAG, N, KD, NRHS, IMAT
  1120. *
  1121. 9954 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1122. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N=', I5,
  1123. $ ', KD=', I5, ', NRHS=', I4, ', type ', I2 )
  1124. *
  1125. * SUBNAM, INFO, UPLO, TRANS, DIAG, N, NRHS, IMAT
  1126. *
  1127. 9953 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1128. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', N =', I5,
  1129. $ ', NRHS =', I4, ', type ', I2 )
  1130. *
  1131. * SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, IMAT
  1132. *
  1133. 9952 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1134. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
  1135. $ A1, ''', N =', I5, ', type ', I2 )
  1136. *
  1137. * SUBNAM, INFO, UPLO, TRANS, DIAG, NORMIN, N, KD, IMAT
  1138. *
  1139. 9951 FORMAT( ' *** Error code from ', A, ' =', I5, / ' ==> UPLO=''',
  1140. $ A1, ''', TRANS=''', A1, ''', DIAG=''', A1, ''', NORMIN=''',
  1141. $ A1, ''', N=', I5, ', KD=', I5, ', type ', I2 )
  1142. *
  1143. * Unknown type
  1144. *
  1145. 9950 FORMAT( ' *** Error code from ', A, ' =', I5 )
  1146. *
  1147. * What we do next
  1148. *
  1149. 9949 FORMAT( ' ==> Doing only the condition estimate for this case' )
  1150. *
  1151. RETURN
  1152. *
  1153. * End of ALAERH
  1154. *
  1155. END