TABLE OF CONTENTS
ABINIT/m_linalg_interfaces [ Modules ]
NAME
m_linalg_interfaces
FUNCTION
Interfaces for the BLAS and LAPACK linear algebra routines.
COPYRIGHT
Copyright (C) 2011-2018 ABINIT group (Yann Pouillon) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt . WARNING These routines are used both by real and complex arrays and are commented (no interface): - ztrsm, zgemm, zgemv, zhemm, zherk, zher, zgerc - zcopy, zaxpy, zdscal, zscal, zdotc - zhpev, zgsev, zheev, zgetrf, zpotrf, zhegv, zhpevx - zhpgv, zhegst
SOURCE
25 #if defined HAVE_CONFIG_H 26 #include "config.h" 27 #endif 28 29 module m_linalg_interfaces 30 31 implicit none 32 33 interface 34 subroutine caxpy(n,ca,cx,incx,cy,incy) 35 implicit none 36 integer :: incx 37 integer :: incy 38 integer :: n 39 complex :: ca 40 complex :: cx(*) 41 complex :: cy(*) 42 end subroutine caxpy 43 end interface 44 45 interface 46 subroutine ccopy(n,cx,incx,cy,incy) 47 implicit none 48 integer, intent(in) :: incx, incy, n !vz_i 49 complex, intent(in) :: cx(*) !vz_i 50 complex, intent(inout) :: cy(*) !vz_i 51 end subroutine ccopy 52 end interface 53 54 interface 55 complex function cdotc(n,cx,incx,cy,incy) 56 implicit none 57 integer, intent(in) :: incx, incy, n !vz_i 58 complex, intent(in) :: cx(*), cy(*) !vz_i 59 end function cdotc 60 end interface 61 62 interface 63 complex function cdotu(n,cx,incx,cy,incy) 64 implicit none 65 integer, intent(in) :: incx, incy, n !vz_i 66 complex, intent(in) :: cx(*), cy(*) !vz_i 67 end function cdotu 68 end interface 69 70 interface 71 subroutine cgbmv ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX,& 72 BETA, Y, INCY ) 73 implicit none 74 integer :: INCX 75 integer :: INCY 76 integer :: KL 77 integer :: KU 78 integer :: LDA 79 integer :: M 80 integer :: N 81 complex :: A( LDA, * ) 82 complex :: ALPHA 83 complex :: BETA 84 character*1 :: TRANS 85 complex :: X( * ) 86 complex :: Y( * ) 87 end subroutine cgbmv 88 end interface 89 90 interface 91 subroutine cgemm ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB,& 92 BETA, C, LDC ) 93 implicit none 94 integer,intent(in) :: K,lda,ldb,ldc,m,n !vz_i 95 complex,intent(in) :: A( LDA, * ) !vz_i 96 complex,intent(in) :: ALPHA !vz_i 97 complex,intent(in) :: B( LDB, * ) !vz_i 98 complex,intent(in) :: BETA !vz_i 99 complex,intent(inout) :: C( LDC, * ) !vz_i 100 character*1,intent(in) :: TRANSA !vz_i 101 character*1,intent(in) :: TRANSB !vz_i 102 end subroutine cgemm 103 end interface 104 105 interface 106 subroutine cgemv ( TRANS, M, N, ALPHA, A, LDA, X, INCX,& 107 BETA, Y, INCY ) 108 implicit none 109 integer, intent(in) :: INCX, incy, lda, m, n !vz_i 110 complex, intent(in) :: A( LDA, * ) !vz_i 111 complex, intent(in) :: ALPHA, beta !vz_i 112 character*1, intent(in) :: TRANS !vz_i 113 complex, intent(in) :: X( * ) !vz_i 114 complex, intent(inout) :: Y( * ) !vz_i 115 end subroutine cgemv 116 end interface 117 118 interface 119 subroutine cgerc ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 120 implicit none 121 integer, intent(in) :: INCX, incy, lda, m, n !vz_i 122 complex, intent(inout) :: A( LDA, * ) !vz_i 123 complex, intent(in) :: ALPHA !vz_i 124 complex, intent(in) :: X( * ), Y( * ) !vz_i 125 end subroutine cgerc 126 end interface 127 128 interface 129 subroutine cgeru ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 130 implicit none 131 integer :: INCX 132 integer :: INCY 133 integer :: LDA 134 integer :: M 135 integer :: N 136 complex :: A( LDA, * ) 137 complex :: ALPHA 138 complex :: X( * ) 139 complex :: Y( * ) 140 end subroutine cgeru 141 end interface 142 143 interface 144 subroutine chbmv ( UPLO, N, K, ALPHA, A, LDA, X, INCX,& 145 BETA, Y, INCY ) 146 implicit none 147 integer :: INCX 148 integer :: INCY 149 integer :: K 150 integer :: LDA 151 integer :: N 152 complex :: A( LDA, * ) 153 complex :: ALPHA 154 complex :: BETA 155 character*1 :: UPLO 156 complex :: X( * ) 157 complex :: Y( * ) 158 end subroutine chbmv 159 end interface 160 161 interface 162 subroutine chemm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB,& 163 BETA, C, LDC ) 164 implicit none 165 integer :: LDA 166 integer :: LDB 167 integer :: LDC 168 integer :: M 169 integer :: N 170 complex :: A( LDA, * ) 171 complex :: ALPHA 172 complex :: B( LDB, * ) 173 complex :: BETA 174 complex :: C( LDC, * ) 175 character*1 :: SIDE 176 character*1 :: UPLO 177 end subroutine chemm 178 end interface 179 180 interface 181 subroutine chemv ( UPLO, N, ALPHA, A, LDA, X, INCX,& 182 BETA, Y, INCY ) 183 implicit none 184 integer :: INCX 185 integer :: INCY 186 integer :: LDA 187 integer :: N 188 complex :: A( LDA, * ) 189 complex :: ALPHA 190 complex :: BETA 191 character*1 :: UPLO 192 complex :: X( * ) 193 complex :: Y( * ) 194 end subroutine chemv 195 end interface 196 197 interface 198 subroutine cher ( UPLO, N, ALPHA, X, INCX, A, LDA ) 199 implicit none 200 integer :: INCX 201 integer :: LDA 202 integer :: N 203 complex :: A( LDA, * ) 204 real :: ALPHA 205 character*1 :: UPLO 206 complex :: X( * ) 207 end subroutine cher 208 end interface 209 210 interface 211 subroutine cher2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 212 implicit none 213 integer :: INCX 214 integer :: INCY 215 integer :: LDA 216 integer :: N 217 complex :: A( LDA, * ) 218 complex :: ALPHA 219 character*1 :: UPLO 220 complex :: X( * ) 221 complex :: Y( * ) 222 end subroutine cher2 223 end interface 224 225 interface 226 subroutine cher2k( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB,& 227 BETA, C, LDC ) 228 implicit none 229 integer :: K 230 integer :: LDA 231 integer :: LDB 232 integer :: LDC 233 integer :: N 234 complex :: A( LDA, * ) 235 complex :: ALPHA 236 complex :: B( LDB, * ) 237 real :: BETA 238 complex :: C( LDC, * ) 239 character*1 :: TRANS 240 character*1 :: UPLO 241 end subroutine cher2k 242 end interface 243 244 interface 245 subroutine cherk ( UPLO, TRANS, N, K, ALPHA, A, LDA,& 246 BETA, C, LDC ) 247 implicit none 248 integer, intent(in) :: K,lda,ldc,n !vz_i 249 complex,intent(in) :: A( LDA, * ) !vz_i 250 real,intent(in) :: ALPHA !vz_i 251 real,intent(in) :: BETA !vz_i 252 complex,intent(inout) :: C( LDC, * ) !vz_i 253 character*1,intent(in) :: TRANS !vz_i 254 character*1,intent(in) :: UPLO !vz_i 255 end subroutine cherk 256 end interface 257 258 interface 259 subroutine chpmv ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY ) 260 implicit none 261 integer :: INCX 262 integer :: INCY 263 integer :: N 264 complex :: ALPHA 265 complex :: AP( * ) 266 complex :: BETA 267 character*1 :: UPLO 268 complex :: X( * ) 269 complex :: Y( * ) 270 end subroutine chpmv 271 end interface 272 273 interface 274 subroutine chpr ( UPLO, N, ALPHA, X, INCX, AP ) 275 implicit none 276 integer :: INCX 277 integer :: N 278 real :: ALPHA 279 complex :: AP( * ) 280 character*1 :: UPLO 281 complex :: X( * ) 282 end subroutine chpr 283 end interface 284 285 interface 286 subroutine chpr2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP ) 287 implicit none 288 integer :: INCX 289 integer :: INCY 290 integer :: N 291 complex :: ALPHA 292 complex :: AP( * ) 293 character*1 :: UPLO 294 complex :: X( * ) 295 complex :: Y( * ) 296 end subroutine chpr2 297 end interface 298 299 interface 300 subroutine crotg(ca,cb,c,s) 301 implicit none 302 real :: c 303 complex :: ca 304 complex :: cb 305 complex :: s 306 end subroutine crotg 307 end interface 308 309 interface 310 subroutine cscal(n,ca,cx,incx) 311 implicit none 312 integer :: incx 313 integer :: n 314 complex :: ca 315 complex :: cx(*) 316 end subroutine cscal 317 end interface 318 319 interface 320 subroutine csrot (n,cx,incx,cy,incy,c,s) 321 implicit none 322 integer :: incx 323 integer :: incy 324 integer :: n 325 real :: c 326 real :: s 327 complex :: cx(1) 328 complex :: cy(1) 329 end subroutine csrot 330 end interface 331 332 interface 333 subroutine csscal(n,sa,cx,incx) 334 implicit none 335 integer :: incx 336 integer :: n 337 real :: sa 338 complex :: cx(*) 339 end subroutine csscal 340 end interface 341 342 interface 343 subroutine cswap (n,cx,incx,cy,incy) 344 implicit none 345 integer :: incx 346 integer :: incy 347 integer :: n 348 complex :: cx(*) 349 complex :: cy(*) 350 end subroutine cswap 351 end interface 352 353 interface 354 subroutine csymm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB,& 355 BETA, C, LDC ) 356 implicit none 357 integer :: LDA 358 integer :: LDB 359 integer :: LDC 360 integer :: M 361 integer :: N 362 complex :: A( LDA, * ) 363 complex :: ALPHA 364 complex :: B( LDB, * ) 365 complex :: BETA 366 complex :: C( LDC, * ) 367 character*1 :: SIDE 368 character*1 :: UPLO 369 end subroutine csymm 370 end interface 371 372 interface 373 subroutine csyr2k( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB,& 374 BETA, C, LDC ) 375 implicit none 376 integer :: K 377 integer :: LDA 378 integer :: LDB 379 integer :: LDC 380 integer :: N 381 complex :: A( LDA, * ) 382 complex :: ALPHA 383 complex :: B( LDB, * ) 384 complex :: BETA 385 complex :: C( LDC, * ) 386 character*1 :: TRANS 387 character*1 :: UPLO 388 end subroutine csyr2k 389 end interface 390 391 interface 392 subroutine csyrk ( UPLO, TRANS, N, K, ALPHA, A, LDA,& 393 BETA, C, LDC ) 394 implicit none 395 integer :: K 396 integer :: LDA 397 integer :: LDC 398 integer :: N 399 complex :: A( LDA, * ) 400 complex :: ALPHA 401 complex :: BETA 402 complex :: C( LDC, * ) 403 character*1 :: TRANS 404 character*1 :: UPLO 405 end subroutine csyrk 406 end interface 407 408 interface 409 subroutine ctbmv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 410 implicit none 411 integer :: INCX 412 integer :: K 413 integer :: LDA 414 integer :: N 415 complex :: A( LDA, * ) 416 character*1 :: DIAG 417 character*1 :: TRANS 418 character*1 :: UPLO 419 complex :: X( * ) 420 end subroutine ctbmv 421 end interface 422 423 interface 424 subroutine ctbsv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 425 implicit none 426 integer :: INCX 427 integer :: K 428 integer :: LDA 429 integer :: N 430 complex :: A( LDA, * ) 431 character*1 :: DIAG 432 character*1 :: TRANS 433 character*1 :: UPLO 434 complex :: X( * ) 435 end subroutine ctbsv 436 end interface 437 438 interface 439 subroutine ctpmv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 440 implicit none 441 integer :: INCX 442 integer :: N 443 complex :: AP( * ) 444 character*1 :: DIAG 445 character*1 :: TRANS 446 character*1 :: UPLO 447 complex :: X( * ) 448 end subroutine ctpmv 449 end interface 450 451 interface 452 subroutine ctpsv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 453 implicit none 454 integer :: INCX 455 integer :: N 456 complex :: AP( * ) 457 character*1 :: DIAG 458 character*1 :: TRANS 459 character*1 :: UPLO 460 complex :: X( * ) 461 end subroutine ctpsv 462 end interface 463 464 interface 465 subroutine ctrmm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 466 B, LDB ) 467 implicit none 468 integer :: LDA 469 integer :: LDB 470 integer :: M 471 integer :: N 472 complex :: A( LDA, * ) 473 complex :: ALPHA 474 complex :: B( LDB, * ) 475 character*1 :: DIAG 476 character*1 :: SIDE 477 character*1 :: TRANSA 478 character*1 :: UPLO 479 end subroutine ctrmm 480 end interface 481 482 interface 483 subroutine ctrmv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 484 implicit none 485 integer :: INCX 486 integer :: LDA 487 integer :: N 488 complex :: A( LDA, * ) 489 character*1 :: DIAG 490 character*1 :: TRANS 491 character*1 :: UPLO 492 complex :: X( * ) 493 end subroutine ctrmv 494 end interface 495 496 interface 497 subroutine ctrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 498 B, LDB ) 499 implicit none 500 integer :: LDA 501 integer :: LDB 502 integer :: M 503 integer :: N 504 complex :: A( LDA, * ) 505 complex :: ALPHA 506 complex :: B( LDB, * ) 507 character*1 :: DIAG 508 character*1 :: SIDE 509 character*1 :: TRANSA 510 character*1 :: UPLO 511 end subroutine ctrsm 512 end interface 513 514 interface 515 subroutine ctrsv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 516 implicit none 517 integer :: INCX 518 integer :: LDA 519 integer :: N 520 complex :: A( LDA, * ) 521 character*1 :: DIAG 522 character*1 :: TRANS 523 character*1 :: UPLO 524 complex :: X( * ) 525 end subroutine ctrsv 526 end interface 527 528 interface 529 double precision function dasum(n,dx,incx) 530 implicit none 531 integer :: incx 532 integer :: n 533 double precision :: dx(*) 534 end function dasum 535 end interface 536 537 interface 538 subroutine daxpy(n,da,dx,incx,dy,incy) 539 implicit none 540 integer :: incx 541 integer :: incy 542 integer :: n 543 double precision :: da 544 double precision :: dx(*) 545 double precision :: dy(*) 546 end subroutine daxpy 547 end interface 548 549 interface 550 double precision function dcabs1(z) 551 implicit none 552 double complex :: z 553 end function dcabs1 554 end interface 555 556 !interface 557 ! subroutine dcopy(n,dx,incx,dy,incy) 558 ! implicit none 559 ! integer :: incx 560 ! integer :: incy 561 ! integer :: n 562 ! double precision :: dx(*) 563 ! double precision :: dy(*) 564 ! end subroutine dcopy 565 !end interface 566 567 interface 568 double precision function ddot(n,dx,incx,dy,incy) 569 implicit none 570 integer,intent(in) :: incx 571 integer,intent(in) :: incy 572 integer,intent(in) :: n 573 double precision,intent(in) :: dx(*) 574 double precision,intent(in) :: dy(*) 575 end function ddot 576 end interface 577 578 interface 579 subroutine dgbmv ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX,& 580 BETA, Y, INCY ) 581 implicit none 582 integer :: INCX 583 integer :: INCY 584 integer :: KL 585 integer :: KU 586 integer :: LDA 587 integer :: M 588 integer :: N 589 double precision :: A( LDA, * ) 590 double precision :: ALPHA 591 double precision :: BETA 592 character*1 :: TRANS 593 double precision :: X( * ) 594 double precision :: Y( * ) 595 end subroutine dgbmv 596 end interface 597 598 interface 599 subroutine dgemm ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB,& 600 BETA, C, LDC ) 601 implicit none 602 integer,intent(in) :: K,lda,ldb,ldc,m,n !vz_i 603 double precision, intent(in) :: A( LDA, * ) !vz_i 604 double precision,intent(in) :: ALPHA !vz_i 605 double precision,intent(in) :: B( LDB, * ) !vz_i 606 double precision,intent(in) :: BETA !vz_i 607 double precision,intent(inout) :: C( LDC, * ) !vz_i 608 character*1,intent(in) :: TRANSA !vz_i 609 character*1,intent(in) :: TRANSB !vz_i 610 end subroutine dgemm 611 end interface 612 613 interface 614 subroutine dgemv ( TRANS, M, N, ALPHA, A, LDA, X, INCX,& 615 BETA, Y, INCY ) 616 implicit none 617 integer, intent(in) :: INCX,incy,lda,m,n !vz_i 618 double precision, intent(in) :: A( LDA, * ) !vz_i 619 double precision, intent(in) :: ALPHA !vz_i 620 double precision, intent(in) :: BETA !vz_i 621 character*1, intent(in) :: TRANS !vz_i 622 double precision, intent(in) :: X( * ) !vz_i 623 double precision, intent(inout) :: Y( * ) !vz_i 624 end subroutine dgemv 625 end interface 626 627 interface 628 subroutine dger ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 629 implicit none 630 integer :: INCX 631 integer :: INCY 632 integer :: LDA 633 integer :: M 634 integer :: N 635 double precision :: A( LDA, * ) 636 double precision :: ALPHA 637 double precision :: X( * ) 638 double precision :: Y( * ) 639 end subroutine dger 640 end interface 641 642 interface 643 double precision function dnrm2 ( N, X, INCX ) 644 implicit none 645 integer, intent(in) :: INCX, n !vz_i 646 double precision,intent(in) :: X( * ) !vz_i 647 end function dnrm2 648 end interface 649 650 interface 651 subroutine drot (n,dx,incx,dy,incy,c,s) 652 implicit none 653 integer :: incx 654 integer :: incy 655 integer :: n 656 double precision :: c 657 double precision :: s 658 double precision :: dx(*) 659 double precision :: dy(*) 660 end subroutine drot 661 end interface 662 663 interface 664 subroutine drotg(da,db,c,s) 665 implicit none 666 double precision :: c 667 double precision :: da 668 double precision :: db 669 double precision :: s 670 end subroutine drotg 671 end interface 672 673 interface 674 subroutine drotm (N,DX,INCX,DY,INCY,DPARAM) 675 implicit none 676 integer :: INCX 677 integer :: INCY 678 integer :: N 679 double precision :: DPARAM(5) 680 double precision :: DX(1) 681 double precision :: DY(1) 682 end subroutine drotm 683 end interface 684 685 interface 686 subroutine drotmg (DD1,DD2,DX1,DY1,DPARAM) 687 implicit none 688 double precision :: DD1 689 double precision :: DD2 690 double precision :: DPARAM(5) 691 double precision :: DX1 692 double precision :: DY1 693 end subroutine drotmg 694 end interface 695 696 interface 697 subroutine dsbmv ( UPLO, N, K, ALPHA, A, LDA, X, INCX,& 698 BETA, Y, INCY ) 699 implicit none 700 integer :: INCX 701 integer :: INCY 702 integer :: K 703 integer :: LDA 704 integer :: N 705 double precision :: A( LDA, * ) 706 double precision :: ALPHA 707 double precision :: BETA 708 character*1 :: UPLO 709 double precision :: X( * ) 710 double precision :: Y( * ) 711 end subroutine dsbmv 712 end interface 713 714 interface 715 subroutine dscal(n,da,dx,incx) 716 implicit none 717 integer :: incx 718 integer :: n 719 double precision :: da 720 double precision :: dx(*) 721 end subroutine dscal 722 end interface 723 724 interface 725 double precision function dsdot (N, SX, INCX, SY, INCY) 726 implicit none 727 integer :: INCX 728 integer :: INCY 729 integer :: N 730 real :: SX(*) 731 real :: SY(*) 732 end function dsdot 733 end interface 734 735 interface 736 subroutine dswap (n,dx,incx,dy,incy) 737 implicit none 738 integer :: incx 739 integer :: incy 740 integer :: n 741 double precision :: dx(*) 742 double precision :: dy(*) 743 end subroutine dswap 744 end interface 745 746 interface 747 subroutine dsymm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB,& 748 BETA, C, LDC ) 749 implicit none 750 integer :: LDA 751 integer :: LDB 752 integer :: LDC 753 integer :: M 754 integer :: N 755 double precision :: A( LDA, * ) 756 double precision :: ALPHA 757 double precision :: B( LDB, * ) 758 double precision :: BETA 759 double precision :: C( LDC, * ) 760 character*1 :: SIDE 761 character*1 :: UPLO 762 end subroutine dsymm 763 end interface 764 765 interface 766 subroutine dsymv ( UPLO, N, ALPHA, A, LDA, X, INCX,& 767 BETA, Y, INCY ) 768 implicit none 769 integer :: INCX 770 integer :: INCY 771 integer :: LDA 772 integer :: N 773 double precision :: A( LDA, * ) 774 double precision :: ALPHA 775 double precision :: BETA 776 character*1 :: UPLO 777 double precision :: X( * ) 778 double precision :: Y( * ) 779 end subroutine dsymv 780 end interface 781 782 interface 783 subroutine dtrmm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 784 B, LDB ) 785 implicit none 786 integer :: LDA 787 integer :: LDB 788 integer :: M 789 integer :: N 790 double precision :: A( LDA, * ) 791 double precision :: ALPHA 792 double precision :: B( LDB, * ) 793 character*1 :: DIAG 794 character*1 :: SIDE 795 character*1 :: TRANSA 796 character*1 :: UPLO 797 end subroutine dtrmm 798 end interface 799 800 interface 801 subroutine dtrmv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 802 implicit none 803 integer :: INCX 804 integer :: LDA 805 integer :: N 806 double precision :: A( LDA, * ) 807 character*1 :: DIAG 808 character*1 :: TRANS 809 character*1 :: UPLO 810 double precision :: X( * ) 811 end subroutine dtrmv 812 end interface 813 814 interface 815 subroutine dtrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 816 B, LDB ) 817 implicit none 818 integer :: LDA 819 integer :: LDB 820 integer :: M 821 integer :: N 822 double precision :: A( LDA, * ) 823 double precision :: ALPHA 824 double precision :: B( LDB, * ) 825 character*1 :: DIAG 826 character*1 :: SIDE 827 character*1 :: TRANSA 828 character*1 :: UPLO 829 end subroutine dtrsm 830 end interface 831 832 interface 833 subroutine dtrsv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 834 implicit none 835 integer :: INCX 836 integer :: LDA 837 integer :: N 838 double precision :: A( LDA, * ) 839 character*1 :: DIAG 840 character*1 :: TRANS 841 character*1 :: UPLO 842 double precision :: X( * ) 843 end subroutine dtrsv 844 end interface 845 846 interface 847 double precision function dzasum(n,zx,incx) 848 implicit none 849 integer :: incx 850 integer :: n 851 double complex :: zx(*) 852 end function dzasum 853 end interface 854 855 interface 856 double precision function dznrm2( N, X, INCX ) 857 implicit none 858 integer, intent(in) :: INCX, n !vz_i 859 complex*16,intent(in) :: X( * ) !vz_i 860 end function dznrm2 861 end interface 862 863 interface 864 integer function icamax(n,cx,incx) 865 implicit none 866 integer :: incx 867 integer :: n 868 complex :: cx(*) 869 end function icamax 870 end interface 871 872 interface 873 integer function idamax(n,dx,incx) 874 implicit none 875 integer :: incx 876 integer :: n 877 double precision :: dx(*) 878 end function idamax 879 end interface 880 881 interface 882 integer function isamax(n,sx,incx) 883 implicit none 884 integer :: incx 885 integer :: n 886 real :: sx(*) 887 end function isamax 888 end interface 889 890 interface 891 integer function izamax(n,zx,incx) 892 implicit none 893 integer :: incx 894 integer :: n 895 double complex :: zx(*) 896 end function izamax 897 end interface 898 899 interface 900 real function sasum(n,sx,incx) 901 implicit none 902 integer :: incx 903 integer :: n 904 real :: sx(*) 905 end function sasum 906 end interface 907 908 interface 909 subroutine saxpy(n,sa,sx,incx,sy,incy) 910 implicit none 911 integer :: incx 912 integer :: incy 913 integer :: n 914 real :: sa 915 real :: sx(*) 916 real :: sy(*) 917 end subroutine saxpy 918 end interface 919 920 interface 921 real function scasum(n,cx,incx) 922 implicit none 923 integer :: incx 924 integer :: n 925 complex :: cx(*) 926 end function scasum 927 end interface 928 929 interface 930 real function scnrm2( N, X, INCX ) 931 implicit none 932 integer, intent(in) :: INCX, n !vz_i 933 complex, intent(in) :: X( * ) !vz_i 934 end function scnrm2 935 end interface 936 937 interface 938 subroutine scopy(n,sx,incx,sy,incy) 939 implicit none 940 integer, intent(in) :: incx,incy,n !vz_i 941 real, intent(in) :: sx(*) !vz_i 942 real, intent(inout) :: sy(*) !vz_i 943 end subroutine scopy 944 end interface 945 946 interface 947 real function sdot(n,sx,incx,sy,incy) 948 implicit none 949 integer :: incx 950 integer :: incy 951 integer :: n 952 real :: sx(*) 953 real :: sy(*) 954 end function sdot 955 end interface 956 957 interface 958 real function sdsdot (N, SB, SX, INCX, SY, INCY) 959 implicit none 960 integer :: INCX 961 integer :: INCY 962 integer :: N 963 real :: SB 964 real :: SX(*) 965 real :: SY(*) 966 end function sdsdot 967 end interface 968 969 interface 970 subroutine sgbmv ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX,& 971 BETA, Y, INCY ) 972 implicit none 973 integer :: INCX 974 integer :: INCY 975 integer :: KL 976 integer :: KU 977 integer :: LDA 978 integer :: M 979 integer :: N 980 real :: A( LDA, * ) 981 real :: ALPHA 982 real :: BETA 983 character*1 :: TRANS 984 real :: X( * ) 985 real :: Y( * ) 986 end subroutine sgbmv 987 end interface 988 989 interface 990 subroutine sgemm ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB,& 991 BETA, C, LDC ) 992 implicit none 993 integer, intent(in) :: K,lda,ldb,ldc,m,n !vz_i 994 real,intent(in) :: A( LDA, * ) !vz_i 995 real,intent(in) :: ALPHA !vz_i 996 real,intent(in) :: B( LDB, * ) !vz_i 997 real,intent(in) :: BETA !vz_i 998 real,intent(inout) :: C( LDC, * ) !vz_i 999 character*1,intent(in) :: TRANSA !vz_i 1000 character*1,intent(in) :: TRANSB !vz_i 1001 end subroutine sgemm 1002 end interface 1003 1004 interface 1005 subroutine sgemv ( TRANS, M, N, ALPHA, A, LDA, X, INCX,& 1006 BETA, Y, INCY ) 1007 implicit none 1008 integer,intent(in) :: INCX, incy, lda,m,n !vz_i 1009 real,intent(in) :: A( LDA, * ) !vz_i 1010 real,intent(in) :: ALPHA !vz_i 1011 real,intent(in) :: BETA !vz_i 1012 character*1,intent(in) :: TRANS !vz_i 1013 real,intent(in) :: X( * ) !vz_i 1014 real,intent(inout) :: Y( * ) !vz_i 1015 end subroutine sgemv 1016 end interface 1017 1018 interface 1019 subroutine sger ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 1020 implicit none 1021 integer :: INCX 1022 integer :: INCY 1023 integer :: LDA 1024 integer :: M 1025 integer :: N 1026 real :: A( LDA, * ) 1027 real :: ALPHA 1028 real :: X( * ) 1029 real :: Y( * ) 1030 end subroutine sger 1031 end interface 1032 1033 interface 1034 real function snrm2 ( N, X, INCX ) 1035 implicit none 1036 integer,intent(in) :: INCX,n !vz_i 1037 real,intent(in) :: X( * ) !vz_i 1038 end function snrm2 1039 end interface 1040 1041 interface 1042 subroutine srot (n,sx,incx,sy,incy,c,s) 1043 implicit none 1044 integer :: incx 1045 integer :: incy 1046 integer :: n 1047 real :: c 1048 real :: s 1049 real :: sx(*) 1050 real :: sy(*) 1051 end subroutine srot 1052 end interface 1053 1054 interface 1055 subroutine srotg(sa,sb,c,s) 1056 implicit none 1057 real :: c 1058 real :: s 1059 real :: sa 1060 real :: sb 1061 end subroutine srotg 1062 end interface 1063 1064 interface 1065 subroutine srotm (N,SX,INCX,SY,INCY,SPARAM) 1066 implicit none 1067 integer :: INCX 1068 integer :: INCY 1069 integer :: N 1070 real :: SPARAM(5) 1071 real :: SX(1) 1072 real :: SY(1) 1073 end subroutine srotm 1074 end interface 1075 1076 interface 1077 subroutine srotmg (SD1,SD2,SX1,SY1,SPARAM) 1078 implicit none 1079 real :: SD1 1080 real :: SD2 1081 real :: SPARAM(5) 1082 real :: SX1 1083 real :: SY1 1084 end subroutine srotmg 1085 end interface 1086 1087 interface 1088 subroutine ssbmv ( UPLO, N, K, ALPHA, A, LDA, X, INCX,& 1089 BETA, Y, INCY ) 1090 implicit none 1091 integer :: INCX 1092 integer :: INCY 1093 integer :: K 1094 integer :: LDA 1095 integer :: N 1096 real :: A( LDA, * ) 1097 real :: ALPHA 1098 real :: BETA 1099 character*1 :: UPLO 1100 real :: X( * ) 1101 real :: Y( * ) 1102 end subroutine ssbmv 1103 end interface 1104 1105 interface 1106 subroutine sscal(n,sa,sx,incx) 1107 implicit none 1108 integer :: incx 1109 integer :: n 1110 real :: sa 1111 real :: sx(*) 1112 end subroutine sscal 1113 end interface 1114 1115 interface 1116 subroutine sspmv ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY ) 1117 implicit none 1118 integer :: INCX 1119 integer :: INCY 1120 integer :: N 1121 real :: ALPHA 1122 real :: AP( * ) 1123 real :: BETA 1124 character*1 :: UPLO 1125 real :: X( * ) 1126 real :: Y( * ) 1127 end subroutine sspmv 1128 end interface 1129 1130 interface 1131 subroutine sspr ( UPLO, N, ALPHA, X, INCX, AP ) 1132 implicit none 1133 integer :: INCX 1134 integer :: N 1135 real :: ALPHA 1136 real :: AP( * ) 1137 character*1 :: UPLO 1138 real :: X( * ) 1139 end subroutine sspr 1140 end interface 1141 1142 interface 1143 subroutine sspr2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP ) 1144 implicit none 1145 integer :: INCX 1146 integer :: INCY 1147 integer :: N 1148 real :: ALPHA 1149 real :: AP( * ) 1150 character*1 :: UPLO 1151 real :: X( * ) 1152 real :: Y( * ) 1153 end subroutine sspr2 1154 end interface 1155 1156 interface 1157 subroutine sswap (n,sx,incx,sy,incy) 1158 implicit none 1159 integer :: incx 1160 integer :: incy 1161 integer :: n 1162 real :: sx(*) 1163 real :: sy(*) 1164 end subroutine sswap 1165 end interface 1166 1167 interface 1168 subroutine ssymm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB,& 1169 BETA, C, LDC ) 1170 implicit none 1171 integer :: LDA 1172 integer :: LDB 1173 integer :: LDC 1174 integer :: M 1175 integer :: N 1176 real :: A( LDA, * ) 1177 real :: ALPHA 1178 real :: B( LDB, * ) 1179 real :: BETA 1180 real :: C( LDC, * ) 1181 character*1 :: SIDE 1182 character*1 :: UPLO 1183 end subroutine ssymm 1184 end interface 1185 1186 interface 1187 subroutine ssymv ( UPLO, N, ALPHA, A, LDA, X, INCX,& 1188 BETA, Y, INCY ) 1189 implicit none 1190 integer :: INCX 1191 integer :: INCY 1192 integer :: LDA 1193 integer :: N 1194 real :: A( LDA, * ) 1195 real :: ALPHA 1196 real :: BETA 1197 character*1 :: UPLO 1198 real :: X( * ) 1199 real :: Y( * ) 1200 end subroutine ssymv 1201 end interface 1202 1203 interface 1204 subroutine ssyr ( UPLO, N, ALPHA, X, INCX, A, LDA ) 1205 implicit none 1206 integer :: INCX 1207 integer :: LDA 1208 integer :: N 1209 real :: A( LDA, * ) 1210 real :: ALPHA 1211 character*1 :: UPLO 1212 real :: X( * ) 1213 end subroutine ssyr 1214 end interface 1215 1216 interface 1217 subroutine ssyr2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 1218 implicit none 1219 integer :: INCX 1220 integer :: INCY 1221 integer :: LDA 1222 integer :: N 1223 real :: A( LDA, * ) 1224 real :: ALPHA 1225 character*1 :: UPLO 1226 real :: X( * ) 1227 real :: Y( * ) 1228 end subroutine ssyr2 1229 end interface 1230 1231 interface 1232 subroutine ssyr2k( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB,& 1233 BETA, C, LDC ) 1234 implicit none 1235 integer :: K 1236 integer :: LDA 1237 integer :: LDB 1238 integer :: LDC 1239 integer :: N 1240 real :: A( LDA, * ) 1241 real :: ALPHA 1242 real :: B( LDB, * ) 1243 real :: BETA 1244 real :: C( LDC, * ) 1245 character*1 :: TRANS 1246 character*1 :: UPLO 1247 end subroutine ssyr2k 1248 end interface 1249 1250 interface 1251 subroutine ssyrk ( UPLO, TRANS, N, K, ALPHA, A, LDA,& 1252 BETA, C, LDC ) 1253 implicit none 1254 integer :: K 1255 integer :: LDA 1256 integer :: LDC 1257 integer :: N 1258 real :: A( LDA, * ) 1259 real :: ALPHA 1260 real :: BETA 1261 real :: C( LDC, * ) 1262 character*1 :: TRANS 1263 character*1 :: UPLO 1264 end subroutine ssyrk 1265 end interface 1266 1267 interface 1268 subroutine stbmv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 1269 implicit none 1270 integer :: INCX 1271 integer :: K 1272 integer :: LDA 1273 integer :: N 1274 real :: A( LDA, * ) 1275 character*1 :: DIAG 1276 character*1 :: TRANS 1277 character*1 :: UPLO 1278 real :: X( * ) 1279 end subroutine stbmv 1280 end interface 1281 1282 interface 1283 subroutine stbsv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 1284 implicit none 1285 integer :: INCX 1286 integer :: K 1287 integer :: LDA 1288 integer :: N 1289 real :: A( LDA, * ) 1290 character*1 :: DIAG 1291 character*1 :: TRANS 1292 character*1 :: UPLO 1293 real :: X( * ) 1294 end subroutine stbsv 1295 end interface 1296 1297 interface 1298 subroutine stpmv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 1299 implicit none 1300 integer :: INCX 1301 integer :: N 1302 real :: AP( * ) 1303 character*1 :: DIAG 1304 character*1 :: TRANS 1305 character*1 :: UPLO 1306 real :: X( * ) 1307 end subroutine stpmv 1308 end interface 1309 1310 interface 1311 subroutine stpsv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 1312 implicit none 1313 integer :: INCX 1314 integer :: N 1315 real :: AP( * ) 1316 character*1 :: DIAG 1317 character*1 :: TRANS 1318 character*1 :: UPLO 1319 real :: X( * ) 1320 end subroutine stpsv 1321 end interface 1322 1323 interface 1324 subroutine strmm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 1325 B, LDB ) 1326 implicit none 1327 integer :: LDA 1328 integer :: LDB 1329 integer :: M 1330 integer :: N 1331 real :: A( LDA, * ) 1332 real :: ALPHA 1333 real :: B( LDB, * ) 1334 character*1 :: DIAG 1335 character*1 :: SIDE 1336 character*1 :: TRANSA 1337 character*1 :: UPLO 1338 end subroutine strmm 1339 end interface 1340 1341 interface 1342 subroutine strmv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 1343 implicit none 1344 integer :: INCX 1345 integer :: LDA 1346 integer :: N 1347 real :: A( LDA, * ) 1348 character*1 :: DIAG 1349 character*1 :: TRANS 1350 character*1 :: UPLO 1351 real :: X( * ) 1352 end subroutine strmv 1353 end interface 1354 1355 interface 1356 subroutine strsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 1357 B, LDB ) 1358 implicit none 1359 integer :: LDA 1360 integer :: LDB 1361 integer :: M 1362 integer :: N 1363 real :: A( LDA, * ) 1364 real :: ALPHA 1365 real :: B( LDB, * ) 1366 character*1 :: DIAG 1367 character*1 :: SIDE 1368 character*1 :: TRANSA 1369 character*1 :: UPLO 1370 end subroutine strsm 1371 end interface 1372 1373 interface 1374 subroutine strsv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 1375 implicit none 1376 integer :: INCX 1377 integer :: LDA 1378 integer :: N 1379 real :: A( LDA, * ) 1380 character*1 :: DIAG 1381 character*1 :: TRANS 1382 character*1 :: UPLO 1383 real :: X( * ) 1384 end subroutine strsv 1385 end interface 1386 1387 !interface 1388 ! subroutine zaxpy(n,za,zx,incx,zy,incy) 1389 ! implicit none 1390 ! integer :: incx 1391 ! integer :: incy 1392 ! integer :: n 1393 ! double complex :: za 1394 ! double complex :: zx(*) 1395 ! double complex :: zy(*) 1396 ! end subroutine zaxpy 1397 !end interface 1398 1399 !interface 1400 ! subroutine zcopy(n,zx,incx,zy,incy) 1401 ! implicit none 1402 ! integer :: incx 1403 ! integer :: incy 1404 ! integer :: n 1405 ! double complex :: zx(*) 1406 ! double complex :: zy(*) 1407 ! end subroutine zcopy 1408 !end interface 1409 1410 !interface 1411 ! double complex function zdotc(n,zx,incx,zy,incy) 1412 ! implicit none 1413 ! integer :: incx 1414 ! integer :: incy 1415 ! integer :: n 1416 ! double complex :: zx(*) 1417 ! double complex :: zy(*) 1418 ! end function zdotc 1419 !end interface 1420 1421 interface 1422 double complex function zdotu(n,zx,incx,zy,incy) 1423 implicit none 1424 integer, intent(in) :: incx, incy, n !vz_i 1425 double complex, intent(in) :: zx(*), zy(*) !vz_i 1426 end function zdotu 1427 end interface 1428 1429 interface 1430 subroutine zdrot( N, CX, INCX, CY, INCY, C, S ) 1431 implicit none 1432 integer :: INCX 1433 integer :: INCY 1434 integer :: N 1435 double precision :: C 1436 complex*16 :: CX( * ) 1437 complex*16 :: CY( * ) 1438 double precision :: S 1439 end subroutine zdrot 1440 end interface 1441 1442 !interface 1443 ! subroutine zdscal(n,da,zx,incx) 1444 ! implicit none 1445 ! integer :: incx 1446 ! integer :: n 1447 ! double precision :: da 1448 ! double complex :: zx(*) 1449 ! end subroutine zdscal 1450 !end interface 1451 1452 interface 1453 subroutine zgbmv ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX,& 1454 BETA, Y, INCY ) 1455 implicit none 1456 integer :: INCX 1457 integer :: INCY 1458 integer :: KL 1459 integer :: KU 1460 integer :: LDA 1461 integer :: M 1462 integer :: N 1463 complex*16 :: A( LDA, * ) 1464 complex*16 :: ALPHA 1465 complex*16 :: BETA 1466 character*1 :: TRANS 1467 complex*16 :: X( * ) 1468 complex*16 :: Y( * ) 1469 end subroutine zgbmv 1470 end interface 1471 1472 !interface 1473 ! subroutine zgemm ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) 1474 ! implicit none 1475 ! integer :: K 1476 ! integer :: LDA 1477 ! integer :: LDB 1478 ! integer :: LDC 1479 ! integer :: M 1480 ! integer :: N 1481 ! complex*16 :: A( LDA, * ) 1482 ! complex*16 :: ALPHA 1483 ! complex*16 :: B( LDB, * ) 1484 ! complex*16 :: BETA 1485 ! complex*16 :: C( LDC, * ) 1486 ! character*1 :: TRANSA 1487 ! character*1 :: TRANSB 1488 ! end subroutine zgemm 1489 !end interface 1490 1491 !interface 1492 ! subroutine zgemv ( TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) 1493 ! implicit none 1494 ! integer :: INCX 1495 ! integer :: INCY 1496 ! integer :: LDA 1497 ! integer :: M 1498 ! integer :: N 1499 ! complex*16 :: A( LDA, * ) 1500 ! complex*16 :: ALPHA 1501 ! complex*16 :: BETA 1502 ! character*1 :: TRANS 1503 ! complex*16 :: X( * ) 1504 ! complex*16 :: Y( * ) 1505 ! end subroutine zgemv 1506 !end interface 1507 1508 !interface 1509 ! subroutine zgerc ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 1510 ! implicit none 1511 ! integer :: INCX 1512 ! integer :: INCY 1513 ! integer :: LDA 1514 ! integer :: M 1515 ! integer :: N 1516 ! complex*16 :: A( LDA, * ) 1517 ! complex*16 :: ALPHA 1518 ! complex*16 :: X( * ) 1519 ! complex*16 :: Y( * ) 1520 ! end subroutine zgerc 1521 !end interface 1522 1523 interface 1524 subroutine zgeru ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 1525 implicit none 1526 integer :: INCX 1527 integer :: INCY 1528 integer :: LDA 1529 integer :: M 1530 integer :: N 1531 complex*16 :: A( LDA, * ) 1532 complex*16 :: ALPHA 1533 complex*16 :: X( * ) 1534 complex*16 :: Y( * ) 1535 end subroutine zgeru 1536 end interface 1537 1538 interface 1539 subroutine zhbmv ( UPLO, N, K, ALPHA, A, LDA, X, INCX,& 1540 BETA, Y, INCY ) 1541 implicit none 1542 integer :: INCX 1543 integer :: INCY 1544 integer :: K 1545 integer :: LDA 1546 integer :: N 1547 complex*16 :: A( LDA, * ) 1548 complex*16 :: ALPHA 1549 complex*16 :: BETA 1550 character*1 :: UPLO 1551 complex*16 :: X( * ) 1552 complex*16 :: Y( * ) 1553 end subroutine zhbmv 1554 end interface 1555 1556 !interface 1557 ! subroutine zhemm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) 1558 ! implicit none 1559 ! integer :: LDA 1560 ! integer :: LDB 1561 ! integer :: LDC 1562 ! integer :: M 1563 ! integer :: N 1564 ! complex*16 :: A( LDA, * ) 1565 ! complex*16 :: ALPHA 1566 ! complex*16 :: B( LDB, * ) 1567 ! complex*16 :: BETA 1568 ! complex*16 :: C( LDC, * ) 1569 ! character*1 :: SIDE 1570 ! character*1 :: UPLO 1571 ! end subroutine zhemm 1572 !end interface 1573 1574 interface 1575 subroutine zhemv ( UPLO, N, ALPHA, A, LDA, X, INCX,& 1576 BETA, Y, INCY ) 1577 implicit none 1578 integer :: INCX 1579 integer :: INCY 1580 integer :: LDA 1581 integer :: N 1582 complex*16 :: A( LDA, * ) 1583 complex*16 :: ALPHA 1584 complex*16 :: BETA 1585 character*1 :: UPLO 1586 complex*16 :: X( * ) 1587 complex*16 :: Y( * ) 1588 end subroutine zhemv 1589 end interface 1590 1591 !interface 1592 ! subroutine zher ( UPLO, N, ALPHA, X, INCX, A, LDA ) 1593 ! implicit none 1594 ! integer :: INCX 1595 ! integer :: LDA 1596 ! integer :: N 1597 ! complex*16 :: A( LDA, * ) 1598 ! double precision :: ALPHA 1599 ! character*1 :: UPLO 1600 ! complex*16 :: X( * ) 1601 ! end subroutine zher 1602 !end interface 1603 1604 interface 1605 subroutine zher2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA ) 1606 implicit none 1607 integer :: INCX 1608 integer :: INCY 1609 integer :: LDA 1610 integer :: N 1611 complex*16 :: A( LDA, * ) 1612 complex*16 :: ALPHA 1613 character*1 :: UPLO 1614 complex*16 :: X( * ) 1615 complex*16 :: Y( * ) 1616 end subroutine zher2 1617 end interface 1618 1619 interface 1620 subroutine zher2k( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA,& 1621 C, LDC ) 1622 implicit none 1623 integer :: K 1624 integer :: LDA 1625 integer :: LDB 1626 integer :: LDC 1627 integer :: N 1628 complex*16 :: A( LDA, * ) 1629 complex*16 :: ALPHA 1630 complex*16 :: B( LDB, * ) 1631 double precision :: BETA 1632 complex*16 :: C( LDC, * ) 1633 character :: TRANS 1634 character :: UPLO 1635 end subroutine zher2k 1636 end interface 1637 1638 !interface 1639 ! subroutine zherk( UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC ) 1640 ! implicit none 1641 ! integer :: K 1642 ! integer :: LDA 1643 ! integer :: LDC 1644 ! integer :: N 1645 ! complex*16 :: A( LDA, * ) 1646 ! double precision :: ALPHA 1647 ! double precision :: BETA 1648 ! complex*16 :: C( LDC, * ) 1649 ! character :: TRANS 1650 ! character :: UPLO 1651 ! end subroutine zherk 1652 !end interface 1653 1654 interface 1655 subroutine zhpmv ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY ) 1656 implicit none 1657 integer :: INCX 1658 integer :: INCY 1659 integer :: N 1660 complex*16 :: ALPHA 1661 complex*16 :: AP( * ) 1662 complex*16 :: BETA 1663 character*1 :: UPLO 1664 complex*16 :: X( * ) 1665 complex*16 :: Y( * ) 1666 end subroutine zhpmv 1667 end interface 1668 1669 interface 1670 subroutine zhpr ( UPLO, N, ALPHA, X, INCX, AP ) 1671 implicit none 1672 integer :: INCX 1673 integer :: N 1674 double precision :: ALPHA 1675 complex*16 :: AP( * ) 1676 character*1 :: UPLO 1677 complex*16 :: X( * ) 1678 end subroutine zhpr 1679 end interface 1680 1681 interface 1682 subroutine zhpr2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP ) 1683 implicit none 1684 integer :: INCX 1685 integer :: INCY 1686 integer :: N 1687 complex*16 :: ALPHA 1688 complex*16 :: AP( * ) 1689 character*1 :: UPLO 1690 complex*16 :: X( * ) 1691 complex*16 :: Y( * ) 1692 end subroutine zhpr2 1693 end interface 1694 1695 interface 1696 subroutine zrotg(ca,cb,c,s) 1697 implicit none 1698 double precision :: c 1699 double complex :: ca 1700 double complex :: cb 1701 double complex :: s 1702 end subroutine zrotg 1703 end interface 1704 1705 !interface 1706 ! subroutine zscal(n,za,zx,incx) 1707 ! implicit none 1708 ! integer :: incx 1709 ! integer :: n 1710 ! double complex :: za 1711 ! double complex :: zx(*) 1712 ! end subroutine zscal 1713 !end interface 1714 1715 interface 1716 subroutine zswap (n,zx,incx,zy,incy) 1717 implicit none 1718 integer :: incx 1719 integer :: incy 1720 integer :: n 1721 double complex :: zx(*) 1722 double complex :: zy(*) 1723 end subroutine zswap 1724 end interface 1725 1726 interface 1727 subroutine zsymm ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB,& 1728 BETA, C, LDC ) 1729 implicit none 1730 integer :: LDA 1731 integer :: LDB 1732 integer :: LDC 1733 integer :: M 1734 integer :: N 1735 complex*16 :: A( LDA, * ) 1736 complex*16 :: ALPHA 1737 complex*16 :: B( LDB, * ) 1738 complex*16 :: BETA 1739 complex*16 :: C( LDC, * ) 1740 character*1 :: SIDE 1741 character*1 :: UPLO 1742 end subroutine zsymm 1743 end interface 1744 1745 interface 1746 subroutine zsyr2k( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB,& 1747 BETA, C, LDC ) 1748 implicit none 1749 integer :: K 1750 integer :: LDA 1751 integer :: LDB 1752 integer :: LDC 1753 integer :: N 1754 complex*16 :: A( LDA, * ) 1755 complex*16 :: ALPHA 1756 complex*16 :: B( LDB, * ) 1757 complex*16 :: BETA 1758 complex*16 :: C( LDC, * ) 1759 character*1 :: TRANS 1760 character*1 :: UPLO 1761 end subroutine zsyr2k 1762 end interface 1763 1764 interface 1765 subroutine zsyrk ( UPLO, TRANS, N, K, ALPHA, A, LDA,& 1766 BETA, C, LDC ) 1767 implicit none 1768 integer :: K 1769 integer :: LDA 1770 integer :: LDC 1771 integer :: N 1772 complex*16 :: A( LDA, * ) 1773 complex*16 :: ALPHA 1774 complex*16 :: BETA 1775 complex*16 :: C( LDC, * ) 1776 character*1 :: TRANS 1777 character*1 :: UPLO 1778 end subroutine zsyrk 1779 end interface 1780 1781 interface 1782 subroutine ztbmv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 1783 implicit none 1784 integer :: INCX 1785 integer :: K 1786 integer :: LDA 1787 integer :: N 1788 complex*16 :: A( LDA, * ) 1789 character*1 :: DIAG 1790 character*1 :: TRANS 1791 character*1 :: UPLO 1792 complex*16 :: X( * ) 1793 end subroutine ztbmv 1794 end interface 1795 1796 interface 1797 subroutine ztbsv ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) 1798 implicit none 1799 integer :: INCX 1800 integer :: K 1801 integer :: LDA 1802 integer :: N 1803 complex*16 :: A( LDA, * ) 1804 character*1 :: DIAG 1805 character*1 :: TRANS 1806 character*1 :: UPLO 1807 complex*16 :: X( * ) 1808 end subroutine ztbsv 1809 end interface 1810 1811 interface 1812 subroutine ztpmv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 1813 implicit none 1814 integer :: INCX 1815 integer :: N 1816 complex*16 :: AP( * ) 1817 character*1 :: DIAG 1818 character*1 :: TRANS 1819 character*1 :: UPLO 1820 complex*16 :: X( * ) 1821 end subroutine ztpmv 1822 end interface 1823 1824 interface 1825 subroutine ztpsv ( UPLO, TRANS, DIAG, N, AP, X, INCX ) 1826 implicit none 1827 integer :: INCX 1828 integer :: N 1829 complex*16 :: AP( * ) 1830 character*1 :: DIAG 1831 character*1 :: TRANS 1832 character*1 :: UPLO 1833 complex*16 :: X( * ) 1834 end subroutine ztpsv 1835 end interface 1836 1837 interface 1838 subroutine ztrmm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA,& 1839 B, LDB ) 1840 implicit none 1841 integer :: LDA 1842 integer :: LDB 1843 integer :: M 1844 integer :: N 1845 complex*16 :: A( LDA, * ) 1846 complex*16 :: ALPHA 1847 complex*16 :: B( LDB, * ) 1848 character*1 :: DIAG 1849 character*1 :: SIDE 1850 character*1 :: TRANSA 1851 character*1 :: UPLO 1852 end subroutine ztrmm 1853 end interface 1854 1855 interface 1856 subroutine ztrmv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 1857 implicit none 1858 integer :: INCX 1859 integer :: LDA 1860 integer :: N 1861 complex*16 :: A( LDA, * ) 1862 character*1 :: DIAG 1863 character*1 :: TRANS 1864 character*1 :: UPLO 1865 complex*16 :: X( * ) 1866 end subroutine ztrmv 1867 end interface 1868 1869 !interface 1870 ! subroutine ztrsm ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB ) 1871 ! implicit none 1872 ! integer :: LDA 1873 ! integer :: LDB 1874 ! integer :: M 1875 ! integer :: N 1876 ! complex*16 :: A( LDA, * ) 1877 ! complex*16 :: ALPHA 1878 ! complex*16 :: B( LDB, * ) 1879 ! character*1 :: DIAG 1880 ! character*1 :: SIDE 1881 ! character*1 :: TRANSA 1882 ! character*1 :: UPLO 1883 ! end subroutine ztrsm 1884 !end interface 1885 1886 interface 1887 subroutine ztrsv ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) 1888 implicit none 1889 integer :: INCX 1890 integer :: LDA 1891 integer :: N 1892 complex*16 :: A( LDA, * ) 1893 character*1 :: DIAG 1894 character*1 :: TRANS 1895 character*1 :: UPLO 1896 complex*16 :: X( * ) 1897 end subroutine ztrsv 1898 end interface 1899 1900 interface 1901 subroutine cgetf2( M, N, A, LDA, IPIV, INFO ) 1902 implicit none 1903 integer :: INFO 1904 integer :: IPIV( * ) 1905 integer :: LDA 1906 integer :: M 1907 integer :: N 1908 complex :: A( LDA, * ) 1909 end subroutine cgetf2 1910 end interface 1911 1912 interface 1913 subroutine cgetrf( M, N, A, LDA, IPIV, INFO ) 1914 implicit none 1915 integer :: INFO 1916 integer :: IPIV( * ) 1917 integer :: LDA 1918 integer :: M 1919 integer :: N 1920 complex :: A( LDA, * ) 1921 end subroutine cgetrf 1922 end interface 1923 1924 interface 1925 subroutine cgetri( N, A, LDA, IPIV, WORK, LWORK, INFO ) 1926 implicit none 1927 integer :: INFO 1928 integer :: IPIV( * ) 1929 integer :: LDA 1930 integer :: LWORK 1931 integer :: N 1932 complex :: A( LDA, * ) 1933 complex :: WORK( * ) 1934 end subroutine cgetri 1935 end interface 1936 1937 interface 1938 subroutine chpev( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, RWORK,& 1939 INFO ) 1940 implicit none 1941 integer :: INFO 1942 integer :: LDZ 1943 integer :: N 1944 complex :: AP( * ) 1945 character :: JOBZ 1946 real :: RWORK( * ) 1947 character :: UPLO 1948 real :: W( * ) 1949 complex :: WORK( * ) 1950 complex :: Z( LDZ, * ) 1951 end subroutine chpev 1952 end interface 1953 1954 interface 1955 subroutine chptrd( UPLO, N, AP, D, E, TAU, INFO ) 1956 implicit none 1957 integer :: INFO 1958 integer :: N 1959 complex :: AP( * ) 1960 real :: D( * ) 1961 real :: E( * ) 1962 complex :: TAU( * ) 1963 character :: UPLO 1964 end subroutine chptrd 1965 end interface 1966 1967 interface 1968 complex function cladiv( X, Y ) 1969 implicit none 1970 complex :: X 1971 complex :: Y 1972 end function cladiv 1973 end interface 1974 1975 interface 1976 real function clanhp( NORM, UPLO, N, AP, WORK ) 1977 implicit none 1978 integer :: N 1979 complex :: AP( * ) 1980 character :: NORM 1981 character :: UPLO 1982 real :: WORK( * ) 1983 end function clanhp 1984 end interface 1985 1986 interface 1987 subroutine clarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) 1988 implicit none 1989 integer :: INCV 1990 integer :: LDC 1991 integer :: M 1992 integer :: N 1993 complex :: C( LDC, * ) 1994 character :: SIDE 1995 complex :: TAU 1996 complex :: V( * ) 1997 complex :: WORK( * ) 1998 end subroutine clarf 1999 end interface 2000 2001 interface 2002 subroutine clarfg( N, ALPHA, X, INCX, TAU ) 2003 implicit none 2004 integer :: INCX 2005 integer :: N 2006 complex :: ALPHA 2007 complex :: TAU 2008 complex :: X( * ) 2009 end subroutine clarfg 2010 end interface 2011 2012 interface 2013 subroutine clasr( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) 2014 implicit none 2015 integer :: LDA 2016 integer :: M 2017 integer :: N 2018 complex :: A( LDA, * ) 2019 real :: C( * ) 2020 character :: DIRECT 2021 character :: PIVOT 2022 real :: S( * ) 2023 character :: SIDE 2024 end subroutine clasr 2025 end interface 2026 2027 interface 2028 subroutine classq( N, X, INCX, SCALE, SUMSQ ) 2029 implicit none 2030 integer :: INCX 2031 integer :: N 2032 real :: SCALE 2033 real :: SUMSQ 2034 complex :: X( * ) 2035 end subroutine classq 2036 end interface 2037 2038 interface 2039 subroutine claswp( N, A, LDA, K1, K2, IPIV, INCX ) 2040 implicit none 2041 integer :: INCX 2042 integer :: IPIV( * ) 2043 integer :: K1 2044 integer :: K2 2045 integer :: LDA 2046 integer :: N 2047 complex :: A( LDA, * ) 2048 end subroutine claswp 2049 end interface 2050 2051 interface 2052 subroutine clazro( M, N, ALPHA, BETA, A, LDA ) 2053 implicit none 2054 integer :: LDA 2055 integer :: M 2056 integer :: N 2057 complex :: A( LDA, * ) 2058 complex :: ALPHA 2059 complex :: BETA 2060 end subroutine clazro 2061 end interface 2062 2063 interface 2064 subroutine csteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) 2065 implicit none 2066 integer :: INFO 2067 integer :: LDZ 2068 integer :: N 2069 character :: COMPZ 2070 real :: D( * ) 2071 real :: E( * ) 2072 real :: WORK( * ) 2073 complex :: Z( LDZ, * ) 2074 end subroutine csteqr 2075 end interface 2076 2077 interface 2078 subroutine ctrtri( UPLO, DIAG, N, A, LDA, INFO ) 2079 implicit none 2080 integer :: INFO 2081 integer :: LDA 2082 integer :: N 2083 complex :: A( LDA, * ) 2084 character :: DIAG 2085 character :: UPLO 2086 end subroutine ctrtri 2087 end interface 2088 2089 interface 2090 subroutine cung2l( M, N, K, A, LDA, TAU, WORK, INFO ) 2091 implicit none 2092 integer :: INFO 2093 integer :: K 2094 integer :: LDA 2095 integer :: M 2096 integer :: N 2097 complex :: A( LDA, * ) 2098 complex :: TAU( * ) 2099 complex :: WORK( * ) 2100 end subroutine cung2l 2101 end interface 2102 2103 interface 2104 subroutine cung2r( M, N, K, A, LDA, TAU, WORK, INFO ) 2105 implicit none 2106 integer :: INFO 2107 integer :: K 2108 integer :: LDA 2109 integer :: M 2110 integer :: N 2111 complex :: A( LDA, * ) 2112 complex :: TAU( * ) 2113 complex :: WORK( * ) 2114 end subroutine cung2r 2115 end interface 2116 2117 interface 2118 subroutine cupgtr( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) 2119 implicit none 2120 integer :: INFO 2121 integer :: LDQ 2122 integer :: N 2123 complex :: AP( * ) 2124 complex :: Q( LDQ, * ) 2125 complex :: TAU( * ) 2126 character :: UPLO 2127 complex :: WORK( * ) 2128 end subroutine cupgtr 2129 end interface 2130 2131 interface 2132 subroutine dbdsqr( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U,& 2133 LDU, C, LDC, WORK, INFO ) 2134 implicit none 2135 integer :: INFO 2136 integer :: LDC 2137 integer :: LDU 2138 integer :: LDVT 2139 integer :: N 2140 integer :: NCC 2141 integer :: NCVT 2142 integer :: NRU 2143 double precision :: C( LDC, * ) 2144 double precision :: D( * ) 2145 double precision :: E( * ) 2146 double precision :: U( LDU, * ) 2147 character :: UPLO 2148 double precision :: VT( LDVT, * ) 2149 double precision :: WORK( * ) 2150 end subroutine dbdsqr 2151 end interface 2152 2153 interface 2154 subroutine dgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) 2155 implicit none 2156 integer :: INFO 2157 integer :: LDA 2158 integer :: M 2159 integer :: N 2160 double precision :: A( LDA, * ) 2161 double precision :: D( * ) 2162 double precision :: E( * ) 2163 double precision :: TAUP( * ) 2164 double precision :: TAUQ( * ) 2165 double precision :: WORK( * ) 2166 end subroutine dgebd2 2167 end interface 2168 2169 interface 2170 subroutine dgebrd( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,& 2171 INFO ) 2172 implicit none 2173 integer :: INFO 2174 integer :: LDA 2175 integer :: LWORK 2176 integer :: M 2177 integer :: N 2178 double precision :: A( LDA, * ) 2179 double precision :: D( * ) 2180 double precision :: E( * ) 2181 double precision :: TAUP( * ) 2182 double precision :: TAUQ( * ) 2183 double precision :: WORK( * ) 2184 end subroutine dgebrd 2185 end interface 2186 2187 interface 2188 subroutine dgelq2( M, N, A, LDA, TAU, WORK, INFO ) 2189 implicit none 2190 integer :: INFO 2191 integer :: LDA 2192 integer :: M 2193 integer :: N 2194 double precision :: A( LDA, * ) 2195 double precision :: TAU( * ) 2196 double precision :: WORK( * ) 2197 end subroutine dgelq2 2198 end interface 2199 2200 interface 2201 subroutine dgelqf( M, N, A, LDA, TAU, WORK, LWORK, INFO ) 2202 implicit none 2203 integer :: INFO 2204 integer :: LDA 2205 integer :: LWORK 2206 integer :: M 2207 integer :: N 2208 double precision :: A( LDA, * ) 2209 double precision :: TAU( * ) 2210 double precision :: WORK( * ) 2211 end subroutine dgelqf 2212 end interface 2213 2214 interface 2215 subroutine dgelss( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,& 2216 WORK, LWORK, INFO ) 2217 implicit none 2218 integer :: INFO 2219 integer :: LDA 2220 integer :: LDB 2221 integer :: LWORK 2222 integer :: M 2223 integer :: N 2224 integer :: NRHS 2225 integer :: RANK 2226 double precision :: A( LDA, * ) 2227 double precision :: B( LDB, * ) 2228 double precision :: RCOND 2229 double precision :: S( * ) 2230 double precision :: WORK( * ) 2231 end subroutine dgelss 2232 end interface 2233 2234 interface 2235 subroutine dgeqr2( M, N, A, LDA, TAU, WORK, INFO ) 2236 implicit none 2237 integer :: INFO 2238 integer :: LDA 2239 integer :: M 2240 integer :: N 2241 double precision :: A( LDA, * ) 2242 double precision :: TAU( * ) 2243 double precision :: WORK( * ) 2244 end subroutine dgeqr2 2245 end interface 2246 2247 interface 2248 subroutine dgeqrf( M, N, A, LDA, TAU, WORK, LWORK, INFO ) 2249 implicit none 2250 integer :: INFO 2251 integer :: LDA 2252 integer :: LWORK 2253 integer :: M 2254 integer :: N 2255 double precision :: A( LDA, * ) 2256 double precision :: TAU( * ) 2257 double precision :: WORK( * ) 2258 end subroutine dgeqrf 2259 end interface 2260 2261 interface 2262 subroutine dgesvd( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT,& 2263 WORK, LWORK, INFO ) 2264 implicit none 2265 integer :: INFO 2266 integer :: LDA 2267 integer :: LDU 2268 integer :: LDVT 2269 integer :: LWORK 2270 integer :: M 2271 integer :: N 2272 double precision :: A( LDA, * ) 2273 character :: JOBU 2274 character :: JOBVT 2275 double precision :: S( * ) 2276 double precision :: U( LDU, * ) 2277 double precision :: VT( LDVT, * ) 2278 double precision :: WORK( * ) 2279 end subroutine dgesvd 2280 end interface 2281 2282 interface 2283 subroutine dgetf2( M, N, A, LDA, IPIV, INFO ) 2284 implicit none 2285 integer :: INFO 2286 integer :: IPIV( * ) 2287 integer :: LDA 2288 integer :: M 2289 integer :: N 2290 double precision :: A( LDA, * ) 2291 end subroutine dgetf2 2292 end interface 2293 2294 interface 2295 subroutine dgetrf( M, N, A, LDA, IPIV, INFO ) 2296 implicit none 2297 integer :: INFO 2298 integer :: IPIV( * ) 2299 integer :: LDA 2300 integer :: M 2301 integer :: N 2302 double precision :: A( LDA, * ) 2303 end subroutine dgetrf 2304 end interface 2305 2306 interface 2307 subroutine dgetri( N, A, LDA, IPIV, WORK, LWORK, INFO ) 2308 implicit none 2309 integer :: INFO 2310 integer :: IPIV( * ) 2311 integer :: LDA 2312 integer :: LWORK 2313 integer :: N 2314 double precision :: A( LDA, * ) 2315 double precision :: WORK( * ) 2316 end subroutine dgetri 2317 end interface 2318 2319 interface 2320 subroutine dopgtr( UPLO, N, AP, TAU, Q, LDQ, WORK, INFO ) 2321 implicit none 2322 integer :: INFO 2323 integer :: LDQ 2324 integer :: N 2325 double precision :: AP( * ) 2326 double precision :: Q( LDQ, * ) 2327 double precision :: TAU( * ) 2328 character :: UPLO 2329 double precision :: WORK( * ) 2330 end subroutine dopgtr 2331 end interface 2332 2333 interface 2334 subroutine dorg2l( M, N, K, A, LDA, TAU, WORK, INFO ) 2335 implicit none 2336 integer :: INFO 2337 integer :: K 2338 integer :: LDA 2339 integer :: M 2340 integer :: N 2341 double precision :: A( LDA, * ) 2342 double precision :: TAU( * ) 2343 double precision :: WORK( * ) 2344 end subroutine dorg2l 2345 end interface 2346 2347 interface 2348 subroutine dorg2r( M, N, K, A, LDA, TAU, WORK, INFO ) 2349 implicit none 2350 integer :: INFO 2351 integer :: K 2352 integer :: LDA 2353 integer :: M 2354 integer :: N 2355 double precision :: A( LDA, * ) 2356 double precision :: TAU( * ) 2357 double precision :: WORK( * ) 2358 end subroutine dorg2r 2359 end interface 2360 2361 interface 2362 subroutine dorgbr( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) 2363 implicit none 2364 integer :: INFO 2365 integer :: K 2366 integer :: LDA 2367 integer :: LWORK 2368 integer :: M 2369 integer :: N 2370 double precision :: A( LDA, * ) 2371 double precision :: TAU( * ) 2372 character :: VECT 2373 double precision :: WORK( * ) 2374 end subroutine dorgbr 2375 end interface 2376 2377 interface 2378 subroutine dorgl2( M, N, K, A, LDA, TAU, WORK, INFO ) 2379 implicit none 2380 integer :: INFO 2381 integer :: K 2382 integer :: LDA 2383 integer :: M 2384 integer :: N 2385 double precision :: A( LDA, * ) 2386 double precision :: TAU( * ) 2387 double precision :: WORK( * ) 2388 end subroutine dorgl2 2389 end interface 2390 2391 interface 2392 subroutine dorglq( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) 2393 implicit none 2394 integer :: INFO 2395 integer :: K 2396 integer :: LDA 2397 integer :: LWORK 2398 integer :: M 2399 integer :: N 2400 double precision :: A( LDA, * ) 2401 double precision :: TAU( * ) 2402 double precision :: WORK( * ) 2403 end subroutine dorglq 2404 end interface 2405 2406 interface 2407 subroutine dorgql( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) 2408 implicit none 2409 integer :: INFO 2410 integer :: K 2411 integer :: LDA 2412 integer :: LWORK 2413 integer :: M 2414 integer :: N 2415 double precision :: A( LDA, * ) 2416 double precision :: TAU( * ) 2417 double precision :: WORK( * ) 2418 end subroutine dorgql 2419 end interface 2420 2421 interface 2422 subroutine dorgqr( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) 2423 implicit none 2424 integer :: INFO 2425 integer :: K 2426 integer :: LDA 2427 integer :: LWORK 2428 integer :: M 2429 integer :: N 2430 double precision :: A( LDA, * ) 2431 double precision :: TAU( * ) 2432 double precision :: WORK( * ) 2433 end subroutine dorgqr 2434 end interface 2435 2436 interface 2437 subroutine dorgtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO ) 2438 implicit none 2439 integer :: INFO 2440 integer :: LDA 2441 integer :: LWORK 2442 integer :: N 2443 double precision :: A( LDA, * ) 2444 double precision :: TAU( * ) 2445 character :: UPLO 2446 double precision :: WORK( LWORK ) 2447 end subroutine dorgtr 2448 end interface 2449 2450 interface 2451 subroutine dorm2r( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,& 2452 WORK, INFO ) 2453 implicit none 2454 integer :: INFO 2455 integer :: K 2456 integer :: LDA 2457 integer :: LDC 2458 integer :: M 2459 integer :: N 2460 double precision :: A( LDA, * ) 2461 double precision :: C( LDC, * ) 2462 character :: SIDE 2463 double precision :: TAU( * ) 2464 character :: TRANS 2465 double precision :: WORK( * ) 2466 end subroutine dorm2r 2467 end interface 2468 2469 interface 2470 subroutine dormbr( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C,& 2471 LDC, WORK, LWORK, INFO ) 2472 implicit none 2473 integer :: INFO 2474 integer :: K 2475 integer :: LDA 2476 integer :: LDC 2477 integer :: LWORK 2478 integer :: M 2479 integer :: N 2480 double precision :: A( LDA, * ) 2481 double precision :: C( LDC, * ) 2482 character :: SIDE 2483 double precision :: TAU( * ) 2484 character :: TRANS 2485 character :: VECT 2486 double precision :: WORK( * ) 2487 end subroutine dormbr 2488 end interface 2489 2490 interface 2491 subroutine dorml2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,& 2492 WORK, INFO ) 2493 implicit none 2494 integer :: INFO 2495 integer :: K 2496 integer :: LDA 2497 integer :: LDC 2498 integer :: M 2499 integer :: N 2500 double precision :: A( LDA, * ) 2501 double precision :: C( LDC, * ) 2502 character :: SIDE 2503 double precision :: TAU( * ) 2504 character :: TRANS 2505 double precision :: WORK( * ) 2506 end subroutine dorml2 2507 end interface 2508 2509 interface 2510 subroutine dormlq( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,& 2511 WORK, LWORK, INFO ) 2512 implicit none 2513 integer :: INFO 2514 integer :: K 2515 integer :: LDA 2516 integer :: LDC 2517 integer :: LWORK 2518 integer :: M 2519 integer :: N 2520 double precision :: A( LDA, * ) 2521 double precision :: C( LDC, * ) 2522 character :: SIDE 2523 double precision :: TAU( * ) 2524 character :: TRANS 2525 double precision :: WORK( * ) 2526 end subroutine dormlq 2527 end interface 2528 2529 interface 2530 subroutine dormqr( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC,& 2531 WORK, LWORK, INFO ) 2532 implicit none 2533 integer :: INFO 2534 integer :: K 2535 integer :: LDA 2536 integer :: LDC 2537 integer :: LWORK 2538 integer :: M 2539 integer :: N 2540 double precision :: A( LDA, * ) 2541 double precision :: C( LDC, * ) 2542 character :: SIDE 2543 double precision :: TAU( * ) 2544 character :: TRANS 2545 double precision :: WORK( * ) 2546 end subroutine dormqr 2547 end interface 2548 2549 interface 2550 subroutine dposv( UPLO, N, NRHS, A, LDA, B, LDB, INFO ) 2551 implicit none 2552 integer :: INFO 2553 integer :: LDA 2554 integer :: LDB 2555 integer :: N 2556 integer :: NRHS 2557 double precision :: A( LDA, * ) 2558 double precision :: B( LDB, * ) 2559 character :: UPLO 2560 end subroutine dposv 2561 end interface 2562 2563 interface 2564 subroutine dpotf2( UPLO, N, A, LDA, INFO ) 2565 implicit none 2566 integer :: INFO 2567 integer :: LDA 2568 integer :: N 2569 double precision :: A( LDA, * ) 2570 character :: UPLO 2571 end subroutine dpotf2 2572 end interface 2573 2574 interface 2575 subroutine dpotrf( UPLO, N, A, LDA, INFO ) 2576 implicit none 2577 integer :: INFO 2578 integer :: LDA 2579 integer :: N 2580 double precision :: A( LDA, * ) 2581 character :: UPLO 2582 end subroutine dpotrf 2583 end interface 2584 2585 interface 2586 subroutine dpotrs( UPLO, N, NRHS, A, LDA, B, LDB, INFO ) 2587 implicit none 2588 integer :: INFO 2589 integer :: LDA 2590 integer :: LDB 2591 integer :: N 2592 integer :: NRHS 2593 double precision :: A( LDA, * ) 2594 double precision :: B( LDB, * ) 2595 character :: UPLO 2596 end subroutine dpotrs 2597 end interface 2598 2599 interface 2600 subroutine dpptrf( UPLO, N, AP, INFO ) 2601 implicit none 2602 integer :: INFO 2603 integer :: N 2604 double precision :: AP( * ) 2605 character :: UPLO 2606 end subroutine dpptrf 2607 end interface 2608 2609 interface 2610 subroutine dspgst( ITYPE, UPLO, N, AP, BP, INFO ) 2611 implicit none 2612 integer :: INFO 2613 integer :: ITYPE 2614 integer :: N 2615 double precision :: AP( * ) 2616 double precision :: BP( * ) 2617 character :: UPLO 2618 end subroutine dspgst 2619 end interface 2620 2621 interface 2622 subroutine dspgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,& 2623 INFO ) 2624 implicit none 2625 integer :: INFO 2626 integer :: ITYPE 2627 integer :: LDZ 2628 integer :: N 2629 double precision :: AP( * ) 2630 double precision :: BP( * ) 2631 double precision :: W( * ) 2632 double precision :: WORK( * ) 2633 double precision :: Z( LDZ, * ) 2634 character :: JOBZ 2635 character :: UPLO 2636 end subroutine dspgv 2637 end interface 2638 2639 interface 2640 subroutine drscl( N, SA, SX, INCX ) 2641 implicit none 2642 integer :: INCX 2643 integer :: N 2644 double precision :: SA 2645 double precision :: SX( * ) 2646 end subroutine drscl 2647 end interface 2648 2649 interface 2650 subroutine dspev( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, INFO ) 2651 implicit none 2652 integer :: INFO 2653 integer :: LDZ 2654 integer :: N 2655 double precision :: AP( * ) 2656 character :: JOBZ 2657 character :: UPLO 2658 double precision :: W( * ) 2659 double precision :: WORK( * ) 2660 double precision :: Z( LDZ, * ) 2661 end subroutine dspev 2662 end interface 2663 2664 interface 2665 subroutine dsptrd( UPLO, N, AP, D, E, TAU, INFO ) 2666 implicit none 2667 integer :: INFO 2668 integer :: N 2669 double precision :: AP( * ) 2670 double precision :: D( * ) 2671 double precision :: E( * ) 2672 double precision :: TAU( * ) 2673 character :: UPLO 2674 end subroutine dsptrd 2675 end interface 2676 2677 interface 2678 subroutine dstebz( RANGE, ORDER, N, VL, VU, IL, IU, ABSTOL, D, E,& 2679 M, NSPLIT, W, IBLOCK, ISPLIT, WORK, IWORK,& 2680 INFO ) 2681 implicit none 2682 integer :: IBLOCK( * ) 2683 integer :: IL 2684 integer :: INFO 2685 integer :: ISPLIT( * ) 2686 integer :: IU 2687 integer :: IWORK( * ) 2688 integer :: M 2689 integer :: N 2690 integer :: NSPLIT 2691 double precision :: ABSTOL 2692 double precision :: D( * ) 2693 double precision :: E( * ) 2694 character :: ORDER 2695 character :: RANGE 2696 double precision :: VL 2697 double precision :: VU 2698 double precision :: W( * ) 2699 double precision :: WORK( * ) 2700 end subroutine dstebz 2701 end interface 2702 2703 interface 2704 subroutine dsteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO ) 2705 implicit none 2706 integer :: INFO 2707 integer :: LDZ 2708 integer :: N 2709 character :: COMPZ 2710 double precision :: D( * ) 2711 double precision :: E( * ) 2712 double precision :: WORK( * ) 2713 double precision :: Z( LDZ, * ) 2714 end subroutine dsteqr 2715 end interface 2716 2717 interface 2718 subroutine dsterf( N, D, E, INFO ) 2719 implicit none 2720 integer :: INFO 2721 integer :: N 2722 double precision :: D( * ) 2723 double precision :: E( * ) 2724 end subroutine dsterf 2725 end interface 2726 2727 interface 2728 subroutine dsyev( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO ) 2729 implicit none 2730 integer :: INFO 2731 integer :: LDA 2732 integer :: LWORK 2733 integer :: N 2734 double precision :: A( LDA, * ) 2735 character :: JOBZ 2736 character :: UPLO 2737 double precision :: W( * ) 2738 double precision :: WORK( * ) 2739 end subroutine dsyev 2740 end interface 2741 2742 interface 2743 subroutine dsygs2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) 2744 implicit none 2745 integer :: INFO 2746 integer :: ITYPE 2747 integer :: LDA 2748 integer :: LDB 2749 integer :: N 2750 double precision :: A( LDA, * ) 2751 double precision :: B( LDB, * ) 2752 character :: UPLO 2753 end subroutine dsygs2 2754 end interface 2755 2756 interface 2757 subroutine dsygst( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) 2758 implicit none 2759 integer :: INFO 2760 integer :: ITYPE 2761 integer :: LDA 2762 integer :: LDB 2763 integer :: N 2764 double precision :: A( LDA, * ) 2765 double precision :: B( LDB, * ) 2766 character :: UPLO 2767 end subroutine dsygst 2768 end interface 2769 2770 interface 2771 subroutine dsygv( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK,& 2772 LWORK, INFO ) 2773 implicit none 2774 integer :: INFO 2775 integer :: ITYPE 2776 integer :: LDA 2777 integer :: LDB 2778 integer :: LWORK 2779 integer :: N 2780 double precision :: A( LDA, * ) 2781 double precision :: B( LDB, * ) 2782 character :: JOBZ 2783 character :: UPLO 2784 double precision :: W( * ) 2785 double precision :: WORK( * ) 2786 end subroutine dsygv 2787 end interface 2788 2789 interface 2790 subroutine dsysv( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK,& 2791 LWORK, INFO ) 2792 implicit none 2793 integer :: INFO 2794 integer :: IPIV( * ) 2795 integer :: LDA 2796 integer :: LDB 2797 integer :: LWORK 2798 integer :: N 2799 integer :: NRHS 2800 double precision :: A( LDA, * ) 2801 double precision :: B( LDB, * ) 2802 character :: UPLO 2803 double precision :: WORK( * ) 2804 end subroutine dsysv 2805 end interface 2806 2807 interface 2808 subroutine dsytd2( UPLO, N, A, LDA, D, E, TAU, INFO ) 2809 implicit none 2810 integer :: INFO 2811 integer :: LDA 2812 integer :: N 2813 double precision :: A( LDA, * ) 2814 double precision :: D( * ) 2815 double precision :: E( * ) 2816 double precision :: TAU( * ) 2817 character :: UPLO 2818 end subroutine dsytd2 2819 end interface 2820 2821 interface 2822 subroutine dsytf2( UPLO, N, A, LDA, IPIV, INFO ) 2823 implicit none 2824 integer :: INFO 2825 integer :: IPIV( * ) 2826 integer :: LDA 2827 integer :: N 2828 double precision :: A( LDA, * ) 2829 character :: UPLO 2830 end subroutine dsytf2 2831 end interface 2832 2833 interface 2834 subroutine dsytrd( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) 2835 implicit none 2836 integer :: INFO 2837 integer :: LDA 2838 integer :: LWORK 2839 integer :: N 2840 double precision :: A( LDA, * ) 2841 double precision :: D( * ) 2842 double precision :: E( * ) 2843 double precision :: TAU( * ) 2844 character :: UPLO 2845 double precision :: WORK( * ) 2846 end subroutine dsytrd 2847 end interface 2848 2849 interface 2850 subroutine dsytrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO ) 2851 implicit none 2852 integer :: INFO 2853 integer :: IPIV( * ) 2854 integer :: LDA 2855 integer :: LWORK 2856 integer :: N 2857 double precision :: A( LDA, * ) 2858 character :: UPLO 2859 double precision :: WORK( * ) 2860 end subroutine dsytrf 2861 end interface 2862 2863 interface 2864 subroutine dsytrs( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) 2865 implicit none 2866 integer :: INFO 2867 integer :: IPIV( * ) 2868 integer :: LDA 2869 integer :: LDB 2870 integer :: N 2871 integer :: NRHS 2872 double precision :: A( LDA, * ) 2873 double precision :: B( LDB, * ) 2874 character :: UPLO 2875 end subroutine dsytrs 2876 end interface 2877 2878 interface 2879 subroutine dtrti2( UPLO, DIAG, N, A, LDA, INFO ) 2880 implicit none 2881 integer :: INFO 2882 integer :: LDA 2883 integer :: N 2884 double precision :: A( LDA, * ) 2885 character :: DIAG 2886 character :: UPLO 2887 end subroutine dtrti2 2888 end interface 2889 2890 interface 2891 subroutine dtrtri( UPLO, DIAG, N, A, LDA, INFO ) 2892 implicit none 2893 integer :: INFO 2894 integer :: LDA 2895 integer :: N 2896 double precision :: A( LDA, * ) 2897 character :: DIAG 2898 character :: UPLO 2899 end subroutine dtrtri 2900 end interface 2901 2902 interface 2903 double precision function dzsum1( N, CX, INCX ) 2904 implicit none 2905 integer :: INCX 2906 integer :: N 2907 complex*16 :: CX( * ) 2908 end function dzsum1 2909 end interface 2910 2911 interface 2912 integer function izmax1( N, CX, INCX ) 2913 implicit none 2914 integer :: INCX 2915 integer :: N 2916 complex*16 :: CX( * ) 2917 end function izmax1 2918 end interface 2919 2920 interface 2921 subroutine ssterf( N, D, E, INFO ) 2922 implicit none 2923 integer :: INFO 2924 integer :: N 2925 real :: D( * ) 2926 real :: E( * ) 2927 end subroutine ssterf 2928 end interface 2929 2930 interface 2931 subroutine zbdsqr( UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U,& 2932 LDU, C, LDC, RWORK, INFO ) 2933 implicit none 2934 integer :: INFO 2935 integer :: LDC 2936 integer :: LDU 2937 integer :: LDVT 2938 integer :: N 2939 integer :: NCC 2940 integer :: NCVT 2941 integer :: NRU 2942 complex*16 :: C( LDC, * ) 2943 double precision :: D( * ) 2944 double precision :: E( * ) 2945 double precision :: RWORK( * ) 2946 complex*16 :: U( LDU, * ) 2947 character :: UPLO 2948 complex*16 :: VT( LDVT, * ) 2949 end subroutine zbdsqr 2950 end interface 2951 2952 interface 2953 subroutine zgebak( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,& 2954 INFO ) 2955 implicit none 2956 integer :: IHI 2957 integer :: ILO 2958 integer :: INFO 2959 integer :: LDV 2960 integer :: M 2961 integer :: N 2962 character :: JOB 2963 double precision :: SCALE( * ) 2964 character :: SIDE 2965 complex*16 :: V( LDV, * ) 2966 end subroutine zgebak 2967 end interface 2968 2969 interface 2970 subroutine zgebal( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) 2971 implicit none 2972 integer :: IHI 2973 integer :: ILO 2974 integer :: INFO 2975 integer :: LDA 2976 integer :: N 2977 complex*16 :: A( LDA, * ) 2978 character :: JOB 2979 double precision :: SCALE( * ) 2980 end subroutine zgebal 2981 end interface 2982 2983 interface 2984 subroutine zgebd2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO ) 2985 implicit none 2986 integer :: INFO 2987 integer :: LDA 2988 integer :: M 2989 integer :: N 2990 complex*16 :: A( LDA, * ) 2991 double precision :: D( * ) 2992 double precision :: E( * ) 2993 complex*16 :: TAUP( * ) 2994 complex*16 :: TAUQ( * ) 2995 complex*16 :: WORK( * ) 2996 end subroutine zgebd2 2997 end interface 2998 2999 interface 3000 subroutine zgebrd( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK,& 3001 INFO ) 3002 implicit none 3003 integer :: INFO 3004 integer :: LDA 3005 integer :: LWORK 3006 integer :: M 3007 integer :: N 3008 complex*16 :: A( LDA, * ) 3009 double precision :: D( * ) 3010 double precision :: E( * ) 3011 complex*16 :: TAUP( * ) 3012 complex*16 :: TAUQ( * ) 3013 complex*16 :: WORK( * ) 3014 end subroutine zgebrd 3015 end interface 3016 3017 interface 3018 subroutine zgees( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,& 3019 LDVS, WORK, LWORK, RWORK, BWORK, INFO ) 3020 implicit none 3021 integer :: INFO 3022 integer :: LDA 3023 integer :: LDVS 3024 integer :: LWORK 3025 integer :: N 3026 integer :: SDIM 3027 complex*16 :: A( LDA, * ) 3028 logical :: BWORK( * ) 3029 character :: JOBVS 3030 double precision :: RWORK( * ) 3031 logical :: SELECT 3032 character :: SORT 3033 complex*16 :: VS( LDVS, * ) 3034 complex*16 :: W( * ) 3035 complex*16 :: WORK( * ) 3036 end subroutine zgees 3037 end interface 3038 3039 interface 3040 subroutine zgeev( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, VR, LDVR,& 3041 WORK, LWORK, RWORK, INFO ) 3042 implicit none 3043 character :: JOBVL 3044 character :: JOBVR 3045 integer :: INFO 3046 integer :: LDA 3047 integer :: LDVL 3048 integer :: LDVR 3049 integer :: LWORK 3050 integer :: N 3051 double precision :: RWORK( * ) 3052 complex*16 :: A( LDA, * ) 3053 complex*16 :: VL( LDVL, * ) 3054 complex*16 :: VR( LDVR, * ) 3055 complex*16 :: W( * ) 3056 complex*16 :: WORK( * ) 3057 end subroutine zgeev 3058 end interface 3059 3060 interface 3061 subroutine zgehd2( N, ILO, IHI, A, LDA, TAU, WORK, INFO ) 3062 implicit none 3063 integer :: IHI 3064 integer :: ILO 3065 integer :: INFO 3066 integer :: LDA 3067 integer :: N 3068 complex*16 :: A( LDA, * ) 3069 complex*16 :: TAU( * ) 3070 complex*16 :: WORK( * ) 3071 end subroutine zgehd2 3072 end interface 3073 3074 interface 3075 subroutine zgehrd( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO ) 3076 implicit none 3077 integer :: IHI 3078 integer :: ILO 3079 integer :: INFO 3080 integer :: LDA 3081 integer :: LWORK 3082 integer :: N 3083 complex*16 :: A( LDA, * ) 3084 complex*16 :: TAU( * ) 3085 complex*16 :: WORK( LWORK ) 3086 end subroutine zgehrd 3087 end interface 3088 3089 interface 3090 subroutine zgelq2( M, N, A, LDA, TAU, WORK, INFO ) 3091 implicit none 3092 integer :: INFO 3093 integer :: LDA 3094 integer :: M 3095 integer :: N 3096 complex*16 :: A( LDA, * ) 3097 complex*16 :: TAU( * ) 3098 complex*16 :: WORK( * ) 3099 end subroutine zgelq2 3100 end interface 3101 3102 interface 3103 subroutine zgelqf( M, N, A, LDA, TAU, WORK, LWORK, INFO ) 3104 implicit none 3105 integer :: INFO 3106 integer :: LDA 3107 integer :: LWORK 3108 integer :: M 3109 integer :: N 3110 complex*16 :: A( LDA, * ) 3111 complex*16 :: TAU( * ) 3112 complex*16 :: WORK( * ) 3113 end subroutine zgelqf 3114 end interface 3115 3116 interface 3117 subroutine zgeqr2( M, N, A, LDA, TAU, WORK, INFO ) 3118 implicit none 3119 integer :: INFO 3120 integer :: LDA 3121 integer :: M 3122 integer :: N 3123 complex*16 :: A( LDA, * ) 3124 complex*16 :: TAU( * ) 3125 complex*16 :: WORK( * ) 3126 end subroutine zgeqr2 3127 end interface 3128 3129 interface 3130 subroutine zgeqrf( M, N, A, LDA, TAU, WORK, LWORK, INFO ) 3131 implicit none 3132 integer :: INFO 3133 integer :: LDA 3134 integer :: LWORK 3135 integer :: M 3136 integer :: N 3137 complex*16 :: A( LDA, * ) 3138 complex*16 :: TAU( * ) 3139 complex*16 :: WORK( * ) 3140 end subroutine zgeqrf 3141 end interface 3142 3143 !interface 3144 ! subroutine zgesv( N, NRHS, A, LDA, IPIV, B, LDB, INFO ) 3145 ! implicit none 3146 ! integer :: INFO 3147 ! integer :: IPIV( * ) 3148 ! integer :: LDA 3149 ! integer :: LDB 3150 ! integer :: N 3151 ! integer :: NRHS 3152 ! complex*16 :: A( LDA, * ) 3153 ! complex*16 :: B( LDB, * ) 3154 ! end subroutine zgesv 3155 !end interface 3156 3157 interface 3158 subroutine zgesvd( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT,& 3159 WORK, LWORK, RWORK, INFO ) 3160 implicit none 3161 integer :: INFO 3162 integer :: LDA 3163 integer :: LDU 3164 integer :: LDVT 3165 integer :: LWORK 3166 integer :: M 3167 integer :: N 3168 complex*16 :: A( LDA, * ) 3169 character :: JOBU 3170 character :: JOBVT 3171 double precision :: RWORK( * ) 3172 double precision :: S( * ) 3173 complex*16 :: U( LDU, * ) 3174 complex*16 :: VT( LDVT, * ) 3175 complex*16 :: WORK( * ) 3176 end subroutine zgesvd 3177 end interface 3178 3179 interface 3180 subroutine zgetf2( M, N, A, LDA, IPIV, INFO ) 3181 implicit none 3182 integer :: INFO 3183 integer :: IPIV( * ) 3184 integer :: LDA 3185 integer :: M 3186 integer :: N 3187 complex*16 :: A( LDA, * ) 3188 end subroutine zgetf2 3189 end interface 3190 3191 interface 3192 subroutine zgetri( N, A, LDA, IPIV, WORK, LWORK, INFO ) 3193 implicit none 3194 integer :: INFO 3195 integer :: LDA 3196 integer :: LWORK 3197 integer :: N 3198 integer :: IPIV( * ) 3199 complex*16 :: A( LDA, * ) 3200 complex*16 :: WORK( * ) 3201 end subroutine zgetri 3202 end interface 3203 3204 !interface 3205 ! subroutine zgetrf( M, N, A, LDA, IPIV, INFO ) 3206 ! implicit none 3207 ! integer :: INFO 3208 ! integer :: IPIV( * ) 3209 ! integer :: LDA 3210 ! integer :: M 3211 ! integer :: N 3212 ! complex*16 :: A( LDA, * ) 3213 ! end subroutine zgetrf 3214 !end interface 3215 3216 interface 3217 subroutine zgetrs( TRANS, N, NRHS, A, LDA, IPIV, B, LDB, INFO ) 3218 implicit none 3219 integer :: INFO 3220 integer :: IPIV( * ) 3221 integer :: LDA 3222 integer :: LDB 3223 integer :: N 3224 integer :: NRHS 3225 complex*16 :: A( LDA, * ) 3226 complex*16 :: B( LDB, * ) 3227 character :: TRANS 3228 end subroutine zgetrs 3229 end interface 3230 3231 !interface 3232 ! subroutine zheev( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO ) 3233 ! implicit none 3234 ! integer :: INFO 3235 ! integer :: LDA 3236 ! integer :: LWORK 3237 ! integer :: N 3238 ! complex*16 :: A( LDA, * ) 3239 ! character :: JOBZ 3240 ! double precision :: RWORK( * ) 3241 ! character :: UPLO 3242 ! double precision :: W( * ) 3243 ! complex*16 :: WORK( * ) 3244 ! end subroutine zheev 3245 !end interface 3246 3247 interface 3248 subroutine zhegs2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) 3249 implicit none 3250 integer :: INFO 3251 integer :: ITYPE 3252 integer :: LDA 3253 integer :: LDB 3254 integer :: N 3255 complex*16 :: A( LDA, * ) 3256 complex*16 :: B( LDB, * ) 3257 character :: UPLO 3258 end subroutine zhegs2 3259 end interface 3260 3261 !interface 3262 ! subroutine zhegst( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) 3263 ! implicit none 3264 ! integer :: INFO 3265 ! integer :: ITYPE 3266 ! integer :: LDA 3267 ! integer :: LDB 3268 ! integer :: N 3269 ! complex*16 :: A( LDA, * ) 3270 ! complex*16 :: B( LDB, * ) 3271 ! character :: UPLO 3272 ! end subroutine zhegst 3273 !end interface 3274 3275 !interface 3276 ! subroutine zhegv( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK,& 3277 ! LWORK, RWORK, INFO ) 3278 ! implicit none 3279 ! integer :: INFO 3280 ! integer :: ITYPE 3281 ! integer :: LDA 3282 ! integer :: LDB 3283 ! integer :: LWORK 3284 ! integer :: N 3285 ! complex*16 :: A( LDA, * ) 3286 ! complex*16 :: B( LDB, * ) 3287 ! character :: JOBZ 3288 ! double precision :: RWORK( * ) 3289 ! character :: UPLO 3290 ! double precision :: W( * ) 3291 ! complex*16 :: WORK( * ) 3292 ! end subroutine zhegv 3293 !end interface 3294 3295 interface 3296 subroutine zhetd2( UPLO, N, A, LDA, D, E, TAU, INFO ) 3297 implicit none 3298 integer :: INFO 3299 integer :: LDA 3300 integer :: N 3301 complex*16 :: A( LDA, * ) 3302 double precision :: D( * ) 3303 double precision :: E( * ) 3304 complex*16 :: TAU( * ) 3305 character :: UPLO 3306 end subroutine zhetd2 3307 end interface 3308 3309 interface 3310 subroutine zhetrd( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO ) 3311 implicit none 3312 integer :: INFO 3313 integer :: LDA 3314 integer :: LWORK 3315 integer :: N 3316 complex*16 :: A( LDA, * ) 3317 double precision :: D( * ) 3318 double precision :: E( * ) 3319 complex*16 :: TAU( * ) 3320 character :: UPLO 3321 complex*16 :: WORK( * ) 3322 end subroutine zhetrd 3323 end interface 3324 3325 !interface 3326 ! subroutine zhpev( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, RWORK, INFO ) 3327 ! implicit none 3328 ! integer :: INFO 3329 ! integer :: LDZ 3330 ! integer :: N 3331 ! complex*16 :: AP( * ) 3332 ! character :: JOBZ 3333 ! double precision :: RWORK( * ) 3334 ! character :: UPLO 3335 ! double precision :: W( * ) 3336 ! complex*16 :: WORK( * ) 3337 ! complex*16 :: Z( LDZ, * ) 3338 ! end subroutine zhpev 3339 !end interface 3340 3341 !interface 3342 ! subroutine zhpevx( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU,& 3343 ! ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK,& 3344 ! IFAIL, INFO ) 3345 ! implicit none 3346 ! integer :: IFAIL( * ) 3347 ! integer :: IL 3348 ! integer :: INFO 3349 ! integer :: IU 3350 ! integer :: IWORK( * ) 3351 ! integer :: LDZ 3352 ! integer :: M 3353 ! integer :: N 3354 ! double precision :: ABSTOL 3355 ! complex*16 :: AP( * ) 3356 ! character :: JOBZ 3357 ! character :: RANGE 3358 ! double precision :: RWORK( * ) 3359 ! character :: UPLO 3360 ! double precision :: VL 3361 ! double precision :: VU 3362 ! double precision :: W( * ) 3363 ! complex*16 :: WORK( * ) 3364 ! complex*16 :: Z( LDZ, * ) 3365 ! end subroutine zhpevx 3366 !end interface 3367 3368 interface 3369 subroutine zhpgst( ITYPE, UPLO, N, AP, BP, INFO ) 3370 implicit none 3371 integer :: INFO 3372 integer :: ITYPE 3373 integer :: N 3374 complex*16 :: AP( * ) 3375 complex*16 :: BP( * ) 3376 character :: UPLO 3377 end subroutine zhpgst 3378 end interface 3379 3380 !interface 3381 ! subroutine zhpgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,& 3382 ! RWORK, INFO ) 3383 ! implicit none 3384 ! integer :: INFO 3385 ! integer :: ITYPE 3386 ! integer :: LDZ 3387 ! integer :: N 3388 ! complex*16 :: AP( * ) 3389 ! complex*16 :: BP( * ) 3390 ! character :: JOBZ 3391 ! double precision :: RWORK( * ) 3392 ! character :: UPLO 3393 ! double precision :: W( * ) 3394 ! complex*16 :: WORK( * ) 3395 ! complex*16 :: Z( LDZ, * ) 3396 ! end subroutine zhpgv 3397 !end interface 3398 3399 interface 3400 subroutine zhptrd( UPLO, N, AP, D, E, TAU, INFO ) 3401 implicit none 3402 integer :: INFO 3403 integer :: N 3404 complex*16 :: AP( * ) 3405 double precision :: D( * ) 3406 double precision :: E( * ) 3407 complex*16 :: TAU( * ) 3408 character :: UPLO 3409 end subroutine zhptrd 3410 end interface 3411 3412 interface 3413 subroutine zhseqr( JOB, COMPZ, N, ILO, IHI, H, LDH, W, Z, LDZ,& 3414 WORK, LWORK, INFO ) 3415 implicit none 3416 integer :: IHI 3417 integer :: ILO 3418 integer :: INFO 3419 integer :: LDH 3420 integer :: LDZ 3421 integer :: LWORK 3422 integer :: N 3423 character :: COMPZ 3424 complex*16 :: H( LDH, * ) 3425 character :: JOB 3426 complex*16 :: W( * ) 3427 complex*16 :: WORK( * ) 3428 complex*16 :: Z( LDZ, * ) 3429 end subroutine zhseqr 3430 end interface 3431 3432 interface 3433 subroutine zlabrd( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y,& 3434 LDY ) 3435 implicit none 3436 integer :: LDA 3437 integer :: LDX 3438 integer :: LDY 3439 integer :: M 3440 integer :: N 3441 integer :: NB 3442 complex*16 :: A( LDA, * ) 3443 double precision :: D( * ) 3444 double precision :: E( * ) 3445 complex*16 :: TAUP( * ) 3446 complex*16 :: TAUQ( * ) 3447 complex*16 :: X( LDX, * ) 3448 complex*16 :: Y( LDY, * ) 3449 end subroutine zlabrd 3450 end interface 3451 3452 interface 3453 subroutine zlacgv( N, X, INCX ) 3454 implicit none 3455 integer :: INCX 3456 integer :: N 3457 complex*16 :: X( * ) 3458 end subroutine zlacgv 3459 end interface 3460 3461 interface 3462 subroutine zlacon( N, V, X, EST, KASE ) 3463 implicit none 3464 integer :: KASE 3465 integer :: N 3466 double precision :: EST 3467 complex*16 :: V( N ) 3468 complex*16 :: X( N ) 3469 end subroutine zlacon 3470 end interface 3471 3472 interface 3473 subroutine zlacpy( UPLO, M, N, A, LDA, B, LDB ) 3474 implicit none 3475 integer :: LDA 3476 integer :: LDB 3477 integer :: M 3478 integer :: N 3479 complex*16 :: A( LDA, * ) 3480 complex*16 :: B( LDB, * ) 3481 character :: UPLO 3482 end subroutine zlacpy 3483 end interface 3484 3485 interface 3486 double complex function zladiv( X, Y ) 3487 implicit none 3488 complex*16 :: X 3489 complex*16 :: Y 3490 end function zladiv 3491 end interface 3492 3493 interface 3494 subroutine zlahqr( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,& 3495 IHIZ, Z, LDZ, INFO ) 3496 implicit none 3497 integer :: IHI 3498 integer :: IHIZ 3499 integer :: ILO 3500 integer :: ILOZ 3501 integer :: INFO 3502 integer :: LDH 3503 integer :: LDZ 3504 integer :: N 3505 complex*16 :: H( LDH, * ) 3506 complex*16 :: W( * ) 3507 logical :: WANTT 3508 logical :: WANTZ 3509 complex*16 :: Z( LDZ, * ) 3510 end subroutine zlahqr 3511 end interface 3512 3513 interface 3514 subroutine zlahrd( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) 3515 implicit none 3516 integer :: K 3517 integer :: LDA 3518 integer :: LDT 3519 integer :: LDY 3520 integer :: N 3521 integer :: NB 3522 complex*16 :: A( LDA, * ) 3523 complex*16 :: T( LDT, NB ) 3524 complex*16 :: TAU( NB ) 3525 complex*16 :: Y( LDY, NB ) 3526 end subroutine zlahrd 3527 end interface 3528 3529 interface 3530 subroutine zlahr2( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY ) 3531 implicit none 3532 integer :: K 3533 integer :: LDA 3534 integer :: LDT 3535 integer :: LDY 3536 integer :: N 3537 integer :: NB 3538 complex*16 :: A( LDA, * ) 3539 complex*16 :: T( LDT, NB ) 3540 complex*16 :: TAU( NB ) 3541 complex*16 :: Y( LDY, NB ) 3542 end subroutine zlahr2 3543 end interface 3544 3545 interface 3546 double precision function zlange( NORM, M, N, A, LDA, WORK ) 3547 implicit none 3548 integer :: LDA 3549 integer :: M 3550 integer :: N 3551 complex*16 :: A( LDA, * ) 3552 character :: NORM 3553 double precision :: WORK( * ) 3554 end function zlange 3555 end interface 3556 3557 interface 3558 double precision function zlanhe( NORM, UPLO, N, A, LDA, WORK ) 3559 implicit none 3560 integer :: LDA 3561 integer :: N 3562 complex*16 :: A( LDA, * ) 3563 character :: NORM 3564 character :: UPLO 3565 double precision :: WORK( * ) 3566 end function zlanhe 3567 end interface 3568 3569 interface 3570 double precision function zlanhp( NORM, UPLO, N, AP, WORK ) 3571 implicit none 3572 integer :: N 3573 complex*16 :: AP( * ) 3574 character :: NORM 3575 character :: UPLO 3576 double precision :: WORK( * ) 3577 end function zlanhp 3578 end interface 3579 3580 interface 3581 double precision function zlanhs( NORM, N, A, LDA, WORK ) 3582 implicit none 3583 integer :: LDA 3584 integer :: N 3585 complex*16 :: A( LDA, * ) 3586 character :: NORM 3587 double precision :: WORK( * ) 3588 end function zlanhs 3589 end interface 3590 3591 interface 3592 subroutine zlaqr0( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,& 3593 IHIZ, Z, LDZ, WORK, LWORK, INFO ) 3594 implicit none 3595 integer :: IHI 3596 integer :: IHIZ 3597 integer :: ILO 3598 integer :: ILOZ 3599 integer :: INFO 3600 integer :: LDH 3601 integer :: LDZ 3602 integer :: LWORK 3603 integer :: N 3604 3605 complex*16 :: H( LDH, * ) 3606 complex*16 :: W( * ) 3607 complex*16 :: WORK( * ) 3608 complex*16 :: Z( LDZ, * ) 3609 3610 logical :: WANTT 3611 logical :: WANTZ 3612 end subroutine zlaqr0 3613 end interface 3614 3615 interface 3616 subroutine zlaqr1( N, H, LDH, S1, S2, V ) 3617 implicit none 3618 integer :: LDH 3619 integer :: N 3620 complex*16 :: S1 3621 complex*16 :: S2 3622 complex*16 :: H( LDH, * ) 3623 complex*16 :: V( * ) 3624 end subroutine zlaqr1 3625 end interface 3626 3627 interface 3628 subroutine zlaqr2( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ,& 3629 IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT,& 3630 NV, WV, LDWV, WORK, LWORK ) 3631 implicit none 3632 integer :: IHIZ, ILOZ, KBOT, KTOP, LDH, LDT 3633 integer :: LDV, LDWV, LDZ, LWORK, N, ND, NH 3634 integer :: NS, NV, NW 3635 logical :: WANTT, WANTZ 3636 complex*16 :: H( LDH, * ), SH( * ), T( LDT, * ) 3637 complex*16 :: V( LDV, * ),WORK( * ), WV( LDWV, * ), Z( LDZ, * ) 3638 end subroutine zlaqr2 3639 end interface 3640 3641 interface 3642 subroutine zlaqr3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ,& 3643 IHIZ, Z, LDZ, NS, ND, SH, V, LDV, NH, T, LDT,& 3644 NV, WV, LDWV, WORK, LWORK ) 3645 implicit none 3646 integer :: IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV 3647 integer :: LDZ, LWORK, N, ND, NH, NS, NV, NW 3648 logical :: WANTT, WANTZ 3649 complex*16 :: H( LDH, * ), SH( * ), T( LDT, * ) 3650 complex*16 :: V( LDV, * ),WORK( * ), WV( LDWV, * ), Z( LDZ, * ) 3651 end subroutine zlaqr3 3652 end interface 3653 3654 interface 3655 subroutine zlaqr4( WANTT, WANTZ, N, ILO, IHI, H, LDH, W, ILOZ,& 3656 IHIZ, Z, LDZ, WORK, LWORK, INFO ) 3657 implicit none 3658 integer :: IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N 3659 logical :: WANTT, WANTZ 3660 complex*16 :: H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * ) 3661 end subroutine zlaqr4 3662 end interface 3663 3664 interface 3665 subroutine zlaqr5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, S,& 3666 H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, LDU, NV,& 3667 WV, LDWV, NH, WH, LDWH ) 3668 implicit none 3669 integer :: IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV 3670 integer :: LDWH, LDWV, LDZ, N, NH, NSHFTS, NV 3671 logical :: WANTT, WANTZ 3672 complex*16 :: H( LDH, * ), S( * ), U( LDU, * ), V( LDV, * ) 3673 complex*16 :: WH( LDWH, * ), WV( LDWV, * ), Z( LDZ, * ) 3674 end subroutine zlaqr5 3675 end interface 3676 3677 interface 3678 subroutine zlarf( SIDE, M, N, V, INCV, TAU, C, LDC, WORK ) 3679 implicit none 3680 integer :: INCV 3681 integer :: LDC 3682 integer :: M 3683 integer :: N 3684 complex*16 :: C( LDC, * ) 3685 character :: SIDE 3686 complex*16 :: TAU 3687 complex*16 :: V( * ) 3688 complex*16 :: WORK( * ) 3689 end subroutine zlarf 3690 end interface 3691 3692 interface 3693 subroutine zlarfb( SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV,& 3694 T, LDT, C, LDC, WORK, LDWORK ) 3695 implicit none 3696 integer :: K 3697 integer :: LDC 3698 integer :: LDT 3699 integer :: LDV 3700 integer :: LDWORK 3701 integer :: M 3702 integer :: N 3703 complex*16 :: C( LDC, * ) 3704 character :: DIRECT 3705 character :: SIDE 3706 character :: STOREV 3707 complex*16 :: T( LDT, * ) 3708 character :: TRANS 3709 complex*16 :: V( LDV, * ) 3710 complex*16 :: WORK( LDWORK, * ) 3711 end subroutine zlarfb 3712 end interface 3713 3714 interface 3715 subroutine zlarfg( N, ALPHA, X, INCX, TAU ) 3716 implicit none 3717 integer :: INCX 3718 integer :: N 3719 complex*16 :: ALPHA 3720 complex*16 :: TAU 3721 complex*16 :: X( * ) 3722 end subroutine zlarfg 3723 end interface 3724 3725 interface 3726 subroutine zlarft( DIRECT, STOREV, N, K, V, LDV, TAU, T, LDT ) 3727 implicit none 3728 integer :: K 3729 integer :: LDT 3730 integer :: LDV 3731 integer :: N 3732 character :: DIRECT 3733 character :: STOREV 3734 complex*16 :: T( LDT, * ) 3735 complex*16 :: TAU( * ) 3736 complex*16 :: V( LDV, * ) 3737 end subroutine zlarft 3738 end interface 3739 3740 interface 3741 subroutine zlarfx( SIDE, M, N, V, TAU, C, LDC, WORK ) 3742 implicit none 3743 integer :: LDC 3744 integer :: M 3745 integer :: N 3746 complex*16 :: C( LDC, * ) 3747 character :: SIDE 3748 complex*16 :: TAU 3749 complex*16 :: V( * ) 3750 complex*16 :: WORK( * ) 3751 end subroutine zlarfx 3752 end interface 3753 3754 interface 3755 subroutine zlartg( F, G, CS, SN, R ) 3756 implicit none 3757 double precision :: CS 3758 complex*16 :: F 3759 complex*16 :: G 3760 complex*16 :: R 3761 complex*16 :: SN 3762 end subroutine zlartg 3763 end interface 3764 3765 interface 3766 subroutine zlascl( TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO ) 3767 implicit none 3768 integer :: INFO 3769 integer :: KL 3770 integer :: KU 3771 integer :: LDA 3772 integer :: M 3773 integer :: N 3774 complex*16 :: A( LDA, * ) 3775 double precision :: CFROM 3776 double precision :: CTO 3777 character :: TYPE 3778 end subroutine zlascl 3779 end interface 3780 3781 interface 3782 subroutine zlaset( UPLO, M, N, ALPHA, BETA, A, LDA ) 3783 implicit none 3784 integer :: LDA 3785 integer :: M 3786 integer :: N 3787 complex*16 :: A( LDA, * ) 3788 complex*16 :: ALPHA 3789 complex*16 :: BETA 3790 character :: UPLO 3791 end subroutine zlaset 3792 end interface 3793 3794 interface 3795 subroutine zlasr( SIDE, PIVOT, DIRECT, M, N, C, S, A, LDA ) 3796 implicit none 3797 integer :: LDA 3798 integer :: M 3799 integer :: N 3800 complex*16 :: A( LDA, * ) 3801 double precision :: C( * ) 3802 character :: DIRECT 3803 character :: PIVOT 3804 double precision :: S( * ) 3805 character :: SIDE 3806 end subroutine zlasr 3807 end interface 3808 3809 interface 3810 subroutine zlassq( N, X, INCX, SCALE, SUMSQ ) 3811 implicit none 3812 integer :: INCX 3813 integer :: N 3814 double precision :: SCALE 3815 double precision :: SUMSQ 3816 complex*16 :: X( * ) 3817 end subroutine zlassq 3818 end interface 3819 3820 interface 3821 subroutine zlaswp( N, A, LDA, K1, K2, IPIV, INCX ) 3822 implicit none 3823 integer :: INCX 3824 integer :: IPIV( * ) 3825 integer :: K1 3826 integer :: K2 3827 integer :: LDA 3828 integer :: N 3829 complex*16 :: A( LDA, * ) 3830 end subroutine zlaswp 3831 end interface 3832 3833 interface 3834 subroutine zlatrd( UPLO, N, NB, A, LDA, E, TAU, W, LDW ) 3835 implicit none 3836 integer :: LDA 3837 integer :: LDW 3838 integer :: N 3839 integer :: NB 3840 complex*16 :: A( LDA, * ) 3841 double precision :: E( * ) 3842 complex*16 :: TAU( * ) 3843 character :: UPLO 3844 complex*16 :: W( LDW, * ) 3845 end subroutine zlatrd 3846 end interface 3847 3848 interface 3849 subroutine zlatrs( UPLO, TRANS, DIAG, NORMIN, N, A, LDA, X, SCALE,& 3850 CNORM, INFO ) 3851 implicit none 3852 character :: DIAG, NORMIN, TRANS, UPLO 3853 integer :: INFO, LDA, N 3854 double precision :: SCALE 3855 double precision :: CNORM( * ) 3856 complex*16 :: A( LDA, * ), X( * ) 3857 end subroutine zlatrs 3858 end interface 3859 3860 interface 3861 subroutine zlazro( M, N, ALPHA, BETA, A, LDA ) 3862 implicit none 3863 integer :: LDA 3864 integer :: M 3865 integer :: N 3866 complex*16 :: A( LDA, * ) 3867 complex*16 :: ALPHA 3868 complex*16 :: BETA 3869 end subroutine zlazro 3870 end interface 3871 3872 interface 3873 subroutine zpotf2( UPLO, N, A, LDA, INFO ) 3874 implicit none 3875 integer :: INFO 3876 integer :: LDA 3877 integer :: N 3878 complex*16 :: A( LDA, * ) 3879 character :: UPLO 3880 end subroutine zpotf2 3881 end interface 3882 3883 !interface 3884 ! subroutine zpotrf( UPLO, N, A, LDA, INFO ) 3885 ! implicit none 3886 ! integer :: INFO 3887 ! integer :: LDA 3888 ! integer :: N 3889 ! complex*16 :: A( LDA, * ) 3890 ! character :: UPLO 3891 ! end subroutine zpotrf 3892 !end interface 3893 3894 interface 3895 subroutine zpptrf( UPLO, N, AP, INFO ) 3896 implicit none 3897 integer :: INFO 3898 integer :: N 3899 complex*16 :: AP( * ) 3900 character :: UPLO 3901 end subroutine zpptrf 3902 end interface 3903 3904 interface 3905 subroutine zrot( N, CX, INCX, CY, INCY, C, S ) 3906 implicit none 3907 integer :: INCX 3908 integer :: INCY 3909 integer :: N 3910 double precision :: C 3911 complex*16 :: CX( * ) 3912 complex*16 :: CY( * ) 3913 complex*16 :: S 3914 end subroutine zrot 3915 end interface 3916 3917 interface 3918 subroutine ztrevc( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR,& 3919 LDVR, MM, M, WORK, RWORK, INFO ) 3920 implicit none 3921 character :: HOWMNY, SIDE 3922 integer :: INFO, LDT, LDVL, LDVR, M, MM, N 3923 logical :: SELECT( * ) 3924 double precision :: RWORK( * ) 3925 complex*16 :: T( LDT, * ), VL( LDVL, * ), VR( LDVR, * ) 3926 complex*16 :: WORK( * ) 3927 end subroutine ztrevc 3928 end interface 3929 3930 interface 3931 subroutine ztrexc( COMPQ, N, T, LDT, Q, LDQ, IFST, ILST, INFO ) 3932 implicit none 3933 integer :: IFST 3934 integer :: ILST 3935 integer :: INFO 3936 integer :: LDQ 3937 integer :: LDT 3938 integer :: N 3939 character :: COMPQ 3940 complex*16 :: Q( LDQ, * ) 3941 complex*16 :: T( LDT, * ) 3942 end subroutine ztrexc 3943 end interface 3944 3945 interface 3946 subroutine ztrsen( JOB, COMPQ, SELECT, N, T, LDT, Q, LDQ, W, M, S,& 3947 SEP, WORK, LWORK, INFO ) 3948 implicit none 3949 integer :: INFO 3950 integer :: LDQ 3951 integer :: LDT 3952 integer :: LWORK 3953 integer :: M 3954 integer :: N 3955 character :: COMPQ 3956 character :: JOB 3957 complex*16 :: Q( LDQ, * ) 3958 double precision :: S 3959 logical :: SELECT( * ) 3960 double precision :: SEP 3961 complex*16 :: T( LDT, * ) 3962 complex*16 :: W( * ) 3963 complex*16 :: WORK( * ) 3964 end subroutine ztrsen 3965 end interface 3966 3967 interface 3968 subroutine ztrsyl( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C,& 3969 LDC, SCALE, INFO ) 3970 implicit none 3971 integer :: INFO 3972 integer :: ISGN 3973 integer :: LDA 3974 integer :: LDB 3975 integer :: LDC 3976 integer :: M 3977 integer :: N 3978 complex*16 :: A( LDA, * ) 3979 complex*16 :: B( LDB, * ) 3980 complex*16 :: C( LDC, * ) 3981 double precision :: SCALE 3982 character :: TRANA 3983 character :: TRANB 3984 end subroutine ztrsyl 3985 end interface 3986 3987 interface 3988 subroutine ztrti2( UPLO, DIAG, N, A, LDA, INFO ) 3989 implicit none 3990 character :: DIAG 3991 character :: UPLO 3992 integer :: INFO 3993 integer :: LDA 3994 integer :: N 3995 complex*16 :: A( LDA, * ) 3996 end subroutine ztrti2 3997 end interface 3998 3999 interface 4000 subroutine ztrtri( UPLO, DIAG, N, A, LDA, INFO ) 4001 implicit none 4002 character :: DIAG 4003 character :: UPLO 4004 integer :: INFO 4005 integer :: LDA 4006 integer :: N 4007 complex*16 :: A( LDA, * ) 4008 end subroutine ztrtri 4009 end interface 4010 4011 interface 4012 subroutine zungqr( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) 4013 implicit none 4014 integer :: INFO, K, LDA, LWORK, M, N 4015 complex*16 :: A( LDA, * ), TAU( * ), WORK( * ) 4016 end subroutine zungqr 4017 end interface 4018 4019 end module m_linalg_interfaces