!DEC$ FREEFORM

!
!  Copyright 2001 Compaq Computer Corporation
!  
!  Compaq and the Compaq logo Registered in U.S. Patent and Trademark
!  Office.
!  
!  Confidential computer software.  Valid license from Compaq required for
!  possession, use or copying.  Consistent with FAR 12.211 and 12.212,
!  Commerical Computer Software, Computer Software Documentation, and
!  Technical Data for Commmerical Items are licensed to the U.S. Government
!  under vendor's standard commerical license.
!

!DEC$ IF .NOT. DEFINED( __lapack_z_include )

   !DEC$ DEFINE __lapack_z_include

   !DEC$ IF DEFINED( _DLL )
      !DEC$ OBJCOMMENT LIB: "cxmldll.lib" 
   !DEC$ ELSE
      !DEC$ OBJCOMMENT LIB: "cxml.lib" 
   !DEC$ ENDIF

   INTERFACE
      SUBROUTINE zgbsv(n,kl,ku,nrhs,ab,ldab,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgbsv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: ldab
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kl
         INTEGER(KIND=4) :: ku
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ab(ldab,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgbsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zgbtrf(m,n,kl,ku,ab,ldab,ipiv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgbtrf
         INTEGER(KIND=4) :: ldab
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kl
         INTEGER(KIND=4) :: ku
         COMPLEX(KIND=8) :: ab(ldab,*)
         INTEGER(KIND=4) :: ipiv(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgbtrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgebak(job,side,n,ilo,ihi,scale,m,v,ldv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgebak
         INTEGER(KIND=4) :: ldv
         CHARACTER(LEN=1) :: job
         CHARACTER(LEN=1) :: side
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: ilo
         INTEGER(KIND=4) :: ihi
         REAL(KIND=8) :: scale(*)
         INTEGER(KIND=4) :: m
         COMPLEX(KIND=8) :: v(ldv,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgebak
   END INTERFACE

   INTERFACE
      SUBROUTINE zgebal(job,n,a,lda,ilo,ihi,scale,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgebal
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: job
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ilo
         INTEGER(KIND=4) :: ihi
         REAL(KIND=8) :: scale(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgebal
   END INTERFACE

   INTERFACE
      SUBROUTINE zgebrd(m,n,a,lda,d,e,tauq,taup,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgebrd
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: tauq(*)
         COMPLEX(KIND=8) :: taup(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgebrd
   END INTERFACE

   INTERFACE
      SUBROUTINE zgecon(norm,n,a,lda,anorm,rcond,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgecon
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: norm
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgecon
   END INTERFACE

   INTERFACE
      SUBROUTINE zgeequ(m,n,a,lda,r,c,rowcnd,colcnd,amax,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgeequ
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: r(*)
         REAL(KIND=8) :: c(*)
         REAL(KIND=8) :: rowcnd
         REAL(KIND=8) :: colcnd
         REAL(KIND=8) :: amax
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgeequ
   END INTERFACE

   INTERFACE
      SUBROUTINE zgehrd(n,ilo,ihi,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgehrd
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: ilo
         INTEGER(KIND=4) :: ihi
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgehrd
   END INTERFACE

   INTERFACE
      SUBROUTINE zgelqf(m,n,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgelqf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgelqf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgels(trans,m,n,nrhs,a,lda,b,ldb,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgels
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgels
   END INTERFACE

   INTERFACE
      SUBROUTINE zgeqlf(m,n,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgeqlf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgeqlf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgeqpf(m,n,a,lda,jpvt,tau,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgeqpf
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: jpvt(*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgeqpf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgeqrf(m,n,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgeqrf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgeqrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgerqf(m,n,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgerqf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgerqf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgesv(n,nrhs,a,lda,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgesv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgesv
   END INTERFACE

   INTERFACE
      SUBROUTINE zgetrf(m,n,a,lda,ipiv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgetrf
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgetrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgetri(n,a,lda,ipiv,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgetri
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgetri
   END INTERFACE

   INTERFACE
      SUBROUTINE zgetrs(trans,n,nrhs,a,lda,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgetrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgetrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zggglm(n,m,p,a,lda,b,ldb,d,x,y,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zggglm
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: p
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         COMPLEX(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: x(*)
         COMPLEX(KIND=8) :: y(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: info
      END SUBROUTINE zggglm
   END INTERFACE

   INTERFACE
      SUBROUTINE zgglse(m,n,p,a,lda,b,ldb,c,d,x,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgglse
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: p
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         COMPLEX(KIND=8) :: c(*)
         COMPLEX(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: x(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgglse
   END INTERFACE

   INTERFACE
      SUBROUTINE zgtsv(n,nrhs,dl,d,du,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgtsv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: dl(*)
         COMPLEX(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: du(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgtsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zgttrf(n,dl,d,du,du2,ipiv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgttrf
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: dl(*)
         COMPLEX(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: du(*)
         COMPLEX(KIND=8) :: du2(*)
         INTEGER(KIND=4) :: ipiv(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgttrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zgttrs(trans,n,nrhs,dl,d,du,du2,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zgttrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: dl(*)
         COMPLEX(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: du(*)
         COMPLEX(KIND=8) :: du2(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zgttrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zhecon(uplo,n,a,lda,ipiv,anorm,rcond,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhecon
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhecon
   END INTERFACE

   INTERFACE
      SUBROUTINE zheev(jobz,uplo,n,a,lda,w,work,lwork,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zheev
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: jobz
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: w(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: lwork
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zheev
   END INTERFACE

   INTERFACE
      SUBROUTINE zhegst(itype,uplo,n,a,lda,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhegst
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: itype
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhegst
   END INTERFACE

   INTERFACE
      SUBROUTINE zhetrd(uplo,n,a,lda,d,e,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhetrd
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhetrd
   END INTERFACE

   INTERFACE
      SUBROUTINE zhetrf(uplo,n,a,lda,ipiv,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhetrf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhetrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zhetri(uplo,n,a,lda,ipiv,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhetri
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhetri
   END INTERFACE

   INTERFACE
      SUBROUTINE zhetrs(uplo,n,nrhs,a,lda,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhetrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhetrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpcon(uplo,n,ap,ipiv,anorm,rcond,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhpcon
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhpcon
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpev(jobz,uplo,n,ap,w,z,ldz,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhpev
         INTEGER(KIND=4) :: ldz
         CHARACTER(LEN=1) :: jobz
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         REAL(KIND=8) :: w(*)
         COMPLEX(KIND=8) :: z(ldz,*)
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhpev
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpgst(itype,uplo,n,ap,bp,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhpgst
         INTEGER(KIND=4) :: itype
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: bp(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhpgst
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpsv(uplo,n,nrhs,ap,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhpsv
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhpsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zhptrd(uplo,n,ap,d,e,tau,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhptrd
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: tau(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhptrd
   END INTERFACE

   INTERFACE
      SUBROUTINE zhptrf(uplo,n,ap,ipiv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhptrf
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhptrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zhptri(uplo,n,ap,ipiv,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhptri
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhptri
   END INTERFACE

   INTERFACE
      SUBROUTINE zhptrs(uplo,n,nrhs,ap,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zhptrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zhptrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zpbequ(uplo,n,kd,ab,ldab,s,scond,amax,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpbequ
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         COMPLEX(KIND=8) :: ab(ldab,*)
         REAL(KIND=8) :: s(*)
         REAL(KIND=8) :: scond
         REAL(KIND=8) :: amax
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpbequ
   END INTERFACE

   INTERFACE
      SUBROUTINE zpbstf(uplo,n,kd,ab,ldab,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpbstf
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         COMPLEX(KIND=8) :: ab(ldab,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpbstf
   END INTERFACE

   INTERFACE
      SUBROUTINE zpbsv(uplo,n,kd,nrhs,ab,ldab,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpbsv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ab(ldab,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpbsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zpbtrf(uplo,n,kd,ab,ldab,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpbtrf
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         COMPLEX(KIND=8) :: ab(ldab,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpbtrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zpbtrs(uplo,n,kd,nrhs,ab,ldab,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpbtrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ab(ldab,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpbtrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zpocon(uplo,n,a,lda,anorm,rcond,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpocon
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpocon
   END INTERFACE

   INTERFACE
      SUBROUTINE zpoequ(n,a,lda,s,scond,amax,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpoequ
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: s(*)
         REAL(KIND=8) :: scond
         REAL(KIND=8) :: amax
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpoequ
   END INTERFACE

   INTERFACE
      SUBROUTINE zposv(uplo,n,nrhs,a,lda,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zposv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zposv
   END INTERFACE

   INTERFACE
      SUBROUTINE zpotrf(uplo,n,a,lda,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpotrf
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpotrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zpotri(uplo,n,a,lda,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpotri
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpotri
   END INTERFACE

   INTERFACE
      SUBROUTINE zpotrs(uplo,n,nrhs,a,lda,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpotrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpotrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zppcon(uplo,n,ap,anorm,rcond,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zppcon
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zppcon
   END INTERFACE

   INTERFACE
      SUBROUTINE zppequ(uplo,n,ap,s,scond,amax,info)
         !DEC$ ATTRIBUTES DEFAULT :: zppequ
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         REAL(KIND=8) :: s(*)
         REAL(KIND=8) :: scond
         REAL(KIND=8) :: amax
         INTEGER(KIND=4) :: info
      END SUBROUTINE zppequ
   END INTERFACE

   INTERFACE
      SUBROUTINE zppsv(uplo,n,nrhs,ap,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zppsv
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zppsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zpptrf(uplo,n,ap,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpptrf
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpptrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zpptri(uplo,n,ap,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpptri
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpptri
   END INTERFACE

   INTERFACE
      SUBROUTINE zpptrs(uplo,n,nrhs,ap,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpptrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpptrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zptcon(n,d,e,anorm,rcond,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zptcon
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: e(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zptcon
   END INTERFACE

   INTERFACE
      SUBROUTINE zpteqr(compz,n,d,e,z,ldz,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpteqr
         INTEGER(KIND=4) :: ldz
         CHARACTER(LEN=1) :: compz
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: z(ldz,*)
         REAL(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpteqr
   END INTERFACE

   INTERFACE
      SUBROUTINE zptsv(n,nrhs,d,e,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zptsv
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         REAL(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zptsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zpttrf(n,d,e,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpttrf
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: e(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpttrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zpttrs(uplo,n,nrhs,d,e,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zpttrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         REAL(KIND=8) :: d(*)
         COMPLEX(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zpttrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zspcon(uplo,n,ap,ipiv,anorm,rcond,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zspcon
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zspcon
   END INTERFACE

   INTERFACE
      SUBROUTINE zspsv(uplo,n,nrhs,ap,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zspsv
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zspsv
   END INTERFACE

   INTERFACE
      SUBROUTINE zsptrf(uplo,n,ap,ipiv,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsptrf
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsptrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zsptri(uplo,n,ap,ipiv,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsptri
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsptri
   END INTERFACE

   INTERFACE
      SUBROUTINE zsptrs(uplo,n,nrhs,ap,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsptrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsptrs
   END INTERFACE

   INTERFACE
      SUBROUTINE zsteqr(compz,n,d,e,z,ldz,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsteqr
         INTEGER(KIND=4) :: ldz
         CHARACTER(LEN=1) :: compz
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: e(*)
         COMPLEX(KIND=8) :: z(ldz,*)
         REAL(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsteqr
   END INTERFACE

   INTERFACE
      SUBROUTINE zsycon(uplo,n,a,lda,ipiv,anorm,rcond,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsycon
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         REAL(KIND=8) :: anorm
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsycon
   END INTERFACE

   INTERFACE
      SUBROUTINE zsytrf(uplo,n,a,lda,ipiv,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsytrf
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsytrf
   END INTERFACE

   INTERFACE
      SUBROUTINE zsytri(uplo,n,a,lda,ipiv,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsytri
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsytri
   END INTERFACE

   INTERFACE
      SUBROUTINE zsytrs(uplo,n,nrhs,a,lda,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: zsytrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zsytrs
   END INTERFACE

   INTERFACE
      SUBROUTINE ztpcon(norm,uplo,diag,n,ap,rcond,work,rwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztpcon
         CHARACTER(LEN=1) :: norm
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         REAL(KIND=8) :: rcond
         COMPLEX(KIND=8) :: work(*)
         REAL(KIND=8) :: rwork(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztpcon
   END INTERFACE

   INTERFACE
      SUBROUTINE ztptri(uplo,diag,n,ap,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztptri
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztptri
   END INTERFACE

   INTERFACE
      SUBROUTINE ztptrs(uplo,trans,diag,n,nrhs,ap,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztptrs
         INTEGER(KIND=4) :: ldb
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztptrs
   END INTERFACE

   INTERFACE
      SUBROUTINE ztrexc(compq,n,t,ldt,q,ldq,ifst,ilst,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztrexc
         INTEGER(KIND=4) :: ldq
         INTEGER(KIND=4) :: ldt
         CHARACTER(LEN=1) :: compq
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: t(ldt,*)
         COMPLEX(KIND=8) :: q(ldq,*)
         INTEGER(KIND=4) :: ifst
         INTEGER(KIND=4) :: ilst
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztrexc
   END INTERFACE

   INTERFACE
      SUBROUTINE ztrtri(uplo,diag,n,a,lda,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztrtri
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztrtri
   END INTERFACE

   INTERFACE
      SUBROUTINE ztrtrs(uplo,trans,diag,n,nrhs,a,lda,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztrtrs
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: nrhs
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztrtrs
   END INTERFACE

   INTERFACE
      SUBROUTINE ztzrqf(m,n,a,lda,tau,info)
         !DEC$ ATTRIBUTES DEFAULT :: ztzrqf
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ztzrqf
   END INTERFACE

   INTERFACE
      SUBROUTINE zungbr(vect,m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zungbr
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: vect
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zungbr
   END INTERFACE

   INTERFACE
      SUBROUTINE zunghr(n,ilo,ihi,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zunghr
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: ilo
         INTEGER(KIND=4) :: ihi
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zunghr
   END INTERFACE

   INTERFACE
      SUBROUTINE zunglq(m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zunglq
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zunglq
   END INTERFACE

   INTERFACE
      SUBROUTINE zungql(m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zungql
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zungql
   END INTERFACE

   INTERFACE
      SUBROUTINE zungqr(m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zungqr
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zungqr
   END INTERFACE

   INTERFACE
      SUBROUTINE zungrq(m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zungrq
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zungrq
   END INTERFACE

   INTERFACE
      SUBROUTINE zungtr(uplo,n,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: zungtr
         INTEGER(KIND=4) :: lwork
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zungtr
   END INTERFACE

   INTERFACE
      SUBROUTINE zupgtr(uplo,n,ap,tau,q,ldq,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: zupgtr
         INTEGER(KIND=4) :: ldq
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: tau(*)
         COMPLEX(KIND=8) :: q(ldq,*)
         COMPLEX(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE zupgtr
   END INTERFACE

!DEC$ ENDIF
