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

   !DEC$ DEFINE __lapack_s_include

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   INTERFACE
      SUBROUTINE ssbev(jobz,uplo,n,kd,ab,ldab,w,z,ldz,work,info)
         !DEC$ ATTRIBUTES DEFAULT :: ssbev
         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=4) :: ab(ldab,*)
         REAL(KIND=4) :: w(*)
         REAL(KIND=4) :: z(ldz,*)
         REAL(KIND=4) :: work(*)
         INTEGER(KIND=4) :: info
      END SUBROUTINE ssbev
   END INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!DEC$ ENDIF
