TABLE OF CONTENTS


ABINIT/m_linalg_interfaces [ Modules ]

[ Top ] [ 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