48 INTEGER icase, incx, incy, n
56 COMMON /combla/icase, n, incx, incy, pass
58 DATA sfac/9.765625e-4/
73 IF (icase.EQ.3 .OR. icase.EQ.11)
THEN
75 ELSE IF (icase.EQ.7 .OR. icase.EQ.8 .OR. icase.EQ.9 .OR.
78 ELSE IF (icase.EQ.1 .OR. icase.EQ.2 .OR. icase.EQ.5 .OR.
79 + icase.EQ.6 .OR. icase.EQ.12 .OR. icase.EQ.13)
THEN
81 ELSE IF (icase.EQ.4)
THEN
85 IF (pass)
WRITE (nout,99998)
89 99999
FORMAT (
' Real BLAS Test Program Results',/1x)
90 99998
FORMAT (
' ----- PASS -----')
97 INTEGER ICASE, INCX, INCY, N
102 COMMON /combla/icase, n, incx, incy, pass
118 WRITE (nout,99999) icase, l(icase)
121 99999
FORMAT (/
' Test of subprogram number',i3,12x,a6)
130 INTEGER ICASE, INCX, INCY, N
133 REAL D12, SA, SB, SC, SS
136 REAL DA1(8), DATRUE(8), DB1(8), DBTRUE(8), DC1(8),
137 + DS1(8), DAB(4,9), DTEMP(9), DTRUE(9,9)
141 COMMON /combla/icase, n, incx, incy, pass
143 DATA da1/0.3e0, 0.4e0, -0.3e0, -0.4e0, -0.3e0, 0.0e0,
145 DATA db1/0.4e0, 0.3e0, 0.4e0, 0.3e0, -0.4e0, 0.0e0,
147 DATA dc1/0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.6e0, 1.0e0,
149 DATA ds1/0.8e0, 0.6e0, 0.8e0, -0.6e0, 0.8e0, 0.0e0,
151 DATA datrue/0.5e0, 0.5e0, 0.5e0, -0.5e0, -0.5e0,
152 + 0.0e0, 1.0e0, 1.0e0/
153 DATA dbtrue/0.0e0, 0.6e0, 0.0e0, -0.6e0, 0.0e0,
154 + 0.0e0, 1.0e0, 0.0e0/
156 DATA dab/ .1e0,.3e0,1.2e0,.2e0,
157 a .7e0, .2e0, .6e0, 4.2e0,
158 b 0.e0,0.e0,0.e0,0.e0,
159 c 4.e0, -1.e0, 2.e0, 4.e0,
160 d 6.e-10, 2.e-2, 1.e5, 10.e0,
161 e 4.e10, 2.e-2, 1.e-5, 10.e0,
162 f 2.e-10, 4.e-2, 1.e5, 10.e0,
163 g 2.e10, 4.e-2, 1.e-5, 10.e0,
164 h 4.e0, -2.e0, 8.e0, 4.e0 /
166 DATA dtrue/0.e0,0.e0, 1.3e0, .2e0, 0.e0,0.e0,0.e0, .5e0, 0.e0,
167 a 0.e0,0.e0, 4.5e0, 4.2e0, 1.e0, .5e0, 0.e0,0.e0,0.e0,
168 b 0.e0,0.e0,0.e0,0.e0, -2.e0, 0.e0,0.e0,0.e0,0.e0,
169 c 0.e0,0.e0,0.e0, 4.e0, -1.e0, 0.e0,0.e0,0.e0,0.e0,
170 d 0.e0, 15.e-3, 0.e0, 10.e0, -1.e0, 0.e0, -1.e-4,
172 f 0.e0,0.e0, 6144.e-5, 10.e0, -1.e0, 4096.e0, -1.e6,
174 h 0.e0,0.e0,15.e0,10.e0,-1.e0, 5.e-5, 0.e0,1.e0,0.e0,
175 i 0.e0,0.e0, 15.e0, 10.e0, -1. e0, 5.e5, -4096.e0,
177 k 0.e0,0.e0, 7.e0, 4.e0, 0.e0,0.e0, -.5e0, -.25e0, 0.e0/
180 dtrue(1,1) = 12.e0 / 130.e0
181 dtrue(2,1) = 36.e0 / 130.e0
182 dtrue(7,1) = -1.e0 / 6.e0
183 dtrue(1,2) = 14.e0 / 75.e0
184 dtrue(2,2) = 49.e0 / 75.e0
185 dtrue(9,2) = 1.e0 / 7.e0
186 dtrue(1,5) = 45.e-11 * (d12 * d12)
187 dtrue(3,5) = 4.e5 / (3.e0 * d12)
188 dtrue(6,5) = 1.e0 / d12
189 dtrue(8,5) = 1.e4 / (3.e0 * d12)
190 dtrue(1,6) = 4.e10 / (1.5e0 * d12 * d12)
191 dtrue(2,6) = 2.e-2 / 1.5e0
192 dtrue(8,6) = 5.e-7 * d12
193 dtrue(1,7) = 4.e0 / 150.e0
194 dtrue(2,7) = (2.e-10 / 1.5e0) * (d12 * d12)
195 dtrue(7,7) = -dtrue(6,5)
196 dtrue(9,7) = 1.e4 / d12
197 dtrue(1,8) = dtrue(1,7)
198 dtrue(2,8) = 2.e10 / (1.5e0 * d12 * d12)
199 dtrue(1,9) = 32.e0 / 7.e0
200 dtrue(2,9) = -16.e0 / 7.e0
206 dbtrue(1) = 1.0e0/0.6e0
207 dbtrue(3) = -1.0e0/0.6e0
208 dbtrue(5) = 1.0e0/0.6e0
218 CALL srotg(sa,sb,sc,ss)
219 CALL stest1(sa,datrue(k),datrue(k),sfac)
220 CALL stest1(sb,dbtrue(k),dbtrue(k),sfac)
221 CALL stest1(sc,dc1(k),dc1(k),sfac)
222 CALL stest1(ss,ds1(k),ds1(k),sfac)
223 ELSEIF (icase.EQ.11)
THEN
230 CALL srotmg(dtemp(1),dtemp(2),dtemp(3),dtemp(4),dtemp(5))
231 CALL stest(9,dtemp,dtrue(1,k),dtrue(1,k),sfac)
233 WRITE (nout,*)
' Shouldn''t be here in CHECK0'
246 INTEGER ICASE, INCX, INCY, N
249 INTEGER I, IX, LEN, NP1
251 REAL DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
252 + DVR(8), SA(10), STEMP(1), STRUE(8), SX(8),
254 INTEGER ITRUE2(5), ITRUEC(5)
258 EXTERNAL sasum, snrm2, isamax
264 COMMON /combla/icase, n, incx, incy, pass
266 DATA sa/0.3e0, -1.0e0, 0.0e0, 1.0e0, 0.3e0, 0.3e0,
267 + 0.3e0, 0.3e0, 0.3e0, 0.3e0/
268 DATA dv/0.1e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
269 + 2.0e0, 2.0e0, 0.3e0, 3.0e0, 3.0e0, 3.0e0, 3.0e0,
270 + 3.0e0, 3.0e0, 3.0e0, 0.3e0, -0.4e0, 4.0e0,
271 + 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0, 0.2e0,
272 + -0.6e0, 0.3e0, 5.0e0, 5.0e0, 5.0e0, 5.0e0,
273 + 5.0e0, 0.1e0, -0.3e0, 0.5e0, -0.1e0, 6.0e0,
274 + 6.0e0, 6.0e0, 6.0e0, 0.1e0, 8.0e0, 8.0e0, 8.0e0,
275 + 8.0e0, 8.0e0, 8.0e0, 8.0e0, 0.3e0, 9.0e0, 9.0e0,
276 + 9.0e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0, 0.3e0, 2.0e0,
277 + -0.4e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
278 + 0.2e0, 3.0e0, -0.6e0, 5.0e0, 0.3e0, 2.0e0,
279 + 2.0e0, 2.0e0, 0.1e0, 4.0e0, -0.3e0, 6.0e0,
280 + -0.5e0, 7.0e0, -0.1e0, 3.0e0/
281 DATA dvr/8.0e0, -7.0e0, 9.0e0, 5.0e0, 9.0e0, 8.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/
300 DATA itruec/0, 1, 1, 1, 1/
308 sx(i) = dv(i,np1,incx)
313 stemp(1) = dtrue1(np1)
314 CALL stest1(snrm2(n,sx,incx),stemp(1),stemp,sfac)
315 ELSE IF (icase.EQ.8)
THEN
317 stemp(1) = dtrue3(np1)
318 CALL stest1(sasum(n,sx,incx),stemp(1),stemp,sfac)
319 ELSE IF (icase.EQ.9)
THEN
321 CALL sscal(n,sa((incx-1)*5+np1),sx,incx)
323 strue(i) = dtrue5(i,np1,incx)
325 CALL stest(len,sx,strue,strue,sfac)
326 ELSE IF (icase.EQ.10)
THEN
328 CALL itest1(isamax(n,sx,incx),itrue2(np1))
332 CALL itest1(isamax(n,sx,incx),itruec(np1))
334 WRITE (nout,*)
' Shouldn''t be here in CHECK1'
338 IF (icase.EQ.10)
THEN
345 CALL itest1(isamax(n,sxr,incx),3)
357 INTEGER ICASE, INCX, INCY, N
361 INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
362 $ LINCX, LINCY, MX, MY
364 REAL DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
365 $ DT8(7,4,4), DX1(7),
366 $ DY1(7), SSIZE1(4), SSIZE2(14,2), SSIZE3(4),
367 $ SSIZE(7), STX(7), STY(7), SX(7), SY(7),
368 $ DPAR(5,4), DT19X(7,4,16),DT19XA(7,4,4),
369 $ DT19XB(7,4,4), DT19XC(7,4,4),DT19XD(7,4,4),
370 $ DT19Y(7,4,16), DT19YA(7,4,4),DT19YB(7,4,4),
371 $ DT19YC(7,4,4), DT19YD(7,4,4), DTEMP(5),
372 $ ST7B(4,4), STY0(1), SX0(1), SY0(1)
373 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
376 EXTERNAL sdot, sdsdot
382 COMMON /combla/icase, n, incx, incy, pass
384 equivalence(dt19x(1,1,1),dt19xa(1,1,1)),(dt19x(1,1,5),
385 a dt19xb(1,1,1)),(dt19x(1,1,9),dt19xc(1,1,1)),
386 b (dt19x(1,1,13),dt19xd(1,1,1))
387 equivalence(dt19y(1,1,1),dt19ya(1,1,1)),(dt19y(1,1,5),
388 a dt19yb(1,1,1)),(dt19y(1,1,9),dt19yc(1,1,1)),
389 b (dt19y(1,1,13),dt19yd(1,1,1))
392 DATA incxs/1, 2, -2, -1/
393 DATA incys/1, -2, 1, -2/
394 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
396 DATA dx1/0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.9e0, -0.3e0,
398 DATA dy1/0.5e0, -0.9e0, 0.3e0, 0.7e0, -0.6e0, 0.2e0,
400 DATA dt7/0.0e0, 0.30e0, 0.21e0, 0.62e0, 0.0e0,
401 + 0.30e0, -0.07e0, 0.85e0, 0.0e0, 0.30e0, -0.79e0,
402 + -0.74e0, 0.0e0, 0.30e0, 0.33e0, 1.27e0/
403 DATA st7b/ .1, .4, .31, .72, .1, .4, .03, .95,
404 + .1, .4, -.69, -.64, .1, .4, .43, 1.37/
405 DATA dt8/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
406 + 0.0e0, 0.68e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
407 + 0.0e0, 0.0e0, 0.68e0, -0.87e0, 0.0e0, 0.0e0,
408 + 0.0e0, 0.0e0, 0.0e0, 0.68e0, -0.87e0, 0.15e0,
409 + 0.94e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
410 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.68e0,
411 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
412 + 0.35e0, -0.9e0, 0.48e0, 0.0e0, 0.0e0, 0.0e0,
413 + 0.0e0, 0.38e0, -0.9e0, 0.57e0, 0.7e0, -0.75e0,
414 + 0.2e0, 0.98e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0,
415 + 0.0e0, 0.0e0, 0.0e0, 0.68e0, 0.0e0, 0.0e0,
416 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.35e0, -0.72e0,
417 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.38e0,
418 + -0.63e0, 0.15e0, 0.88e0, 0.0e0, 0.0e0, 0.0e0,
419 + 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
420 + 0.68e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
421 + 0.0e0, 0.68e0, -0.9e0, 0.33e0, 0.0e0, 0.0e0,
422 + 0.0e0, 0.0e0, 0.68e0, -0.9e0, 0.33e0, 0.7e0,
423 + -0.75e0, 0.2e0, 1.04e0/
424 DATA dt10x/0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
425 + 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
426 + 0.0e0, 0.5e0, -0.9e0, 0.0e0, 0.0e0, 0.0e0,
427 + 0.0e0, 0.0e0, 0.5e0, -0.9e0, 0.3e0, 0.7e0,
428 + 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0,
429 + 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0,
430 + 0.0e0, 0.0e0, 0.0e0, 0.3e0, 0.1e0, 0.5e0, 0.0e0,
431 + 0.0e0, 0.0e0, 0.0e0, 0.8e0, 0.1e0, -0.6e0,
432 + 0.8e0, 0.3e0, -0.3e0, 0.5e0, 0.6e0, 0.0e0,
433 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
434 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.9e0,
435 + 0.1e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.7e0,
436 + 0.1e0, 0.3e0, 0.8e0, -0.9e0, -0.3e0, 0.5e0,
437 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
438 + 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
439 + 0.5e0, 0.3e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
440 + 0.5e0, 0.3e0, -0.6e0, 0.8e0, 0.0e0, 0.0e0,
442 DATA dt10y/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
443 + 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
444 + 0.0e0, 0.6e0, 0.1e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
445 + 0.0e0, 0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.0e0,
446 + 0.0e0, 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
447 + 0.0e0, 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
448 + 0.0e0, 0.0e0, -0.5e0, -0.9e0, 0.6e0, 0.0e0,
449 + 0.0e0, 0.0e0, 0.0e0, -0.4e0, -0.9e0, 0.9e0,
450 + 0.7e0, -0.5e0, 0.2e0, 0.6e0, 0.5e0, 0.0e0,
451 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0,
452 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.5e0,
453 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
454 + -0.4e0, 0.9e0, -0.5e0, 0.6e0, 0.0e0, 0.0e0,
455 + 0.0e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
456 + 0.0e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
457 + 0.0e0, 0.6e0, -0.9e0, 0.1e0, 0.0e0, 0.0e0,
458 + 0.0e0, 0.0e0, 0.6e0, -0.9e0, 0.1e0, 0.7e0,
459 + -0.5e0, 0.2e0, 0.8e0/
460 DATA ssize1/0.0e0, 0.3e0, 1.6e0, 3.2e0/
461 DATA ssize2/0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
462 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
463 + 0.0e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
464 + 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
465 + 1.17e0, 1.17e0, 1.17e0/
466 DATA ssize3/ .1, .4, 1.7, 3.3 /
470 DATA dpar/-2.e0, 0.e0,0.e0,0.e0,0.e0,
471 a -1.e0, 2.e0, -3.e0, -4.e0, 5.e0,
472 b 0.e0, 0.e0, 2.e0, -3.e0, 0.e0,
473 c 1.e0, 5.e0, 2.e0, 0.e0, -4.e0/
475 DATA dt19xa/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
476 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
477 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
478 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
479 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
480 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
481 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
482 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
483 h .6e0, .1e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
484 i -.8e0, 3.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
485 j -.9e0, 2.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
486 k 3.5e0, -.4e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
487 l .6e0, .1e0, -.5e0, .8e0, 0.e0,0.e0,0.e0,
488 m -.8e0, 3.8e0, -2.2e0, -1.2e0, 0.e0,0.e0,0.e0,
489 n -.9e0, 2.8e0, -1.4e0, -1.3e0, 0.e0,0.e0,0.e0,
490 o 3.5e0, -.4e0, -2.2e0, 4.7e0, 0.e0,0.e0,0.e0/
492 DATA dt19xb/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
493 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
494 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
495 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
496 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
497 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
498 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
499 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
500 h .6e0, .1e0, -.5e0, 0.e0,0.e0,0.e0,0.e0,
501 i 0.e0, .1e0, -3.0e0, 0.e0,0.e0,0.e0,0.e0,
502 j -.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
503 k 3.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
504 l .6e0, .1e0, -.5e0, .8e0, .9e0, -.3e0, -.4e0,
505 m -2.0e0, .1e0, 1.4e0, .8e0, .6e0, -.3e0, -2.8e0,
506 n -1.8e0, .1e0, 1.3e0, .8e0, 0.e0, -.3e0, -1.9e0,
507 o 3.8e0, .1e0, -3.1e0, .8e0, 4.8e0, -.3e0, -1.5e0 /
509 DATA dt19xc/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
510 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
511 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
512 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
513 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
514 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
515 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
516 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
517 h .6e0, .1e0, -.5e0, 0.e0,0.e0,0.e0,0.e0,
518 i 4.8e0, .1e0, -3.0e0, 0.e0,0.e0,0.e0,0.e0,
519 j 3.3e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
520 k 2.1e0, .1e0, -2.0e0, 0.e0,0.e0,0.e0,0.e0,
521 l .6e0, .1e0, -.5e0, .8e0, .9e0, -.3e0, -.4e0,
522 m -1.6e0, .1e0, -2.2e0, .8e0, 5.4e0, -.3e0, -2.8e0,
523 n -1.5e0, .1e0, -1.4e0, .8e0, 3.6e0, -.3e0, -1.9e0,
524 o 3.7e0, .1e0, -2.2e0, .8e0, 3.6e0, -.3e0, -1.5e0 /
526 DATA dt19xd/.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
527 a .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
528 b .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
529 c .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
530 d .6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
531 e -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
532 f -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
533 g 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
534 h .6e0, .1e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
535 i -.8e0, -1.0e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
536 j -.9e0, -.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
537 k 3.5e0, .8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
538 l .6e0, .1e0, -.5e0, .8e0, 0.e0,0.e0,0.e0,
539 m -.8e0, -1.0e0, 1.4e0, -1.6e0, 0.e0,0.e0,0.e0,
540 n -.9e0, -.8e0, 1.3e0, -1.6e0, 0.e0,0.e0,0.e0,
541 o 3.5e0, .8e0, -3.1e0, 4.8e0, 0.e0,0.e0,0.e0/
543 DATA dt19ya/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
544 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
545 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
546 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
547 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
548 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
549 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
550 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
551 h .5e0, -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
552 i .7e0, -4.8e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
553 j 1.7e0, -.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
554 k -2.6e0, 3.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
555 l .5e0, -.9e0, .3e0, .7e0, 0.e0,0.e0,0.e0,
556 m .7e0, -4.8e0, 3.0e0, 1.1e0, 0.e0,0.e0,0.e0,
557 n 1.7e0, -.7e0, -.7e0, 2.3e0, 0.e0,0.e0,0.e0,
558 o -2.6e0, 3.5e0, -.7e0, -3.6e0, 0.e0,0.e0,0.e0/
560 DATA dt19yb/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
561 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
562 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
563 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
564 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
565 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
566 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
567 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
568 h .5e0, -.9e0, .3e0, 0.e0,0.e0,0.e0,0.e0,
569 i 4.0e0, -.9e0, -.3e0, 0.e0,0.e0,0.e0,0.e0,
570 j -.5e0, -.9e0, 1.5e0, 0.e0,0.e0,0.e0,0.e0,
571 k -1.5e0, -.9e0, -1.8e0, 0.e0,0.e0,0.e0,0.e0,
572 l .5e0, -.9e0, .3e0, .7e0, -.6e0, .2e0, .8e0,
573 m 3.7e0, -.9e0, -1.2e0, .7e0, -1.5e0, .2e0, 2.2e0,
574 n -.3e0, -.9e0, 2.1e0, .7e0, -1.6e0, .2e0, 2.0e0,
575 o -1.6e0, -.9e0, -2.1e0, .7e0, 2.9e0, .2e0, -3.8e0 /
577 DATA dt19yc/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
578 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
579 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
580 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
581 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
582 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
583 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
584 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
585 h .5e0, -.9e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
586 i 4.0e0, -6.3e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
587 j -.5e0, .3e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
588 k -1.5e0, 3.0e0, 0.e0,0.e0,0.e0,0.e0,0.e0,
589 l .5e0, -.9e0, .3e0, .7e0, 0.e0,0.e0,0.e0,
590 m 3.7e0, -7.2e0, 3.0e0, 1.7e0, 0.e0,0.e0,0.e0,
591 n -.3e0, .9e0, -.7e0, 1.9e0, 0.e0,0.e0,0.e0,
592 o -1.6e0, 2.7e0, -.7e0, -3.4e0, 0.e0,0.e0,0.e0/
594 DATA dt19yd/.5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
595 a .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
596 b .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
597 c .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
598 d .5e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
599 e .7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
600 f 1.7e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
601 g -2.6e0, 0.e0,0.e0,0.e0,0.e0,0.e0,0.e0,
602 h .5e0, -.9e0, .3e0, 0.e0,0.e0,0.e0,0.e0,
603 i .7e0, -.9e0, 1.2e0, 0.e0,0.e0,0.e0,0.e0,
604 j 1.7e0, -.9e0, .5e0, 0.e0,0.e0,0.e0,0.e0,
605 k -2.6e0, -.9e0, -1.3e0, 0.e0,0.e0,0.e0,0.e0,
606 l .5e0, -.9e0, .3e0, .7e0, -.6e0, .2e0, .8e0,
607 m .7e0, -.9e0, 1.2e0, .7e0, -1.5e0, .2e0, 1.6e0,
608 n 1.7e0, -.9e0, .5e0, .7e0, -1.6e0, .2e0, 2.4e0,
609 o -2.6e0, -.9e0, -1.3e0, .7e0, 2.9e0, .2e0, -4.0e0 /
632 CALL stest1(sdot(n,sx,incx,sy,incy),dt7(kn,ki),ssize1(kn)
634 ELSE IF (icase.EQ.2)
THEN
636 CALL saxpy(n,sa,sx,incx,sy,incy)
638 sty(j) = dt8(j,kn,ki)
640 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
641 ELSE IF (icase.EQ.5)
THEN
644 sty(i) = dt10y(i,kn,ki)
646 CALL scopy(n,sx,incx,sy,incy)
647 CALL stest(leny,sy,sty,ssize2(1,1),1.0e0)
660 CALL scopy(n,sx0,incx,sy0,incy)
661 CALL stest(1,sy0,sty0,ssize2(1,1),1.0e0)
665 ELSE IF (icase.EQ.6)
THEN
667 CALL sswap(n,sx,incx,sy,incy)
669 stx(i) = dt10x(i,kn,ki)
670 sty(i) = dt10y(i,kn,ki)
672 CALL stest(lenx,sx,stx,ssize2(1,1),1.0e0)
673 CALL stest(leny,sy,sty,ssize2(1,1),1.0e0)
674 ELSEIF (icase.EQ.12)
THEN
681 stx(i)= dt19x(i,kpar,kni)
682 sty(i)= dt19y(i,kpar,kni)
686 dtemp(i) = dpar(i,kpar)
694 IF ((kpar .EQ. 2) .AND. (kni .EQ. 7))
696 IF ((kpar .EQ. 3) .AND. (kni .EQ. 8))
699 CALL srotm(n,sx,incx,sy,incy,dtemp)
700 CALL stest(lenx,sx,stx,ssize,sfac)
701 CALL stest(leny,sy,sty,sty,sfac)
703 ELSEIF (icase.EQ.13)
THEN
705 CALL stest1 (sdsdot(n,.1,sx,incx,sy,incy),
706 $ st7b(kn,ki),ssize3(kn),sfac)
708 WRITE (nout,*)
' Shouldn''t be here in CHECK2'
722 INTEGER ICASE, INCX, INCY, N
726 INTEGER I, K, KI, KN, KSIZE, LENX, LENY, MX, MY
728 REAL COPYX(5), COPYY(5), DT9X(7,4,4), DT9Y(7,4,4),
729 + DX1(7), DY1(7), MWPC(11), MWPS(11), MWPSTX(5),
730 + MWPSTY(5), MWPTX(11,5), MWPTY(11,5), MWPX(5),
731 + MWPY(5), SSIZE2(14,2), STX(7), STY(7), SX(7),
733 INTEGER INCXS(4), INCYS(4), LENS(4,2), MWPINX(11),
734 + MWPINY(11), MWPN(11), NS(4)
740 COMMON /combla/icase, n, incx, incy, pass
742 DATA incxs/1, 2, -2, -1/
743 DATA incys/1, -2, 1, -2/
744 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/
746 DATA dx1/0.6e0, 0.1e0, -0.5e0, 0.8e0, 0.9e0, -0.3e0,
748 DATA dy1/0.5e0, -0.9e0, 0.3e0, 0.7e0, -0.6e0, 0.2e0,
750 DATA sc, ss/0.8e0, 0.6e0/
751 DATA dt9x/0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
752 + 0.0e0, 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
753 + 0.0e0, 0.0e0, 0.78e0, -0.46e0, 0.0e0, 0.0e0,
754 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, -0.46e0, -0.22e0,
755 + 1.06e0, 0.0e0, 0.0e0, 0.0e0, 0.6e0, 0.0e0,
756 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.78e0,
757 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
758 + 0.66e0, 0.1e0, -0.1e0, 0.0e0, 0.0e0, 0.0e0,
759 + 0.0e0, 0.96e0, 0.1e0, -0.76e0, 0.8e0, 0.90e0,
760 + -0.3e0, -0.02e0, 0.6e0, 0.0e0, 0.0e0, 0.0e0,
761 + 0.0e0, 0.0e0, 0.0e0, 0.78e0, 0.0e0, 0.0e0,
762 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, -0.06e0, 0.1e0,
763 + -0.1e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.90e0,
764 + 0.1e0, -0.22e0, 0.8e0, 0.18e0, -0.3e0, -0.02e0,
765 + 0.6e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
766 + 0.78e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
767 + 0.0e0, 0.78e0, 0.26e0, 0.0e0, 0.0e0, 0.0e0,
768 + 0.0e0, 0.0e0, 0.78e0, 0.26e0, -0.76e0, 1.12e0,
769 + 0.0e0, 0.0e0, 0.0e0/
770 DATA dt9y/0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
771 + 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
772 + 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.0e0, 0.0e0,
773 + 0.0e0, 0.0e0, 0.0e0, 0.04e0, -0.78e0, 0.54e0,
774 + 0.08e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0, 0.0e0,
775 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.04e0,
776 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.7e0,
777 + -0.9e0, -0.12e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
778 + 0.64e0, -0.9e0, -0.30e0, 0.7e0, -0.18e0, 0.2e0,
779 + 0.28e0, 0.5e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
780 + 0.0e0, 0.0e0, 0.04e0, 0.0e0, 0.0e0, 0.0e0,
781 + 0.0e0, 0.0e0, 0.0e0, 0.7e0, -1.08e0, 0.0e0,
782 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.64e0, -1.26e0,
783 + 0.54e0, 0.20e0, 0.0e0, 0.0e0, 0.0e0, 0.5e0,
784 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
785 + 0.04e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
786 + 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.0e0, 0.0e0,
787 + 0.0e0, 0.0e0, 0.04e0, -0.9e0, 0.18e0, 0.7e0,
788 + -0.18e0, 0.2e0, 0.16e0/
789 DATA ssize2/0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
790 + 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0, 0.0e0,
791 + 0.0e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
792 + 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0, 1.17e0,
793 + 1.17e0, 1.17e0, 1.17e0/
813 stx(i) = dt9x(i,kn,ki)
814 sty(i) = dt9y(i,kn,ki)
816 CALL srot(n,sx,incx,sy,incy,sc,ss)
817 CALL stest(lenx,sx,stx,ssize2(1,ksize),sfac)
818 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
820 WRITE (nout,*)
' Shouldn''t be here in CHECK3'
912 mwpstx(k) = mwptx(i,k)
913 mwpsty(k) = mwpty(i,k)
915 CALL srot(mwpn(i),copyx,incx,copyy,incy,mwpc(i),mwps(i))
916 CALL stest(5,copyx,mwpstx,mwpstx,sfac)
917 CALL stest(5,copyy,mwpsty,mwpsty,sfac)
921 SUBROUTINE stest(LEN,SCOMP,STRUE,SSIZE,SFAC)
933 parameter(nout=6, zero=0.0e0)
938 REAL SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
940 INTEGER ICASE, INCX, INCY, N
951 COMMON /combla/icase, n, incx, incy, pass
955 sd = scomp(i) - strue(i)
956 IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
961 IF ( .NOT. pass)
GO TO 20
966 20
WRITE (nout,99997) icase, n, incx, incy, i, scomp(i),
967 + strue(i), sd, ssize(i)
971 99999
FORMAT (
' FAIL')
972 99998
FORMAT (/
' CASE N INCX INCY I ',
973 +
' COMP(I) TRUE(I) DIFFERENCE',
975 99997
FORMAT (1x,i4,i3,2i5,i3,2e36.8,2e12.4)
977 SUBROUTINE stest1(SCOMP1,STRUE1,SSIZE,SFAC)
987 REAL SCOMP1, SFAC, STRUE1
991 REAL SCOMP(1), STRUE(1)
998 CALL stest(1,scomp,strue,ssize,sfac)
1023 INTEGER ICOMP, ITRUE
1025 INTEGER ICASE, INCX, INCY, N
1030 COMMON /combla/icase, n, incx, incy, pass
1033 IF (icomp.EQ.itrue)
GO TO 40
1037 IF ( .NOT. pass)
GO TO 20
1042 20 id = icomp - itrue
1043 WRITE (nout,99997) icase, n, incx, incy, icomp, itrue, id
1047 99999
FORMAT (
' FAIL')
1048 99998
FORMAT (/
' CASE N INCX INCY ',
1049 +
' COMP TRUE DIFFERENCE',
1051 99997
FORMAT (1x,i4,i3,2i5,2i36,i12)
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
real function sdiff(SA, SB)
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
subroutine itest1(ICOMP, ITRUE)
subroutine sswap(N, SX, INCX, SY, INCY)
SSWAP
subroutine srot(N, SX, INCX, SY, INCY, C, S)
SROT
subroutine scopy(N, SX, INCX, SY, INCY)
SCOPY
subroutine srotg(SA, SB, C, S)
SROTG
subroutine sscal(N, SA, SX, INCX)
SSCAL
subroutine srotm(N, SX, INCX, SY, INCY, SPARAM)
SROTM
subroutine srotmg(SD1, SD2, SX1, SY1, SPARAM)
SROTMG
subroutine saxpy(N, SA, SX, INCX, SY, INCY)
SAXPY