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.

serrgg.f 50 kB

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