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-2024 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

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