324 DOUBLE PRECISION sfac

326 INTEGER icase, incx, incy, mode, n

330 INTEGER i, j, ki, kn, ksize, lenx, leny, mx, my

332 COMPLEX*16 cdot(1), csize1(4), csize2(7,2), csize3(14),

333 + ct10x(7,4,4), ct10y(7,4,4), ct6(4,4), ct7(4,4),

334 + ct8(7,4,4), cx(7), cx1(7), cy(7), cy1(7)

335 INTEGER incxs(4), incys(4), lens(4,2), ns(4)

344 COMMON /combla/icase, n, incx, incy, mode, pass

346 DATA ca/(0.4d0,-0.7d0)/

347 DATA incxs/1, 2, -2, -1/

348 DATA incys/1, -2, 1, -2/

349 DATA lens/1, 1, 2, 4, 1, 1, 3, 7/

351 DATA cx1/(0.7d0,-0.8d0), (-0.4d0,-0.7d0),

352 + (-0.1d0,-0.9d0), (0.2d0,-0.8d0),

353 + (-0.9d0,-0.4d0), (0.1d0,0.4d0), (-0.6d0,0.6d0)/

354 DATA cy1/(0.6d0,-0.6d0), (-0.9d0,0.5d0),

355 + (0.7d0,-0.6d0), (0.1d0,-0.5d0), (-0.1d0,-0.2d0),

356 + (-0.5d0,-0.3d0), (0.8d0,-0.7d0)/

357 DATA ((ct8(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),

358 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

359 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

360 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

361 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

362 + (0.0d0,0.0d0), (0.32d0,-1.41d0),

363 + (-1.55d0,0.5d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

364 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

365 + (0.32d0,-1.41d0), (-1.55d0,0.5d0),

366 + (0.03d0,-0.89d0), (-0.38d0,-0.96d0),

367 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/

368 DATA ((ct8(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),

369 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

370 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

371 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

372 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

373 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),

374 + (-0.9d0,0.5d0), (0.42d0,-1.41d0), (0.0d0,0.0d0),

375 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

376 + (0.78d0,0.06d0), (-0.9d0,0.5d0),

377 + (0.06d0,-0.13d0), (0.1d0,-0.5d0),

378 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),

380 DATA ((ct8(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),

381 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

382 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

383 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

384 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

385 + (0.0d0,0.0d0), (-0.07d0,-0.89d0),

386 + (-1.18d0,-0.31d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

387 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

388 + (0.78d0,0.06d0), (-1.54d0,0.97d0),

389 + (0.03d0,-0.89d0), (-0.18d0,-1.31d0),

390 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/

391 DATA ((ct8(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),

392 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

393 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

394 + (0.32d0,-1.41d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

395 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

396 + (0.0d0,0.0d0), (0.32d0,-1.41d0), (-0.9d0,0.5d0),

397 + (0.05d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

398 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.32d0,-1.41d0),

399 + (-0.9d0,0.5d0), (0.05d0,-0.6d0), (0.1d0,-0.5d0),

400 + (-0.77d0,-0.49d0), (-0.5d0,-0.3d0),

402 DATA ct7/(0.0d0,0.0d0), (-0.06d0,-0.90d0),

403 + (0.65d0,-0.47d0), (-0.34d0,-1.22d0),

404 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),

405 + (-0.59d0,-1.46d0), (-1.04d0,-0.04d0),

406 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),

407 + (-0.83d0,0.59d0), (0.07d0,-0.37d0),

408 + (0.0d0,0.0d0), (-0.06d0,-0.90d0),

409 + (-0.76d0,-1.15d0), (-1.33d0,-1.82d0)/

410 DATA ct6/(0.0d0,0.0d0), (0.90d0,0.06d0),

411 + (0.91d0,-0.77d0), (1.80d0,-0.10d0),

412 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.45d0,0.74d0),

413 + (0.20d0,0.90d0), (0.0d0,0.0d0), (0.90d0,0.06d0),

414 + (-0.55d0,0.23d0), (0.83d0,-0.39d0),

415 + (0.0d0,0.0d0), (0.90d0,0.06d0), (1.04d0,0.79d0),

417 DATA ((ct10x(i,j,1),i=1,7),j=1,4)/(0.7d0,-0.8d0),

418 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

419 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

420 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

421 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

422 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (-0.9d0,0.5d0),

423 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

424 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),

425 + (-0.9d0,0.5d0), (0.7d0,-0.6d0), (0.1d0,-0.5d0),

426 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/

427 DATA ((ct10x(i,j,2),i=1,7),j=1,4)/(0.7d0,-0.8d0),

428 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

429 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

430 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

431 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

432 + (0.0d0,0.0d0), (0.7d0,-0.6d0), (-0.4d0,-0.7d0),

433 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

434 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.8d0,-0.7d0),

435 + (-0.4d0,-0.7d0), (-0.1d0,-0.2d0),

436 + (0.2d0,-0.8d0), (0.7d0,-0.6d0), (0.1d0,0.4d0),

438 DATA ((ct10x(i,j,3),i=1,7),j=1,4)/(0.7d0,-0.8d0),

439 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

440 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

441 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

442 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

443 + (0.0d0,0.0d0), (-0.9d0,0.5d0), (-0.4d0,-0.7d0),

444 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

445 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.1d0,-0.5d0),

446 + (-0.4d0,-0.7d0), (0.7d0,-0.6d0), (0.2d0,-0.8d0),

447 + (-0.9d0,0.5d0), (0.1d0,0.4d0), (0.6d0,-0.6d0)/

448 DATA ((ct10x(i,j,4),i=1,7),j=1,4)/(0.7d0,-0.8d0),

449 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

450 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

451 + (0.6d0,-0.6d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

452 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

453 + (0.0d0,0.0d0), (0.6d0,-0.6d0), (0.7d0,-0.6d0),

454 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

455 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.6d0,-0.6d0),

456 + (0.7d0,-0.6d0), (-0.1d0,-0.2d0), (0.8d0,-0.7d0),

457 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0)/

458 DATA ((ct10y(i,j,1),i=1,7),j=1,4)/(0.6d0,-0.6d0),

459 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

460 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

461 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

462 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

463 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.4d0,-0.7d0),

464 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

465 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),

466 + (-0.4d0,-0.7d0), (-0.1d0,-0.9d0),

467 + (0.2d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

469 DATA ((ct10y(i,j,2),i=1,7),j=1,4)/(0.6d0,-0.6d0),

470 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

471 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

472 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

473 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

474 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (-0.9d0,0.5d0),

475 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

476 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),

477 + (-0.9d0,0.5d0), (-0.9d0,-0.4d0), (0.1d0,-0.5d0),

478 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),

480 DATA ((ct10y(i,j,3),i=1,7),j=1,4)/(0.6d0,-0.6d0),

481 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

482 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

483 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

484 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

485 + (0.0d0,0.0d0), (-0.1d0,-0.9d0), (0.7d0,-0.8d0),

486 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

487 + (0.0d0,0.0d0), (0.0d0,0.0d0), (-0.6d0,0.6d0),

488 + (-0.9d0,-0.4d0), (-0.1d0,-0.9d0),

489 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

491 DATA ((ct10y(i,j,4),i=1,7),j=1,4)/(0.6d0,-0.6d0),

492 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

493 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

494 + (0.7d0,-0.8d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

495 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

496 + (0.0d0,0.0d0), (0.7d0,-0.8d0), (-0.9d0,0.5d0),

497 + (-0.4d0,-0.7d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

498 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.7d0,-0.8d0),

499 + (-0.9d0,0.5d0), (-0.4d0,-0.7d0), (0.1d0,-0.5d0),

500 + (-0.1d0,-0.9d0), (-0.5d0,-0.3d0),

502 DATA csize1/(0.0d0,0.0d0), (0.9d0,0.9d0),

503 + (1.63d0,1.73d0), (2.90d0,2.78d0)/

504 DATA csize3/(0.0d0,0.0d0), (0.0d0,0.0d0),

505 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

506 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.17d0,1.17d0),

507 + (1.17d0,1.17d0), (1.17d0,1.17d0),

508 + (1.17d0,1.17d0), (1.17d0,1.17d0),

509 + (1.17d0,1.17d0), (1.17d0,1.17d0)/

510 DATA csize2/(0.0d0,0.0d0), (0.0d0,0.0d0),

511 + (0.0d0,0.0d0), (0.0d0,0.0d0), (0.0d0,0.0d0),

512 + (0.0d0,0.0d0), (0.0d0,0.0d0), (1.54d0,1.54d0),

513 + (1.54d0,1.54d0), (1.54d0,1.54d0),

514 + (1.54d0,1.54d0), (1.54d0,1.54d0),

515 + (1.54d0,1.54d0), (1.54d0,1.54d0)/

535 cdot(1) =

zdotc(n,cx,incx,cy,incy)

536 CALL ctest(1,cdot,ct6(kn,ki),csize1(kn),sfac)

537 ELSE IF (icase.EQ.2)

THEN 539 cdot(1) =

zdotu(n,cx,incx,cy,incy)

540 CALL ctest(1,cdot,ct7(kn,ki),csize1(kn),sfac)

541 ELSE IF (icase.EQ.3)

THEN 543 CALL zaxpy(n,ca,cx,incx,cy,incy)

544 CALL ctest(leny,cy,ct8(1,kn,ki),csize2(1,ksize),sfac)

545 ELSE IF (icase.EQ.4)

THEN 547 CALL zcopy(n,cx,incx,cy,incy)

548 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)

549 ELSE IF (icase.EQ.5)

THEN 551 CALL zswap(n,cx,incx,cy,incy)

552 CALL ctest(lenx,cx,ct10x(1,kn,ki),csize3,1.0d0)

553 CALL ctest(leny,cy,ct10y(1,kn,ki),csize3,1.0d0)

555 WRITE (nout,*)

' Shouldn''t be here in CHECK2' subroutine zcopy(N, ZX, INCX, ZY, INCY)

ZCOPY

subroutine zswap(N, ZX, INCX, ZY, INCY)

ZSWAP

complex *16 function zdotu(N, ZX, INCX, ZY, INCY)

ZDOTU

complex *16 function zdotc(N, ZX, INCX, ZY, INCY)

ZDOTC

subroutine ctest(LEN, CCOMP, CTRUE, CSIZE, SFAC)

subroutine zaxpy(N, ZA, ZX, INCX, ZY, INCY)

ZAXPY