71 parameter( nmax = 4, one = 1.0e0, zero = 0.0e0 )
74 INTEGER I, IFST, ILST, INFO, J, M, NT
80 REAL A( NMAX, NMAX ), B( NMAX, NMAX ),
81 $ C( NMAX, NMAX ), S( NMAX ), SEP( NMAX ),
82 $ WI( NMAX ), WORK( NMAX ), WR( NMAX )
93 COMMON / infoc / infot, nout, ok, lerr
94 COMMON / srnamc / srnamt
119 CALL strsyl(
'X',
'N', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
120 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
122 CALL strsyl(
'N',
'X', 1, 0, 0, a, 1, b, 1, c, 1, scale, info )
123 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
125 CALL strsyl(
'N',
'N', 0, 0, 0, a, 1, b, 1, c, 1, scale, info )
126 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
128 CALL strsyl(
'N',
'N', 1, -1, 0, a, 1, b, 1, c, 1, scale, info )
129 CALL chkxer(
'STRSYL', infot, nout, lerr, ok )
131 CALL strsyl( 'n
', 'n
', 1, 0, -1, A, 1, B, 1, C, 1, SCALE, INFO )
132 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
134 CALL STRSYL( 'n
', 'n
', 1, 2, 0, A, 1, B, 1, C, 2, SCALE, INFO )
135 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
137 CALL STRSYL( 'n
', 'n
', 1, 0, 2, A, 1, B, 1, C, 1, SCALE, INFO )
138 CALL CHKXER( 'strsyl', INFOT, NOUT, LERR, OK )
140 CALL STRSYL( 'n
', 'n
', 1, 2, 0, A, 2, B, 1, C, 1, SCALE, INFO )
141 CALL CHKXER( 'strsyl', infot, nout, lerr, ok )
150 CALL strexc(
'X', 1, a, 1, b, 1, ifst, ilst, work, info )
151 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
153 CALL strexc(
'N', -1, a, 1, b, 1, ifst, ilst, work, info )
154 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
157 CALL strexc(
'N', 2, a, 1, b, 1, ifst, ilst, work, info )
158 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
160 CALL strexc(
'V', 2, a, 2, b, 1, ifst, ilst, work, info )
161 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
165 CALL strexc(
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
166 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
169 CALL strexc(
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
170 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
174 CALL strexc(
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
175 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
178 CALL strexc(
'V', 1, a, 1, b, 1, ifst, ilst, work, info )
179 CALL chkxer(
'STREXC', infot, nout, lerr, ok )
186 CALL strsna(
'X',
'A', sel, 0, a, 1, b, 1, c, 1, s, sep, 1, m,
187 $ work, 1, iwork, info )
188 CALL chkxer(
'STRSNA', infot, nout, lerr, ok )
190 CALL strsna( 'b
', 'x
', SEL, 0, A, 1, B, 1, C, 1, S, SEP, 1, M,
191 $ WORK, 1, IWORK, INFO )
192 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
194 CALL STRSNA( 'b
', 'a
', SEL, -1, A, 1, B, 1, C, 1, S, SEP, 1, M,
195 $ WORK, 1, IWORK, INFO )
196 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
198 CALL STRSNA( 'v
', 'a
', SEL, 2, A, 1, B, 1, C, 1, S, SEP, 2, M,
199 $ WORK, 2, IWORK, INFO )
200 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
202 CALL STRSNA( 'b
', 'a
', SEL, 2, A, 2, B, 1, C, 2, S, SEP, 2, M,
203 $ WORK, 2, IWORK, INFO )
204 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
206 CALL STRSNA( 'b
', 'a
', SEL, 2, A, 2, B, 2, C, 1, S, SEP, 2, M,
207 $ WORK, 2, IWORK, INFO )
208 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
210 CALL STRSNA( 'b
', 'a
', SEL, 1, A, 1, B, 1, C, 1, S, SEP, 0, M,
211 $ WORK, 1, IWORK, INFO )
212 CALL CHKXER( 'strsna', INFOT, NOUT, LERR, OK )
214 CALL STRSNA( 'b
', 's', sel, 2, a, 2, b, 2, c, 2, s, sep, 1, m,
215 $ work, 2, iwork, info )
216 CALL chkxer(
'STRSNA', infot, nout, lerr, ok )
218 CALL strsna(
'B',
'A', sel, 2, a, 2, b, 2, c, 2, s, sep, 2, m,
219 $ work, 1, iwork, info )
220 CALL chkxer(
'STRSNA', infot, nout, lerr, ok )
228 CALL strsen(
'X',
'N', sel, 0, a, 1, b, 1, wr, wi, m, s( 1 ),
229 $ sep( 1 ), work, 1, iwork, 1, info )
230 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
232 CALL strsen(
'N',
'X', sel, 0, a, 1, b, 1, wr, wi, m, s( 1 ),
233 $ sep( 1 ), work, 1, iwork, 1, info )
234 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
236 CALL strsen(
'N',
'N', sel, -1, a, 1, b, 1, wr, wi, m, s( 1 ),
237 $ sep( 1 ), work, 1, iwork, 1, info )
238 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
240 CALL strsen(
'N',
'N', sel, 2, a, 1, b, 1, wr, wi, m, s( 1 ),
241 $ sep( 1 ), work, 2, iwork, 1, info )
242 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
244 CALL strsen(
'N',
'V', sel, 2, a, 2, b, 1, wr, wi, m, s( 1 ),
245 $ sep( 1 ), work, 1, iwork, 1, info )
246 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
248 CALL strsen(
'N',
'V', sel, 2, a, 2, b, 2, wr, wi, m, s( 1 ),
249 $ sep( 1 ), work, 0, iwork, 1, info )
250 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
252 CALL strsen(
'E',
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
253 $ sep( 1 ), work, 1, iwork, 1, info )
254 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
256 CALL strsen(
'V',
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
257 $ sep( 1 ), work, 3, iwork, 2, info )
258 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
260 CALL strsen(
'E',
'V', sel, 2, a, 2, b, 2, wr, wi, m, s( 1 ),
261 $ sep( 1 ), work, 1, iwork, 0, info )
262 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
264 CALL strsen(
'V',
'V', sel, 3, a, 3, b, 3, wr, wi, m, s( 1 ),
265 $ sep( 1 ), work, 4, iwork, 1, info )
266 CALL chkxer(
'STRSEN', infot, nout, lerr, ok )
272 WRITE( nout, fmt = 9999 )path, nt
274 WRITE( nout, fmt = 9998 )path
278 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
279 $ i3,
' tests done)' )
280 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ex',