!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( __blas_z_include )

   !DEC$ DEFINE __blas_z_include

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

   INTERFACE
      FUNCTION izamax(n,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: izamax
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         INTEGER(KIND=4) :: izamax
      END FUNCTION izamax
   END INTERFACE

   INTERFACE
      FUNCTION izamin(n,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: izamin
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         INTEGER(KIND=4) :: izamin
      END FUNCTION izamin
   END INTERFACE

   INTERFACE
      SUBROUTINE zaxpy(n,za,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zaxpy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: za
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zaxpy
   END INTERFACE

   INTERFACE
      SUBROUTINE zcopy(n,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zcopy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zcopy
   END INTERFACE

   INTERFACE
      FUNCTION zdotc(n,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zdotc
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: zdotc
      END FUNCTION zdotc
   END INTERFACE

   INTERFACE
      FUNCTION zdotu(n,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zdotu
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: zdotu
      END FUNCTION zdotu
   END INTERFACE

   INTERFACE
      SUBROUTINE zdrot(n,zx,incx,zy,incy,c,s)
         !DEC$ ATTRIBUTES DEFAULT :: zdrot
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
         REAL(KIND=8) :: c
         REAL(KIND=8) :: s
      END SUBROUTINE zdrot
   END INTERFACE

   INTERFACE
      SUBROUTINE zdscal(n,da,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: zdscal
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: da
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE zdscal
   END INTERFACE

   INTERFACE
      SUBROUTINE zdvcal(n,da,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zdvcal
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: da
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zdvcal
   END INTERFACE

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

   INTERFACE
      SUBROUTINE zgemv(trans,m,n,alpha,a,lda,x,incx,beta,y,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zgemv
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zgemv
   END INTERFACE

   INTERFACE
      SUBROUTINE zgerc(m,n,alpha,x,incx,y,incy,a,lda)
         !DEC$ ATTRIBUTES DEFAULT :: zgerc
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: a(lda,*)
      END SUBROUTINE zgerc
   END INTERFACE

   INTERFACE
      SUBROUTINE zgeru(m,n,alpha,x,incx,y,incy,a,lda)
         !DEC$ ATTRIBUTES DEFAULT :: zgeru
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: a(lda,*)
      END SUBROUTINE zgeru
   END INTERFACE

   INTERFACE
      SUBROUTINE zhbmv(uplo,n,k,alpha,a,lda,x,incx,beta,y,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zhbmv
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zhbmv
   END INTERFACE

   INTERFACE
      SUBROUTINE zhemm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: zhemm
         INTEGER(KIND=4) :: ldc
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: side
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: c(ldc,*)
      END SUBROUTINE zhemm
   END INTERFACE

   INTERFACE
      SUBROUTINE zhemv(uplo,n,alpha,a,lda,x,incx,beta,y,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zhemv
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zhemv
   END INTERFACE

   INTERFACE
      SUBROUTINE zher(uplo,n,alpha,x,incx,a,lda)
         !DEC$ ATTRIBUTES DEFAULT :: zher
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: a(lda,*)
      END SUBROUTINE zher
   END INTERFACE

   INTERFACE
      SUBROUTINE zher2(uplo,n,alpha,x,incx,y,incy,a,lda)
         !DEC$ ATTRIBUTES DEFAULT :: zher2
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: a(lda,*)
      END SUBROUTINE zher2
   END INTERFACE

   INTERFACE
      SUBROUTINE zherk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: zherk
         INTEGER(KIND=4) :: ldc
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         REAL(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         REAL(KIND=8) :: beta
         COMPLEX(KIND=8) :: c(ldc,*)
      END SUBROUTINE zherk
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpmv(uplo,n,alpha,ap,x,incx,beta,y,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zhpmv
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: ap(*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zhpmv
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpr(uplo,n,alpha,x,incx,ap)
         !DEC$ ATTRIBUTES DEFAULT :: zhpr
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: ap(*)
      END SUBROUTINE zhpr
   END INTERFACE

   INTERFACE
      SUBROUTINE zhpr2(uplo,n,alpha,x,incx,y,incy,ap)
         !DEC$ ATTRIBUTES DEFAULT :: zhpr2
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: y(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: ap(*)
      END SUBROUTINE zhpr2
   END INTERFACE

   INTERFACE
      SUBROUTINE zrot(n,zx,incx,zy,incy,c,s)
         !DEC$ ATTRIBUTES DEFAULT :: zrot
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
         REAL(KIND=8) :: c
         COMPLEX(KIND=8) :: s
      END SUBROUTINE zrot
   END INTERFACE

   INTERFACE
      SUBROUTINE zrotg(ca,cb,c,s)
         !DEC$ ATTRIBUTES DEFAULT :: zrotg
         COMPLEX(KIND=8) :: ca
         COMPLEX(KIND=8) :: cb
         REAL(KIND=8) :: c
         COMPLEX(KIND=8) :: s
      END SUBROUTINE zrotg
   END INTERFACE

   INTERFACE
      SUBROUTINE zscal(n,za,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: zscal
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: za
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE zscal
   END INTERFACE

   INTERFACE
      SUBROUTINE zset(n,za,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: zset
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: za
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE zset
   END INTERFACE

   INTERFACE
      FUNCTION zsum(n,zx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: zsum
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zsum
      END FUNCTION zsum
   END INTERFACE

   INTERFACE
      SUBROUTINE zswap(n,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zswap
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zswap
   END INTERFACE

   INTERFACE
      SUBROUTINE zsymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: zsymm
         INTEGER(KIND=4) :: ldc
         INTEGER(KIND=4) :: ldb
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: side
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: b(ldb,*)
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: c(ldc,*)
      END SUBROUTINE zsymm
   END INTERFACE

   INTERFACE
      SUBROUTINE zsyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: zsyrk
         INTEGER(KIND=4) :: ldc
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: alpha
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: beta
         COMPLEX(KIND=8) :: c(ldc,*)
      END SUBROUTINE zsyrk
   END INTERFACE

   INTERFACE
      SUBROUTINE ztbmv(uplo,trans,diag,n,k,a,lda,x,incx)
         !DEC$ ATTRIBUTES DEFAULT :: ztbmv
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE ztbmv
   END INTERFACE

   INTERFACE
      SUBROUTINE ztbsv(uplo,trans,diag,n,k,a,lda,x,incx)
         !DEC$ ATTRIBUTES DEFAULT :: ztbsv
         INTEGER(KIND=4) :: lda
         CHARACTER(LEN=1) :: uplo
         CHARACTER(LEN=1) :: trans
         CHARACTER(LEN=1) :: diag
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: k
         COMPLEX(KIND=8) :: a(lda,*)
         COMPLEX(KIND=8) :: x(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE ztbsv
   END INTERFACE

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

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

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

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

   INTERFACE
      SUBROUTINE zvcal(n,za,zx,incx,zy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: zvcal
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: za
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE zvcal
   END INTERFACE

   INTERFACE
      SUBROUTINE zzaxpy(n,za,zx,incx,zy,incy,zz,incz)
         !DEC$ ATTRIBUTES DEFAULT :: zzaxpy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=8) :: za
         COMPLEX(KIND=8) :: zx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=8) :: zy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=8) :: zz(*)
         INTEGER(KIND=4) :: incz
      END SUBROUTINE zzaxpy
   END INTERFACE

!DEC$ ENDIF
