341 DOUBLE PRECISION SFAC
343 INTEGER ICASE, INCX, INCY, N
347 INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
350 DOUBLE PRECISION 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), SSIZE(7),
353 $ 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)
358 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
360 DOUBLE PRECISION DDOT, DSDOT
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.6d0, 0.1d0, -0.5d0, 0.8d0, 0.9d0, -0.3d0,
384 DATA dy1/0.5d0, -0.9d0, 0.3d0, 0.7d0, -0.6d0, 0.2d0,
386 DATA dt7/0.0d0, 0.30d0, 0.21d0, 0.62d0, 0.0d0,
387 + 0.30d0, -0.07d0, 0.85d0, 0.0d0, 0.30d0, -0.79d0,
388 + -0.74d0, 0.0d0, 0.30d0, 0.33d0, 1.27d0/
389 DATA dt8/0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
390 + 0.0d0, 0.68d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
391 + 0.0d0, 0.0d0, 0.68d0, -0.87d0, 0.0d0, 0.0d0,
392 + 0.0d0, 0.0d0, 0.0d0, 0.68d0, -0.87d0, 0.15d0,
393 + 0.94d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0,
394 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.68d0,
395 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
396 + 0.35d0, -0.9d0, 0.48d0, 0.0d0, 0.0d0, 0.0d0,
397 + 0.0d0, 0.38d0, -0.9d0, 0.57d0, 0.7d0, -0.75d0,
398 + 0.2d0, 0.98d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0,
399 + 0.0d0, 0.0d0, 0.0d0, 0.68d0, 0.0d0, 0.0d0,
400 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.35d0, -0.72d0,
401 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.38d0,
402 + -0.63d0, 0.15d0, 0.88d0, 0.0d0, 0.0d0, 0.0d0,
403 + 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
404 + 0.68d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
405 + 0.0d0, 0.68d0, -0.9d0, 0.33d0, 0.0d0, 0.0d0,
406 + 0.0d0, 0.0d0, 0.68d0, -0.9d0, 0.33d0, 0.7d0,
407 + -0.75d0, 0.2d0, 1.04d0/
408 DATA dt10x/0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
409 + 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
410 + 0.0d0, 0.5d0, -0.9d0, 0.0d0, 0.0d0, 0.0d0,
411 + 0.0d0, 0.0d0, 0.5d0, -0.9d0, 0.3d0, 0.7d0,
412 + 0.0d0, 0.0d0, 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0,
413 + 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0,
414 + 0.0d0, 0.0d0, 0.0d0, 0.3d0, 0.1d0, 0.5d0, 0.0d0,
415 + 0.0d0, 0.0d0, 0.0d0, 0.8d0, 0.1d0, -0.6d0,
416 + 0.8d0, 0.3d0, -0.3d0, 0.5d0, 0.6d0, 0.0d0,
417 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.5d0, 0.0d0,
418 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, -0.9d0,
419 + 0.1d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.7d0,
420 + 0.1d0, 0.3d0, 0.8d0, -0.9d0, -0.3d0, 0.5d0,
421 + 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
422 + 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
423 + 0.5d0, 0.3d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
424 + 0.5d0, 0.3d0, -0.6d0, 0.8d0, 0.0d0, 0.0d0,
426 DATA dt10y/0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
427 + 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
428 + 0.0d0, 0.6d0, 0.1d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
429 + 0.0d0, 0.6d0, 0.1d0, -0.5d0, 0.8d0, 0.0d0,
430 + 0.0d0, 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
431 + 0.0d0, 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
432 + 0.0d0, 0.0d0, -0.5d0, -0.9d0, 0.6d0, 0.0d0,
433 + 0.0d0, 0.0d0, 0.0d0, -0.4d0, -0.9d0, 0.9d0,
434 + 0.7d0, -0.5d0, 0.2d0, 0.6d0, 0.5d0, 0.0d0,
435 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.6d0, 0.0d0,
436 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, -0.5d0,
437 + 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
438 + -0.4d0, 0.9d0, -0.5d0, 0.6d0, 0.0d0, 0.0d0,
439 + 0.0d0, 0.5d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
440 + 0.0d0, 0.6d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
441 + 0.0d0, 0.6d0, -0.9d0, 0.1d0, 0.0d0, 0.0d0,
442 + 0.0d0, 0.0d0, 0.6d0, -0.9d0, 0.1d0, 0.7d0,
443 + -0.5d0, 0.2d0, 0.8d0/
444 DATA ssize1/0.0d0, 0.3d0, 1.6d0, 3.2d0/
445 DATA ssize2/0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
446 + 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0, 0.0d0,
447 + 0.0d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
448 + 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0, 1.17d0,
449 + 1.17d0, 1.17d0, 1.17d0/
453 DATA dpar/-2.d0, 0.d0,0.d0,0.d0,0.d0,
454 a -1.d0, 2.d0, -3.d0, -4.d0, 5.d0,
455 b 0.d0, 0.d0, 2.d0, -3.d0, 0.d0,
456 c 1.d0, 5.d0, 2.d0, 0.d0, -4.d0/
458 DATA dt19xa/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
459 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
460 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
461 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
462 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
463 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
464 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
465 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
466 h .6d0, .1d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
467 i -.8d0, 3.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
468 j -.9d0, 2.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
469 k 3.5d0, -.4d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
470 l .6d0, .1d0, -.5d0, .8d0, 0.d0,0.d0,0.d0,
471 m -.8d0, 3.8d0, -2.2d0, -1.2d0, 0.d0,0.d0,0.d0,
472 n -.9d0, 2.8d0, -1.4d0, -1.3d0, 0.d0,0.d0,0.d0,
473 o 3.5d0, -.4d0, -2.2d0, 4.7d0, 0.d0,0.d0,0.d0/
475 DATA dt19xb/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
476 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
477 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
478 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
479 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
480 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
481 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
482 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
483 h .6d0, .1d0, -.5d0, 0.d0,0.d0,0.d0,0.d0,
484 i 0.d0, .1d0, -3.0d0, 0.d0,0.d0,0.d0,0.d0,
485 j -.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
486 k 3.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
487 l .6d0, .1d0, -.5d0, .8d0, .9d0, -.3d0, -.4d0,
488 m -2.0d0, .1d0, 1.4d0, .8d0, .6d0, -.3d0, -2.8d0,
489 n -1.8d0, .1d0, 1.3d0, .8d0, 0.d0, -.3d0, -1.9d0,
490 o 3.8d0, .1d0, -3.1d0, .8d0, 4.8d0, -.3d0, -1.5d0 /
492 DATA dt19xc/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
493 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
494 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
495 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
496 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
497 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
498 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
499 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
500 h .6d0, .1d0, -.5d0, 0.d0,0.d0,0.d0,0.d0,
501 i 4.8d0, .1d0, -3.0d0, 0.d0,0.d0,0.d0,0.d0,
502 j 3.3d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
503 k 2.1d0, .1d0, -2.0d0, 0.d0,0.d0,0.d0,0.d0,
504 l .6d0, .1d0, -.5d0, .8d0, .9d0, -.3d0, -.4d0,
505 m -1.6d0, .1d0, -2.2d0, .8d0, 5.4d0, -.3d0, -2.8d0,
506 n -1.5d0, .1d0, -1.4d0, .8d0, 3.6d0, -.3d0, -1.9d0,
507 o 3.7d0, .1d0, -2.2d0, .8d0, 3.6d0, -.3d0, -1.5d0 /
509 DATA dt19xd/.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
510 a .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
511 b .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
512 c .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
513 d .6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
514 e -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
515 f -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
516 g 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
517 h .6d0, .1d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
518 i -.8d0, -1.0d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
519 j -.9d0, -.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
520 k 3.5d0, .8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
521 l .6d0, .1d0, -.5d0, .8d0, 0.d0,0.d0,0.d0,
522 m -.8d0, -1.0d0, 1.4d0, -1.6d0, 0.d0,0.d0,0.d0,
523 n -.9d0, -.8d0, 1.3d0, -1.6d0, 0.d0,0.d0,0.d0,
524 o 3.5d0, .8d0, -3.1d0, 4.8d0, 0.d0,0.d0,0.d0/
526 DATA dt19ya/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
527 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
528 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
529 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
530 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
531 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
532 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
533 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
534 h .5d0, -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
535 i .7d0, -4.8d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
536 j 1.7d0, -.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
537 k -2.6d0, 3.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
538 l .5d0, -.9d0, .3d0, .7d0, 0.d0,0.d0,0.d0,
539 m .7d0, -4.8d0, 3.0d0, 1.1d0, 0.d0,0.d0,0.d0,
540 n 1.7d0, -.7d0, -.7d0, 2.3d0, 0.d0,0.d0,0.d0,
541 o -2.6d0, 3.5d0, -.7d0, -3.6d0, 0.d0,0.d0,0.d0/
543 DATA dt19yb/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
544 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
545 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
546 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
547 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
548 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
549 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
550 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
551 h .5d0, -.9d0, .3d0, 0.d0,0.d0,0.d0,0.d0,
552 i 4.0d0, -.9d0, -.3d0, 0.d0,0.d0,0.d0,0.d0,
553 j -.5d0, -.9d0, 1.5d0, 0.d0,0.d0,0.d0,0.d0,
554 k -1.5d0, -.9d0, -1.8d0, 0.d0,0.d0,0.d0,0.d0,
555 l .5d0, -.9d0, .3d0, .7d0, -.6d0, .2d0, .8d0,
556 m 3.7d0, -.9d0, -1.2d0, .7d0, -1.5d0, .2d0, 2.2d0,
557 n -.3d0, -.9d0, 2.1d0, .7d0, -1.6d0, .2d0, 2.0d0,
558 o -1.6d0, -.9d0, -2.1d0, .7d0, 2.9d0, .2d0, -3.8d0 /
560 DATA dt19yc/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
561 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
562 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
563 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
564 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
565 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
566 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
567 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
568 h .5d0, -.9d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
569 i 4.0d0, -6.3d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
570 j -.5d0, .3d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
571 k -1.5d0, 3.0d0, 0.d0,0.d0,0.d0,0.d0,0.d0,
572 l .5d0, -.9d0, .3d0, .7d0, 0.d0,0.d0,0.d0,
573 m 3.7d0, -7.2d0, 3.0d0, 1.7d0, 0.d0,0.d0,0.d0,
574 n -.3d0, .9d0, -.7d0, 1.9d0, 0.d0,0.d0,0.d0,
575 o -1.6d0, 2.7d0, -.7d0, -3.4d0, 0.d0,0.d0,0.d0/
577 DATA dt19yd/.5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
578 a .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
579 b .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
580 c .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
581 d .5d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
582 e .7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
583 f 1.7d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
584 g -2.6d0, 0.d0,0.d0,0.d0,0.d0,0.d0,0.d0,
585 h .5d0, -.9d0, .3d0, 0.d0,0.d0,0.d0,0.d0,
586 i .7d0, -.9d0, 1.2d0, 0.d0,0.d0,0.d0,0.d0,
587 j 1.7d0, -.9d0, .5d0, 0.d0,0.d0,0.d0,0.d0,
588 k -2.6d0, -.9d0, -1.3d0, 0.d0,0.d0,0.d0,0.d0,
589 l .5d0, -.9d0, .3d0, .7d0, -.6d0, .2d0, .8d0,
590 m .7d0, -.9d0, 1.2d0, .7d0, -1.5d0, .2d0, 1.6d0,
591 n 1.7d0, -.9d0, .5d0, .7d0, -1.6d0, .2d0, 2.4d0,
592 o -2.6d0, -.9d0, -1.3d0, .7d0, 2.9d0, .2d0, -4.0d0 /
615 CALL stest1(
ddot(n,sx,incx,sy,incy),dt7(kn,ki),ssize1(kn)
617 ELSE IF (icase.EQ.2)
THEN
619 CALL daxpy(n,sa,sx,incx,sy,incy)
621 sty(j) = dt8(j,kn,ki)
623 CALL stest(leny,sy,sty,ssize2(1,ksize),sfac)
624 ELSE IF (icase.EQ.5)
THEN
627 sty(i) = dt10y(i,kn,ki)
629 CALL dcopy(n,sx,incx,sy,incy)
630 CALL stest(leny,sy,sty,ssize2(1,1),1.0d0)
631 ELSE IF (icase.EQ.6)
THEN
633 CALL dswap(n,sx,incx,sy,incy)
635 stx(i) = dt10x(i,kn,ki)
636 sty(i) = dt10y(i,kn,ki)
638 CALL stest(lenx,sx,stx,ssize2(1,1),1.0d0)
639 CALL stest(leny,sy,sty,ssize2(1,1),1.0d0)
640 ELSE IF (icase.EQ.12)
THEN
647 stx(i)= dt19x(i,kpar,kni)
648 sty(i)= dt19y(i,kpar,kni)
652 dtemp(i) = dpar(i,kpar)
660 IF ((kpar .EQ. 2) .AND. (kni .EQ. 7))
662 IF ((kpar .EQ. 3) .AND. (kni .EQ. 8))
665 CALL drotm(n,sx,incx,sy,incy,dtemp)
666 CALL stest(lenx,sx,stx,ssize,sfac)
667 CALL stest(leny,sy,sty,sty,sfac)
669 ELSE IF (icase.EQ.13)
THEN
672 $ real(dt7(kn,ki)),real(ssize1(kn)), .3125e-1)
674 WRITE (nout,*)
' Shouldn''t be here in CHECK2'