!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_c_include )

   !DEC$ DEFINE __lapack_c_include

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

   INTERFACE
      SUBROUTINE cgbsv(n,kl,ku,nrhs,ab,ldab,ipiv,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: cgbsv
         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=4) :: ab(ldab,*)
         INTEGER(KIND=4) :: ipiv(*)
         COMPLEX(KIND=4) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cgbsv
   END INTERFACE

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

   INTERFACE
      SUBROUTINE cgebak(job,side,n,ilo,ihi,scale,m,v,ldv,info)
         !DEC$ ATTRIBUTES DEFAULT :: cgebak
         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=4) :: scale(*)
         INTEGER(KIND=4) :: m
         COMPLEX(KIND=4) :: v(ldv,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cgebak
   END INTERFACE

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE cgels(trans,m,n,nrhs,a,lda,b,ldb,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: cgels
         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=4) :: a(lda,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         COMPLEX(KIND=4) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cgels
   END INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE cpbsv(uplo,n,kd,nrhs,ab,ldab,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: cpbsv
         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=4) :: ab(ldab,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cpbsv
   END INTERFACE

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

   INTERFACE
      SUBROUTINE cpbtrs(uplo,n,kd,nrhs,ab,ldab,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: cpbtrs
         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=4) :: ab(ldab,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cpbtrs
   END INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE ctptrs(uplo,trans,diag,n,nrhs,ap,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: ctptrs
         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=4) :: ap(*)
         COMPLEX(KIND=4) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ctptrs
   END INTERFACE

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

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

   INTERFACE
      SUBROUTINE ctrtrs(uplo,trans,diag,n,nrhs,a,lda,b,ldb,info)
         !DEC$ ATTRIBUTES DEFAULT :: ctrtrs
         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=4) :: a(lda,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ctrtrs
   END INTERFACE

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

   INTERFACE
      SUBROUTINE cungbr(vect,m,n,k,a,lda,tau,work,lwork,info)
         !DEC$ ATTRIBUTES DEFAULT :: cungbr
         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=4) :: a(lda,*)
         COMPLEX(KIND=4) :: tau(*)
         COMPLEX(KIND=4) :: work(lwork)
         INTEGER(KIND=4) :: info
      END SUBROUTINE cungbr
   END INTERFACE

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

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

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

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

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

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

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

!DEC$ ENDIF
