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

   !DEC$ DEFINE __lapack_d_include

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

   INTERFACE
      SUBROUTINE ddisna(job,m,n,d,sep,info)
         !DEC$ ATTRIBUTES DEFAULT :: ddisna
         CHARACTER(LEN=1) :: job
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         REAL(KIND=8) :: d(*)
         REAL(KIND=8) :: sep(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ddisna
   END INTERFACE

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE dgeequ(m,n,a,lda,r,c,rowcnd,colcnd,amax,info)
         !DEC$ ATTRIBUTES DEFAULT :: dgeequ
         INTEGER(KIND=4) :: lda
         INTEGER(KIND=4) :: m
         INTEGER(KIND=4) :: n
         REAL(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 dgeequ
   END INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE dsbev(jobz,uplo,n,kd,ab,ldab,w,z,ldz,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: dsbev
         INTEGER(KIND=4) :: ldz
         INTEGER(KIND=4) :: ldab
         CHARACTER(LEN=1) :: jobz
         CHARACTER(LEN=1) :: uplo
         INTEGER(KIND=4) :: n
         INTEGER(KIND=4) :: kd
         REAL(KIND=8) :: ab(ldab,*)
         REAL(KIND=8) :: w(*)
         REAL(KIND=8) :: z(ldz,*)
         REAL(KIND=8) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE dsbev
   END INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!DEC$ ENDIF
