51 INTEGER ICASE, INCX, INCY, N
59 COMMON /combla/icase, n, incx, incy, pass
61 DATA sfac/9.765625e-4/
76 IF (icase.EQ.3 .OR. icase.EQ.11)
THEN
78 ELSE IF (icase.EQ.7 .OR. icase.EQ.8 .OR. icase.EQ.9 .OR.
81 ELSE IF (icase.EQ.1 .OR. icase.EQ.2 .OR. icase.EQ.5 .OR.
82 + icase.EQ.6 .OR. icase.EQ.12 .OR. icase.EQ.13)
THEN
84 ELSE IF (icase.EQ.4)
THEN
88 IF (pass)
WRITE (nout,99998)
92 99999
FORMAT (
' Real BLAS Test Program Results',/1x)
93 99998
FORMAT (
' ----- PASS -----')
100 INTEGER ICASE, INCX, INCY, N
105 COMMON /combla/icase, n, incx, incy, pass
121 WRITE (nout,99999) icase, l(icase)
124 99999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
133 INTEGER ICASE, INCX, INCY, N
136 REAL D12, SA, SB, SC, SS
139 REAL DA1(8), DATRUE(8), DB1(8), DBTRUE(8), DC1(8),
140 + ds1(8), dab(4,9), dtemp(9), dtrue(9,9)
144 COMMON /combla/icase, n, incx, incy, pass
146 DATA da1/0.3e0, 0.4e0, -0.3e0, -0.4e0, -0.3e0, 0.0e0,
148 DATA db1/0.4e0, 0.3e0, 0.4e0, 0.3e0, -0.4e0, 0.0e0,
150 DATA dc1/0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.6e0, 1.0e0,
152 DATA ds1/0.8e0, 0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.0e0,
154 DATA datrue/0.5e0, 0.5e0, 0.5e0, -0.5e0, -0.5e0,
155 + 0.0e0, 1.0e0, 1.0e0/
156 DATA dbtrue/0.0e0, 0.6e0, 0.0e0, -0.6e0, 0.0e0,
157 + 0.0e0, 1.0e0, 0.0e0/
159 DATA dab/ .1e0,.3e0,1.2e0,.2e0,
160 a .7e0, .2e0, .6e0, 4.2e0,
161 b 0.e0,0.e0,0.e0,0.e0,
162 c 4.e0, -1.e0, 2.e0, 4.e0,
163 d 6.e-10, 2.e-2, 1.e5, 10.e0,
164 e 4.e10, 2.e-2, 1.e-5, 10.e0,
165 f 2.e-10, 4.e-2, 1.e5, 10.e0,
166 g 2.e10, 4.e-2, 1.e-5, 10.e0,
167 h 4.e0, -2.e0, 8.e0, 4.e0 /
169 DATA dtrue/0.e0,0.e0, 1.3e0, .2e0, 0.e0,0.e0,0.e0, .5e0, 0.e0,
170 a 0.e0,0.e0, 4.5e0, 4.2e0, 1.e0, .5e0, 0.e0,0.e0,0.e0,
171 b 0.e0,0.e0,0.e0,0.e0, -2.e0, 0.e0,0.e0,0.e0,0.e0,
172 c 0.e0,0.e0,0.e0, 4.e0, -1.e0, 0.e0,0.e0,0.e0,0.e0,
173 d 0.e0, 15.e-3, 0.e0, 10.e0, -1.e0, 0.e0, -1.e-4,
175 f 0.e0,0.e0, 6144.e-5, 10.e0, -1.e0, 4096.e0, -1.e6,
177 h 0.e0,0.e0,15.e0,10.e0,-1.e0, 5.e-5, 0.e0,1.e0,0.e0,
178 i 0.e0,0.e0, 15.e0, 10.e0, -1. e0, 5.e5, -4096.e0,
180 k 0.e0,0.e0, 7.e0, 4.e0, 0.e0,0.e0, -.5e0, -.25e0, 0.e0/
183 dtrue(1,1) = 12.e0 / 130.e0
184 dtrue(2,1) = 36.e0 / 130.e0
185 dtrue(7,1) = -1.e0 / 6.e0
186 dtrue(1,2) = 14.e0 / 75.e0
187 dtrue(2,2) = 49.e0 / 75.e0
188 dtrue(9,2) = 1.e0 / 7.e0
189 dtrue(1,5) = 45.e-11 * (d12 * d12)
190 dtrue(3,5) = 4.e5 / (3.e0 * d12)
191 dtrue(6,5) = 1.e0 / d12
192 dtrue(8,5) = 1.e4 / (3.e0 * d12)
193 dtrue(1,6) = 4.e10 / (1.5e0 * d12 * d12)
194 dtrue(2,6) = 2.e-2 / 1.5e0
195 dtrue(8,6) = 5.e-7 * d12
196 dtrue(1,7) = 4.e0 / 150.e0
197 dtrue(2,7) = (2.e-10 / 1.5e0) * (d12 * d12)
198 dtrue(7,7) = -dtrue(6,5)
199 dtrue(9,7) = 1.e4 / d12
200 dtrue(1,8) = dtrue(1,7)
201 dtrue(2,8) = 2.e10 / (1.5e0 * d12 * d12)
202 dtrue(1,9) = 32.e0 / 7.e0
203 dtrue(2,9) = -16.e0 / 7.e0
209 dbtrue(1) = 1.0e0/0.6e0
210 dbtrue(3) = -1.0e0/0.6e0
211 dbtrue(5) = 1.0e0/0.6e0
221 CALL srotg(sa,sb,sc,ss)
222 CALL stest1(sa,datrue(k),datrue(k),sfac)
223 CALL stest1(sb,dbtrue(k),dbtrue(k),sfac)
224 CALL stest1(sc,dc1(k),dc1(k),sfac)
225 CALL stest1(ss,ds1(k),ds1(k),sfac)
226 ELSEIF (icase.EQ.11)
THEN
233 CALL srotmg(dtemp(1),dtemp(2),dtemp(3),dtemp(4),dtemp(5))
234 CALL stest(9,dtemp,dtrue(1,k),dtrue(1,k),sfac)
236 WRITE (nout,*)
' Shouldn''t be here in CHECK0'
249 INTEGER ICASE, INCX, INCY, N
254 REAL DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
255 + sa(10), stemp(1), strue(8), sx(8)
260 EXTERNAL sasum, snrm2, isamax
266 COMMON /combla/icase, n, incx, incy, pass
268 DATA sa/0.3e0, -1.0e0, 0.0e0, 1.0e0, 0.3e0, 0.3e0,
269 + 0.3e0, 0.3e0, 0.3e0, 0.3e0/
270 DATA dv/0.1e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
271 + 2.0e0, 2.0e0, 0.3e0, 3.0e0, 3.0e0, 3.0e0, 3.0e0,
272 + 3.0e0, 3.0e0, 3.0e0, 0.3e0, -0.4e0, 4.0e0,
273 + 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0, 0.2e0,
274 + -0.6e0, 0.3e0, 5.0e0, 5.0e0, 5.0e0, 5.0e0,
275 + 5.0e0, 0.1e0, -0.3e0, 0.5e0, -0.1e0, 6.0e0,
276 + 6.0e0, 6.0e0, 6.0e0, 0.1e0, 8.0e0, 8.0e0, 8.0e0,
277 + 8.0e0, 8.0e0, 8.0e0, 8.0e0, 0.3e0, 9.0e0, 9.0e0,
278 + 9.0e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0, 0.3e0, 2.0e0,
279 + -0.4e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
280 + 0.2e0, 3.0e0, -0.6e0, 5.0e0, 0.3e0, 2.0e0,
281 + 2.0e0, 2.0e0, 0.1e0, 4.0e0, -0.3e0, 6.0e0,
282 + -0.5e0, 7.0e0, -0.1e0, 3.0e0/
283 DATA dtrue1/0.0e0, 0.3e0, 0.5e0, 0.7e0, 0.6e0/
284 DATA dtrue3/0.0e0, 0.3e0, 0.7e0, 1.1e0, 1.0e0/
285 DATA dtrue5/0.10e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
286 + 2.0e0, 2.0e0, 2.0e0, -0.3e0, 3.0e0, 3.0e0,
287 + 3.0e0, 3.0e0, 3.0e0, 3.0e0, 3.0e0, 0.0e0, 0.0e0,
288 + 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0,
289 + 0.20e0, -0.60e0, 0.30e0, 5.0e0, 5.0e0, 5.0e0,
290 + 5.0e0, 5.0e0, 0.03e0, -0.09e0, 0.15e0, -0.03e0,
291 + 6.0e0, 6.0e0, 6.0e0, 6.0e0, 0.10e0, 8.0e0,
292 + 8.0e0, 8.0e0, 8.0e0, 8.0e0, 8.0e0, 8.0e0,
293 + 0.09e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0,
294 + 9.0e0, 9.0e0, 0.09e0, 2.0e0, -0.12e0, 2.0e0,
295 + 2.0e0, 2.0e0, 2.0e0, 2.0e0, 0.06e0, 3.0e0,
296 + -0.18e0, 5.0e0, 0.09e0, 2.0e0, 2.0e0, 2.0e0,
297 + 0.03e0, 4.0e0, -0.09e0, 6.0e0, -0.15e0, 7.0e0,
299 DATA itrue2/0, 1, 2, 2, 3/
307 sx(i) = dv(i,np1,incx)
312 stemp(1) = dtrue1(np1)
313 CALL stest1(snrm2(n,sx,incx),stemp(1),stemp,sfac)
314 ELSE IF (icase.EQ.8)
THEN
316 stemp(1) = dtrue3(np1)
317 CALL stest1(sasum(n,sx,incx),stemp(1),stemp,sfac)
318 ELSE IF (icase.EQ.9)
THEN
320 CALL sscal(n,sa((incx-1)*5+np1),sx,incx)
322 strue(i) = dtrue5(i,np1,incx)
324 CALL stest(len,sx,strue,strue,sfac)
325 ELSE IF (icase.EQ.10)
THEN
327 CALL itest1(isamax(n,sx,incx),itrue2(np1))
329 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
343 INTEGER ICASE, INCX, INCY, N
347 INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
350 REAL DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
351 $ dt8(7,4,4), dx1(7),
352 $ dy1(7), ssize1(4), ssize2(14,2), ssize3(4),
353 $ ssize(7), stx(7), sty(7), sx(7), sy(7),
354 $ dpar(5,4), dt19x(7,4,16),dt19xa(7,4,4),
355 $ dt19xb(7,4,4), dt19xc(7,4,4),dt19xd(7,4,4),
356 $ dt19y(7,4,16), dt19ya(7,4,4),dt19yb(7,4,4),
357 $ dt19yc(7,4,4), dt19yd(7,4,4), dtemp(5),
359 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
362 EXTERNAL sdot, sdsdot
368 COMMON /combla/icase, n, incx, incy, pass
370 equivalence(dt19x(1,1,1),dt19xa(1,1,1)),(dt19x(1,1,5),
371 a dt19xb(1,1,1)),(dt19x(1,1,9),dt19xc(1,1,1)),
372 b (dt19x(1,1,13),dt19xd(1,1,1))
373 equivalence(dt19y(1,1,1),dt19ya(1,1,1)),(dt19y(1,1,5),
374 a dt19yb(1,1,1)),(dt19y(1,1,9),dt19yc(1,1,1)),
375 b (dt19y(1,1,13),dt19yd(1,1,1))
378 DATA incxs/1, 2, -2, -1/
379 DATA incys/1, -2, 1, -2/
380 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
382 DATA dx1/0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.9e0, -0.3e0,
384 DATA dy1/0.5e0, -0.9e0, 0.3e0, 0.7e0, -0.6e0, 0.2e0,
386 DATA dt7/0.0e0, 0.30e0, 0.21e0, 0.62e0, 0.0e0,
387 + 0.30e0, -0.07e0, 0.85e0, 0.0e0, 0.30e0, -0.79e0,
388 + -0.74e0, 0.0e0, 0.30e0, 0.33e0, 1.27e0/
389 DATA st7b/ .1, .4, .31, .72, .1, .4, .03, .95,
390 + .1, .4, -.69, -.64, .1, .4, .43, 1.37/
391 DATA dt8/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
392 + 0.0e0, 0.68e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
393 + 0.0e0, 0.0e0, 0.68e0, -0.87e0, 0.0e0, 0.0e0,
394 + 0.0e0, 0.0e0, 0.0e0, 0.68e0, -0.87e0, 0.15e0,
395 + 0.94e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
396 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.68e0,
397 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
398 + 0.35e0, -0.9e0, 0.48e0, 0.0e0, 0.0e0, 0.0e0,
399 + 0.0e0, 0.38e0, -0.9e0, 0.57e0, 0.7e0, -0.75e0,
400 + 0.2e0, 0.98e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0,
401 + 0.0e0, 0.0e0, 0.0e0, 0.68e0, 0.0e0, 0.0e0,
402 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.35e0, -0.72e0,
403 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.38e0,
404 + -0.63e0, 0.15e0, 0.88e0, 0.0e0, 0.0e0, 0.0e0,
405 + 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
406 + 0.68e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
407 + 0.0e0, 0.68e0, -0.9e0, 0.33e0, 0.0e0, 0.0e0,
408 + 0.0e0, 0.0e0, 0.68e0, -0.9e0, 0.33e0, 0.7e0,
409 + -0.75e0, 0.2e0, 1.04e0/
410 DATA dt10x/0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
411 + 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
412 + 0.0e0, 0.5e0, -0.9e0, 0.0e0, 0.0e0, 0.0e0,
413 + 0.0e0, 0.0e0, 0.5e0, -0.9e0, 0.3e0, 0.7e0,
414 + 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0,
415 + 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0,
416 + 0.0e0, 0.0e0, 0.0e0, 0.3e0, 0.1e0, 0.5e0, 0.0e0,
417 + 0.0e0, 0.0e0, 0.0e0, 0.8e0, 0.1e0, -0.6e0,
418 + 0.8e0, 0.3e0, -0.3e0, 0.5e0, 0.6e0, 0.0e0,
419 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
420 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.9e0,
421 + 0.1e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.7e0,
422 + 0.1e0, 0.3e0, 0.8e0, -0.9e0, -0.3e0, 0.5e0,
423 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
424 + 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
425 + 0.5e0, 0.3e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
426 + 0.5e0, 0.3e0, -0.6e0, 0.8e0, 0.0e0, 0.0e0,
428 DATA dt10y/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
429 + 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
430 + 0.0e0, 0.6e0, 0.1e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
431 + 0.0e0, 0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.0e0,
432 + 0.0e0, 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
433 + 0.0e0, 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
434 + 0.0e0, 0.0e0, -0.5e0, -0.9e0, 0.6e0, 0.0e0,
435 + 0.0e0, 0.0e0, 0.0e0, -0.4e0, -0.9e0, 0.9e0,
436 + 0.7e0, -0.5e0, 0.2e0, 0.6e0, 0.5e0, 0.0e0,
437 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0,
438 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.5e0,
439 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
440 + -0.4e0, 0.9e0, -0.5e0, 0.6e0, 0.0e0, 0.0e0,
441 + 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
442 + 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
443 + 0.0e0, 0.6e0, -0.9e0, 0.1e0, 0.0e0, 0.0e0,
444 + 0.0e0, 0.0e0, 0.6e0, -0.9e0, 0.1e0, 0.7e0,
445 + -0.5e0, 0.2e0, 0.8e0/
446 DATA ssize1/0.0e0, 0.3e0, 1.6e0, 3.2e0/
447 DATA ssize2/0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
448 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
449 + 0.0e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
450 + 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
451 + 1.17e0, 1.17e0, 1.17e0/
452 DATA ssize3/ .1, .4, 1.7, 3.3 /
456 DATA dpar/-2.e0, 0.e0,0.e0,0.e0,0.e0,
457 a -1.e0, 2.e0, -3.e0, -4.e0, 5.e0,
458 b 0.e0, 0.e0, 2.e0, -3.e0, 0.e0,
459 c 1.e0, 5.e0, 2.e0, 0.e0, -4.e0/
461 DATA dt19xa/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
462 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
463 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
464 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
465 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
466 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
467 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
468 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
469 h .6e0, .1e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
470 i -.8e0, 3.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
471 j -.9e0, 2.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
472 k 3.5e0, -.4e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
473 l .6e0, .1e0, -.5e0, .8e0, 0.e0,0.e0,0.e0,
474 m -.8e0, 3.8e0, -2.2e0, -1.2e0, 0.e0,0.e0,0.e0,
475 n -.9e0, 2.8e0, -1.4e0, -1.3e0, 0.e0,0.e0,0.e0,
476 o 3.5e0, -.4e0, -2.2e0, 4.7e0, 0.e0,0.e0,0.e0/
478 DATA dt19xb/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
479 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
480 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
481 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
482 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
483 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
484 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
485 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
486 h .6e0, .1e0, -.5e0, 0.e0,0.e0,0.e0,0.e0,
487 i 0.e0, .1e0, -3.0e0, 0.e0,0.e0,0.e0,0.e0,
488 j -.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
489 k 3.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
490 l .6e0, .1e0, -.5e0, .8e0, .9e0, -.3e0, -.4e0,
491 m -2.0e0, .1e0, 1.4e0, .8e0, .6e0, -.3e0, -2.8e0,
492 n -1.8e0, .1e0, 1.3e0, .8e0, 0.e0, -.3e0, -1.9e0,
493 o 3.8e0, .1e0, -3.1e0, .8e0, 4.8e0, -.3e0, -1.5e0 /
495 DATA dt19xc/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
496 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
497 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
498 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
499 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
500 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
501 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
502 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
503 h .6e0, .1e0, -.5e0, 0.e0,0.e0,0.e0,0.e0,
504 i 4.8e0, .1e0, -3.0e0, 0.e0,0.e0,0.e0,0.e0,
505 j 3.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
506 k 2.1e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
507 l .6e0, .1e0, -.5e0, .8e0, .9e0, -.3e0, -.4e0,
508 m -1.6e0, .1e0, -2.2e0, .8e0, 5.4e0, -.3e0, -2.8e0,
509 n -1.5e0, .1e0, -1.4e0, .8e0, 3.6e0, -.3e0, -1.9e0,
510 o 3.7e0, .1e0, -2.2e0, .8e0, 3.6e0, -.3e0, -1.5e0 /
512 DATA dt19xd/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
513 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
514 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
515 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
516 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
517 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
518 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
519 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
520 h .6e0, .1e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
521 i -.8e0, -1.0e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
522 j -.9e0, -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
523 k 3.5e0, .8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
524 l .6e0, .1e0, -.5e0, .8e0, 0.e0,0.e0,0.e0,
525 m -.8e0, -1.0e0, 1.4e0, -1.6e0, 0.e0,0.e0,0.e0,
526 n -.9e0, -.8e0, 1.3e0, -1.6e0, 0.e0,0.e0,0.e0,
527 o 3.5e0, .8e0, -3.1e0, 4.8e0, 0.e0,0.e0,0.e0/
529 DATA dt19ya/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
530 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
531 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
532 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
533 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
534 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
535 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
536 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
537 h .5e0, -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
538 i .7e0, -4.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
539 j 1.7e0, -.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
540 k -2.6e0, 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
541 l .5e0, -.9e0, .3e0, .7e0, 0.e0,0.e0,0.e0,
542 m .7e0, -4.8e0, 3.0e0, 1.1e0, 0.e0,0.e0,0.e0,
543 n 1.7e0, -.7e0, -.7e0, 2.3e0, 0.e0,0.e0,0.e0,
544 o -2.6e0, 3.5e0, -.7e0, -3.6e0, 0.e0,0.e0,0.e0/
546 DATA dt19yb/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
547 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
548 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
549 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
550 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
551 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
552 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
553 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
554 h .5e0, -.9e0, .3e0, 0.e0,0.e0,0.e0,0.e0,
555 i 4.0e0, -.9e0, -.3e0, 0.e0,0.e0,0.e0,0.e0,
556 j -.5e0, -.9e0, 1.5e0, 0.e0,0.e0,0.e0,0.e0,
557 k -1.5e0, -.9e0, -1.8e0, 0.e0,0.e0,0.e0,0.e0,
558 l .5e0, -.9e0, .3e0, .7e0, -.6e0, .2e0, .8e0,
559 m 3.7e0, -.9e0, -1.2e0, .7e0, -1.5e0, .2e0, 2.2e0,
560 n -.3e0, -.9e0, 2.1e0, .7e0, -1.6e0, .2e0, 2.0e0,
561 o -1.6e0, -.9e0, -2.1e0, .7e0, 2.9e0, .2e0, -3.8e0 /
563 DATA dt19yc/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
564 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
565 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
566 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
567 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
568 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
569 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
570 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
571 h .5e0, -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
572 i 4.0e0, -6.3e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
573 j -.5e0, .3e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
574 k -1.5e0, 3.0e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
575 l .5e0, -.9e0, .3e0, .7e0, 0.e0,0.e0,0.e0,
576 m 3.7e0, -7.2e0, 3.0e0, 1.7e0, 0.e0,0.e0,0.e0,
577 n -.3e0, .9e0, -.7e0, 1.9e0, 0.e0,0.e0,0.e0,
578 o -1.6e0, 2.7e0, -.7e0, -3.4e0, 0.e0,0.e0,0.e0/
580 DATA dt19yd/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
581 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
582 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
583 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
584 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
585 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
586 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
587 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
588 h .5e0, -.9e0, .3e0, 0.e0,0.e0,0.e0,0.e0,
589 i .7e0, -.9e0, 1.2e0, 0.e0,0.e0,0.e0,0.e0,
590 j 1.7e0, -.9e0, .5e0, 0.e0,0.e0,0.e0,0.e0,
591 k -2.6e0, -.9e0, -1.3e0, 0.e0,0.e0,0.e0,0.e0,
592 l .5e0, -.9e0, .3e0, .7e0, -.6e0, .2e0, .8e0,
593 m .7e0, -.9e0, 1.2e0, .7e0, -1.5e0, .2e0, 1.6e0,
594 n 1.7e0, -.9e0, .5e0, .7e0, -1.6e0, .2e0, 2.4e0,
595 o -2.6e0, -.9e0, -1.3e0, .7e0, 2.9e0, .2e0, -4.0e0 /
618 CALL stest1(sdot(n,sx,incx,sy,incy),dt7(kn,ki),ssize1(kn)
620 ELSE IF (icase.EQ.2)
THEN
622 CALL saxpy(n,sa,sx,incx,sy,incy)
624 sty(j) = dt8(j,kn,ki)
626 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
627 ELSE IF (icase.EQ.5)
THEN
630 sty(i) = dt10y(i,kn,ki)
632 CALL scopy(n,sx,incx,sy,incy)
633 CALL stest(leny,sy,sty,ssize2(1,1),1.0e0)
634 ELSE IF (icase.EQ.6)
THEN
636 CALL sswap(n,sx,incx,sy,incy)
638 stx(i) = dt10x(i,kn,ki)
639 sty(i) = dt10y(i,kn,ki)
641 CALL stest(lenx,sx,stx,ssize2(1,1),1.0e0)
642 CALL stest(leny,sy,sty,ssize2(1,1),1.0e0)
643 ELSEIF (icase.EQ.12)
THEN
650 stx(i)= dt19x(i,kpar,kni)
651 sty(i)= dt19y(i,kpar,kni)
655 dtemp(i) = dpar(i,kpar)
663 IF ((kpar .EQ. 2) .AND. (kni .EQ. 7))
665 IF ((kpar .EQ. 3) .AND. (kni .EQ. 8))
668 CALL srotm(n,sx,incx,sy,incy,dtemp)
669 CALL stest(lenx,sx,stx,ssize,sfac)
670 CALL stest(leny,sy,sty,sty,sfac)
672 ELSEIF (icase.EQ.13)
THEN
674 CALL stest1 (sdsdot(n,.1,sx,incx,sy,incy),
675 $ st7b(kn,ki),ssize3(kn),sfac)
677 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
691 INTEGER ICASE, INCX, INCY, N
695 INTEGER I, K, KI, KN, KSIZE, LENX, LENY, MX, MY
697 REAL COPYX(5), COPYY(5), DT9X(7,4,4), DT9Y(7,4,4),
698 + dx1(7), dy1(7), mwpc(11), mwps(11), mwpstx(5),
699 + mwpsty(5), mwptx(11,5), mwpty(11,5), mwpx(5),
700 + mwpy(5), ssize2(14,2), stx(7), sty(7), sx(7),
702 INTEGER INCXS(4), INCYS(4), LENS(4,2), MWPINX(11),
703 + mwpiny(11), mwpn(11), ns(4)
709 COMMON /combla/icase, n, incx, incy, pass
711 DATA incxs/1, 2, -2, -1/
712 DATA incys/1, -2, 1, -2/
713 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
715 DATA dx1/0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.9e0, -0.3e0,
717 DATA dy1/0.5e0, -0.9e0, 0.3e0, 0.7e0, -0.6e0, 0.2e0,
719 DATA sc, ss/0.8e0, 0.6e0/
720 DATA dt9x/0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
721 + 0.0e0, 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
722 + 0.0e0, 0.0e0, 0.78e0, -0.46e0, 0.0e0, 0.0e0,
723 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, -0.46e0, -0.22e0,
724 + 1.06e0, 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0,
725 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.78e0,
726 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
727 + 0.66e0, 0.1e0, -0.1e0, 0.0e0, 0.0e0, 0.0e0,
728 + 0.0e0, 0.96e0, 0.1e0, -0.76e0, 0.8e0, 0.90e0,
729 + -0.3e0, -0.02e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0,
730 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, 0.0e0, 0.0e0,
731 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.06e0, 0.1e0,
732 + -0.1e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.90e0,
733 + 0.1e0, -0.22e0, 0.8e0, 0.18e0, -0.3e0, -0.02e0,
734 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
735 + 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
736 + 0.0e0, 0.78e0, 0.26e0, 0.0e0, 0.0e0, 0.0e0,
737 + 0.0e0, 0.0e0, 0.78e0, 0.26e0, -0.76e0, 1.12e0,
738 + 0.0e0, 0.0e0, 0.0e0/
739 DATA dt9y/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
740 + 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
741 + 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.0e0, 0.0e0,
742 + 0.0e0, 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.54e0,
743 + 0.08e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
744 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.04e0,
745 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.7e0,
746 + -0.9e0, -0.12e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
747 + 0.64e0, -0.9e0, -0.30e0, 0.7e0, -0.18e0, 0.2e0,
748 + 0.28e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
749 + 0.0e0, 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0,
750 + 0.0e0, 0.0e0, 0.0e0, 0.7e0, -1.08e0, 0.0e0,
751 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.64e0, -1.26e0,
752 + 0.54e0, 0.20e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0,
753 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
754 + 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
755 + 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.0e0, 0.0e0,
756 + 0.0e0, 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.7e0,
757 + -0.18e0, 0.2e0, 0.16e0/
758 DATA ssize2/0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
759 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
760 + 0.0e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
761 + 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
762 + 1.17e0, 1.17e0, 1.17e0/
782 stx(i) = dt9x(i,kn,ki)
783 sty(i) = dt9y(i,kn,ki)
785 CALL srot(n,sx,incx,sy,incy,sc,ss)
786 CALL stest(lenx,sx,stx,ssize2(1,ksize),sfac)
787 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
789 WRITE (nout,*)
' Shouldn''t be here in CHECK3'
881 mwpstx(k) = mwptx(i,k)
882 mwpsty(k) = mwpty(i,k)
884 CALL srot(mwpn(i),copyx,incx,copyy,incy,mwpc(i),mwps(i))
885 CALL stest(5,copyx,mwpstx,mwpstx,sfac)
886 CALL stest(5,copyy,mwpsty,mwpsty,sfac)
890 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
902 parameter (nout=6, zero=0.0e0)
907 REAL SCOMP(len), SSIZE(len), STRUE(len)
909 INTEGER ICASE, INCX, INCY, N
920 COMMON /combla/icase, n, incx, incy, pass
924 sd = scomp(i) - strue(i)
925 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
930 IF ( .NOT. pass)
GO TO 20
935 20
WRITE (nout,99997) icase, n, incx, incy, i, scomp(i),
936 + strue(i), sd, ssize(i)
940 99999
FORMAT (
' FAIL')
941 99998
FORMAT (/
' CASE N INCX INCY I ',
942 +
' COMP(I) TRUE(I) DIFFERENCE',
944 99997
FORMAT (1x,i4,i3,2i5,i3,2e36.8,2e12.4)
946 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
956 REAL SCOMP1, SFAC, STRUE1
960 REAL SCOMP(1), STRUE(1)
967 CALL stest(1,scomp,strue,ssize,sfac)
971 REAL FUNCTION sdiff(SA,SB)
981 SUBROUTINE itest1(ICOMP,ITRUE)
994 INTEGER ICASE, INCX, INCY, N
999 COMMON /combla/icase, n, incx, incy, pass
1002 IF (icomp.EQ.itrue)
GO TO 40
1006 IF ( .NOT. pass)
GO TO 20
1011 20 id = icomp - itrue
1012 WRITE (nout,99997) icase, n, incx, incy, icomp, itrue, id
1016 99999
FORMAT (
' FAIL')
1017 99998
FORMAT (/
' CASE N INCX INCY ',
1018 +
' COMP TRUE DIFFERENCE',
1020 99997
FORMAT (1x,i4,i3,2i5,2i36,i12)
subroutine srotm(N, SX, INCX, SY, INCY, SPARAM)
SROTM
subroutine itest1(ICOMP, ITRUE)
subroutine srotg(SA, SB, C, S)
SROTG
subroutine srot(N, SX, INCX, SY, INCY, C, S)
SROT
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
real function sdiff(SA, SB)
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine sswap(N, SX, INCX, SY, INCY)
SSWAP
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY
subroutine srotmg(SD1, SD2, SX1, SY1, SPARAM)
SROTMG