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

   !DEC$ DEFINE __blas_c_include

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

   INTERFACE
      SUBROUTINE caxpy(n,ca,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: caxpy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: ca
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE caxpy
   END INTERFACE

   INTERFACE
      SUBROUTINE ccopy(n,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: ccopy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE ccopy
   END INTERFACE

   INTERFACE
      FUNCTION cdotc(n,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: cdotc
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=4) :: cdotc
      END FUNCTION cdotc
   END INTERFACE

   INTERFACE
      FUNCTION cdotu(n,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: cdotu
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=4) :: cdotu
      END FUNCTION cdotu
   END INTERFACE

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

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

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

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

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

   INTERFACE
      SUBROUTINE chemm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: chemm
         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=4) :: alpha
         COMPLEX(KIND=4) :: a(lda,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         COMPLEX(KIND=4) :: beta
         COMPLEX(KIND=4) :: c(ldc,*)
      END SUBROUTINE chemm
   END INTERFACE

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

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

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

   INTERFACE
      SUBROUTINE cherk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: cherk
         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=4) :: alpha
         COMPLEX(KIND=4) :: a(lda,*)
         REAL(KIND=4) :: beta
         COMPLEX(KIND=4) :: c(ldc,*)
      END SUBROUTINE cherk
   END INTERFACE

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

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

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

   INTERFACE
      SUBROUTINE crot(n,cx,incx,cy,incy,c,s)
         !DEC$ ATTRIBUTES DEFAULT :: crot
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
         REAL(KIND=4) :: c
         COMPLEX(KIND=4) :: s
      END SUBROUTINE crot
   END INTERFACE

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

   INTERFACE
      SUBROUTINE cscal(n,ca,cx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: cscal
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: ca
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE cscal
   END INTERFACE

   INTERFACE
      SUBROUTINE cset(n,ca,cx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: cset
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: ca
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE cset
   END INTERFACE

   INTERFACE
      SUBROUTINE csrot(n,cx,incx,cy,incy,c,s)
         !DEC$ ATTRIBUTES DEFAULT :: csrot
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
         REAL(KIND=4) :: c
         REAL(KIND=4) :: s
      END SUBROUTINE csrot
   END INTERFACE

   INTERFACE
      SUBROUTINE csscal(n,sa,cx,incx)
         !DEC$ ATTRIBUTES DEFAULT :: csscal
         INTEGER(KIND=4) :: n
         REAL(KIND=4) :: sa
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE csscal
   END INTERFACE

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

   INTERFACE
      SUBROUTINE csvcal(n,sa,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: csvcal
         INTEGER(KIND=4) :: n
         REAL(KIND=4) :: sa
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE csvcal
   END INTERFACE

   INTERFACE
      SUBROUTINE cswap(n,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: cswap
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE cswap
   END INTERFACE

   INTERFACE
      SUBROUTINE csymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: csymm
         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=4) :: alpha
         COMPLEX(KIND=4) :: a(lda,*)
         COMPLEX(KIND=4) :: b(ldb,*)
         COMPLEX(KIND=4) :: beta
         COMPLEX(KIND=4) :: c(ldc,*)
      END SUBROUTINE csymm
   END INTERFACE

   INTERFACE
      SUBROUTINE csyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
         !DEC$ ATTRIBUTES DEFAULT :: csyrk
         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=4) :: alpha
         COMPLEX(KIND=4) :: a(lda,*)
         COMPLEX(KIND=4) :: beta
         COMPLEX(KIND=4) :: c(ldc,*)
      END SUBROUTINE csyrk
   END INTERFACE

   INTERFACE
      SUBROUTINE ctbmv(uplo,trans,diag,n,k,a,lda,x,incx)
         !DEC$ ATTRIBUTES DEFAULT :: ctbmv
         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=4) :: a(lda,*)
         COMPLEX(KIND=4) :: x(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE ctbmv
   END INTERFACE

   INTERFACE
      SUBROUTINE ctbsv(uplo,trans,diag,n,k,a,lda,x,incx)
         !DEC$ ATTRIBUTES DEFAULT :: ctbsv
         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=4) :: a(lda,*)
         COMPLEX(KIND=4) :: x(*)
         INTEGER(KIND=4) :: incx
      END SUBROUTINE ctbsv
   END INTERFACE

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

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

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

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

   INTERFACE
      SUBROUTINE cvcal(n,ca,cx,incx,cy,incy)
         !DEC$ ATTRIBUTES DEFAULT :: cvcal
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: ca
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
      END SUBROUTINE cvcal
   END INTERFACE

   INTERFACE
      SUBROUTINE czaxpy(n,ca,cx,incx,cy,incy,cz,incz)
         !DEC$ ATTRIBUTES DEFAULT :: czaxpy
         INTEGER(KIND=4) :: n
         COMPLEX(KIND=4) :: ca
         COMPLEX(KIND=4) :: cx(*)
         INTEGER(KIND=4) :: incx
         COMPLEX(KIND=4) :: cy(*)
         INTEGER(KIND=4) :: incy
         COMPLEX(KIND=4) :: cz(*)
         INTEGER(KIND=4) :: incz
      END SUBROUTINE czaxpy
   END INTERFACE

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

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

!DEC$ ENDIF
