
subroutine cbdsqr
  in character*1 uplo
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex vt array (ldvt, ncvt)
  in integer ldvt
  in/out complex u array (ldu, n)
  in integer ldu
  in/out complex c array (ldc, ncc)
  in integer ldc
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgbbrd
  in character*1 vect
  in integer m
  in integer n
  in integer ncc
  in integer kl
  in integer ku
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out complex q array dimension (ldq,m)
  in integer ldq
  out complex pt array dimension (ldpt,n)
  in integer ldpt
  in/out complex c array dimension (ldc,ncc)
  in integer ldc
  in/out complex work array dimension (max(m,n))
  in/out real rwork array dimension (max(m,n))
  out integer info
subroutine cgbcon
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in complex ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgbequ
  in integer m
  in integer n
  in integer kl
  in integer ku
  in complex ab array dimension (ldab,n)
  in integer ldab
  out real r array dimension (m)
  out real c array dimension (n)
  out real rowcnd
  out real colcnd
  out real amax
  out integer info
subroutine cgbrfs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in complex afb array dimension (ldafb,n)
  in integer ldafb
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgbsv
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cgbsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex afb array dimension (ldafb,n)
  in integer ldafb
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out real r array dimension (n)
  in/out real c array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgbtf2
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine cgbtrf
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine cgbtrs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cgebak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in real scale array dimension (n)
  in integer m
  in/out complex v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine cgebal
  in character*1 job
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ilo
  out integer ihi
  out real scale array dimension (n)
  out integer info
subroutine cgebd2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out complex tauq array dimension (min(m,n))
  out complex taup array dimension (min(m,n))
  in/out complex work array dimension (max(m,n))
  out integer info
subroutine cgebrd
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out complex tauq array dimension (min(m,n))
  out complex taup array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgecon
  in character*1 norm
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgeequ
  in integer m
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  out real r array dimension (m)
  out real c array dimension (n)
  out real rowcnd
  out real colcnd
  out real amax
  out integer info
subroutine cgees
  in character*1 jobvs
  in character*1 sort
  in logical select one procedure 
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer sdim
  out complex w array dimension (n)
  out complex vs array dimension (ldvs,n)
  in integer ldvs
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine cgeesx
  in character*1 jobvs
  in character*1 sort
  in logical select one procedure 
  in character*1 sense
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  out integer sdim
  out complex w array dimension (n)
  out complex vs array dimension (ldvs,n)
  in integer ldvs
  out real rconde
  out real rcondv
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine cgeev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex w array dimension (n)
  out complex vl array dimension (ldvl,n)
  in integer ldvl
  out complex vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgeevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex w array dimension (n)
  out complex vl array dimension (ldvl,n)
  in integer ldvl
  out complex vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out real scale array dimension (n)
  out real abnrm
  out real rconde array dimension (n)
  out real rcondv array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgegs
  in character*1 jobvsl
  in character*1 jobvsr
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (3*n)
  out integer info
subroutine cgegv
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vl array dimension (ldvl,n)
  in integer ldvl
  out complex vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (8*n)
  out integer info
subroutine cgehd2
  in integer n
  in integer ilo
  in integer ihi
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (n-1)
  in/out complex work array dimension (n)
  out integer info
subroutine cgehrd
  in integer n
  in integer ilo
  in integer ihi
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (n-1)
  in/out complex work array dimension (lwork)
  in integer lwork
  out integer info
subroutine cgelq2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (m)
  out integer info
subroutine cgelqf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgelsd
  in integer m
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out real s array dimension (min(m,n))
  in real rcond
  out integer rank
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in/out integer iwork array dimension (max(1,liwork))
  out integer info
subroutine cgels
  in character*1 trans
  in integer m
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgelss
  in integer m
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out real s array dimension (min(m,n))
  in real rcond
  out integer rank
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (5*min(m,n))
  out integer info
subroutine cgelsx
  in integer m
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in real rcond
  out integer rank
  in/out complex work array array, dimension
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgelsy
  in integer m
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in real rcond
  out integer rank
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgeql2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (n)
  out integer info
subroutine cgeqlf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgeqp3
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgeqpf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (n)
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgeqr2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (n)
  out integer info
subroutine cgeqrf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgerfs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in complex af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgerq2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (m)
  out integer info
subroutine cgerqf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (min(m,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgesc2
  in integer n
  in complex a array (lda, n)
  in integer lda
  in/out complex rhs array dimension n.
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
  out real scale
subroutine cgesdd
  in character*1 jobz
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real s array dimension (min(m,n))
  out complex u array dimension (ldu,ucol)
  in integer ldu
  out complex vt array dimension (ldvt,n)
  in integer ldvt
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in/out integer iwork array dimension (8*min(m,n))
  out integer info
subroutine cgesvd
  in character*1 jobu
  in character*1 jobvt
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real s array dimension (min(m,n))
  out complex u array dimension (ldu,ucol)
  in integer ldu
  out complex vt array dimension (ldvt,n)
  in integer ldvt
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (5*min(m,n))
  out integer info
subroutine cgesv
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cgesvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out real r array dimension (n)
  in/out real c array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (2*n)
  out integer info
subroutine cgetc2
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  out integer ipiv array dimension (n).
  out integer jpiv array dimension (n).
  out integer info
subroutine cgetf2
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine cgetrf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine cgetri
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgetrs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cggbak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in real lscale array dimension (n)
  in real rscale array dimension (n)
  in integer m
  in/out complex v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine cggbal
  in character*1 job
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  out integer ilo
  out integer ihi
  out real lscale array dimension (n)
  out real rscale array dimension (n)
  in/out real work array dimension (lwork)
  out integer info
subroutine cgges
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg two procedure 
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out integer sdim
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (8*n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine cggesx
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg two procedure 
  in character*1 sense
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out integer sdim
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex vsr array dimension (ldvsr,n)
  in integer ldvsr
  out real rconde array dimension (2)
  out real rcondv array dimension (2)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (8*n)
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine cggev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vl array dimension (ldvl,n)
  in integer ldvl
  out complex vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (8*n)
  out integer info
subroutine cggevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  out complex vl array dimension (ldvl,n)
  in integer ldvl
  out complex vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out real lscale array dimension (n)
  out real rscale array dimension (n)
  out real abnrm
  out real bbnrm
  out real rconde array dimension (n)
  out real rcondv array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (lrwork)
  in/out integer iwork array dimension (n+2)
  in/out logical bwork array dimension (n)
  out integer info
subroutine cggglm
  in integer n
  in integer m
  in integer p
  in/out complex a array dimension (lda,m)
  in integer lda
  in/out complex b array dimension (ldb,p)
  in integer ldb
  in/out complex d array dimension (n)
  out complex x array dimension (m)
  out complex y array dimension (p)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cgghrd
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  in/out complex q array (ldq, n)
  in integer ldq
  in/out complex z array (ldz, n)
  in integer ldz
  out integer info
subroutine cgglse
  in integer m
  in integer n
  in integer p
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  in/out complex c array dimension (m)
  in/out complex d array dimension (p)
  out complex x array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cggqrf
  in integer n
  in integer m
  in integer p
  in/out complex a array dimension (lda,m)
  in integer lda
  out complex taua array dimension (min(n,m))
  in/out complex b array dimension (ldb,p)
  in integer ldb
  out complex taub array dimension (min(n,p))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cggrqf
  in integer m
  in integer p
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex taua array dimension (min(m,n))
  in/out complex b array dimension (ldb,n)
  in integer ldb
  out complex taub array dimension (min(p,n))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cggsvd
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer n
  in integer p
  out integer k
  out integer l
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  out real alpha array dimension (n)
  out real beta array dimension (n)
  out complex u array dimension (ldu,m)
  in integer ldu
  out complex v array dimension (ldv,p)
  in integer ldv
  out complex q array dimension (ldq,n)
  in integer ldq
  in/out complex work array dimension (max(3*n,m,p)+n)
  in/out real rwork array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine cggsvp
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  in real tola
  in real tolb
  out integer k
  out integer l
  out complex u array dimension (ldu,m)
  in integer ldu
  out complex v array dimension (ldv,m)
  in integer ldv
  out complex q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array dimension (n)
  in/out real rwork array dimension (2*n)
  in/out complex tau array dimension (n)
  in/out complex work array dimension (max(3*n,m,p))
  out integer info
subroutine cgtcon
  in character*1 norm
  in integer n
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in complex du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  out integer info
subroutine cgtrfs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in complex dlf array dimension (n-1)
  in complex df array dimension (n)
  in complex duf array dimension (n-1)
  in complex du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgtsv
  in integer n
  in integer nrhs
  in/out complex dl array dimension (n-1)
  in/out complex d array dimension (n)
  in/out complex du array dimension (n-1)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cgtsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in/out complex dlf array dimension (n-1)
  in/out complex df array dimension (n)
  in/out complex duf array dimension (n-1)
  in/out complex du2 array dimension (n-2)
  in/out integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cgttrf
  in integer n
  in/out complex dl array dimension (n-1)
  in/out complex d array dimension (n)
  in/out complex du array dimension (n-1)
  out complex du2 array dimension (n-2)
  out integer ipiv array dimension (n)
  out integer info
subroutine cgttrs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in complex du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cgtts2
  in integer itrans
  in integer n
  in integer nrhs
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in complex du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
subroutine chbevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array (ldab, n)
  in integer ldab
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array real array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine chbev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array (ldab, n)
  in integer ldab
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (n)
  in/out real rwork array dimension (max(1,3*n-2))
  out integer info
subroutine chbevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array (ldab, n)
  in integer ldab
  out complex q array (ldq, n)
  in integer ldq
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  in/out complex work array dimension (n)
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine chbgst
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in complex bb array dimension (ldbb,n)
  in integer ldbb
  out complex x array dimension (ldx,n)
  in integer ldx
  in/out complex work array dimension (n)
  in/out real rwork array dimension (n)
  out integer info
subroutine chbgvd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex ab array (ldab, n)
  in integer ldab
  in/out complex bb array (ldbb, n)
  in integer ldbb
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine chbgv
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex ab array (ldab, n)
  in integer ldab
  in/out complex bb array (ldbb, n)
  in integer ldbb
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (n)
  in/out real rwork array dimension (3*n)
  out integer info
subroutine chbgvx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex ab array (ldab, n)
  in integer ldab
  in/out complex bb array (ldbb, n)
  in integer ldbb
  out complex q array (ldq, n)
  in integer ldq
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (n)
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine chbtrd
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out real d array dimension (n)
  out real e array dimension (n-1)
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in/out complex work array dimension (n)
  out integer info
subroutine checon
  in character*1 uplo
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  out integer info
subroutine cheevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  out real w array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array real array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine cheev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  out real w array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array (max(1, 3*n-2))
  out integer info
subroutine cheevr
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine cheevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine chegs2
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine chegst
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine chegvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out real w array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine chegv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  out real w array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array (max(1, 3*n-2))
  out integer info
subroutine chegvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex a array (lda, n)
  in integer lda
  in/out complex b array (ldb, n)
  in integer ldb
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine cherfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in complex af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine chesv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine chesvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in/out complex af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (n)
  out integer info
subroutine chetd2
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real d array dimension (n)
  out real e array dimension (n-1)
  out complex tau array dimension (n-1)
  out integer info
subroutine chetf2
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine chetrd
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out real d array dimension (n)
  out real e array dimension (n-1)
  out complex tau array dimension (n-1)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine chetrf
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine chetri
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex work array dimension (n)
  out integer info
subroutine chetrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine chgeqz
  in character*1 job
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex h array (ldh, n)
  in integer ldh
  in/out complex t array (ldt, n)
  in integer ldt
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  in/out complex q array (ldq, n)
  in integer ldq
  in/out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (n)
  out integer info
subroutine chpcon
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  out integer info
subroutine chpevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine chpev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array (max(1, 2*n-1))
  in/out real rwork array (max(1, 3*n-2))
  out integer info
subroutine chpevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine chpgst
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in complex bp array dimension (n*(n+1)/2)
  out integer info
subroutine chpgvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in/out complex bp array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine chpgv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in/out complex bp array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array (max(1, 2*n-1))
  in/out real rwork array (max(1, 3*n-2))
  out integer info
subroutine chpgvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in/out complex bp array dimension (n*(n+1)/2)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, n)
  in integer ldz
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine chprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in complex afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine chpsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine chpsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in/out complex afp array dimension (n*(n+1)/2)
  in/out integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine chptrd
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out real d array dimension (n)
  out real e array dimension (n-1)
  out complex tau array dimension (n-1)
  out integer info
subroutine chptrf
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine chptri
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex work array dimension (n)
  out integer info
subroutine chptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine chsein
  in character*1 side
  in character*1 eigsrc
  in character*1 initv
  in logical select array dimension (n)
  in integer n
  in complex h array dimension (ldh,n)
  in integer ldh
  in/out complex w array dimension (n)
  in/out complex vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex work array dimension (n*n)
  in/out real rwork array dimension (n)
  out integer ifaill array dimension (mm)
  out integer ifailr array dimension (mm)
  out integer info
subroutine chseqr
  in character*1 job
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex h array dimension (ldh,n)
  in integer ldh
  out complex w array dimension (n)
  in/out complex z array dimension (ldz,n)
  in integer ldz
  in/out complex work array dimension (lwork)
  in integer lwork
  out integer info
subroutine clabrd
  in integer m
  in integer n
  in integer nb
  in/out complex a array dimension (lda,n)
  in integer lda
  out real d array dimension (nb)
  out real e array dimension (nb)
  out complex tauq array dimension (nb)
  out complex taup array dimension (nb)
  out complex x array dimension (ldx,nb)
  in integer ldx
  out complex y array dimension (ldy,nb)
  in integer ldy
subroutine clacgv
  in integer n
  in/out complex x array array, dimension
  in integer incx
subroutine clacn2
  in integer n
  in/out complex v array dimension (n)
  in/out complex x array dimension (n)
  in/out real est
  in/out integer kase
  in/out integer isave array dimension (3)
subroutine clacon
  in integer n
  in/out complex v array dimension (n)
  in/out complex x array dimension (n)
  in/out real est
  in/out integer kase
subroutine clacp2
  in character*1 uplo
  in integer m
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  out complex b array dimension (ldb,n)
  in integer ldb
subroutine clacpy
  in character*1 uplo
  in integer m
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  out complex b array dimension (ldb,n)
  in integer ldb
subroutine clacrm
  in integer m
  in integer n
  in complex a array (lda, n)
  in integer lda
  in real b array (ldb, n)
  in integer ldb
  in complex c array (ldc, n)
  in integer ldc
  in/out real rwork array dimension (2*m*n)
subroutine clacrt
  in integer n
  in/out complex cx array dimension (n)
  in integer incx
  in/out complex cy array dimension (n)
  in integer incy
  in complex c
  in complex s
function complex cladiv
  in complex x
  in complex y
subroutine claed0
  in integer qsiz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array integer array,
  in/out real rwork array real array,
  in/out complex qstore array (ldqs, n)
  in integer ldqs
  out integer info
subroutine claed7
  in integer n
  in integer cutpnt
  in integer qsiz
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in/out real d array dimension (n)
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in real rho
  out integer indxq array dimension (n)
  in/out integer iwork array dimension (4*n)
  in/out real rwork array real array,
  in/out complex work array dimension (qsiz*n)
  in/out real qstore array dimension (n**2+1)
  in/out integer qptr array dimension (n+2)
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in real givnum array lg n)
  out integer info
subroutine claed8
  out integer k
  in integer n
  in integer qsiz
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in/out real d array dimension (n)
  in/out real rho
  in integer cutpnt
  in real z array dimension (n)
  out real dlamda array dimension (n)
  out complex q2 array dimension (ldq2,n)
  in integer ldq2
  out real w array dimension (n)
  in/out integer indxp array dimension (n)
  in/out integer indx array dimension (n)
  in integer indxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (2, n)
  out real givnum array (2, n)
  out integer info
subroutine claein
  in logical rightv
  in logical noinit
  in integer n
  in complex h array dimension (ldh,n)
  in integer ldh
  in complex w
  in/out complex v array dimension (n)
  in/out complex b array dimension (ldb,n)
  in integer ldb
  in/out real rwork array dimension (n)
  in real eps3
  in real smlnum
  out integer info
subroutine claesy
  in complex a
  in complex b
  in complex c
  out complex rt1
  out complex rt2
  out complex evscal
  out complex cs1
  out complex sn1
subroutine claev2
  in complex a
  in complex b
  in complex c
  out real rt1
  out real rt2
  out real cs1
  out complex sn1
subroutine clag2z
  in integer m
  in integer n
  out real sa array dimension (ldsa,n)
  in integer ldsa
  in double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine clags2
  in logical upper
  in real a1
  in complex a2
  in real a3
  in real b1
  in complex b2
  in real b3
  out real csu
  out complex snu
  out real csv
  out complex snv
  out real csq
  out complex snq
subroutine clagtm
  in character*1 trans
  in integer n
  in integer nrhs
  in real alpha
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
  in complex x array dimension (ldx,nrhs)
  in integer ldx
  in real beta
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
subroutine clahef
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine clahqr
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex h array dimension (ldh,n)
  in integer ldh
  out complex w array dimension (n)
  in integer iloz
  in integer ihiz
  in/out complex z array dimension (ldz,n)
  in integer ldz
  out integer info
subroutine clahr2
  in integer n
  in integer k
  in integer nb
  in/out complex a array dimension (lda,n-k+1)
  in integer lda
  out complex tau array dimension (nb)
  out complex t array dimension (ldt,nb)
  in integer ldt
  out complex y array dimension (ldy,nb)
  in integer ldy
subroutine clahrd
  in integer n
  in integer k
  in integer nb
  in/out complex a array dimension (lda,n-k+1)
  in integer lda
  out complex tau array dimension (nb)
  out complex t array dimension (ldt,nb)
  in integer ldt
  out complex y array dimension (ldy,nb)
  in integer ldy
subroutine claic1
  in integer job
  in integer j
  in complex x array dimension (j)
  in real sest
  in complex w array dimension (j)
  in complex gamma
  out real sestpr
  out complex s
  out complex c
subroutine clals0
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in integer nrhs
  in/out complex b array (ldb, nrhs)
  in integer ldb
  in/out complex bx array (ldbx, nrhs)
  in integer ldbx
  in integer perm array dimension (n)
  in integer givptr
  in integer givcol array (ldgcol, 2)
  in integer ldgcol
  in real givnum array (ldgnum, 2)
  in integer ldgnum
  in real poles array (ldgnum, 2)
  in real difl array dimension (k).
  in real difr array (ldgnum, 2).
  in real z array dimension (k)
  in integer k
  in real c
  in real s
  in/out real rwork array array, dimension
  out integer info
subroutine clalsa
  in integer icompq
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out complex b array (ldb, nrhs)
  in integer ldb
  out complex bx array (ldbx, nrhs)
  in integer ldbx
  in real u array (ldu, smlsiz).
  in integer ldu
  in real vt array (ldu, smlsiz+1).
  in integer k array dimension (n).
  in real difl array (ldu, nlvl).
  in real difr array * nlvl).
  in real z array (ldu, nlvl).
  in real poles array * nlvl).
  in integer givptr array dimension (n).
  in integer givcol array * nlvl).
  in integer ldgcol
  in integer perm array (ldgcol, nlvl).
  in real givnum array * nlvl).
  in real c array dimension (n).
  in real s array dimension (n).
  in/out real rwork array at least
  in/out integer iwork array integer array.
  out integer info
subroutine clalsd
  in character*1 uplo
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in real rcond
  out integer rank
  in/out complex work array * nrhs).
  in/out real rwork array at least
  in/out integer iwork array + 11*n).
  out integer info
function real clangb
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real clange
  in character*1 norm
  in integer m
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real clangt
  in character*1 norm
  in integer n
  in complex dl array dimension (n-1)
  in complex d array dimension (n)
  in complex du array dimension (n-1)
function real clanhb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real clanhe
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real clanhp
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in/out real work array dimension (max(1,lwork)),
function real clanhs
  in character*1 norm
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real clanht
  in character*1 norm
  in integer n
  in real d array dimension (n)
  in complex e array dimension (n-1)
function real clansb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real clansp
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in/out real work array dimension (max(1,lwork)),
function real clansy
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real clantb
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer k
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real clantp
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in/out real work array dimension (max(1,lwork)),
function real clantr
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer m
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
subroutine clapll
  in integer n
  in/out complex x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex y array dimension (1+(n-1)*incy)
  in integer incy
  out real ssmin
subroutine clapmt
  in logical forwrd
  in integer m
  in integer n
  in/out complex x array dimension (ldx,n)
  in integer ldx
  in/out integer k array dimension (n)
subroutine claqgb
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in real r array dimension (m)
  in real c array dimension (n)
  in real rowcnd
  in real colcnd
  in real amax
  out character*1 equed
subroutine claqge
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in real r array dimension (m)
  in real c array dimension (n)
  in real rowcnd
  in real colcnd
  in real amax
  out character*1 equed
subroutine claqhb
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine claqhe
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine claqhp
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine claqp2
  in integer m
  in integer n
  in integer offset
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex tau array dimension (min(m,n))
  in/out real vn1 array dimension (n)
  in/out real vn2 array dimension (n)
  in/out complex work array dimension (n)
subroutine claqps
  in integer m
  in integer n
  in integer offset
  in integer nb
  out integer kb
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex tau array dimension (kb)
  in/out real vn1 array dimension (n)
  in/out real vn2 array dimension (n)
  in/out complex auxv array dimension (nb)
  in/out complex f array dimension (ldf,nb)
  in integer ldf
subroutine claqr0
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex h array dimension (ldh,n)
  in integer ldh
  out complex w array dimension (n)
  in/out complex z array dimension (ldz,ihi)
  in integer ldz
  in/out complex work array dimension lwork
  in integer lwork
  out integer info
subroutine claqr1
  in integer n
  in complex h array dimension (ldh,n)
  in integer ldh
  in complex s1
  out complex v array dimension n
subroutine claqr2
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out complex h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out complex sh array dimension kbot
  in/out complex v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out complex t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out complex wv array dimension (ldwv,nw)
  in integer ldwv
  in/out complex work array dimension lwork.
  in integer lwork
subroutine claqr3
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out complex h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out complex sh array dimension kbot
  in/out complex v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out complex t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out complex wv array dimension (ldwv,nw)
  in integer ldwv
  in/out complex work array dimension lwork.
  in integer lwork
subroutine claqr4
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex h array dimension (ldh,n)
  in integer ldh
  out complex w array dimension (n)
  in/out complex z array dimension (ldz,ihi)
  in integer ldz
  in/out complex work array dimension lwork
  in integer lwork
  out integer info
subroutine claqr5
  in logical wantt
  in logical wantz
  in integer kacc22
  in integer n
  in integer ktop
  in integer kbot
  in integer nshfts
  in complex s array size (nshfts)
  in/out complex h array size (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex z array size (ldz,ihi)
  in integer ldz
  in/out complex v array size (ldv,nshfts/2)
  in integer ldv
  in/out complex u array of size
  in integer ldu
  in integer nh
  in/out complex wh array size (ldwh,nh)
  in integer ldwh
  in integer nv
  in/out complex wv array of size
  in integer ldwv
subroutine claqsb
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine claqsp
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine claqsy
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine clar1v
  in integer n
  in integer b1
  in integer bn
  in real lambda
  in real l array dimension (n-1)
  in real d array dimension (n)
  in real ld array dimension (n-1)
  in real lld array dimension (n-1)
  in real pivmin
  in real gaptol
  in/out complex z array dimension (n)
  in logical wantnc
  out integer negcnt
  out real ztz
  out real mingma
  in/out integer r
  out integer isuppz array dimension (2)
  out real nrminv
  out real resid
  out real rqcorr
  in/out real work array dimension (4*n)
subroutine clar2v
  in integer n
  in/out complex x array dimension (1+(n-1)*incx)
  in/out complex y array dimension (1+(n-1)*incx)
  in/out complex z array dimension (1+(n-1)*incx)
  in integer incx
  in real c array dimension (1+(n-1)*incc)
  in complex s array dimension (1+(n-1)*incc)
  in integer incc
subroutine clarcm
  in integer m
  in integer n
  in real a array (lda, m)
  in integer lda
  in real b array (ldb, n)
  in integer ldb
  in complex c array (ldc, n)
  in integer ldc
  in/out real rwork array dimension (2*m*n)
subroutine clarfb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in complex v array array, dimension
  in integer ldv
  in complex t array dimension (ldt,k)
  in integer ldt
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (ldwork,k)
  in integer ldwork
subroutine clarf
  in character*1 side
  in integer m
  in integer n
  in complex v array array, dimension
  in integer incv
  in complex tau
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
subroutine clarfg
  in integer n
  in/out complex alpha
  in/out complex x array array, dimension
  in integer incx
  out complex tau
subroutine clarft
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out complex v array array, dimension
  in integer ldv
  in complex tau array dimension (k)
  out complex t array dimension (ldt,k)
  in integer ldt
subroutine clarfx
  in character*1 side
  in integer m
  in integer n
  in complex v array = 'l'
  in complex tau
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array = 'l'
subroutine clargv
  in integer n
  in/out complex x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex y array dimension (1+(n-1)*incy)
  in integer incy
  out real c array dimension (1+(n-1)*incc)
  in integer incc
subroutine clarnv
  in integer idist
  in/out integer iseed array dimension (4)
  in integer n
  out complex x array dimension (n)
subroutine clarrv
  in integer n
  in real vl
  in real vu
  in/out real d array dimension (n)
  in/out real l array dimension (n)
  in integer isplit array dimension (n)
  in integer m
  in integer dol
  in integer dou
  in real minrgp
  in real rtol1
  in real rtol2
  in/out real w array dimension (n)
  in/out real werr array dimension (n)
  in/out real wgap array dimension (n)
  in integer iblock array dimension (n)
  in integer indexw array dimension (n)
  in real gers array dimension (2*n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out real work array dimension (12*n)
  in/out integer iwork array dimension (7*n)
  out integer info
subroutine clartg
  in complex f
  in complex g
  out real cs
  out complex sn
  out complex r
subroutine clartv
  in integer n
  in/out complex x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex y array dimension (1+(n-1)*incy)
  in integer incy
  in real c array dimension (1+(n-1)*incc)
  in complex s array dimension (1+(n-1)*incc)
  in integer incc
subroutine clarzb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in integer l
  in complex v array dimension (ldv,nv).
  in integer ldv
  in complex t array dimension (ldt,k)
  in integer ldt
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (ldwork,k)
  in integer ldwork
subroutine clarz
  in character*1 side
  in integer m
  in integer n
  in integer l
  in complex v array dimension (1+(l-1)*abs(incv))
  in integer incv
  in complex tau
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
subroutine clarzt
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out complex v array array, dimension
  in integer ldv
  in complex tau array dimension (k)
  out complex t array dimension (ldt,k)
  in integer ldt
subroutine clascl
  in character*1 type
  in integer kl
  in integer ku
  in real cfrom
  in real cto
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine claset
  in character*1 uplo
  in integer m
  in integer n
  in complex alpha
  in complex beta
  in/out complex a array dimension (lda,n)
  in integer lda
subroutine clasr
  in character*1 side
  in character*1 pivot
  in character*1 direct
  in integer m
  in integer n
  in real c array array, dimension
  in real s array array, dimension
  in/out complex a array dimension (lda,n)
  in integer lda
subroutine classq
  in integer n
  in complex x array dimension (n)
  in integer incx
  in/out real scale
  in/out real sumsq
subroutine claswp
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in integer k1
  in integer k2
  in integer ipiv array dimension (k2*abs(incx))
  in integer incx
subroutine clasyf
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine clatbs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in integer kd
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine clatdf
  in integer ijob
  in integer n
  in real z array (ldz, n)
  in integer ldz
  in/out real rhs array dimension (n).
  in/out real rdsum
  in/out real rdscal
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
subroutine clatps
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in/out complex x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine clatrd
  in character*1 uplo
  in integer n
  in integer nb
  in/out complex a array dimension (lda,n)
  in integer lda
  out real e array dimension (n-1)
  out complex tau array dimension (n-1)
  out complex w array dimension (ldw,nb)
  in integer ldw
subroutine clatrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in/out complex x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine clatrz
  in integer m
  in integer n
  in integer l
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (m)
  in/out complex work array dimension (m)
subroutine clatzm
  in character*1 side
  in integer m
  in integer n
  in complex v array array, dimension
  in integer incv
  in complex tau
  in/out complex c1 array array, dimension
  in/out complex c2 array array, dimension
  in integer ldc
  in/out complex work array array, dimension
subroutine clauu2
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine clauum
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine cpbcon
  in character*1 uplo
  in integer n
  in integer kd
  in complex ab array dimension (ldab,n)
  in integer ldab
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpbequ
  in character*1 uplo
  in integer n
  in integer kd
  in complex ab array dimension (ldab,n)
  in integer ldab
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine cpbrfs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in complex afb array dimension (ldafb,n)
  in integer ldafb
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpbstf
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine cpbsv
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cpbsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex afb array dimension (ldafb,n)
  in integer ldafb
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpbtf2
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine cpbtrf
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine cpbtrs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cpocon
  in character*1 uplo
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpoequ
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine cporfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in complex af array dimension (ldaf,n)
  in integer ldaf
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cposv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cposvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex af array dimension (ldaf,n)
  in integer ldaf
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpotf2
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine cpotrf
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine cpotri
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine cpotrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cppcon
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cppequ
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine cpprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in complex afp array dimension (n*(n+1)/2)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cppsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex ap array dimension (n*(n+1)/2)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cppsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex ap array dimension (n*(n+1)/2)
  in/out complex afp array dimension (n*(n+1)/2)
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpptrf
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out integer info
subroutine cpptri
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out integer info
subroutine cpptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cptcon
  in integer n
  in real d array dimension (n)
  in complex e array dimension (n-1)
  in real anorm
  out real rcond
  in/out real rwork array dimension (n)
  out integer info
subroutine cpteqr
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex z array (ldz, n)
  in integer ldz
  in/out real work array dimension (4*n)
  out integer info
subroutine cptrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in complex e array dimension (n-1)
  in real df array dimension (n)
  in complex ef array dimension (n-1)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cptsv
  in integer n
  in integer nrhs
  in/out real d array dimension (n)
  in/out complex e array dimension (n-1)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cptsvx
  in character*1 fact
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in complex e array dimension (n-1)
  in/out real df array dimension (n)
  in/out complex ef array dimension (n-1)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cpttrf
  in integer n
  in/out real d array dimension (n)
  in/out complex e array dimension (n-1)
  out integer info
subroutine cpttrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in complex e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cptts2
  in integer iuplo
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in complex e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
subroutine crot
  in integer n
  in/out complex cx array dimension (n)
  in integer incx
  in/out complex cy array dimension (n)
  in integer incy
  in real c
  in complex s
subroutine cspcon
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  out integer info
subroutine cspmv
  in character*1 uplo
  in integer n
  in complex alpha
  in complex ap array at least
  in complex x array at least
  in integer incx
  in complex beta
  in/out complex y array at least
  in integer incy
subroutine cspr
  in character*1 uplo
  in integer n
  in complex alpha
  in complex x array at least
  in integer incx
  in/out complex ap array at least
subroutine csprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in complex afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine cspsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine cspsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in/out complex afp array dimension (n*(n+1)/2)
  in/out integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine csptrf
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine csptri
  in character*1 uplo
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex work array dimension (n)
  out integer info
subroutine csptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine csrot
  in integer n
  in complex cx array at least
  in integer incx
  in complex cy array at least
  in integer incy
  in real c
  in real s
subroutine csrscl
  in integer n
  in real sa
  in/out complex sx array array, dimension
  in integer incx
subroutine cstedc
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex z array dimension (ldz,n)
  in integer ldz
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine cstegr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz
  in/out real work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine cstein
  in integer n
  in real d array dimension (n)
  in real e array dimension (n-1)
  in integer m
  in real w array dimension (n)
  in integer iblock array dimension (n)
  in integer isplit array dimension (n)
  out complex z array (ldz, m)
  in integer ldz
  in/out real work array dimension (5*n)
  in/out integer iwork array dimension (n)
  out integer ifail array dimension (m)
  out integer info
subroutine cstemr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in real vl
  in real vu
  in integer il
  in integer iu
  out integer m
  out real w array dimension (n)
  out complex z array (ldz, max(1,m))
  in integer ldz
  in integer nzc
  out integer isuppz
  in/out logical tryrac
  in/out real work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine csteqr
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out complex z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,2*n-2))
  out integer info
subroutine csycon
  in character*1 uplo
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out complex work array dimension (2*n)
  out integer info
subroutine csymv
  in character*1 uplo
  in integer n
  in complex alpha
  in complex a array (lda, n)
  in integer lda
  in complex x array at least
  in integer incx
  in complex beta
  in/out complex y array at least
  in integer incy
subroutine csyr
  in character*1 uplo
  in integer n
  in complex alpha
  in complex x array at least
  in integer incx
  in/out complex a array (lda, n)
  in integer lda
subroutine csyrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in complex af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine csysv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine csysvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in/out complex af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  out complex x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (n)
  out integer info
subroutine csytf2
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine csytrf
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine csytri
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex work array dimension (2*n)
  out integer info
subroutine csytrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ctbcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer kd
  in complex ab array dimension (ldab,n)
  in integer ldab
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctbrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctbtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in complex ab array dimension (ldab,n)
  in integer ldab
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ctgevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex s array dimension (lds,n)
  in integer lds
  in complex p array dimension (ldp,n)
  in integer ldp
  in/out complex vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (2*n)
  out integer info
subroutine ctgex2
  in logical wantq
  in logical wantz
  in integer n
  in/out complex a array dimensions (lda,n)
  in integer lda
  in/out complex b array dimensions (ldb,n)
  in integer ldb
  in/out complex q array dimension (ldz,n)
  in integer ldq
  in/out complex z array dimension (ldz,n)
  in integer ldz
  in integer j1
  out integer info
subroutine ctgexc
  in logical wantq
  in logical wantz
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  in/out complex q array dimension (ldz,n)
  in integer ldq
  in/out complex z array dimension (ldz,n)
  in integer ldz
  in integer ifst
  in/out integer ilst
  out integer info
subroutine ctgsen
  in integer ijob
  in logical wantq
  in logical wantz
  in logical select array dimension (n)
  in integer n
  in/out complex a array array, dimension(lda,n)
  in integer lda
  in/out complex b array array, dimension(ldb,n)
  in integer ldb
  out complex alpha array dimension (n)
  out complex beta array dimension (n)
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in/out complex z array dimension (ldz,n)
  in integer ldz
  out integer m
  out real pl
  out real pr
  out real dif array dimension (2).
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ctgsja
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in integer k
  in integer l
  in/out complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,n)
  in integer ldb
  in real tola
  in real tolb
  out real alpha array dimension (n)
  out real beta array dimension (n)
  in/out complex u array dimension (ldu,m)
  in integer ldu
  in/out complex v array dimension (ldv,p)
  in integer ldv
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in/out complex work array dimension (2*n)
  out integer ncycle
  out integer info
subroutine ctgsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  in complex b array dimension (ldb,n)
  in integer ldb
  in complex vl array dimension (ldvl,m)
  in integer ldvl
  in complex vr array dimension (ldvr,m)
  in integer ldvr
  out real s array dimension (mm)
  out real dif array dimension (mm)
  in integer mm
  out integer m
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n+2)
  out integer info
subroutine ctgsy2
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in complex a array (lda, m)
  in integer lda
  in complex b array (ldb, n)
  in integer ldb
  in/out complex c array (ldc, n)
  in integer ldc
  in complex d array (ldd, m)
  in integer ldd
  in complex e array (lde, n)
  in integer lde
  in/out complex f array (ldf, n)
  in integer ldf
  out real scale
  in/out real rdsum
  in/out real rdscal
  out integer info
subroutine ctgsyl
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in complex a array (lda, m)
  in integer lda
  in complex b array (ldb, n)
  in integer ldb
  in/out complex c array (ldc, n)
  in integer ldc
  in complex d array (ldd, m)
  in integer ldd
  in complex e array (lde, n)
  in integer lde
  in/out complex f array (ldf, n)
  in integer ldf
  out real dif
  out real scale
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (m+n+2)
  out integer info
subroutine ctpcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctprfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctptri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex ap array dimension (n*(n+1)/2)
  out integer info
subroutine ctptrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex ap array dimension (n*(n+1)/2)
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ctrcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex a array dimension (lda,n)
  in integer lda
  out real rcond
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctrevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in/out complex t array dimension (ldt,n)
  in integer ldt
  in/out complex vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctrexc
  in character*1 compq
  in integer n
  in/out complex t array dimension (ldt,n)
  in integer ldt
  in/out complex q array dimension (ldq,n)
  in integer ldq
  in integer ifst
  in integer ilst
  out integer info
subroutine ctrrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in complex b array dimension (ldb,nrhs)
  in integer ldb
  in complex x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out complex work array dimension (2*n)
  in/out real rwork array dimension (n)
  out integer info
subroutine ctrsen
  in character*1 job
  in character*1 compq
  in logical select array dimension (n)
  in integer n
  in/out complex t array dimension (ldt,n)
  in integer ldt
  in/out complex q array dimension (ldq,n)
  in integer ldq
  out complex w array dimension (n)
  out integer m
  out real s
  out real sep
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ctrsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex t array dimension (ldt,n)
  in integer ldt
  in complex vl array dimension (ldvl,m)
  in integer ldvl
  in complex vr array dimension (ldvr,m)
  in integer ldvr
  out real s array dimension (mm)
  out real sep array dimension (mm)
  in integer mm
  out integer m
  in/out complex work array dimension (ldwork,n+6)
  in integer ldwork
  in/out real rwork array dimension (n)
  out integer info
subroutine ctrsyl
  in character*1 trana
  in character*1 tranb
  in integer isgn
  in integer m
  in integer n
  in complex a array dimension (lda,m)
  in integer lda
  in complex b array dimension (ldb,n)
  in integer ldb
  in/out complex c array dimension (ldc,n)
  in integer ldc
  out real scale
  out integer info
subroutine ctrti2
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine ctrtri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out integer info
subroutine ctrtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex a array dimension (lda,n)
  in integer lda
  in/out complex b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ctzrqf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (m)
  out integer info
subroutine ctzrzf
  in integer m
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  out complex tau array dimension (m)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cung2l
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (n)
  out integer info
subroutine cung2r
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (n)
  out integer info
subroutine cungbr
  in character*1 vect
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array array, dimension
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunghr
  in integer n
  in integer ilo
  in integer ihi
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (n-1)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cungl2
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (m)
  out integer info
subroutine cunglq
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cungql
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cungqr
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cungr2
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (m)
  out integer info
subroutine cungrq
  in integer m
  in integer n
  in integer k
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (k)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cungtr
  in character*1 uplo
  in integer n
  in/out complex a array dimension (lda,n)
  in integer lda
  in complex tau array dimension (n-1)
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunm2l
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array dimension (lda,k)
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine cunm2r
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array dimension (lda,k)
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine cunmbr
  in character*1 vect
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (min(nq,k))
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmhr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer ilo
  in integer ihi
  in complex a array array, dimension
  in integer lda
  in complex tau array array, dimension
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunml2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine cunmlq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmql
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array dimension (lda,k)
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmqr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array dimension (lda,k)
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmr2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine cunmr3
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine cunmrq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmrz
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in complex a array array, dimension
  in integer lda
  in complex tau array dimension (k)
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cunmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in complex a array array, dimension
  in integer lda
  in complex tau array array, dimension
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine cupgtr
  in character*1 uplo
  in integer n
  in complex ap array dimension (n*(n+1)/2)
  in complex tau array dimension (n-1)
  out complex q array dimension (ldq,n)
  in integer ldq
  in/out complex work array dimension (n-1)
  out integer info
subroutine cupmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in complex ap array array, dimension
  in complex tau array = 'l'
  in/out complex c array dimension (ldc,n)
  in integer ldc
  in/out complex work array array, dimension
  out integer info
subroutine dbdsdc
  in character*1 uplo
  in character*1 compq
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  out double u array dimension (ldu,n)
  in integer ldu
  out double vt array dimension (ldvt,n)
  in integer ldvt
  out double q array dimension (ldq)
  out integer iq array dimension (ldiq)
  in/out double work array dimension (max(1,lwork))
  in/out integer iwork array dimension (8*n)
  out integer info
subroutine dbdsqr
  in character*1 uplo
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double vt array (ldvt, ncvt)
  in integer ldvt
  in/out double u array (ldu, n)
  in integer ldu
  in/out double c array (ldc, ncc)
  in integer ldc
  in/out double work array dimension (2*n)
  out integer info
subroutine ddisna
  in character*1 job
  in integer m
  in integer n
  in double d array = 'e'
  out double sep array = 'e'
  out integer info
subroutine dgbbrd
  in character*1 vect
  in integer m
  in integer n
  in integer ncc
  in integer kl
  in integer ku
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out double q array dimension (ldq,m)
  in integer ldq
  out double pt array dimension (ldpt,n)
  in integer ldpt
  in/out double c array dimension (ldc,ncc)
  in integer ldc
  in/out double work array dimension (2*max(m,n))
  out integer info
subroutine dgbcon
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in double ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgbequ
  in integer m
  in integer n
  in integer kl
  in integer ku
  in double ab array dimension (ldab,n)
  in integer ldab
  out double r array dimension (m)
  out double c array dimension (n)
  out double rowcnd
  out double colcnd
  out double amax
  out integer info
subroutine dgbrfs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in double afb array dimension (ldafb,n)
  in integer ldafb
  in integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgbsv
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dgbsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in/out double afb array dimension (ldafb,n)
  in integer ldafb
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out double r array dimension (n)
  in/out double c array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgbtf2
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine dgbtrf
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine dgbtrs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dgebak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in double scale array dimension (n)
  in integer m
  in/out double v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine dgebal
  in character*1 job
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ilo
  out integer ihi
  out double scale array dimension (n)
  out integer info
subroutine dgebd2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out double tauq array dimension (min(m,n))
  out double taup array dimension (min(m,n))
  in/out double work array dimension (max(m,n))
  out integer info
subroutine dgebrd
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out double tauq array dimension (min(m,n))
  out double taup array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgecon
  in character*1 norm
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in double anorm
  out double rcond
  in/out double work array dimension (4*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgeequ
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out double r array dimension (m)
  out double c array dimension (n)
  out double rowcnd
  out double colcnd
  out double amax
  out integer info
subroutine dgees
  in character*1 jobvs
  in character*1 sort
  in logical select two procedure 
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer sdim
  out double wr array dimension (n)
  out double wi array dimension (n)
  out double vs array dimension (ldvs,n)
  in integer ldvs
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine dgeesx
  in character*1 jobvs
  in character*1 sort
  in logical select two procedure 
  in character*1 sense
  in integer n
  in/out double a array (lda, n)
  in integer lda
  out integer sdim
  out double wr array dimension (n)
  out double wi array dimension (n)
  out double vs array dimension (ldvs,n)
  in integer ldvs
  out double rconde
  out double rcondv
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine dgeev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double wr array dimension (n)
  out double wi array dimension (n)
  out double vl array dimension (ldvl,n)
  in integer ldvl
  out double vr array dimension (ldvr,n)
  in integer ldvr
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgeevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double wr array dimension (n)
  out double wi array dimension (n)
  out double vl array dimension (ldvl,n)
  in integer ldvl
  out double vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out double scale array dimension (n)
  out double abnrm
  out double rconde array dimension (n)
  out double rcondv array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (2*n-2)
  out integer info
subroutine dgegs
  in character*1 jobvsl
  in character*1 jobvsr
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vsl array dimension (ldvsl,n)
  in integer ldvsl
  out double vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgegv
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vl array dimension (ldvl,n)
  in integer ldvl
  out double vr array dimension (ldvr,n)
  in integer ldvr
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgehd2
  in integer n
  in integer ilo
  in integer ihi
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (n-1)
  in/out double work array dimension (n)
  out integer info
subroutine dgehrd
  in integer n
  in integer ilo
  in integer ihi
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (n-1)
  in/out double work array dimension (lwork)
  in integer lwork
  out integer info
subroutine dgelq2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (m)
  out integer info
subroutine dgelqf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgelsd
  in integer m
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double s array dimension (min(m,n))
  in double rcond
  out integer rank
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  out integer info
subroutine dgels
  in character*1 trans
  in integer m
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgelss
  in integer m
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double s array dimension (min(m,n))
  in double rcond
  out integer rank
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgelsx
  in integer m
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in double rcond
  out integer rank
  in/out double work array array, dimension
  out integer info
subroutine dgelsy
  in integer m
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in double rcond
  out integer rank
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgeql2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (n)
  out integer info
subroutine dgeqlf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgeqp3
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out double tau array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgeqpf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out double tau array dimension (min(m,n))
  in/out double work array dimension (3*n)
  out integer info
subroutine dgeqr2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (n)
  out integer info
subroutine dgeqrf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgerfs
  in character*1 trans
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in double af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgerq2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (m)
  out integer info
subroutine dgerqf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (min(m,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgesc2
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double rhs array dimension (n).
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
  out double scale
subroutine dgesdd
  in character*1 jobz
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double s array dimension (min(m,n))
  out double u array dimension (ldu,ucol)
  in integer ldu
  out double vt array dimension (ldvt,n)
  in integer ldvt
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (8*min(m,n))
  out integer info
subroutine dgesvd
  in character*1 jobu
  in character*1 jobvt
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double s array dimension (min(m,n))
  out double u array dimension (ldu,ucol)
  in integer ldu
  out double vt array dimension (ldvt,n)
  in integer ldvt
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgesv
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dgesvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out double r array dimension (n)
  in/out double c array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (4*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgetc2
  in integer n
  in/out double a array (lda, n)
  in integer lda
  out integer ipiv array array, dimension(n).
  out integer jpiv array array, dimension(n).
  out integer info
subroutine dgetf2
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine dgetrf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine dgetri
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgetrs
  in character*1 trans
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dggbak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in double lscale array dimension (n)
  in double rscale array dimension (n)
  in integer m
  in/out double v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine dggbal
  in character*1 job
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  out integer ilo
  out integer ihi
  out double lscale array dimension (n)
  out double rscale array dimension (n)
  in/out real work array dimension (lwork)
  out integer info
subroutine dgges
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg three procedure 
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out integer sdim
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vsl array dimension (ldvsl,n)
  in integer ldvsl
  out double vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine dggesx
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg three procedure 
  in character*1 sense
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out integer sdim
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vsl array dimension (ldvsl,n)
  in integer ldvsl
  out double vsr array dimension (ldvsr,n)
  in integer ldvsr
  out double rconde array dimension (2)
  out double rcondv array dimension (2)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine dggev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vl array dimension (ldvl,n)
  in integer ldvl
  out double vr array dimension (ldvr,n)
  in integer ldvr
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dggevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  out double vl array dimension (ldvl,n)
  in integer ldvl
  out double vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out double lscale array dimension (n)
  out double rscale array dimension (n)
  out double abnrm
  out double bbnrm
  out double rconde array dimension (n)
  out double rcondv array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n+6)
  in/out logical bwork array dimension (n)
  out integer info
subroutine dggglm
  in integer n
  in integer m
  in integer p
  in/out double a array dimension (lda,m)
  in integer lda
  in/out double b array dimension (ldb,p)
  in integer ldb
  in/out double d array dimension (n)
  out double x array dimension (m)
  out double y array dimension (p)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dgghrd
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  in/out double q array (ldq, n)
  in integer ldq
  in/out double z array (ldz, n)
  in integer ldz
  out integer info
subroutine dgglse
  in integer m
  in integer n
  in integer p
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  in/out double c array dimension (m)
  in/out double d array dimension (p)
  out double x array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dggqrf
  in integer n
  in integer m
  in integer p
  in/out double a array dimension (lda,m)
  in integer lda
  out double taua array dimension (min(n,m))
  in/out double b array dimension (ldb,p)
  in integer ldb
  out double taub array dimension (min(n,p))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dggrqf
  in integer m
  in integer p
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double taua array dimension (min(m,n))
  in/out double b array dimension (ldb,n)
  in integer ldb
  out double taub array dimension (min(p,n))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dggsvd
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer n
  in integer p
  out integer k
  out integer l
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  out double alpha array dimension (n)
  out double beta array dimension (n)
  out double u array dimension (ldu,m)
  in integer ldu
  out double v array dimension (ldv,p)
  in integer ldv
  out double q array dimension (ldq,n)
  in integer ldq
  in/out double work array precision array,
  in/out integer iwork array dimension (n)
  out integer info
subroutine dggsvp
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  in double tola
  in double tolb
  out integer k
  out integer l
  out double u array dimension (ldu,m)
  in integer ldu
  out double v array dimension (ldv,m)
  in integer ldv
  out double q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array dimension (n)
  in/out double tau array dimension (n)
  in/out double work array dimension (max(3*n,m,p))
  out integer info
subroutine dgtcon
  in character*1 norm
  in integer n
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in double du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out double work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgtrfs
  in character*1 trans
  in integer n
  in integer nrhs
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in double dlf array dimension (n-1)
  in double df array dimension (n)
  in double duf array dimension (n-1)
  in double du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgtsv
  in integer n
  in integer nrhs
  in/out double dl array dimension (n-1)
  in/out double d array dimension (n)
  in/out double du array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dgtsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in/out double dlf array dimension (n-1)
  in/out double df array dimension (n)
  in/out double duf array dimension (n-1)
  in/out double du2 array dimension (n-2)
  in/out integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dgttrf
  in integer n
  in/out double dl array dimension (n-1)
  in/out double d array dimension (n)
  in/out double du array dimension (n-1)
  out double du2 array dimension (n-2)
  out integer ipiv array dimension (n)
  out integer info
subroutine dgttrs
  in character*1 trans
  in integer n
  in integer nrhs
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in double du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dgtts2
  in integer itrans
  in integer n
  in integer nrhs
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in double du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
subroutine dhgeqz
  in character*1 job
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out double h array (ldh, n)
  in integer ldh
  in/out double t array (ldt, n)
  in integer ldt
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  in/out double q array (ldq, n)
  in integer ldq
  in/out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dhsein
  in character*1 side
  in character*1 eigsrc
  in character*1 initv
  in/out logical select array dimension (n)
  in integer n
  in double h array dimension (ldh,n)
  in integer ldh
  in/out double wr array dimension (n)
  in double wi array dimension (n)
  in/out double vl array dimension (ldvl,mm)
  in integer ldvl
  in/out double vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out double work array dimension ((n+2)*n)
  out integer ifaill array dimension (mm)
  out integer ifailr array dimension (mm)
  out integer info
subroutine dhseqr
  in character*1 job
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out double h array dimension (ldh,n)
  in integer ldh
  out double wr array dimension (n)
  out double wi array dimension (n)
  in/out double z array dimension (ldz,n)
  in integer ldz
  in/out double work array dimension (lwork)
  in integer lwork
  out integer info
function logical disnan
  in double din
subroutine dlabad
  in/out double small
  in/out double large
subroutine dlabrd
  in integer m
  in integer n
  in integer nb
  in/out double a array dimension (lda,n)
  in integer lda
  out double d array dimension (nb)
  out double e array dimension (nb)
  out double tauq array dimension (nb)
  out double taup array dimension (nb)
  out double x array dimension (ldx,nb)
  in integer ldx
  out double y array dimension (ldy,nb)
  in integer ldy
subroutine dlacn2
  in integer n
  in/out double v array dimension (n)
  in/out double x array dimension (n)
  in/out integer isgn array dimension (n)
  in/out double est
  in/out integer kase
  in/out integer isave array dimension (3)
subroutine dlacon
  in integer n
  in/out double v array dimension (n)
  in/out double x array dimension (n)
  in/out integer isgn array dimension (n)
  in/out double est
  in/out integer kase
subroutine dlacpy
  in character*1 uplo
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out double b array dimension (ldb,n)
  in integer ldb
subroutine dladiv
  in double a
  in double b
  in double c
  in double d
  out double p
  out double q
subroutine dlae2
  in double a
  in double b
  in double c
  out double rt1
  out double rt2
subroutine dlaebz
  in integer ijob
  in integer nitmax
  in integer n
  in integer mmax
  in integer minp
  in integer nbmin
  in double abstol
  in double reltol
  in double pivmin
  in double d array dimension (n)
  in double e array dimension (n)
  in double e2 array dimension (n)
  in/out integer nval array dimension (minp)
  in/out double ab array dimension (mmax,2)
  in/out double c array dimension (mmax)
  out integer mout
  in/out integer nab array dimension (mmax,2)
  in/out double work array dimension (mmax)
  in/out integer iwork array dimension (mmax)
  out integer info
subroutine dlaed0
  in integer icompq
  in integer qsiz
  in integer n
  in/out double d array dimension (n)
  in double e array dimension (n-1)
  in/out double q array (ldq, n)
  in integer ldq
  in/out double qstore array (ldqs, n)
  in integer ldqs
  in/out double work array precision array,
  in/out integer iwork array integer array,
  out integer info
subroutine dlaed1
  in integer n
  in/out double d array dimension (n)
  in/out double q array dimension (ldq,n)
  in integer ldq
  in/out integer indxq array dimension (n)
  in double rho
  in integer cutpnt
  in/out double work array + n**2)
  in/out integer iwork array dimension (4*n)
  out integer info
subroutine dlaed2
  out integer k
  in integer n
  in integer n1
  in/out double d array dimension (n)
  in/out double q array (ldq, n)
  in integer ldq
  in/out integer indxq array dimension (n)
  in/out double rho
  in double z array dimension (n)
  out double dlamda array dimension (n)
  out double w array dimension (n)
  out double q2 array dimension (n1**2+(n-n1)**2)
  in/out integer indx array dimension (n)
  out integer indxc array dimension (n)
  in/out integer indxp array dimension (n)
  in/out integer coltyp array dimension (n)
  out integer info
subroutine dlaed3
  in integer k
  in integer n
  in integer n1
  out double d array dimension (n)
  out double q array dimension (ldq,n)
  in integer ldq
  in double rho
  in/out double dlamda array dimension (k)
  in double q2 array (ldq2, n)
  in integer indx array dimension (n)
  in integer ctot array dimension (4)
  in/out double w array dimension (k)
  in/out double s array + 1)*k
  in integer lds
  out integer info
subroutine dlaed4
  in integer n
  in integer i
  in double d array dimension (n)
  in double z array dimension (n)
  out double delta array dimension (n)
  in double rho
  out double dlam
  out integer info
subroutine dlaed5
  in integer i
  in double d array dimension (2)
  in double z array dimension (2)
  out double delta array dimension (2)
  in double rho
  out double dlam
subroutine dlaed6
  in integer kniter
  in logical orgati
  in double rho
  in double d array dimension (3)
  in double z array dimension (3)
  in double finit
  out double tau
  out integer info
subroutine dlaed7
  in integer icompq
  in integer n
  in integer qsiz
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in/out double d array dimension (n)
  in/out double q array (ldq, n)
  in integer ldq
  out integer indxq array dimension (n)
  in double rho
  in integer cutpnt
  in/out double qstore array dimension (n**2+1)
  in/out integer qptr array dimension (n+2)
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in double givnum array lg n)
  in/out double work array dimension (3*n+qsiz*n)
  in/out integer iwork array dimension (4*n)
  out integer info
subroutine dlaed8
  in integer icompq
  out integer k
  in integer n
  in integer qsiz
  in/out double d array dimension (n)
  in/out double q array dimension (ldq,n)
  in integer ldq
  in integer indxq array dimension (n)
  in/out double rho
  in integer cutpnt
  in double z array dimension (n)
  out double dlamda array dimension (n)
  out double q2 array dimension (ldq2,n)
  in integer ldq2
  out double w array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (2, n)
  out double givnum array (2, n)
  in/out integer indxp array dimension (n)
  in/out integer indx array dimension (n)
  out integer info
subroutine dlaed9
  in integer k
  in integer kstart
  in integer kstop
  in integer n
  out double d array dimension (n)
  in/out double q array dimension (ldq,n)
  in integer ldq
  in double rho
  in double dlamda array dimension (k)
  in double w array dimension (k)
  out double s array (lds, k)
  in integer lds
  out integer info
subroutine dlaeda
  in integer n
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in double givnum array lg n)
  in double q array dimension (n**2)
  in integer qptr array dimension (n+2)
  out double z array dimension (n)
  in/out double ztemp array dimension (n)
  out integer info
subroutine dlaein
  in logical rightv
  in logical noinit
  in integer n
  in double h array dimension (ldh,n)
  in integer ldh
  in double wr
  in double wi
  in/out double vr array dimension (n)
  in/out double vi array dimension (n)
  in/out double b array dimension (ldb,n)
  in integer ldb
  in/out double work array dimension (n)
  in double eps3
  in double smlnum
  in double bignum
  out integer info
subroutine dlaev2
  in double a
  in double b
  in double c
  out double rt1
  out double rt2
  out double cs1
  out double sn1
subroutine dlaexc
  in logical wantq
  in integer n
  in/out double t array dimension (ldt,n)
  in integer ldt
  in/out double q array dimension (ldq,n)
  in integer ldq
  in integer j1
  in integer n1
  in integer n2
  in/out double work array dimension (n)
  out integer info
subroutine dlag2
  in double a array (lda, 2)
  in integer lda
  in double b array (ldb, 2)
  in integer ldb
  in double safmin
  out double scale1
  out double scale2
  out double wr1
  out double wr2
  out double wi
subroutine dlag2s
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out real sa array dimension (ldsa,n)
  in integer ldsa
  out integer info
subroutine dlags2
  in logical upper
  in double a1
  in double a2
  in double a3
  in double b1
  in double b2
  in double b3
  out double csu
  out double snu
  out double csv
  out double snv
  out double csq
  out double snq
subroutine dlagtf
  in integer n
  in/out double a array dimension (n)
  in double lambda
  in/out double b array dimension (n-1)
  in/out double c array dimension (n-1)
  in double tol
  out double d array dimension (n-2)
  out integer in array dimension (n)
  out integer info
subroutine dlagtm
  in character*1 trans
  in integer n
  in integer nrhs
  in double alpha
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
  in double x array dimension (ldx,nrhs)
  in integer ldx
  in double beta
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
subroutine dlagts
  in integer job
  in integer n
  in double a array dimension (n)
  in double b array dimension (n-1)
  in double c array dimension (n-1)
  in double d array dimension (n-2)
  in integer in array dimension (n)
  in/out double y array dimension (n)
  in/out double tol
  out integer info
subroutine dlagv2
  in/out double a array (lda, 2)
  in integer lda
  in/out double b array (ldb, 2)
  in integer ldb
  out double alphar array dimension (2)
  out double alphai array dimension (2)
  out double beta array dimension (2)
  out double csl
  out double snl
  out double csr
  out double snr
subroutine dlahqr
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out double h array dimension (ldh,n)
  in integer ldh
  out double wr array dimension (n)
  out double wi array dimension (n)
  in integer iloz
  in integer ihiz
  in/out double z array dimension (ldz,n)
  in integer ldz
  out integer info
subroutine dlahr2
  in integer n
  in integer k
  in integer nb
  in/out double a array dimension (lda,n-k+1)
  in integer lda
  out double tau array dimension (nb)
  out double t array dimension (ldt,nb)
  in integer ldt
  out double y array dimension (ldy,nb)
  in integer ldy
subroutine dlahrd
  in integer n
  in integer k
  in integer nb
  in/out double a array dimension (lda,n-k+1)
  in integer lda
  out double tau array dimension (nb)
  out double t array dimension (ldt,nb)
  in integer ldt
  out double y array dimension (ldy,nb)
  in integer ldy
subroutine dlaic1
  in integer job
  in integer j
  in double x array dimension (j)
  in double sest
  in double w array dimension (j)
  in double gamma
  out double sestpr
  out double s
  out double c
function logical dlaisnan
  in double din1
  in double din2
subroutine dlaln2
  in logical ltrans
  in integer na
  in integer nw
  in double smin
  in double ca
  in double a array dimension (lda,na)
  in integer lda
  in double d1
  in double d2
  in double b array dimension (ldb,nw)
  in integer ldb
  in double wr
  in double wi
  out double x array dimension (ldx,nw)
  in integer ldx
  out double scale
  out double xnorm
  out integer info
subroutine dlals0
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in integer nrhs
  in/out double b array (ldb, nrhs)
  in integer ldb
  in/out double bx array (ldbx, nrhs)
  in integer ldbx
  in integer perm array dimension (n)
  in integer givptr
  in integer givcol array (ldgcol, 2)
  in integer ldgcol
  in double givnum array (ldgnum, 2)
  in integer ldgnum
  in double poles array (ldgnum, 2)
  in double difl array dimension (k).
  in double difr array (ldgnum, 2).
  in double z array dimension (k)
  in integer k
  in double c
  in double s
  in/out double work array dimension (k)
  out integer info
subroutine dlalsa
  in integer icompq
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out double b array (ldb, nrhs)
  in integer ldb
  out double bx array (ldbx, nrhs)
  in integer ldbx
  in double u array (ldu, smlsiz).
  in integer ldu
  in double vt array (ldu, smlsiz+1).
  in integer k array dimension (n).
  in double difl array (ldu, nlvl).
  in double difr array * nlvl).
  in double z array (ldu, nlvl).
  in double poles array * nlvl).
  in integer givptr array dimension (n).
  in integer givcol array * nlvl).
  in integer ldgcol
  in integer perm array (ldgcol, nlvl).
  in double givnum array * nlvl).
  in double c array dimension (n).
  in double s array dimension (n).
  in/out double work array precision array.
  in/out integer iwork array integer array.
  out integer info
subroutine dlalsd
  in character*1 uplo
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  in double rcond
  out integer rank
  in/out double work array at least
  in/out integer iwork array at least
  out integer info
subroutine dlamrg
  in integer n1
  in integer n2
  in double a array dimension (n1+n2)
  in integer dtrd1
  in integer dtrd2
  out integer index array dimension (n1+n2)
function integer dlaneg
  in integer n
  in double d array dimension (n)
  in double lld array dimension (n-1)
  in double sigma
  in double pivmin
  in integer r
function double precision dlangb
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision dlange
  in character*1 norm
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision dlangt
  in character*1 norm
  in integer n
  in double dl array dimension (n-1)
  in double d array dimension (n)
  in double du array dimension (n-1)
function double precision dlanhs
  in character*1 norm
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision dlansb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision dlansp
  in character*1 norm
  in character*1 uplo
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in/out double work array dimension (max(1,lwork)),
function double precision dlanst
  in character*1 norm
  in integer n
  in double d array dimension (n)
  in double e array dimension (n-1)
function double precision dlansy
  in character*1 norm
  in character*1 uplo
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision dlantb
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer k
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision dlantp
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in/out double work array dimension (max(1,lwork)),
function double precision dlantr
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
subroutine dlanv2
  in/out double a
  in/out double b
  in/out double c
  in/out double d
  out double rt1r
  out double rt1i
  out double rt2r
  out double rt2i
  out double cs
  out double sn
subroutine dlapll
  in integer n
  in/out double x array precision array,
  in integer incx
  in/out double y array precision array,
  in integer incy
  out double ssmin
subroutine dlapmt
  in logical forwrd
  in integer m
  in integer n
  in/out double x array dimension (ldx,n)
  in integer ldx
  in/out integer k array dimension (n)
function double precision dlapy2
  in double x
  in double y
function double precision dlapy3
  in double x
  in double y
  in double z
subroutine dlaqgb
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in double r array dimension (m)
  in double c array dimension (n)
  in double rowcnd
  in double colcnd
  in double amax
  out character*1 equed
subroutine dlaqge
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in double r array dimension (m)
  in double c array dimension (n)
  in double rowcnd
  in double colcnd
  in double amax
  out character*1 equed
subroutine dlaqp2
  in integer m
  in integer n
  in integer offset
  in/out double a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out double tau array dimension (min(m,n))
  in/out double vn1 array dimension (n)
  in/out double vn2 array dimension (n)
  in/out double work array dimension (n)
subroutine dlaqps
  in integer m
  in integer n
  in integer offset
  in integer nb
  out integer kb
  in/out double a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out double tau array dimension (kb)
  in/out double vn1 array dimension (n)
  in/out double vn2 array dimension (n)
  in/out double auxv array dimension (nb)
  in/out double f array dimension (ldf,nb)
  in integer ldf
subroutine dlaqr0
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out double h array dimension (ldh,n)
  in integer ldh
  out double wr array dimension (ihi)
  out double wi array dimension (ihi)
  in integer iloz
  in integer ihiz
  in/out double z array dimension (ldz,ihi)
  in integer ldz
  in/out double work array dimension lwork
  in integer lwork
  out integer info
subroutine dlaqr1
  in integer n
  in double h array dimension (ldh,n)
  in integer ldh
  in double sr1
  out double v array dimension n
subroutine dlaqr2
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out double h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out double z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out double sr array dimension kbot
  out double si array dimension kbot
  in/out double v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out double t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out double wv array dimension (ldwv,nw)
  in integer ldwv
  in/out double work array dimension lwork.
  in integer lwork
subroutine dlaqr3
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out double h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out double z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out double sr array dimension kbot
  out double si array dimension kbot
  in/out double v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out double t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out double wv array dimension (ldwv,nw)
  in integer ldwv
  in/out double work array dimension lwork.
  in integer lwork
subroutine dlaqr4
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out double h array dimension (ldh,n)
  in integer ldh
  out double wr array dimension (ihi)
  out double wi array dimension (ihi)
  in integer iloz
  in integer ihiz
  in/out double z array dimension (ldz,ihi)
  in integer ldz
  in/out double work array dimension lwork
  in integer lwork
  out integer info
subroutine dlaqr5
  in logical wantt
  in logical wantz
  in integer kacc22
  in integer n
  in integer ktop
  in integer kbot
  in integer nshfts
  in double sr array size (nshfts)
  in double si array size (nshfts)
  in/out double h array size (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out double z array size (ldz,ihi)
  in integer ldz
  in/out double v array size (ldv,nshfts/2)
  in integer ldv
  in/out double u array of size
  in integer ldu
  in integer nh
  in/out double wh array size (ldwh,nh)
  in integer ldwh
  in integer nv
  in/out double wv array of size
  in integer ldwv
subroutine dlaqsb
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine dlaqsp
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine dlaqsy
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine dlaqtr
  in logical ltran
  in logical lreal
  in integer n
  in double t array dimension (ldt,n)
  in integer ldt
  in double b array dimension (n)
  in double w
  out double scale
  in/out double x array dimension (2*n)
  in/out double work array dimension (n)
  out integer info
subroutine dlar1v
  in integer n
  in integer b1
  in integer bn
  in double lambda
  in double l array dimension (n-1)
  in double d array dimension (n)
  in double ld array dimension (n-1)
  in double lld array dimension (n-1)
  in double pivmin
  in double gaptol
  in/out double z array dimension (n)
  in logical wantnc
  out integer negcnt
  out double ztz
  out double mingma
  in/out integer r
  out integer isuppz array dimension (2)
  out double nrminv
  out double resid
  out double rqcorr
  in/out double work array dimension (4*n)
subroutine dlar2v
  in integer n
  in/out double x array precision array,
  in/out double y array precision array,
  in/out double z array precision array,
  in integer incx
  in double c array dimension (1+(n-1)*incc)
  in double s array dimension (1+(n-1)*incc)
  in integer incc
subroutine dlarfb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in double v array array, dimension
  in integer ldv
  in double t array dimension (ldt,k)
  in integer ldt
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (ldwork,k)
  in integer ldwork
subroutine dlarf
  in character*1 side
  in integer m
  in integer n
  in double v array array, dimension
  in integer incv
  in double tau
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
subroutine dlarfg
  in integer n
  in/out double alpha
  in/out double x array array, dimension
  in integer incx
  out double tau
subroutine dlarft
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out double v array array, dimension
  in integer ldv
  in double tau array dimension (k)
  out double t array dimension (ldt,k)
  in integer ldt
subroutine dlarfx
  in character*1 side
  in integer m
  in integer n
  in double v array = 'l'
  in double tau
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
subroutine dlargv
  in integer n
  in/out double x array precision array,
  in integer incx
  in/out double y array precision array,
  in integer incy
  out double c array dimension (1+(n-1)*incc)
  in integer incc
subroutine dlarnv
  in integer idist
  in/out integer iseed array dimension (4)
  in integer n
  out double x array dimension (n)
subroutine dlarra
  in integer n
  in double d array dimension (n)
  in/out double e array dimension (n)
  in/out double e2 array dimension (n)
  in double spltol
  in double tnrm
  out integer nsplit
  out integer isplit array dimension (n)
  out integer info
subroutine dlarrb
  in integer n
  in double d array dimension (n)
  in double lld array dimension (n-1)
  in integer ifirst
  in integer ilast
  in double rtol1
  in double rtol2
  in integer offset
  in/out double w array dimension (n)
  in/out double wgap array dimension (n-1)
  in/out double werr array dimension (n)
  in/out double work array dimension (2*n)
  in/out integer iwork array dimension (2*n)
  in double pivmin
  in double spdiam
  in integer twist
  out integer info
subroutine dlarrc
  in character*1 jobt
  in integer n
  in double vl
  in double vu
  in double d array dimension (n)
  in double e array dimension (n)
  in double pivmin
  out integer eigcnt
  out integer lcnt
  out integer rcnt
  out integer info
subroutine dlarrd
  in character range
  in character order
  in integer n
  in double vl
  in double vu
  in integer il
  in integer iu
  in double gers array dimension (2*n)
  in double reltol
  in double d array dimension (n)
  in double e array dimension (n-1)
  in double e2 array dimension (n-1)
  in double pivmin
  in integer nsplit
  in integer isplit array dimension (n)
  out integer m
  out double w array dimension (n)
  out double werr array dimension (n)
  out double wl
  out double wu
  out integer iblock array dimension (n)
  out integer indexw array dimension (n)
  in/out double work array dimension (4*n)
  in/out integer iwork array dimension (3*n)
  out integer info
subroutine dlarre
  in character range
  in integer n
  in/out double vl
  in/out double vu
  in integer il
  in integer iu
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in/out double e2 array dimension (n)
  in double rtol1
  in double rtol2
  in double spltol
  out integer nsplit
  out integer isplit array dimension (n)
  out integer m
  out double w array dimension (n)
  out double werr array dimension (n)
  out double wgap array dimension (n)
  out integer iblock array dimension (n)
  out integer indexw array dimension (n)
  out double gers array dimension (2*n)
  out double pivmin
  in/out double work array dimension (6*n)
  in/out integer iwork array dimension (5*n)
  out integer info
subroutine dlarrf
  in integer n
  in double d array dimension (n)
  in double l array dimension (n-1)
  in double ld array dimension (n-1)
  in integer clstrt
  in integer clend
  in double w array dimension (clend-clstrt+1)
  in/out double wgap array dimension (clend-clstrt+1)
  in double werr array dimension (clend-clstrt+1)
  in double spdiam
  in double clgapl
  in double clgapr
  in double pivmin
  out double sigma
  out double dplus array dimension (n)
  out double lplus array dimension (n-1)
  in/out double work array dimension (2*n)
subroutine dlarrj
  in integer n
  in double d array dimension (n)
  in double e2 array dimension (n-1)
  in integer ifirst
  in integer ilast
  in double rtol
  in integer offset
  in/out double w array dimension (n)
  in/out double werr array dimension (n)
  in/out double work array dimension (2*n)
  in/out integer iwork array dimension (2*n)
  in double pivmin
  in double spdiam
  out integer info
subroutine dlarrk
  in integer n
  in integer iw
  in double gl
  in double gu
  in double d array dimension (n)
  in double e2 array dimension (n-1)
  in double pivmin
  in double reltol
  out double w
  out double werr
  out integer info
subroutine dlarrr
  in integer n
  in double d array dimension (n)
  in/out double e array dimension (n)
  out integer info
subroutine dlarrv
  in integer n
  in double vl
  in double vu
  in/out double d array dimension (n)
  in/out double l array dimension (n)
  in integer isplit array dimension (n)
  in integer m
  in integer dol
  in integer dou
  in double minrgp
  in double rtol1
  in double rtol2
  in/out double w array dimension (n)
  in/out double werr array dimension (n)
  in/out double wgap array dimension (n)
  in integer iblock array dimension (n)
  in integer indexw array dimension (n)
  in double gers array dimension (2*n)
  out double z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out double work array dimension (12*n)
  in/out integer iwork array dimension (7*n)
  out integer info
subroutine dlartg
  in double f
  in double g
  out double cs
  out double sn
  out double r
subroutine dlartv
  in integer n
  in/out double x array precision array,
  in integer incx
  in/out double y array precision array,
  in integer incy
  in double c array dimension (1+(n-1)*incc)
  in double s array dimension (1+(n-1)*incc)
  in integer incc
subroutine dlaruv
  in/out integer iseed array dimension (4)
  in integer n
  out double x array dimension (n)
subroutine dlarzb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in integer l
  in double v array dimension (ldv,nv).
  in integer ldv
  in double t array dimension (ldt,k)
  in integer ldt
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (ldwork,k)
  in integer ldwork
subroutine dlarz
  in character*1 side
  in integer m
  in integer n
  in integer l
  in double v array dimension (1+(l-1)*abs(incv))
  in integer incv
  in double tau
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
subroutine dlarzt
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out double v array array, dimension
  in integer ldv
  in double tau array dimension (k)
  out double t array dimension (ldt,k)
  in integer ldt
subroutine dlas2
  in double f
  in double g
  in double h
  out double ssmin
  out double ssmax
subroutine dlascl
  in character*1 type
  in integer kl
  in integer ku
  in double cfrom
  in double cto
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dlasd0
  in integer n
  in integer sqre
  in/out double d array dimension (n)
  in double e array dimension (m-1)
  out double u array (ldq, n)
  in integer ldu
  out double vt array (ldvt, m)
  in integer ldvt
  in integer smlsiz
  in/out integer iwork array work array.
  in/out double work array work array.
  out integer info
subroutine dlasd1
  in integer nl
  in integer nr
  in integer sqre
  in/out double d array precision array,
  in/out double alpha
  in/out double beta
  in/out double u array array, dimension(ldu,n)
  in integer ldu
  in/out double vt array array, dimension(ldvt,m)
  in integer ldvt
  out integer idxq array array, dimension(n)
  in/out integer iwork array * n)
  in/out double work array + 2*m)
  out integer info
subroutine dlasd2
  in integer nl
  in integer nr
  in integer sqre
  out integer k
  in/out double d array array, dimension(n)
  out double z array array, dimension(n)
  in double alpha
  in double beta
  in/out double u array array, dimension(ldu,n)
  in integer ldu
  in/out double vt array array, dimension(ldvt,m)
  in integer ldvt
  out double dsigma array dimension (n)
  out double u2 array array, dimension(ldu2,n)
  in integer ldu2
  out double vt2 array array, dimension(ldvt2,n)
  in integer ldvt2
  in/out integer idxp array array dimension(n)
  in/out integer idx array array dimension(n)
  out integer idxc array array dimension(n)
  in/out integer idxq array array dimension(n)
  in/out integer coltyp array array dimension(n)
  out integer info
subroutine dlasd3
  in integer nl
  in integer nr
  in integer sqre
  in integer k
  out double d array array, dimension(k)
  in/out double q array precision array,
  in integer ldq
  in double dsigma array array, dimension(k)
  out double u array (ldu, n)
  in integer ldu
  in/out double u2 array (ldu2, n)
  in integer ldu2
  out double vt array (ldvt, m)
  in integer ldvt
  in/out double vt2 array (ldvt2, n)
  in integer ldvt2
  in integer idxc array dimension (n)
  in integer ctot array dimension (4)
  in double z array dimension (k)
  out integer info
subroutine dlasd4
  in integer n
  in integer i
  in double d array dimension (n)
  in double z array dimension (n)
  out double delta array dimension (n)
  in double rho
  out double sigma
  in/out double work array dimension (n)
  out integer info
subroutine dlasd5
  in integer i
  in double d array dimension (2)
  in double z array dimension (2)
  out double delta array dimension (2)
  in double rho
  out double dsigma
  in/out double work array dimension (2)
subroutine dlasd6
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in/out double d array dimension (nl+nr+1).
  in/out double vf array dimension (m)
  in/out double vl array dimension (m)
  in/out double alpha
  in/out double beta
  out integer idxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (ldgcol, 2)
  in integer ldgcol
  out double givnum array (ldgnum, 2)
  in integer ldgnum
  out double poles array (ldgnum, 2)
  out double difl array dimension (n)
  out double difr array precision array,
  out double z array dimension (m)
  out integer k
  out double c
  out double s
  in/out double work array * m)
  in/out integer iwork array * n)
  out integer info
subroutine dlasd7
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  out integer k
  in/out double d array dimension (n)
  out double z array dimension (m)
  in/out double zw array dimension (m)
  in/out double vf array dimension (m)
  in/out double vfw array dimension (m)
  in/out double vl array dimension (m)
  in/out double vlw array dimension (m)
  in double alpha
  in double beta
  out double dsigma array dimension (n)
  in/out integer idx array dimension (n)
  in/out integer idxp array dimension (n)
  in integer idxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (ldgcol, 2)
  in integer ldgcol
  out double givnum array (ldgnum, 2)
  in integer ldgnum
  out double c
  out double s
  out integer info
subroutine dlasd8
  in integer icompq
  in integer k
  out double d array dimension (k)
  in double z array dimension (k)
  in/out double vf array dimension (k)
  in/out double vl array dimension (k)
  out double difl array dimension (k)
  out double difr array precision array,
  in integer lddifr
  in double dsigma array dimension (k)
  in/out double work array * k
  out integer info
subroutine dlasda
  in integer icompq
  in integer smlsiz
  in integer n
  in integer sqre
  in/out double d array dimension (n)
  in double e array dimension (m-1)
  out double u array precision array,
  in integer ldu
  out double vt array precision array,
  out integer k array integer array,
  out double difl array (ldu, nlvl),
  out double difr array precision array,
  out double z array precision array,
  out double poles array precision array,
  out integer givptr array integer array,
  out integer givcol array integer array,
  in integer ldgcol
  out integer perm array integer array,
  out double givnum array precision array,
  out double c array precision array,
  out double s array (n) if
  in/out double work array array, dimension
  in/out integer iwork array integer array.
  out integer info
subroutine dlasdq
  in character*1 uplo
  in integer sqre
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out double d array dimension (n)
  in/out double e array precision array.
  in/out double vt array (ldvt, ncvt)
  in integer ldvt
  in/out double u array (ldu, n)
  in integer ldu
  in/out double c array (ldc, ncc)
  in integer ldc
  in/out double work array dimension (4*n)
  out integer info
subroutine dlasdt
  in integer n
  out integer lvl
  out integer nd
  out integer inode array dimension (n)
  out integer ndiml array dimension (n)
  out integer ndimr array dimension (n)
  in integer. msub
subroutine dlaset
  in character*1 uplo
  in integer m
  in integer n
  in double alpha
  in double beta
  in/out double a array dimension (lda,n)
  in integer lda
subroutine dlasq1
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in/out double work array dimension (4*n)
  out integer info
subroutine dlasq2
  in integer n
  in/out double z array dimension (4*n)
  out integer info
subroutine dlasq3
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  out double dmin
  out double sigma
  in/out double desig
  in double qmax
  out integer nfail
  out integer iter
  out integer ndiv
  out integer ttype
  in logical ieee
subroutine dlasq4
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  in integer n0in
  in double dmin
  in double dmin1
  in double dmin2
  in double dn
  in double dn1
  in double dn2
  out double tau
  out integer ttype
subroutine dlasq5
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  in double tau
  out double dmin
  out double dmin1
  out double dmin2
  out double dn
  out double dnm1
  out double dnm2
  in logical ieee
subroutine dlasq6
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  out double dmin
  out double dmin1
  out double dmin2
  out double dn
  out double dnm1
  out double dnm2
subroutine dlasr
  in character*1 side
  in character*1 pivot
  in character*1 direct
  in integer m
  in integer n
  in double c array array, dimension
  in double s array array, dimension
  in/out double a array dimension (lda,n)
  in integer lda
subroutine dlasrt
  in character*1 id
  in integer n
  in/out double d array dimension (n)
  out integer info
subroutine dlassq
  in integer n
  in double x array dimension (n)
  in integer incx
  in/out double scale
  in/out double sumsq
subroutine dlasv2
  in double f
  in double g
  in double h
  out double ssmin
  out double ssmax
  out double snl
  out double csl
  out double snr
  out double csr
subroutine dlaswp
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in integer k1
  in integer k2
  in integer ipiv array dimension (k2*abs(incx))
  in integer incx
subroutine dlasy2
  in logical ltranl
  in logical ltranr
  in integer isgn
  in integer n1
  in integer n2
  in double tl array dimension (ldtl,2)
  in integer ldtl
  in double tr array dimension (ldtr,2)
  in integer ldtr
  in double b array dimension (ldb,2)
  in integer ldb
  out double scale
  out double x array dimension (ldx,2)
  in integer ldx
  out double xnorm
  out integer info
subroutine dlasyf
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out double w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine dlatbs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in integer kd
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine dlatdf
  in integer ijob
  in integer n
  in double z array (ldz, n)
  in integer ldz
  in/out double rhs array dimension n.
  in/out double rdsum
  in/out double rdscal
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
subroutine dlatps
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in/out double x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine dlatrd
  in character*1 uplo
  in integer n
  in integer nb
  in/out double a array dimension (lda,n)
  in integer lda
  out double e array dimension (n-1)
  out double tau array dimension (n-1)
  out double w array dimension (ldw,nb)
  in integer ldw
subroutine dlatrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in/out double x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine dlatrz
  in integer m
  in integer n
  in integer l
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (m)
  in/out double work array dimension (m)
subroutine dlatzm
  in character*1 side
  in integer m
  in integer n
  in double v array array, dimension
  in integer incv
  in double tau
  in/out double c1 array array, dimension
  in/out double c2 array array, dimension
  in integer ldc
  in/out double work array array, dimension
subroutine dlauu2
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dlauum
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dlazq3
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  out double dmin
  out double sigma
  in/out double desig
  in double qmax
  out integer nfail
  out integer iter
  out integer ndiv
  in logical ieee
  in/out integer ttype
  in/out real dmin1
  in/out real dmin2
  in/out real dn
  in/out real dn1
  in/out real dn2
  in/out real tau
subroutine dlazq4
  in integer i0
  in integer n0
  in double z array dimension (4*n)
  in integer pp
  in integer n0in
  in double dmin
  in double dmin1
  in double dmin2
  in double dn
  in double dn1
  in double dn2
  out double tau
  out integer ttype
  in/out double g
subroutine dopgtr
  in character*1 uplo
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in double tau array dimension (n-1)
  out double q array dimension (ldq,n)
  in integer ldq
  in/out double work array dimension (n-1)
  out integer info
subroutine dopmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in double ap array array, dimension
  in double tau array = 'l'
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dorg2l
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (n)
  out integer info
subroutine dorg2r
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (n)
  out integer info
subroutine dorgbr
  in character*1 vect
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array array, dimension
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorghr
  in integer n
  in integer ilo
  in integer ihi
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (n-1)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorgl2
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (m)
  out integer info
subroutine dorglq
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorgql
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorgqr
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorgr2
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (m)
  out integer info
subroutine dorgrq
  in integer m
  in integer n
  in integer k
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (k)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorgtr
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in double tau array dimension (n-1)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorm2l
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array dimension (lda,k)
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dorm2r
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array dimension (lda,k)
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dormbr
  in character*1 vect
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array array, dimension
  in integer lda
  in double tau array dimension (min(nq,k))
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormhr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer ilo
  in integer ihi
  in double a array array, dimension
  in integer lda
  in double tau array array, dimension
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dorml2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dormlq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormql
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array dimension (lda,k)
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormqr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array dimension (lda,k)
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormr2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dormr3
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array array, dimension
  out integer info
subroutine dormrq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormrz
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in double a array array, dimension
  in integer lda
  in double tau array dimension (k)
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dormtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in double a array array, dimension
  in integer lda
  in double tau array array, dimension
  in/out double c array dimension (ldc,n)
  in integer ldc
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dpbcon
  in character*1 uplo
  in integer n
  in integer kd
  in double ab array dimension (ldab,n)
  in integer ldab
  in double anorm
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpbequ
  in character*1 uplo
  in integer n
  in integer kd
  in double ab array dimension (ldab,n)
  in integer ldab
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine dpbrfs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in double afb array dimension (ldafb,n)
  in integer ldafb
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpbstf
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine dpbsv
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dpbsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in/out double afb array dimension (ldafb,n)
  in integer ldafb
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpbtf2
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine dpbtrf
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine dpbtrs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dpocon
  in character*1 uplo
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in double anorm
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpoequ
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine dporfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in double af array dimension (ldaf,n)
  in integer ldaf
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dposv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dposvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double af array dimension (ldaf,n)
  in integer ldaf
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpotf2
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dpotrf
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dpotri
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dpotrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dppcon
  in character*1 uplo
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in double anorm
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dppequ
  in character*1 uplo
  in integer n
  in double ap array dimension (n*(n+1)/2)
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine dpprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in double afp array dimension (n*(n+1)/2)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dppsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double ap array dimension (n*(n+1)/2)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dppsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double ap array dimension (n*(n+1)/2)
  in/out double afp array array, dimension
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dpptrf
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out integer info
subroutine dpptri
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out integer info
subroutine dpptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dptcon
  in integer n
  in double d array dimension (n)
  in double e array dimension (n-1)
  in double anorm
  out double rcond
  in/out double work array dimension (n)
  out integer info
subroutine dpteqr
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (4*n)
  out integer info
subroutine dptrfs
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in double e array dimension (n-1)
  in double df array dimension (n)
  in double ef array dimension (n-1)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (2*n)
  out integer info
subroutine dptsv
  in integer n
  in integer nrhs
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dptsvx
  in character*1 fact
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in double e array dimension (n-1)
  in/out double df array dimension (n)
  in/out double ef array dimension (n-1)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (2*n)
  out integer info
subroutine dpttrf
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  out integer info
subroutine dpttrs
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in double e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dptts2
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in double e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
subroutine drscl
  in integer n
  in double sa
  in/out double sx array array, dimension
  in integer incx
subroutine dsbevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array (ldab, n)
  in integer ldab
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array precision array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dsbev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array (ldab, n)
  in integer ldab
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,3*n-2))
  out integer info
subroutine dsbevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array (ldab, n)
  in integer ldab
  out double q array (ldq, n)
  in integer ldq
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dsbgst
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out double ab array dimension (ldab,n)
  in integer ldab
  in double bb array dimension (ldbb,n)
  in integer ldbb
  out double x array dimension (ldx,n)
  in integer ldx
  in/out double work array dimension (2*n)
  out integer info
subroutine dsbgvd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out double ab array (ldab, n)
  in integer ldab
  in/out double bb array (ldbb, n)
  in integer ldbb
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dsbgv
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out double ab array (ldab, n)
  in integer ldab
  in/out double bb array (ldbb, n)
  in integer ldbb
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (3*n)
  out integer info
subroutine dsbgvx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out double ab array (ldab, n)
  in integer ldab
  in/out double bb array (ldbb, n)
  in integer ldbb
  out double q array (ldq, n)
  in integer ldq
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (m)
  out integer info
subroutine dsbtrd
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer kd
  in/out double ab array dimension (ldab,n)
  in integer ldab
  out double d array dimension (n)
  out double e array dimension (n-1)
  in/out double q array dimension (ldq,n)
  in integer ldq
  in/out double work array dimension (n)
  out integer info
subroutine dsgesv
  in integer n
  in integer nrhs
  in/out double a array precision array,
  in integer lda
  out integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  in/out double work array dimension (n*nrhs)
  in/out real swork array dimension (n*(n+nrhs))
  out integer iter
  out integer info
subroutine dspcon
  in character*1 uplo
  in integer n
  in double ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out double work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dspevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array precision array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dspev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (3*n)
  out integer info
subroutine dspevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (8*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dspgst
  in integer itype
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in double bp array dimension (n*(n+1)/2)
  out integer info
subroutine dspgvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in/out double bp array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dspgv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double ap array array, dimension
  in/out double bp array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (3*n)
  out integer info
subroutine dspgvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in/out double bp array dimension (n*(n+1)/2)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (8*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dsprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in double afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dspsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dspsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in/out double afp array array, dimension
  in/out integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dsptrd
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out double d array dimension (n)
  out double e array dimension (n-1)
  out double tau array dimension (n-1)
  out integer info
subroutine dsptrf
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine dsptri
  in character*1 uplo
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out double work array dimension (n)
  out integer info
subroutine dsptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dstebz
  in character*1 range
  in character*1 order
  in integer n
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  in double d array dimension (n)
  in double e array dimension (n-1)
  out integer m
  out integer nsplit
  out double w array dimension (n)
  out integer iblock array dimension (n)
  out integer isplit array dimension (n)
  in/out double work array dimension (4*n)
  in/out integer iwork array dimension (3*n)
  out integer info
subroutine dstedc
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double z array dimension (ldz,n)
  in integer ldz
  in/out double work array precision array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dstegr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz
  in/out double work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine dstein
  in integer n
  in double d array dimension (n)
  in double e array dimension (n-1)
  in integer m
  in double w array dimension (n)
  in integer iblock array dimension (n)
  in integer isplit array dimension (n)
  out double z array (ldz, m)
  in integer ldz
  in/out double work array dimension (5*n)
  in/out integer iwork array dimension (n)
  out integer ifail array dimension (m)
  out integer info
subroutine dstemr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in double vl
  in double vu
  in integer il
  in integer iu
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in integer nzc
  out integer isuppz
  in/out logical tryrac
  in/out double work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine dsteqr
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,2*n-2))
  out integer info
subroutine dsterf
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  out integer info
subroutine dstevd
  in character*1 jobz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array precision array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dstev
  in character*1 jobz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  out double z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,2*n-2))
  out integer info
subroutine dstevr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (max(1,n-1))
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dstevx
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (max(1,n-1))
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (5*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dsycon
  in character*1 uplo
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out double work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dsyevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  out double w array dimension (n)
  in/out double work array precision array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dsyev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  out double w array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dsyevr
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dsyevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dsygs2
  in integer itype
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in double b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine dsygst
  in integer itype
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in double b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine dsygvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double w array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dsygv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (ldb, n)
  in integer ldb
  out double w array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dsygvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out double a array (lda, n)
  in integer lda
  in/out double b array (lda, n)
  in integer ldb
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out double z array (ldz, max(1,m))
  in integer ldz
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine dsyrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in double af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dsysv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dsysvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in/out double af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  out double x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n)
  out integer info
subroutine dsytd2
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double d array dimension (n)
  out double e array dimension (n-1)
  out double tau array dimension (n-1)
  out integer info
subroutine dsytf2
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine dsytrd
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double d array dimension (n)
  out double e array dimension (n-1)
  out double tau array dimension (n-1)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dsytrf
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dsytri
  in character*1 uplo
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out double work array dimension (n)
  out integer info
subroutine dsytrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dtbcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer kd
  in double ab array dimension (ldab,n)
  in integer ldab
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtbrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtbtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dtgevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in double s array dimension (lds,n)
  in integer lds
  in double p array dimension (ldp,n)
  in integer ldp
  in/out double vl array dimension (ldvl,mm)
  in integer ldvl
  in/out double vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out double work array dimension (6*n)
  out integer info
subroutine dtgex2
  in logical wantq
  in logical wantz
  in integer n
  in/out double a array dimensions (lda,n)
  in integer lda
  in/out double b array dimensions (ldb,n)
  in integer ldb
  in/out double q array dimension (ldz,n)
  in integer ldq
  in/out double z array dimension (ldz,n)
  in integer ldz
  in integer j1
  in integer n1
  in integer n2
  in/out double work array dimension (max(1,lwork)).
  in integer lwork
  out integer info
subroutine dtgexc
  in logical wantq
  in logical wantz
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  in/out double q array dimension (ldz,n)
  in integer ldq
  in/out double z array dimension (ldz,n)
  in integer ldz
  in/out integer ifst
  in/out integer ilst
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine dtgsen
  in integer ijob
  in logical wantq
  in logical wantz
  in logical select array dimension (n)
  in integer n
  in/out double a array array, dimension(lda,n)
  in integer lda
  in/out double b array array, dimension(ldb,n)
  in integer ldb
  out double alphar array dimension (n)
  out double alphai array dimension (n)
  out double beta array dimension (n)
  in/out double q array dimension (ldq,n)
  in integer ldq
  in/out double z array dimension (ldz,n)
  in integer ldz
  out integer m
  out double pl
  out double pr
  out double dif array dimension (2).
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dtgsja
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in integer k
  in integer l
  in/out double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,n)
  in integer ldb
  in double tola
  in double tolb
  out double alpha array dimension (n)
  out double beta array dimension (n)
  in/out double u array dimension (ldu,m)
  in integer ldu
  in/out double v array dimension (ldv,p)
  in integer ldv
  in/out double q array dimension (ldq,n)
  in integer ldq
  in/out double work array dimension (2*n)
  out integer ncycle
  out integer info
subroutine dtgsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  in double b array dimension (ldb,n)
  in integer ldb
  in double vl array dimension (ldvl,m)
  in integer ldvl
  in double vr array dimension (ldvr,m)
  in integer ldvr
  out double s array dimension (mm)
  out double dif array dimension (mm)
  in integer mm
  out integer m
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array + 6)
  out integer info
subroutine dtgsy2
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in double a array (lda, m)
  in integer lda
  in double b array (ldb, n)
  in integer ldb
  in/out double c array (ldc, n)
  in integer ldc
  in double d array (ldd, m)
  in integer ldd
  in double e array (lde, n)
  in integer lde
  in/out double f array (ldf, n)
  in integer ldf
  out double scale
  in/out double rdsum
  in/out double rdscal
  in/out integer iwork array dimension (m+n+2)
  out integer pq
  out integer info
subroutine dtgsyl
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in double a array (lda, m)
  in integer lda
  in double b array (ldb, n)
  in integer ldb
  in/out double c array (ldc, n)
  in integer ldc
  in double d array (ldd, m)
  in integer ldd
  in double e array (lde, n)
  in integer lde
  in/out double f array (ldf, n)
  in integer ldf
  out double dif
  out double scale
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (m+n+6)
  out integer info
subroutine dtpcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in double ap array dimension (n*(n+1)/2)
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtprfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtptri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out double ap array dimension (n*(n+1)/2)
  out integer info
subroutine dtptrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in double ap array dimension (n*(n+1)/2)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dtrcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out double rcond
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtrevc
  in character*1 side
  in character*1 howmny
  in/out logical select array dimension (n)
  in integer n
  in double t array dimension (ldt,n)
  in integer ldt
  in/out double vl array dimension (ldvl,mm)
  in integer ldvl
  in/out double vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out double work array dimension (3*n)
  out integer info
subroutine dtrexc
  in character*1 compq
  in integer n
  in/out double t array dimension (ldt,n)
  in integer ldt
  in/out double q array dimension (ldq,n)
  in integer ldq
  in/out integer ifst
  in/out integer ilst
  in/out double work array dimension (n)
  out integer info
subroutine dtrrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in double b array dimension (ldb,nrhs)
  in integer ldb
  in double x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out double work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine dtrsen
  in character*1 job
  in character*1 compq
  in logical select array dimension (n)
  in integer n
  in/out double t array dimension (ldt,n)
  in integer ldt
  in/out double q array dimension (ldq,n)
  in integer ldq
  out double wr array dimension (n)
  out double wi array dimension (n)
  out integer m
  out double s
  out double sep
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine dtrsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in double t array dimension (ldt,n)
  in integer ldt
  in double vl array dimension (ldvl,m)
  in integer ldvl
  in double vr array dimension (ldvr,m)
  in integer ldvr
  out double s array dimension (mm)
  out double sep array dimension (mm)
  in integer mm
  out integer m
  in/out double work array dimension (ldwork,n+6)
  in integer ldwork
  in/out integer iwork array dimension (2*(n-1))
  out integer info
subroutine dtrsyl
  in character*1 trana
  in character*1 tranb
  in integer isgn
  in integer m
  in integer n
  in double a array dimension (lda,m)
  in integer lda
  in double b array dimension (ldb,n)
  in integer ldb
  in/out double c array dimension (ldc,n)
  in integer ldc
  out double scale
  out integer info
subroutine dtrti2
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dtrtri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine dtrtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in double a array dimension (lda,n)
  in integer lda
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine dtzrqf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (m)
  out integer info
subroutine dtzrzf
  in integer m
  in integer n
  in/out double a array dimension (lda,n)
  in integer lda
  out double tau array dimension (m)
  in/out double work array dimension (max(1,lwork))
  in integer lwork
  out integer info
function double precision dzsum1
  in integer n
  in complex*16 cx array dimension (n)
  in integer incx
function integer icmax1
  in integer n
  in complex cx array dimension (n)
  in integer incx
function integer ieeeck
  in integer ispec
  in real zero
  in real one
function integer ilaenv
  in integer ispec
  in character*(*) name
  in character*(*) opts
  in integer n1
  in integer n2
  in integer n3
  in integer n4
subroutine ilaver
  out integer vers_major
  out integer vers_minor
  out integer vers_patch
function integer iparmq
  in integer ispec
  in character name
  in character opts
  in integer n
  in integer ilo
  in integer ihi
  in integer lwork
function integer izmax1
  in integer n
  in complex*16 cx array dimension (n)
  in integer incx
function logical lsamen
  in integer n
  in character*(*) ca
  in character*(*) cb
subroutine sbdsdc
  in character*1 uplo
  in character*1 compq
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  out real u array dimension (ldu,n)
  in integer ldu
  out real vt array dimension (ldvt,n)
  in integer ldvt
  out real q array dimension (ldq)
  out integer iq array dimension (ldiq)
  in/out real work array dimension (max(1,lwork))
  in/out integer iwork array dimension (8*n)
  out integer info
subroutine sbdsqr
  in character*1 uplo
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real vt array (ldvt, ncvt)
  in integer ldvt
  in/out real u array (ldu, n)
  in integer ldu
  in/out real c array (ldc, ncc)
  in integer ldc
  in/out real work array dimension (2*n)
  out integer info
function real scsum1
  in integer n
  in complex cx array dimension (n)
  in integer incx
subroutine sdisna
  in character*1 job
  in integer m
  in integer n
  in real d array = 'e'
  out real sep array = 'e'
  out integer info
subroutine sgbbrd
  in character*1 vect
  in integer m
  in integer n
  in integer ncc
  in integer kl
  in integer ku
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out real q array dimension (ldq,m)
  in integer ldq
  out real pt array dimension (ldpt,n)
  in integer ldpt
  in/out real c array dimension (ldc,ncc)
  in integer ldc
  in/out real work array dimension (2*max(m,n))
  out integer info
subroutine sgbcon
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in real ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgbequ
  in integer m
  in integer n
  in integer kl
  in integer ku
  in real ab array dimension (ldab,n)
  in integer ldab
  out real r array dimension (m)
  out real c array dimension (n)
  out real rowcnd
  out real colcnd
  out real amax
  out integer info
subroutine sgbrfs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in real afb array dimension (ldafb,n)
  in integer ldafb
  in integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgbsv
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sgbsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in/out real afb array dimension (ldafb,n)
  in integer ldafb
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out real r array dimension (n)
  in/out real c array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgbtf2
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine sgbtrf
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine sgbtrs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sgebak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in real scale array dimension (n)
  in integer m
  in/out real v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine sgebal
  in character*1 job
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ilo
  out integer ihi
  out real scale array dimension (n)
  out integer info
subroutine sgebd2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out real tauq array dimension (min(m,n))
  out real taup array dimension (min(m,n))
  in/out real work array dimension (max(m,n))
  out integer info
subroutine sgebrd
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real d array dimension (min(m,n))
  out real e array dimension (min(m,n)-1)
  out real tauq array dimension (min(m,n))
  out real taup array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgecon
  in character*1 norm
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in real anorm
  out real rcond
  in/out real work array dimension (4*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgeequ
  in integer m
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  out real r array dimension (m)
  out real c array dimension (n)
  out real rowcnd
  out real colcnd
  out real amax
  out integer info
subroutine sgees
  in character*1 jobvs
  in character*1 sort
  in logical select two procedure 
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer sdim
  out real wr array dimension (n)
  out real wi array dimension (n)
  out real vs array dimension (ldvs,n)
  in integer ldvs
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine sgeesx
  in character*1 jobvs
  in character*1 sort
  in logical select two procedure 
  in character*1 sense
  in integer n
  in/out real a array (lda, n)
  in integer lda
  out integer sdim
  out real wr array dimension (n)
  out real wi array dimension (n)
  out real vs array dimension (ldvs,n)
  in integer ldvs
  out real rconde
  out real rcondv
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine sgeev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real wr array dimension (n)
  out real wi array dimension (n)
  out real vl array dimension (ldvl,n)
  in integer ldvl
  out real vr array dimension (ldvr,n)
  in integer ldvr
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgeevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real wr array dimension (n)
  out real wi array dimension (n)
  out real vl array dimension (ldvl,n)
  in integer ldvl
  out real vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out real scale array dimension (n)
  out real abnrm
  out real rconde array dimension (n)
  out real rcondv array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (2*n-2)
  out integer info
subroutine sgegs
  in character*1 jobvsl
  in character*1 jobvsr
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vsl array dimension (ldvsl,n)
  in integer ldvsl
  out real vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgegv
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vl array dimension (ldvl,n)
  in integer ldvl
  out real vr array dimension (ldvr,n)
  in integer ldvr
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgehd2
  in integer n
  in integer ilo
  in integer ihi
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (n-1)
  in/out real work array dimension (n)
  out integer info
subroutine sgehrd
  in integer n
  in integer ilo
  in integer ihi
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (n-1)
  in/out real work array dimension (lwork)
  in integer lwork
  out integer info
subroutine sgelq2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (m)
  out integer info
subroutine sgelqf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgelsd
  in integer m
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real s array dimension (min(m,n))
  in real rcond
  out integer rank
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  out integer info
subroutine sgels
  in character*1 trans
  in integer m
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgelss
  in integer m
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real s array dimension (min(m,n))
  in real rcond
  out integer rank
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgelsx
  in integer m
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in real rcond
  out integer rank
  in/out real work array array, dimension
  out integer info
subroutine sgelsy
  in integer m
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in real rcond
  out integer rank
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgeql2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (n)
  out integer info
subroutine sgeqlf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgeqp3
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out real tau array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgeqpf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out real tau array dimension (min(m,n))
  in/out real work array dimension (3*n)
  out integer info
subroutine sgeqr2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (n)
  out integer info
subroutine sgeqrf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgerfs
  in character*1 trans
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in real af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgerq2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (m)
  out integer info
subroutine sgerqf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (min(m,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgesc2
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real rhs array dimension (n).
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
  out real scale
subroutine sgesdd
  in character*1 jobz
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real s array dimension (min(m,n))
  out real u array dimension (ldu,ucol)
  in integer ldu
  out real vt array dimension (ldvt,n)
  in integer ldvt
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (8*min(m,n))
  out integer info
subroutine sgesvd
  in character*1 jobu
  in character*1 jobvt
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real s array dimension (min(m,n))
  out real u array dimension (ldu,ucol)
  in integer ldu
  out real vt array dimension (ldvt,n)
  in integer ldvt
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgesv
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sgesvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out real r array dimension (n)
  in/out real c array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (4*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgetc2
  in integer n
  in/out real a array (lda, n)
  in integer lda
  out integer ipiv array array, dimension(n).
  out integer jpiv array array, dimension(n).
  out integer info
subroutine sgetf2
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine sgetrf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine sgetri
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgetrs
  in character*1 trans
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sggbak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in real lscale array dimension (n)
  in real rscale array dimension (n)
  in integer m
  in/out real v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine sggbal
  in character*1 job
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  out integer ilo
  out integer ihi
  out real lscale array dimension (n)
  out real rscale array dimension (n)
  in/out real work array dimension (lwork)
  out integer info
subroutine sgges
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg three procedure 
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out integer sdim
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vsl array dimension (ldvsl,n)
  in integer ldvsl
  out real vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine sggesx
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg three procedure 
  in character*1 sense
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out integer sdim
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vsl array dimension (ldvsl,n)
  in integer ldvsl
  out real vsr array dimension (ldvsr,n)
  in integer ldvsr
  out real rconde array dimension (2)
  out real rcondv array dimension (2)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine sggev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vl array dimension (ldvl,n)
  in integer ldvl
  out real vr array dimension (ldvr,n)
  in integer ldvr
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sggevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  out real vl array dimension (ldvl,n)
  in integer ldvl
  out real vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out real lscale array dimension (n)
  out real rscale array dimension (n)
  out real abnrm
  out real bbnrm
  out real rconde array dimension (n)
  out real rcondv array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n+6)
  in/out logical bwork array dimension (n)
  out integer info
subroutine sggglm
  in integer n
  in integer m
  in integer p
  in/out real a array dimension (lda,m)
  in integer lda
  in/out real b array dimension (ldb,p)
  in integer ldb
  in/out real d array dimension (n)
  out real x array dimension (m)
  out real y array dimension (p)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sgghrd
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  in/out real q array (ldq, n)
  in integer ldq
  in/out real z array (ldz, n)
  in integer ldz
  out integer info
subroutine sgglse
  in integer m
  in integer n
  in integer p
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  in/out real c array dimension (m)
  in/out real d array dimension (p)
  out real x array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sggqrf
  in integer n
  in integer m
  in integer p
  in/out real a array dimension (lda,m)
  in integer lda
  out real taua array dimension (min(n,m))
  in/out real b array dimension (ldb,p)
  in integer ldb
  out real taub array dimension (min(n,p))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sggrqf
  in integer m
  in integer p
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real taua array dimension (min(m,n))
  in/out real b array dimension (ldb,n)
  in integer ldb
  out real taub array dimension (min(p,n))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sggsvd
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer n
  in integer p
  out integer k
  out integer l
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  out real alpha array dimension (n)
  out real beta array dimension (n)
  out real u array dimension (ldu,m)
  in integer ldu
  out real v array dimension (ldv,p)
  in integer ldv
  out real q array dimension (ldq,n)
  in integer ldq
  in/out real work array real array,
  in/out integer iwork array dimension (n)
  out integer info
subroutine sggsvp
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  in real tola
  in real tolb
  out integer k
  out integer l
  out real u array dimension (ldu,m)
  in integer ldu
  out real v array dimension (ldv,m)
  in integer ldv
  out real q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array dimension (n)
  in/out real tau array dimension (n)
  in/out real work array dimension (max(3*n,m,p))
  out integer info
subroutine sgtcon
  in character*1 norm
  in integer n
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in real du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out real work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgtrfs
  in character*1 trans
  in integer n
  in integer nrhs
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in real dlf array dimension (n-1)
  in real df array dimension (n)
  in real duf array dimension (n-1)
  in real du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgtsv
  in integer n
  in integer nrhs
  in/out real dl array dimension (n-1)
  in/out real d array dimension (n)
  in/out real du array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sgtsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in/out real dlf array dimension (n-1)
  in/out real df array dimension (n)
  in/out real duf array dimension (n-1)
  in/out real du2 array dimension (n-2)
  in/out integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sgttrf
  in integer n
  in/out real dl array dimension (n-1)
  in/out real d array dimension (n)
  in/out real du array dimension (n-1)
  out real du2 array dimension (n-2)
  out integer ipiv array dimension (n)
  out integer info
subroutine sgttrs
  in character*1 trans
  in integer n
  in integer nrhs
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in real du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sgtts2
  in integer itrans
  in integer n
  in integer nrhs
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in real du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
subroutine shgeqz
  in character*1 job
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out real h array (ldh, n)
  in integer ldh
  in/out real t array (ldt, n)
  in integer ldt
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  in/out real q array (ldq, n)
  in integer ldq
  in/out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine shsein
  in character*1 side
  in character*1 eigsrc
  in character*1 initv
  in/out logical select array dimension (n)
  in integer n
  in real h array dimension (ldh,n)
  in integer ldh
  in/out real wr array dimension (n)
  in real wi array dimension (n)
  in/out real vl array dimension (ldvl,mm)
  in integer ldvl
  in/out real vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out real work array dimension ((n+2)*n)
  out integer ifaill array dimension (mm)
  out integer ifailr array dimension (mm)
  out integer info
subroutine shseqr
  in character*1 job
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out real h array dimension (ldh,n)
  in integer ldh
  out real wr array dimension (n)
  out real wi array dimension (n)
  in/out real z array dimension (ldz,n)
  in integer ldz
  in/out real work array dimension (lwork)
  in integer lwork
  out integer info
function logical sisnan
  in real sin
subroutine slabad
  in/out real small
  in/out real large
subroutine slabrd
  in integer m
  in integer n
  in integer nb
  in/out real a array dimension (lda,n)
  in integer lda
  out real d array dimension (nb)
  out real e array dimension (nb)
  out real tauq array dimension (nb)
  out real taup array dimension (nb)
  out real x array dimension (ldx,nb)
  in integer ldx
  out real y array dimension (ldy,nb)
  in integer ldy
subroutine slacn2
  in integer n
  in/out real v array dimension (n)
  in/out real x array dimension (n)
  in/out integer isgn array dimension (n)
  in/out real est
  in/out integer kase
  in/out integer isave array dimension (3)
subroutine slacon
  in integer n
  in/out real v array dimension (n)
  in/out real x array dimension (n)
  in/out integer isgn array dimension (n)
  in/out real est
  in/out integer kase
subroutine slacpy
  in character*1 uplo
  in integer m
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  out real b array dimension (ldb,n)
  in integer ldb
subroutine sladiv
  in real a
  in real b
  in real c
  in real d
  out real p
  out real q
subroutine slae2
  in real a
  in real b
  in real c
  out real rt1
  out real rt2
subroutine slaebz
  in integer ijob
  in integer nitmax
  in integer n
  in integer mmax
  in integer minp
  in integer nbmin
  in real abstol
  in real reltol
  in real pivmin
  in real d array dimension (n)
  in real e array dimension (n)
  in real e2 array dimension (n)
  in/out integer nval array dimension (minp)
  in/out real ab array dimension (mmax,2)
  in/out real c array dimension (mmax)
  out integer mout
  in/out integer nab array dimension (mmax,2)
  in/out real work array dimension (mmax)
  in/out integer iwork array dimension (mmax)
  out integer info
subroutine slaed0
  in integer icompq
  in integer qsiz
  in integer n
  in/out real d array dimension (n)
  in real e array dimension (n-1)
  in/out real q array (ldq, n)
  in integer ldq
  in/out real qstore array (ldqs, n)
  in integer ldqs
  in/out real work array real array,
  in/out integer iwork array integer array,
  out integer info
subroutine slaed1
  in integer n
  in/out real d array dimension (n)
  in/out real q array dimension (ldq,n)
  in integer ldq
  in/out integer indxq array dimension (n)
  in real rho
  in integer cutpnt
  in/out real work array + n**2)
  in/out integer iwork array dimension (4*n)
  out integer info
subroutine slaed2
  out integer k
  in integer n
  in integer n1
  in/out real d array dimension (n)
  in/out real q array (ldq, n)
  in integer ldq
  in/out integer indxq array dimension (n)
  in/out real rho
  in real z array dimension (n)
  out real dlamda array dimension (n)
  out real w array dimension (n)
  out real q2 array dimension (n1**2+(n-n1)**2)
  in/out integer indx array dimension (n)
  out integer indxc array dimension (n)
  in/out integer indxp array dimension (n)
  in/out integer coltyp array dimension (n)
  out integer info
subroutine slaed3
  in integer k
  in integer n
  in integer n1
  out real d array dimension (n)
  out real q array dimension (ldq,n)
  in integer ldq
  in real rho
  in/out real dlamda array dimension (k)
  in real q2 array (ldq2, n)
  in integer indx array dimension (n)
  in integer ctot array dimension (4)
  in/out real w array dimension (k)
  in/out real s array + 1)*k
  in integer lds
  out integer info
subroutine slaed4
  in integer n
  in integer i
  in real d array dimension (n)
  in real z array dimension (n)
  out real delta array dimension (n)
  in real rho
  out real dlam
  out integer info
subroutine slaed5
  in integer i
  in real d array dimension (2)
  in real z array dimension (2)
  out real delta array dimension (2)
  in real rho
  out real dlam
subroutine slaed6
  in integer kniter
  in logical orgati
  in real rho
  in real d array dimension (3)
  in real z array dimension (3)
  in real finit
  out real tau
  out integer info
subroutine slaed7
  in integer icompq
  in integer n
  in integer qsiz
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in/out real d array dimension (n)
  in/out real q array (ldq, n)
  in integer ldq
  out integer indxq array dimension (n)
  in real rho
  in integer cutpnt
  in/out real qstore array dimension (n**2+1)
  in/out integer qptr array dimension (n+2)
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in real givnum array lg n)
  in/out real work array dimension (3*n+qsiz*n)
  in/out integer iwork array dimension (4*n)
  out integer info
subroutine slaed8
  in integer icompq
  out integer k
  in integer n
  in integer qsiz
  in/out real d array dimension (n)
  in/out real q array dimension (ldq,n)
  in integer ldq
  in integer indxq array dimension (n)
  in/out real rho
  in integer cutpnt
  in real z array dimension (n)
  out real dlamda array dimension (n)
  out real q2 array dimension (ldq2,n)
  in integer ldq2
  out real w array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (2, n)
  out real givnum array (2, n)
  in/out integer indxp array dimension (n)
  in/out integer indx array dimension (n)
  out integer info
subroutine slaed9
  in integer k
  in integer kstart
  in integer kstop
  in integer n
  out real d array dimension (n)
  in/out real q array dimension (ldq,n)
  in integer ldq
  in real rho
  in real dlamda array dimension (k)
  in real w array dimension (k)
  out real s array (lds, k)
  in integer lds
  out integer info
subroutine slaeda
  in integer n
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in real givnum array lg n)
  in real q array dimension (n**2)
  in integer qptr array dimension (n+2)
  out real z array dimension (n)
  in/out real ztemp array dimension (n)
  out integer info
subroutine slaein
  in logical rightv
  in logical noinit
  in integer n
  in real h array dimension (ldh,n)
  in integer ldh
  in real wr
  in real wi
  in/out real vr array dimension (n)
  in/out real vi array dimension (n)
  in/out real b array dimension (ldb,n)
  in integer ldb
  in/out real work array dimension (n)
  in real eps3
  in real smlnum
  in real bignum
  out integer info
subroutine slaev2
  in real a
  in real b
  in real c
  out real rt1
  out real rt2
  out real cs1
  out real sn1
subroutine slaexc
  in logical wantq
  in integer n
  in/out real t array dimension (ldt,n)
  in integer ldt
  in/out real q array dimension (ldq,n)
  in integer ldq
  in integer j1
  in integer n1
  in integer n2
  in/out real work array dimension (n)
  out integer info
subroutine slag2d
  in integer m
  in integer n
  out real sa array dimension (ldsa,n)
  in integer ldsa
  in double a array dimension (lda,n)
  in integer lda
  out integer info
subroutine slag2
  in real a array (lda, 2)
  in integer lda
  in real b array (ldb, 2)
  in integer ldb
  in real safmin
  out real scale1
  out real scale2
  out real wr1
  out real wr2
  out real wi
subroutine slags2
  in logical upper
  in real a1
  in real a2
  in real a3
  in real b1
  in real b2
  in real b3
  out real csu
  out real snu
  out real csv
  out real snv
  out real csq
  out real snq
subroutine slagtf
  in integer n
  in/out real a array dimension (n)
  in real lambda
  in/out real b array dimension (n-1)
  in/out real c array dimension (n-1)
  in real tol
  out real d array dimension (n-2)
  out integer in array dimension (n)
  out integer info
subroutine slagtm
  in character*1 trans
  in integer n
  in integer nrhs
  in real alpha
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
  in real x array dimension (ldx,nrhs)
  in integer ldx
  in real beta
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
subroutine slagts
  in integer job
  in integer n
  in real a array dimension (n)
  in real b array dimension (n-1)
  in real c array dimension (n-1)
  in real d array dimension (n-2)
  in integer in array dimension (n)
  in/out real y array dimension (n)
  in/out real tol
  out integer info
subroutine slagv2
  in/out real a array (lda, 2)
  in integer lda
  in/out real b array (ldb, 2)
  in integer ldb
  out real alphar array dimension (2)
  out real alphai array dimension (2)
  out real beta array dimension (2)
  out real csl
  out real snl
  out real csr
  out real snr
subroutine slahqr
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out real h array dimension (ldh,n)
  in integer ldh
  out real wr array dimension (n)
  out real wi array dimension (n)
  in integer iloz
  in integer ihiz
  in/out real z array dimension (ldz,n)
  in integer ldz
  out integer info
subroutine slahr2
  in integer n
  in integer k
  in integer nb
  in/out real a array dimension (lda,n-k+1)
  in integer lda
  out real tau array dimension (nb)
  out real t array dimension (ldt,nb)
  in integer ldt
  out real y array dimension (ldy,nb)
  in integer ldy
subroutine slahrd
  in integer n
  in integer k
  in integer nb
  in/out real a array dimension (lda,n-k+1)
  in integer lda
  out real tau array dimension (nb)
  out real t array dimension (ldt,nb)
  in integer ldt
  out real y array dimension (ldy,nb)
  in integer ldy
subroutine slaic1
  in integer job
  in integer j
  in real x array dimension (j)
  in real sest
  in real w array dimension (j)
  in real gamma
  out real sestpr
  out real s
  out real c
function logical slaisnan
  in real sin1
  in real sin2
subroutine slaln2
  in logical ltrans
  in integer na
  in integer nw
  in real smin
  in real ca
  in real a array dimension (lda,na)
  in integer lda
  in real d1
  in real d2
  in real b array dimension (ldb,nw)
  in integer ldb
  in real wr
  in real wi
  out real x array dimension (ldx,nw)
  in integer ldx
  out real scale
  out real xnorm
  out integer info
subroutine slals0
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in integer nrhs
  in/out real b array (ldb, nrhs)
  in integer ldb
  in/out real bx array (ldbx, nrhs)
  in integer ldbx
  in integer perm array dimension (n)
  in integer givptr
  in integer givcol array (ldgcol, 2)
  in integer ldgcol
  in real givnum array (ldgnum, 2)
  in integer ldgnum
  in real poles array (ldgnum, 2)
  in real difl array dimension (k).
  in real difr array (ldgnum, 2).
  in real z array dimension (k)
  in integer k
  in real c
  in real s
  in/out real work array dimension (k)
  out integer info
subroutine slalsa
  in integer icompq
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out real b array (ldb, nrhs)
  in integer ldb
  out real bx array (ldbx, nrhs)
  in integer ldbx
  in real u array (ldu, smlsiz).
  in integer ldu
  in real vt array (ldu, smlsiz+1).
  in integer k array dimension (n).
  in real difl array (ldu, nlvl).
  in real difr array * nlvl).
  in real z array (ldu, nlvl).
  in real poles array * nlvl).
  in integer givptr array dimension (n).
  in integer givcol array * nlvl).
  in integer ldgcol
  in integer perm array (ldgcol, nlvl).
  in real givnum array * nlvl).
  in real c array dimension (n).
  in real s array dimension (n).
  in/out real work array real array.
  in/out integer iwork array integer array.
  out integer info
subroutine slalsd
  in character*1 uplo
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  in real rcond
  out integer rank
  in/out real work array at least
  in/out integer iwork array at least
  out integer info
subroutine slamrg
  in integer n1
  in integer n2
  in real a array dimension (n1+n2)
  in integer strd1
  in integer strd2
  out integer index array dimension (n1+n2)
function integer slaneg
  in integer n
  in real d array dimension (n)
  in real lld array dimension (n-1)
  in real sigma
  in real pivmin
  in integer r
function real slangb
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork))
function real slange
  in character*1 norm
  in integer m
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real slangt
  in character*1 norm
  in integer n
  in real dl array dimension (n-1)
  in real d array dimension (n)
  in real du array dimension (n-1)
function real slanhs
  in character*1 norm
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real slansb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real slansp
  in character*1 norm
  in character*1 uplo
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in/out real work array dimension (max(1,lwork)),
function real slanst
  in character*1 norm
  in integer n
  in real d array dimension (n)
  in real e array dimension (n-1)
function real slansy
  in character*1 norm
  in character*1 uplo
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
function real slantb
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer k
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real work array dimension (max(1,lwork)),
function real slantp
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in/out real work array dimension (max(1,lwork)),
function real slantr
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer m
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real work array dimension (max(1,lwork)),
subroutine slanv2
  in/out real a
  in/out real b
  in/out real c
  in/out real d
  out real rt1r
  out real rt1i
  out real rt2r
  out real rt2i
  out real cs
  out real sn
subroutine slapll
  in integer n
  in/out real x array real array,
  in integer incx
  in/out real y array real array,
  in integer incy
  out real ssmin
subroutine slapmt
  in logical forwrd
  in integer m
  in integer n
  in/out real x array dimension (ldx,n)
  in integer ldx
  in/out integer k array dimension (n)
function real slapy2
  in real x
  in real y
function real slapy3
  in real x
  in real y
  in real z
subroutine slaqgb
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in real r array dimension (m)
  in real c array dimension (n)
  in real rowcnd
  in real colcnd
  in real amax
  out character*1 equed
subroutine slaqge
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in real r array dimension (m)
  in real c array dimension (n)
  in real rowcnd
  in real colcnd
  in real amax
  out character*1 equed
subroutine slaqp2
  in integer m
  in integer n
  in integer offset
  in/out real a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out real tau array dimension (min(m,n))
  in/out real vn1 array dimension (n)
  in/out real vn2 array dimension (n)
  in/out real work array dimension (n)
subroutine slaqps
  in integer m
  in integer n
  in integer offset
  in integer nb
  out integer kb
  in/out real a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out real tau array dimension (kb)
  in/out real vn1 array dimension (n)
  in/out real vn2 array dimension (n)
  in/out real auxv array dimension (nb)
  in/out real f array dimension (ldf,nb)
  in integer ldf
subroutine slaqr0
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out real h array dimension (ldh,n)
  in integer ldh
  out real wr array dimension (ihi)
  out real wi array dimension (ihi)
  in integer iloz
  in integer ihiz
  in/out real z array dimension (ldz,ihi)
  in integer ldz
  in/out real work array dimension lwork
  in integer lwork
  out integer info
subroutine slaqr1
  in integer n
  in real h array dimension (ldh,n)
  in integer ldh
  in real sr1
  out real v array dimension n
subroutine slaqr2
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out real h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out real z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out real sr array dimension kbot
  out real si array dimension kbot
  in/out real v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out real t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out real wv array dimension (ldwv,nw)
  in integer ldwv
  in/out real work array dimension lwork.
  in integer lwork
subroutine slaqr3
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out real h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out real z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out real sr array dimension kbot
  out real si array dimension kbot
  in/out real v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out real t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out real wv array dimension (ldwv,nw)
  in integer ldwv
  in/out real work array dimension lwork.
  in integer lwork
subroutine slaqr4
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out real h array dimension (ldh,n)
  in integer ldh
  out real wr array dimension (ihi)
  out real wi array dimension (ihi)
  in integer iloz
  in integer ihiz
  in/out real z array dimension (ldz,ihi)
  in integer ldz
  in/out real work array dimension lwork
  in integer lwork
  out integer info
subroutine slaqr5
  in logical wantt
  in logical wantz
  in integer kacc22
  in integer n
  in integer ktop
  in integer kbot
  in integer nshfts
  in real sr array size (nshfts)
  in real si array size (nshfts)
  in/out real h array size (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out real z array size (ldz,ihi)
  in integer ldz
  in/out real v array size (ldv,nshfts/2)
  in integer ldv
  in/out real u array of size
  in integer ldu
  in integer nh
  in/out real wh array size (ldwh,nh)
  in integer ldwh
  in integer nv
  in/out real wv array of size
  in integer ldwv
subroutine slaqsb
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine slaqsp
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine slaqsy
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in real s array dimension (n)
  in real scond
  in real amax
  out character*1 equed
subroutine slaqtr
  in logical ltran
  in logical lreal
  in integer n
  in real t array dimension (ldt,n)
  in integer ldt
  in real b array dimension (n)
  in real w
  out real scale
  in/out real x array dimension (2*n)
  in/out real work array dimension (n)
  out integer info
subroutine slar1v
  in integer n
  in integer b1
  in integer bn
  in real lambda
  in real l array dimension (n-1)
  in real d array dimension (n)
  in real ld array dimension (n-1)
  in real lld array dimension (n-1)
  in real pivmin
  in real gaptol
  in/out real z array dimension (n)
  in logical wantnc
  out integer negcnt
  out real ztz
  out real mingma
  in/out integer r
  out integer isuppz array dimension (2)
  out real nrminv
  out real resid
  out real rqcorr
  in/out real work array dimension (4*n)
subroutine slar2v
  in integer n
  in/out real x array real array,
  in/out real y array real array,
  in/out real z array real array,
  in integer incx
  in real c array dimension (1+(n-1)*incc)
  in real s array dimension (1+(n-1)*incc)
  in integer incc
subroutine slarfb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in real v array array, dimension
  in integer ldv
  in real t array dimension (ldt,k)
  in integer ldt
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (ldwork,k)
  in integer ldwork
subroutine slarf
  in character*1 side
  in integer m
  in integer n
  in real v array array, dimension
  in integer incv
  in real tau
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
subroutine slarfg
  in integer n
  in/out real alpha
  in/out real x array array, dimension
  in integer incx
  out real tau
subroutine slarft
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out real v array array, dimension
  in integer ldv
  in real tau array dimension (k)
  out real t array dimension (ldt,k)
  in integer ldt
subroutine slarfx
  in character*1 side
  in integer m
  in integer n
  in real v array = 'l'
  in real tau
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
subroutine slargv
  in integer n
  in/out real x array real array,
  in integer incx
  in/out real y array real array,
  in integer incy
  out real c array dimension (1+(n-1)*incc)
  in integer incc
subroutine slarnv
  in integer idist
  in/out integer iseed array dimension (4)
  in integer n
  out real x array dimension (n)
subroutine slarra
  in integer n
  in real d array dimension (n)
  in/out real e array dimension (n)
  in/out real e2 array dimension (n)
  in real spltol
  in real tnrm
  out integer nsplit
  out integer isplit array dimension (n)
  out integer info
subroutine slarrb
  in integer n
  in real d array dimension (n)
  in real lld array dimension (n-1)
  in integer ifirst
  in integer ilast
  in real rtol1
  in real rtol2
  in integer offset
  in/out real w array dimension (n)
  in/out real wgap array dimension (n-1)
  in/out real werr array dimension (n)
  in/out real work array dimension (2*n)
  in/out integer iwork array dimension (2*n)
  in double pivmin
  in double spdiam
  in integer twist
  out integer info
subroutine slarrc
  in character*1 jobt
  in integer n
  in double vl
  in double vu
  in double d array dimension (n)
  in double e array dimension (n)
  in double pivmin
  out integer eigcnt
  out integer lcnt
  out integer rcnt
  out integer info
subroutine slarrd
  in character range
  in character order
  in integer n
  in real vl
  in real vu
  in integer il
  in integer iu
  in real gers array dimension (2*n)
  in real reltol
  in real d array dimension (n)
  in real e array dimension (n-1)
  in real e2 array dimension (n-1)
  in real pivmin
  in integer nsplit
  in integer isplit array dimension (n)
  out integer m
  out real w array dimension (n)
  out real werr array dimension (n)
  out real wl
  out real wu
  out integer iblock array dimension (n)
  out integer indexw array dimension (n)
  in/out real work array dimension (4*n)
  in/out integer iwork array dimension (3*n)
  out integer info
subroutine slarre
  in character range
  in integer n
  in/out real vl
  in/out real vu
  in integer il
  in integer iu
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in/out real e2 array dimension (n)
  in real rtol1
  in real rtol2
  in real spltol
  out integer nsplit
  out integer isplit array dimension (n)
  out integer m
  out real w array dimension (n)
  out real werr array dimension (n)
  out real wgap array dimension (n)
  out integer iblock array dimension (n)
  out integer indexw array dimension (n)
  out real gers array dimension (2*n)
  out double pivmin
  in/out real work array dimension (6*n)
  in/out integer iwork array dimension (5*n)
  out integer info
subroutine slarrf
  in integer n
  in real d array dimension (n)
  in real l array dimension (n-1)
  in real ld array dimension (n-1)
  in integer clstrt
  in integer clend
  in real w array dimension (clend-clstrt+1)
  in/out real wgap array dimension (clend-clstrt+1)
  in real werr array dimension (clend-clstrt+1)
  in real spdiam
  in real clgapl
  in real clgapr
  in double pivmin
  out real sigma
  out real dplus array dimension (n)
  out real lplus array dimension (n-1)
  in/out real work array dimension (2*n)
subroutine slarrj
  in integer n
  in real d array dimension (n)
  in real e2 array dimension (n-1)
  in integer ifirst
  in integer ilast
  in real rtol
  in integer offset
  in/out real w array dimension (n)
  in/out real werr array dimension (n)
  in/out real work array dimension (2*n)
  in/out integer iwork array dimension (2*n)
  in double pivmin
  in double spdiam
  out integer info
subroutine slarrk
  in integer n
  in integer iw
  in real gl
  in real gu
  in real d array dimension (n)
  in real e2 array dimension (n-1)
  in real pivmin
  in real reltol
  out real w
  out real werr
  out integer info
subroutine slarrr
  in integer n
  in real d array dimension (n)
  in/out real e array dimension (n)
  out integer info
subroutine slarrv
  in integer n
  in real vl
  in real vu
  in/out real d array dimension (n)
  in/out real l array dimension (n)
  in integer isplit array dimension (n)
  in integer m
  in integer dol
  in integer dou
  in real minrgp
  in real rtol1
  in real rtol2
  in/out real w array dimension (n)
  in/out real werr array dimension (n)
  in/out real wgap array dimension (n)
  in integer iblock array dimension (n)
  in integer indexw array dimension (n)
  in real gers array dimension (2*n)
  out real z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out real work array dimension (12*n)
  in/out integer iwork array dimension (7*n)
  out integer info
subroutine slartg
  in real f
  in real g
  out real cs
  out real sn
  out real r
subroutine slartv
  in integer n
  in/out real x array real array,
  in integer incx
  in/out real y array real array,
  in integer incy
  in real c array dimension (1+(n-1)*incc)
  in real s array dimension (1+(n-1)*incc)
  in integer incc
subroutine slaruv
  in/out integer iseed array dimension (4)
  in integer n
  out real x array dimension (n)
subroutine slarzb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in integer l
  in real v array dimension (ldv,nv).
  in integer ldv
  in real t array dimension (ldt,k)
  in integer ldt
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (ldwork,k)
  in integer ldwork
subroutine slarz
  in character*1 side
  in integer m
  in integer n
  in integer l
  in real v array dimension (1+(l-1)*abs(incv))
  in integer incv
  in real tau
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
subroutine slarzt
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out real v array array, dimension
  in integer ldv
  in real tau array dimension (k)
  out real t array dimension (ldt,k)
  in integer ldt
subroutine slas2
  in real f
  in real g
  in real h
  out real ssmin
  out real ssmax
subroutine slascl
  in character*1 type
  in integer kl
  in integer ku
  in real cfrom
  in real cto
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine slasd0
  in integer n
  in integer sqre
  in/out real d array dimension (n)
  in real e array dimension (m-1)
  out real u array (ldq, n)
  in integer ldu
  out real vt array (ldvt, m)
  in integer ldvt
  in integer smlsiz
  in/out integer iwork array dimension (8*n)
  in/out real work array dimension (3*m**2+2*m)
  out integer info
subroutine slasd1
  in integer nl
  in integer nr
  in integer sqre
  in/out real d array dimension (nl+nr+1).
  in/out real alpha
  in/out real beta
  in/out real u array dimension (ldu,n)
  in integer ldu
  in/out real vt array dimension (ldvt,m)
  in integer ldvt
  out integer idxq array dimension (n)
  in/out integer iwork array dimension (4*n)
  in/out real work array dimension (3*m**2+2*m)
  out integer info
subroutine slasd2
  in integer nl
  in integer nr
  in integer sqre
  out integer k
  in/out real d array dimension (n)
  out real z array dimension (n)
  in real alpha
  in real beta
  in/out real u array dimension (ldu,n)
  in integer ldu
  in/out real vt array dimension (ldvt,m)
  in integer ldvt
  out real dsigma array dimension (n)
  out real u2 array dimension (ldu2,n)
  in integer ldu2
  out real vt2 array dimension (ldvt2,n)
  in integer ldvt2
  in/out integer idxp array dimension (n)
  in/out integer idx array dimension (n)
  out integer idxc array dimension (n)
  in/out integer idxq array dimension (n)
  in/out integer coltyp array dimension (n)
  out integer info
subroutine slasd3
  in integer nl
  in integer nr
  in integer sqre
  in integer k
  out real d array array, dimension(k)
  in/out real q array real array,
  in integer ldq
  in/out real dsigma array array, dimension(k)
  out real u array (ldu, n)
  in integer ldu
  in real u2 array (ldu2, n)
  in integer ldu2
  out real vt array (ldvt, m)
  in integer ldvt
  in/out real vt2 array (ldvt2, n)
  in integer ldvt2
  in integer idxc array dimension (n)
  in integer ctot array dimension (4)
  in/out real z array dimension (k)
  out integer info
subroutine slasd4
  in integer n
  in integer i
  in real d array dimension (n)
  in real z array dimension (n)
  out real delta array dimension (n)
  in real rho
  out real sigma
  in/out real work array dimension (n)
  out integer info
subroutine slasd5
  in integer i
  in real d array dimension (2)
  in real z array dimension (2)
  out real delta array dimension (2)
  in real rho
  out real dsigma
  in/out real work array dimension (2)
subroutine slasd6
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in/out real d array dimension (nl+nr+1).
  in/out real vf array dimension (m)
  in/out real vl array dimension (m)
  in/out real alpha
  in/out real beta
  out integer idxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (ldgcol, 2)
  in integer ldgcol
  out real givnum array (ldgnum, 2)
  in integer ldgnum
  out real poles array (ldgnum, 2)
  out real difl array dimension (n)
  out real difr array real array,
  out real z array dimension (m)
  out integer k
  out real c
  out real s
  in/out real work array * m)
  in/out integer iwork array * n)
  out integer info
subroutine slasd7
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  out integer k
  in/out real d array dimension (n)
  out real z array dimension (m)
  in/out real zw array dimension (m)
  in/out real vf array dimension (m)
  in/out real vfw array dimension (m)
  in/out real vl array dimension (m)
  in/out real vlw array dimension (m)
  in real alpha
  in real beta
  out real dsigma array dimension (n)
  in/out integer idx array dimension (n)
  in/out integer idxp array dimension (n)
  in integer idxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (ldgcol, 2)
  in integer ldgcol
  out real givnum array (ldgnum, 2)
  in integer ldgnum
  out real c
  out real s
  out integer info
subroutine slasd8
  in integer icompq
  in integer k
  out real d array dimension (k)
  in real z array dimension (k)
  in/out real vf array dimension (k)
  in/out real vl array dimension (k)
  out real difl array dimension (k)
  out real difr array real array,
  in integer lddifr
  in real dsigma array dimension (k)
  in/out real work array * k
  out integer info
subroutine slasda
  in integer icompq
  in integer smlsiz
  in integer n
  in integer sqre
  in/out real d array dimension (n)
  in real e array dimension (m-1)
  out real u array real array,
  in integer ldu
  out real vt array real array,
  out integer k array dimension (n)
  out real difl array (ldu, nlvl),
  out real difr array real array,
  out real z array real array,
  out real poles array real array,
  out integer givptr array integer array,
  out integer givcol array integer array,
  in integer ldgcol
  out integer perm array (ldgcol, nlvl)
  out real givnum array real array,
  out real c array real array,
  out real s array (n) if
  in/out real work array array, dimension
  in/out integer iwork array dimension (7*n).
  out integer info
subroutine slasdq
  in character*1 uplo
  in integer sqre
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out real d array dimension (n)
  in/out real e array real array.
  in/out real vt array (ldvt, ncvt)
  in integer ldvt
  in/out real u array (ldu, n)
  in integer ldu
  in/out real c array (ldc, ncc)
  in integer ldc
  in/out real work array dimension (4*n)
  out integer info
subroutine slasdt
  in integer n
  out integer lvl
  out integer nd
  out integer inode array dimension (n)
  out integer ndiml array dimension (n)
  out integer ndimr array dimension (n)
  in integer. msub
subroutine slaset
  in character*1 uplo
  in integer m
  in integer n
  in real alpha
  in real beta
  in/out real a array dimension (lda,n)
  in integer lda
subroutine slasq1
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in/out real work array dimension (4*n)
  out integer info
subroutine slasq2
  in integer n
  in/out real z array dimension (4*n)
  out integer info
subroutine slasq3
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  out real dmin
  out real sigma
  in/out real desig
  in real qmax
  out integer nfail
  out integer iter
  out integer ndiv
  out integer ttype
  in logical ieee
subroutine slasq4
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  in integer n0in
  in real dmin
  in real dmin1
  in real dmin2
  in real dn
  in real dn1
  in real dn2
  out real tau
  out integer ttype
subroutine slasq5
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  in real tau
  out real dmin
  out real dmin1
  out real dmin2
  out real dn
  out real dnm1
  out real dnm2
  in logical ieee
subroutine slasq6
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  out real dmin
  out real dmin1
  out real dmin2
  out real dn
  out real dnm1
  out real dnm2
subroutine slasr
  in character*1 side
  in character*1 pivot
  in character*1 direct
  in integer m
  in integer n
  in real c array array, dimension
  in real s array array, dimension
  in/out real a array dimension (lda,n)
  in integer lda
subroutine slasrt
  in character*1 id
  in integer n
  in/out real d array dimension (n)
  out integer info
subroutine slassq
  in integer n
  in real x array dimension (n)
  in integer incx
  in/out real scale
  in/out real sumsq
subroutine slasv2
  in real f
  in real g
  in real h
  out real ssmin
  out real ssmax
  out real snl
  out real csl
  out real snr
  out real csr
subroutine slaswp
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in integer k1
  in integer k2
  in integer ipiv array dimension (k2*abs(incx))
  in integer incx
subroutine slasy2
  in logical ltranl
  in logical ltranr
  in integer isgn
  in integer n1
  in integer n2
  in real tl array dimension (ldtl,2)
  in integer ldtl
  in real tr array dimension (ldtr,2)
  in integer ldtr
  in real b array dimension (ldb,2)
  in integer ldb
  out real scale
  out real x array dimension (ldx,2)
  in integer ldx
  out real xnorm
  out integer info
subroutine slasyf
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out real w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine slatbs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in integer kd
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine slatdf
  in integer ijob
  in integer n
  in real z array (ldz, n)
  in integer ldz
  in/out real rhs array dimension n.
  in/out real rdsum
  in/out real rdscal
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
subroutine slatps
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in/out real x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine slatrd
  in character*1 uplo
  in integer n
  in integer nb
  in/out real a array dimension (lda,n)
  in integer lda
  out real e array dimension (n-1)
  out real tau array dimension (n-1)
  out real w array dimension (ldw,nb)
  in integer ldw
subroutine slatrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in/out real x array dimension (n)
  out real scale
  in/out real cnorm array dimension (n)
  out integer info
subroutine slatrz
  in integer m
  in integer n
  in integer l
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (m)
  in/out real work array dimension (m)
subroutine slatzm
  in character*1 side
  in integer m
  in integer n
  in real v array array, dimension
  in integer incv
  in real tau
  in/out real c1 array array, dimension
  in/out real c2 array array, dimension
  in integer ldc
  in/out real work array array, dimension
subroutine slauu2
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine slauum
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine slazq3
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  out real dmin
  out real sigma
  in/out real desig
  in real qmax
  out integer nfail
  out integer iter
  out integer ndiv
  in logical ieee
  in/out integer ttype
  in/out real dmin1
  in/out real dmin2
  in/out real dn
  in/out real dn1
  in/out real dn2
  in/out real tau
subroutine slazq4
  in integer i0
  in integer n0
  in real z array dimension (4*n)
  in integer pp
  in integer n0in
  in real dmin
  in real dmin1
  in real dmin2
  in real dn
  in real dn1
  in real dn2
  out real tau
  out integer ttype
  in/out real g
subroutine sopgtr
  in character*1 uplo
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in real tau array dimension (n-1)
  out real q array dimension (ldq,n)
  in integer ldq
  in/out real work array dimension (n-1)
  out integer info
subroutine sopmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in real ap array array, dimension
  in real tau array = 'l'
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sorg2l
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (n)
  out integer info
subroutine sorg2r
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (n)
  out integer info
subroutine sorgbr
  in character*1 vect
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array array, dimension
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorghr
  in integer n
  in integer ilo
  in integer ihi
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (n-1)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorgl2
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (m)
  out integer info
subroutine sorglq
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorgql
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorgqr
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorgr2
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (m)
  out integer info
subroutine sorgrq
  in integer m
  in integer n
  in integer k
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (k)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorgtr
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in real tau array dimension (n-1)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorm2l
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array dimension (lda,k)
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sorm2r
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array dimension (lda,k)
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sormbr
  in character*1 vect
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array array, dimension
  in integer lda
  in real tau array dimension (min(nq,k))
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormhr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer ilo
  in integer ihi
  in real a array array, dimension
  in integer lda
  in real tau array array, dimension
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sorml2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sormlq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormql
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array dimension (lda,k)
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormqr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array dimension (lda,k)
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormr2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sormr3
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array array, dimension
  out integer info
subroutine sormrq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormrz
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in real a array array, dimension
  in integer lda
  in real tau array dimension (k)
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine sormtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in real a array array, dimension
  in integer lda
  in real tau array array, dimension
  in/out real c array dimension (ldc,n)
  in integer ldc
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine spbcon
  in character*1 uplo
  in integer n
  in integer kd
  in real ab array dimension (ldab,n)
  in integer ldab
  in real anorm
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spbequ
  in character*1 uplo
  in integer n
  in integer kd
  in real ab array dimension (ldab,n)
  in integer ldab
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine spbrfs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in real afb array dimension (ldafb,n)
  in integer ldafb
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spbstf
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine spbsv
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine spbsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in/out real afb array dimension (ldafb,n)
  in integer ldafb
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spbtf2
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine spbtrf
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine spbtrs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine spocon
  in character*1 uplo
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in real anorm
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spoequ
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine sporfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in real af array dimension (ldaf,n)
  in integer ldaf
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sposv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sposvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real af array dimension (ldaf,n)
  in integer ldaf
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spotf2
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine spotrf
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine spotri
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine spotrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sppcon
  in character*1 uplo
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in real anorm
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sppequ
  in character*1 uplo
  in integer n
  in real ap array dimension (n*(n+1)/2)
  out real s array dimension (n)
  out real scond
  out real amax
  out integer info
subroutine spprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in real afp array dimension (n*(n+1)/2)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sppsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real ap array dimension (n*(n+1)/2)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sppsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real ap array dimension (n*(n+1)/2)
  in/out real afp array array, dimension
  in/out character*1 equed
  in/out real s array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine spptrf
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out integer info
subroutine spptri
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out integer info
subroutine spptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sptcon
  in integer n
  in real d array dimension (n)
  in real e array dimension (n-1)
  in real anorm
  out real rcond
  in/out real work array dimension (n)
  out integer info
subroutine spteqr
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (4*n)
  out integer info
subroutine sptrfs
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in real e array dimension (n-1)
  in real df array dimension (n)
  in real ef array dimension (n-1)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (2*n)
  out integer info
subroutine sptsv
  in integer n
  in integer nrhs
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sptsvx
  in character*1 fact
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in real e array dimension (n-1)
  in/out real df array dimension (n)
  in/out real ef array dimension (n-1)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (2*n)
  out integer info
subroutine spttrf
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  out integer info
subroutine spttrs
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in real e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sptts2
  in integer n
  in integer nrhs
  in real d array dimension (n)
  in real e array dimension (n-1)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
subroutine srscl
  in integer n
  in real sa
  in/out real sx array array, dimension
  in integer incx
subroutine ssbevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array (ldab, n)
  in integer ldab
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array real array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ssbev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array (ldab, n)
  in integer ldab
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,3*n-2))
  out integer info
subroutine ssbevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array (ldab, n)
  in integer ldab
  out real q array (ldq, n)
  in integer ldq
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine ssbgst
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out real ab array dimension (ldab,n)
  in integer ldab
  in real bb array dimension (ldbb,n)
  in integer ldbb
  out real x array dimension (ldx,n)
  in integer ldx
  in/out real work array dimension (2*n)
  out integer info
subroutine ssbgvd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out real ab array (ldab, n)
  in integer ldab
  in/out real bb array (ldbb, n)
  in integer ldbb
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ssbgv
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out real ab array (ldab, n)
  in integer ldab
  in/out real bb array (ldbb, n)
  in integer ldbb
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (3*n)
  out integer info
subroutine ssbgvx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out real ab array (ldab, n)
  in integer ldab
  in/out real bb array (ldbb, n)
  in integer ldbb
  out real q array (ldq, n)
  in integer ldq
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (7n)
  in/out integer iwork array dimension (5n)
  out integer ifail array dimension (m)
  out integer info
subroutine ssbtrd
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer kd
  in/out real ab array dimension (ldab,n)
  in integer ldab
  out real d array dimension (n)
  out real e array dimension (n-1)
  in/out real q array dimension (ldq,n)
  in integer ldq
  in/out real work array dimension (n)
  out integer info
subroutine sspcon
  in character*1 uplo
  in integer n
  in real ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out real work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sspevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine sspev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (3*n)
  out integer info
subroutine sspevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (8*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine sspgst
  in integer itype
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in real bp array dimension (n*(n+1)/2)
  out integer info
subroutine sspgvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in/out real bp array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine sspgv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real ap array array, dimension
  in/out real bp array dimension (n*(n+1)/2)
  out real w array dimension (n)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (3*n)
  out integer info
subroutine sspgvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in/out real bp array dimension (n*(n+1)/2)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (8*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine ssprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in real afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine sspsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sspsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in/out real afp array array, dimension
  in/out integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine ssptrd
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out real d array dimension (n)
  out real e array dimension (n-1)
  out real tau array dimension (n-1)
  out integer info
subroutine ssptrf
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine ssptri
  in character*1 uplo
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out real work array dimension (n)
  out integer info
subroutine ssptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine sstebz
  in character*1 range
  in character*1 order
  in integer n
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  in real d array dimension (n)
  in real e array dimension (n-1)
  out integer m
  out integer nsplit
  out real w array dimension (n)
  out integer iblock array dimension (n)
  out integer isplit array dimension (n)
  in/out real work array dimension (4*n)
  in/out integer iwork array dimension (3*n)
  out integer info
subroutine sstedc
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real z array dimension (ldz,n)
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine sstegr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz
  in/out real work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine sstein
  in integer n
  in real d array dimension (n)
  in real e array dimension (n-1)
  in integer m
  in real w array dimension (n)
  in integer iblock array dimension (n)
  in integer isplit array dimension (n)
  out real z array (ldz, m)
  in integer ldz
  in/out real work array dimension (5*n)
  in/out integer iwork array dimension (n)
  out integer ifail array dimension (m)
  out integer info
subroutine sstemr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n)
  in real vl
  in real vu
  in integer il
  in integer iu
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in integer nzc
  out integer isuppz
  in/out logical tryrac
  in/out real work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine ssteqr
  in character*1 compz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  in/out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,2*n-2))
  out integer info
subroutine ssterf
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  out integer info
subroutine sstevd
  in character*1 jobz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array real array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine sstev
  in character*1 jobz
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (n-1)
  out real z array (ldz, n)
  in integer ldz
  in/out real work array dimension (max(1,2*n-2))
  out integer info
subroutine sstevr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (max(1,n-1))
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine sstevx
  in character*1 jobz
  in character*1 range
  in integer n
  in/out real d array dimension (n)
  in/out real e array dimension (max(1,n-1))
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (5*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine ssycon
  in character*1 uplo
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in real anorm
  out real rcond
  in/out real work array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine ssyevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  out real w array dimension (n)
  in/out real work array real array,
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ssyev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  out real w array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ssyevr
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ssyevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine ssygs2
  in integer itype
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in real b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine ssygst
  in integer itype
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in real b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine ssygvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real w array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ssygv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (ldb, n)
  in integer ldb
  out real w array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ssygvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out real a array (lda, n)
  in integer lda
  in/out real b array (lda, n)
  in integer ldb
  in real vl
  in real vu
  in integer il
  in integer iu
  in real abstol
  out integer m
  out real w array dimension (n)
  out real z array (ldz, max(1,m))
  in integer ldz
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine ssyrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in real af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine ssysv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ssysvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in/out real af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  out real x array dimension (ldx,nrhs)
  in integer ldx
  out real rcond
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n)
  out integer info
subroutine ssytd2
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real d array dimension (n)
  out real e array dimension (n-1)
  out real tau array dimension (n-1)
  out integer info
subroutine ssytf2
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine ssytrd
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real d array dimension (n)
  out real e array dimension (n-1)
  out real tau array dimension (n-1)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ssytrf
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ssytri
  in character*1 uplo
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out real work array dimension (n)
  out integer info
subroutine ssytrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine stbcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer kd
  in real ab array dimension (ldab,n)
  in integer ldab
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine stbrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine stbtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in real ab array dimension (ldab,n)
  in integer ldab
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine stgevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in real s array dimension (lds,n)
  in integer lds
  in real p array dimension (ldp,n)
  in integer ldp
  in/out real vl array dimension (ldvl,mm)
  in integer ldvl
  in/out real vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out real work array dimension (6*n)
  out integer info
subroutine stgex2
  in logical wantq
  in logical wantz
  in integer n
  in/out real a array dimensions (lda,n)
  in integer lda
  in/out real b array dimensions (ldb,n)
  in integer ldb
  in/out real q array dimension (ldz,n)
  in integer ldq
  in/out real z array dimension (ldz,n)
  in integer ldz
  in integer j1
  in integer n1
  in integer n2
  in/out real work array dimension (max(1,lwork)).
  in integer lwork
  out integer info
subroutine stgexc
  in logical wantq
  in logical wantz
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  in/out real q array dimension (ldz,n)
  in integer ldq
  in/out real z array dimension (ldz,n)
  in integer ldz
  in/out integer ifst
  in/out integer ilst
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine stgsen
  in integer ijob
  in logical wantq
  in logical wantz
  in logical select array dimension (n)
  in integer n
  in/out real a array array, dimension(lda,n)
  in integer lda
  in/out real b array array, dimension(ldb,n)
  in integer ldb
  out real alphar array dimension (n)
  out real alphai array dimension (n)
  out real beta array dimension (n)
  in/out real q array dimension (ldq,n)
  in integer ldq
  in/out real z array dimension (ldz,n)
  in integer ldz
  out integer m
  out real pl
  out real pr
  out real dif array dimension (2).
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine stgsja
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in integer k
  in integer l
  in/out real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,n)
  in integer ldb
  in real tola
  in real tolb
  out real alpha array dimension (n)
  out real beta array dimension (n)
  in/out real u array dimension (ldu,m)
  in integer ldu
  in/out real v array dimension (ldv,p)
  in integer ldv
  in/out real q array dimension (ldq,n)
  in integer ldq
  in/out real work array dimension (2*n)
  out integer ncycle
  out integer info
subroutine stgsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  in real b array dimension (ldb,n)
  in integer ldb
  in real vl array dimension (ldvl,m)
  in integer ldvl
  in real vr array dimension (ldvr,m)
  in integer ldvr
  out real s array dimension (mm)
  out real dif array dimension (mm)
  in integer mm
  out integer m
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array + 6)
  out integer info
subroutine stgsy2
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in real a array (lda, m)
  in integer lda
  in real b array (ldb, n)
  in integer ldb
  in/out real c array (ldc, n)
  in integer ldc
  in real d array (ldd, m)
  in integer ldd
  in real e array (lde, n)
  in integer lde
  in/out real f array (ldf, n)
  in integer ldf
  out real scale
  in/out real rdsum
  in/out real rdscal
  in/out integer iwork array dimension (m+n+2)
  out integer pq
  out integer info
subroutine stgsyl
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in real a array (lda, m)
  in integer lda
  in real b array (ldb, n)
  in integer ldb
  in/out real c array (ldc, n)
  in integer ldc
  in real d array (ldd, m)
  in integer ldd
  in real e array (lde, n)
  in integer lde
  in/out real f array (ldf, n)
  in integer ldf
  out real dif
  out real scale
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (m+n+6)
  out integer info
subroutine stpcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in real ap array dimension (n*(n+1)/2)
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine stprfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine stptri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out real ap array dimension (n*(n+1)/2)
  out integer info
subroutine stptrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in real ap array dimension (n*(n+1)/2)
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine strcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in real a array dimension (lda,n)
  in integer lda
  out real rcond
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine strevc
  in character*1 side
  in character*1 howmny
  in/out logical select array dimension (n)
  in integer n
  in real t array dimension (ldt,n)
  in integer ldt
  in/out real vl array dimension (ldvl,mm)
  in integer ldvl
  in/out real vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out real work array dimension (3*n)
  out integer info
subroutine strexc
  in character*1 compq
  in integer n
  in/out real t array dimension (ldt,n)
  in integer ldt
  in/out real q array dimension (ldq,n)
  in integer ldq
  in/out integer ifst
  in/out integer ilst
  in/out real work array dimension (n)
  out integer info
subroutine strrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in real b array dimension (ldb,nrhs)
  in integer ldb
  in real x array dimension (ldx,nrhs)
  in integer ldx
  out real ferr array dimension (nrhs)
  out real berr array dimension (nrhs)
  in/out real work array dimension (3*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine strsen
  in character*1 job
  in character*1 compq
  in logical select array dimension (n)
  in integer n
  in/out real t array dimension (ldt,n)
  in integer ldt
  in/out real q array dimension (ldq,n)
  in integer ldq
  out real wr array dimension (n)
  out real wi array dimension (n)
  out integer m
  out real s
  out real sep
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine strsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in real t array dimension (ldt,n)
  in integer ldt
  in real vl array dimension (ldvl,m)
  in integer ldvl
  in real vr array dimension (ldvr,m)
  in integer ldvr
  out real s array dimension (mm)
  out real sep array dimension (mm)
  in integer mm
  out integer m
  in/out real work array dimension (ldwork,n+6)
  in integer ldwork
  in/out integer iwork array dimension (2*(n-1))
  out integer info
subroutine strsyl
  in character*1 trana
  in character*1 tranb
  in integer isgn
  in integer m
  in integer n
  in real a array dimension (lda,m)
  in integer lda
  in real b array dimension (ldb,n)
  in integer ldb
  in/out real c array dimension (ldc,n)
  in integer ldc
  out real scale
  out integer info
subroutine strti2
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine strtri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out integer info
subroutine strtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in real a array dimension (lda,n)
  in integer lda
  in/out real b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine stzrqf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (m)
  out integer info
subroutine stzrzf
  in integer m
  in integer n
  in/out real a array dimension (lda,n)
  in integer lda
  out real tau array dimension (m)
  in/out real work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine xerbla
  in character*6 srname
  in integer info
subroutine zbdsqr
  in character*1 uplo
  in integer n
  in integer ncvt
  in integer nru
  in integer ncc
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 vt array (ldvt, ncvt)
  in integer ldvt
  in/out complex*16 u array (ldu, n)
  in integer ldu
  in/out complex*16 c array (ldc, ncc)
  in integer ldc
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zcgesv
  in integer n
  in integer nrhs
  in/out complex*16 a array complex*16 array,
  in integer lda
  out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  in/out complex*16 work array dimension (n*nrhs)
  in/out complex swork array dimension (n*(n+nrhs))
  out integer iter
  out integer info
subroutine zdrot
  in integer n
  in complex*16 cx array at least
  in integer incx
  in complex*16 cy array at least
  in integer incy
  in double c
  in double s
subroutine zdrscl
  in integer n
  in double sa
  in/out complex*16 sx array array, dimension
  in integer incx
subroutine zgbbrd
  in character*1 vect
  in integer m
  in integer n
  in integer ncc
  in integer kl
  in integer ku
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out complex*16 q array dimension (ldq,m)
  in integer ldq
  out complex*16 pt array dimension (ldpt,n)
  in integer ldpt
  in/out complex*16 c array dimension (ldc,ncc)
  in integer ldc
  in/out complex*16 work array dimension (max(m,n))
  in/out double rwork array dimension (max(m,n))
  out integer info
subroutine zgbcon
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgbequ
  in integer m
  in integer n
  in integer kl
  in integer ku
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double r array dimension (m)
  out double c array dimension (n)
  out double rowcnd
  out double colcnd
  out double amax
  out integer info
subroutine zgbrfs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in complex*16 afb array dimension (ldafb,n)
  in integer ldafb
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgbsv
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zgbsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 afb array dimension (ldafb,n)
  in integer ldafb
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out double r array dimension (n)
  in/out double c array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgbtf2
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine zgbtrf
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine zgbtrs
  in character*1 trans
  in integer n
  in integer kl
  in integer ku
  in integer nrhs
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zgebak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in double scale array dimension (n)
  in integer m
  in/out complex*16 v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine zgebal
  in character*1 job
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ilo
  out integer ihi
  out double scale array dimension (n)
  out integer info
subroutine zgebd2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out complex*16 tauq array dimension (min(m,n))
  out complex*16 taup array dimension (min(m,n))
  in/out complex*16 work array dimension (max(m,n))
  out integer info
subroutine zgebrd
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double d array dimension (min(m,n))
  out double e array dimension (min(m,n)-1)
  out complex*16 tauq array dimension (min(m,n))
  out complex*16 taup array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgecon
  in character*1 norm
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgeequ
  in integer m
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  out double r array dimension (m)
  out double c array dimension (n)
  out double rowcnd
  out double colcnd
  out double amax
  out integer info
subroutine zgees
  in character*1 jobvs
  in character*1 sort
  in logical select one procedure 
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer sdim
  out complex*16 w array dimension (n)
  out complex*16 vs array dimension (ldvs,n)
  in integer ldvs
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine zgeesx
  in character*1 jobvs
  in character*1 sort
  in logical select one procedure 
  in character*1 sense
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  out integer sdim
  out complex*16 w array dimension (n)
  out complex*16 vs array dimension (ldvs,n)
  in integer ldvs
  out double rconde
  out double rcondv
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine zgeev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 w array dimension (n)
  out complex*16 vl array dimension (ldvl,n)
  in integer ldvl
  out complex*16 vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgeevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 w array dimension (n)
  out complex*16 vl array dimension (ldvl,n)
  in integer ldvl
  out complex*16 vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out double scale array dimension (n)
  out double abnrm
  out double rconde array dimension (n)
  out double rcondv array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgegs
  in character*1 jobvsl
  in character*1 jobvsr
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex*16 vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (3*n)
  out integer info
subroutine zgegv
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vl array dimension (ldvl,n)
  in integer ldvl
  out complex*16 vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (8*n)
  out integer info
subroutine zgehd2
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (n-1)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zgehrd
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (n-1)
  in/out complex*16 work array dimension (lwork)
  in integer lwork
  out integer info
subroutine zgelq2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (m)
  out integer info
subroutine zgelqf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgelsd
  in integer m
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out double s array dimension (min(m,n))
  in double rcond
  out integer rank
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in/out integer iwork array dimension (max(1,liwork))
  out integer info
subroutine zgels
  in character*1 trans
  in integer m
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgelss
  in integer m
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out double s array dimension (min(m,n))
  in double rcond
  out integer rank
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (5*min(m,n))
  out integer info
subroutine zgelsx
  in integer m
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in double rcond
  out integer rank
  in/out complex*16 work array array, dimension
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgelsy
  in integer m
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out integer jpvt array dimension (n)
  in double rcond
  out integer rank
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgeql2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zgeqlf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgeqp3
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgeqpf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgeqr2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zgeqrf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgerfs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgerq2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (m)
  out integer info
subroutine zgerqf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (min(m,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgesc2
  in integer n
  in complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 rhs array dimension n.
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
  out double scale
subroutine zgesdd
  in character*1 jobz
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double s array dimension (min(m,n))
  out complex*16 u array dimension (ldu,ucol)
  in integer ldu
  out complex*16 vt array dimension (ldvt,n)
  in integer ldvt
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in/out integer iwork array dimension (8*min(m,n))
  out integer info
subroutine zgesvd
  in character*1 jobu
  in character*1 jobvt
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double s array dimension (min(m,n))
  out complex*16 u array dimension (ldu,ucol)
  in integer ldu
  out complex*16 vt array dimension (ldvt,n)
  in integer ldvt
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (5*min(m,n))
  out integer info
subroutine zgesv
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zgesvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in/out character*1 equed
  in/out double r array dimension (n)
  in/out double c array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (2*n)
  out integer info
subroutine zgetc2
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  out integer ipiv array dimension (n).
  out integer jpiv array dimension (n).
  out integer info
subroutine zgetf2
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine zgetrf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (min(m,n))
  out integer info
subroutine zgetri
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgetrs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zggbak
  in character*1 job
  in character*1 side
  in integer n
  in integer ilo
  in integer ihi
  in double lscale array dimension (n)
  in double rscale array dimension (n)
  in integer m
  in/out complex*16 v array dimension (ldv,m)
  in integer ldv
  out integer info
subroutine zggbal
  in character*1 job
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  out integer ilo
  out integer ihi
  out double lscale array dimension (n)
  out double rscale array dimension (n)
  in/out real work array dimension (lwork)
  out integer info
subroutine zgges
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg two procedure 
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out integer sdim
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex*16 vsr array dimension (ldvsr,n)
  in integer ldvsr
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (8*n)
  in/out logical bwork array dimension (n)
  out integer info
subroutine zggesx
  in character*1 jobvsl
  in character*1 jobvsr
  in character*1 sort
  in logical selctg two procedure 
  in character*1 sense
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out integer sdim
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vsl array dimension (ldvsl,n)
  in integer ldvsl
  out complex*16 vsr array dimension (ldvsr,n)
  in integer ldvsr
  out double rconde array dimension (2)
  out double rcondv array dimension (2)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (8*n)
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  in/out logical bwork array dimension (n)
  out integer info
subroutine zggev
  in character*1 jobvl
  in character*1 jobvr
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vl array dimension (ldvl,n)
  in integer ldvl
  out complex*16 vr array dimension (ldvr,n)
  in integer ldvr
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (8*n)
  out integer info
subroutine zggevx
  in character*1 balanc
  in character*1 jobvl
  in character*1 jobvr
  in character*1 sense
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  out complex*16 vl array dimension (ldvl,n)
  in integer ldvl
  out complex*16 vr array dimension (ldvr,n)
  in integer ldvr
  out integer ilo
  out integer ihi
  out double lscale array dimension (n)
  out double rscale array dimension (n)
  out double abnrm
  out double bbnrm
  out double rconde array dimension (n)
  out double rcondv array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out real rwork array dimension (lrwork)
  in/out integer iwork array dimension (n+2)
  in/out logical bwork array dimension (n)
  out integer info
subroutine zggglm
  in integer n
  in integer m
  in integer p
  in/out complex*16 a array dimension (lda,m)
  in integer lda
  in/out complex*16 b array dimension (ldb,p)
  in integer ldb
  in/out complex*16 d array dimension (n)
  out complex*16 x array dimension (m)
  out complex*16 y array dimension (p)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zgghrd
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  in/out complex*16 q array (ldq, n)
  in integer ldq
  in/out complex*16 z array (ldz, n)
  in integer ldz
  out integer info
subroutine zgglse
  in integer m
  in integer n
  in integer p
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  in/out complex*16 c array dimension (m)
  in/out complex*16 d array dimension (p)
  out complex*16 x array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zggqrf
  in integer n
  in integer m
  in integer p
  in/out complex*16 a array dimension (lda,m)
  in integer lda
  out complex*16 taua array dimension (min(n,m))
  in/out complex*16 b array dimension (ldb,p)
  in integer ldb
  out complex*16 taub array dimension (min(n,p))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zggrqf
  in integer m
  in integer p
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 taua array dimension (min(m,n))
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  out complex*16 taub array dimension (min(p,n))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zggsvd
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer n
  in integer p
  out integer k
  out integer l
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  out double alpha array dimension (n)
  out double beta array dimension (n)
  out complex*16 u array dimension (ldu,m)
  in integer ldu
  out complex*16 v array dimension (ldv,p)
  in integer ldv
  out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out complex*16 work array dimension (max(3*n,m,p)+n)
  in/out double rwork array dimension (2*n)
  in/out integer iwork array dimension (n)
  out integer info
subroutine zggsvp
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  in double tola
  in double tolb
  out integer k
  out integer l
  out complex*16 u array dimension (ldu,m)
  in integer ldu
  out complex*16 v array dimension (ldv,m)
  in integer ldv
  out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array dimension (n)
  in/out double rwork array dimension (2*n)
  in/out complex*16 tau array dimension (n)
  in/out complex*16 work array dimension (max(3*n,m,p))
  out integer info
subroutine zgtcon
  in character*1 norm
  in integer n
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in complex*16 du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zgtrfs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in complex*16 dlf array dimension (n-1)
  in complex*16 df array dimension (n)
  in complex*16 duf array dimension (n-1)
  in complex*16 du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgtsv
  in integer n
  in integer nrhs
  in/out complex*16 dl array dimension (n-1)
  in/out complex*16 d array dimension (n)
  in/out complex*16 du array dimension (n-1)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zgtsvx
  in character*1 fact
  in character*1 trans
  in integer n
  in integer nrhs
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in/out complex*16 dlf array dimension (n-1)
  in/out complex*16 df array dimension (n)
  in/out complex*16 duf array dimension (n-1)
  in/out complex*16 du2 array dimension (n-2)
  in/out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zgttrf
  in integer n
  in/out complex*16 dl array dimension (n-1)
  in/out complex*16 d array dimension (n)
  in/out complex*16 du array dimension (n-1)
  out complex*16 du2 array dimension (n-2)
  out integer ipiv array dimension (n)
  out integer info
subroutine zgttrs
  in character*1 trans
  in integer n
  in integer nrhs
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in complex*16 du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zgtts2
  in integer itrans
  in integer n
  in integer nrhs
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in complex*16 du2 array dimension (n-2)
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
subroutine zhbevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array precision array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zhbev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (max(1,3*n-2))
  out integer info
subroutine zhbevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  out complex*16 q array (ldq, n)
  in integer ldq
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zhbgst
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in complex*16 bb array dimension (ldbb,n)
  in integer ldbb
  out complex*16 x array dimension (ldx,n)
  in integer ldx
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zhbgvd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  in/out complex*16 bb array (ldbb, n)
  in integer ldbb
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zhbgv
  in character*1 jobz
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  in/out complex*16 bb array (ldbb, n)
  in integer ldbb
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (3*n)
  out integer info
subroutine zhbgvx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in integer ka
  in integer kb
  in/out complex*16 ab array (ldab, n)
  in integer ldab
  in/out complex*16 bb array (ldbb, n)
  in integer ldbb
  out complex*16 q array (ldq, n)
  in integer ldq
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zhbtrd
  in character*1 vect
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double d array dimension (n)
  out double e array dimension (n-1)
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zhecon
  in character*1 uplo
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zheevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  out double w array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array precision array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zheev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  out double w array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array (max(1, 3*n-2))
  out integer info
subroutine zheevr
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zheevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zhegs2
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine zhegst
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine zhegvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out double w array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zhegv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  out double w array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array (max(1, 3*n-2))
  out integer info
subroutine zhegvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex*16 a array (lda, n)
  in integer lda
  in/out complex*16 b array (ldb, n)
  in integer ldb
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zherfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zhesv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zhesvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (n)
  out integer info
subroutine zhetd2
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double d array dimension (n)
  out double e array dimension (n-1)
  out complex*16 tau array dimension (n-1)
  out integer info
subroutine zhetf2
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine zhetrd
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double d array dimension (n)
  out double e array dimension (n-1)
  out complex*16 tau array dimension (n-1)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zhetrf
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zhetri
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zhetrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zhgeqz
  in character*1 job
  in character*1 compq
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 h array (ldh, n)
  in integer ldh
  in/out complex*16 t array (ldt, n)
  in integer ldt
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  in/out complex*16 q array (ldq, n)
  in integer ldq
  in/out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (n)
  out integer info
subroutine zhpcon
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zhpevd
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array precision array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zhpev
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array (max(1, 2*n-1))
  in/out double rwork array (max(1, 3*n-2))
  out integer info
subroutine zhpevx
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zhpgst
  in integer itype
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 bp array dimension (n*(n+1)/2)
  out integer info
subroutine zhpgvd
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 bp array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (max(1,lrwork))
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zhpgv
  in integer itype
  in character*1 jobz
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 bp array dimension (n*(n+1)/2)
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array (max(1, 2*n-1))
  in/out double rwork array (max(1, 3*n-2))
  out integer info
subroutine zhpgvx
  in integer itype
  in character*1 jobz
  in character*1 range
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 bp array dimension (n*(n+1)/2)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, n)
  in integer ldz
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (7*n)
  in/out integer iwork array dimension (5*n)
  out integer ifail array dimension (n)
  out integer info
subroutine zhprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zhpsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zhpsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 afp array dimension (n*(n+1)/2)
  in/out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zhptrd
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out double d array dimension (n)
  out double e array dimension (n-1)
  out complex*16 tau array dimension (n-1)
  out integer info
subroutine zhptrf
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine zhptri
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zhptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zhsein
  in character*1 side
  in character*1 eigsrc
  in character*1 initv
  in logical select array dimension (n)
  in integer n
  in complex*16 h array dimension (ldh,n)
  in integer ldh
  in/out complex*16 w array dimension (n)
  in/out complex*16 vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex*16 vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex*16 work array dimension (n*n)
  in/out double rwork array dimension (n)
  out integer ifaill array dimension (mm)
  out integer ifailr array dimension (mm)
  out integer info
subroutine zhseqr
  in character*1 job
  in character*1 compz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  out complex*16 w array dimension (n)
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  in/out complex*16 work array dimension (lwork)
  in integer lwork
  out integer info
subroutine zlabrd
  in integer m
  in integer n
  in integer nb
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double d array dimension (nb)
  out double e array dimension (nb)
  out complex*16 tauq array dimension (nb)
  out complex*16 taup array dimension (nb)
  out complex*16 x array dimension (ldx,nb)
  in integer ldx
  out complex*16 y array dimension (ldy,nb)
  in integer ldy
subroutine zlacgv
  in integer n
  in/out complex*16 x array array, dimension
  in integer incx
subroutine zlacn2
  in integer n
  in/out complex*16 v array dimension (n)
  in/out complex*16 x array dimension (n)
  in/out double est
  in/out integer kase
  in/out integer isave array dimension (3)
subroutine zlacon
  in integer n
  in/out complex*16 v array dimension (n)
  in/out complex*16 x array dimension (n)
  in/out double est
  in/out integer kase
subroutine zlacp2
  in character*1 uplo
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out complex*16 b array dimension (ldb,n)
  in integer ldb
subroutine zlacpy
  in character*1 uplo
  in integer m
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 b array dimension (ldb,n)
  in integer ldb
subroutine zlacrm
  in integer m
  in integer n
  in complex*16 a array (lda, n)
  in integer lda
  in double b array (ldb, n)
  in integer ldb
  in complex*16 c array (ldc, n)
  in integer ldc
  in/out double rwork array dimension (2*m*n)
subroutine zlacrt
  in integer n
  in/out complex*16 cx array dimension (n)
  in integer incx
  in/out complex*16 cy array dimension (n)
  in integer incy
  in complex*16 c
  in complex*16 s
function complex*16 zladiv
  in complex*16 x
  in complex*16 y
subroutine zlaed0
  in integer qsiz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out integer iwork array integer array,
  in/out double rwork array precision array,
  in/out complex*16 qstore array (ldqs, n)
  in integer ldqs
  out integer info
subroutine zlaed7
  in integer n
  in integer cutpnt
  in integer qsiz
  in integer tlvls
  in integer curlvl
  in integer curpbm
  in/out double d array dimension (n)
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in double rho
  out integer indxq array dimension (n)
  in/out integer iwork array dimension (4*n)
  in/out double rwork array precision array,
  in/out complex*16 work array dimension (qsiz*n)
  in/out double qstore array dimension (n**2+1)
  in/out integer qptr array dimension (n+2)
  in integer prmptr array lg n)
  in integer perm array lg n)
  in integer givptr array lg n)
  in integer givcol array lg n)
  in double givnum array lg n)
  out integer info
subroutine zlaed8
  out integer k
  in integer n
  in integer qsiz
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out double d array dimension (n)
  in/out double rho
  in integer cutpnt
  in double z array dimension (n)
  out double dlamda array dimension (n)
  out complex*16 q2 array dimension (ldq2,n)
  in integer ldq2
  out double w array dimension (n)
  in/out integer indxp array dimension (n)
  in/out integer indx array dimension (n)
  in integer indxq array dimension (n)
  out integer perm array dimension (n)
  out integer givptr
  out integer givcol array (2, n)
  out double givnum array (2, n)
  out integer info
subroutine zlaein
  in logical rightv
  in logical noinit
  in integer n
  in complex*16 h array dimension (ldh,n)
  in integer ldh
  in complex*16 w
  in/out complex*16 v array dimension (n)
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  in/out double rwork array dimension (n)
  in double eps3
  in double smlnum
  out integer info
subroutine zlaesy
  in complex*16 a
  in complex*16 b
  in complex*16 c
  out complex*16 rt1
  out complex*16 rt2
  out complex*16 evscal
  out complex*16 cs1
  out complex*16 sn1
subroutine zlaev2
  in complex*16 a
  in complex*16 b
  in complex*16 c
  out double rt1
  out double rt2
  out double cs1
  out complex*16 sn1
subroutine zlag2c
  in integer m
  in integer n
  in double a array dimension (lda,n)
  in integer lda
  out real sa array dimension (ldsa,n)
  in integer ldsa
  out integer info
subroutine zlags2
  in logical upper
  in double a1
  in complex*16 a2
  in double a3
  in double b1
  in complex*16 b2
  in double b3
  out double csu
  out complex*16 snu
  out double csv
  out complex*16 snv
  out double csq
  out complex*16 snq
subroutine zlagtm
  in character*1 trans
  in integer n
  in integer nrhs
  in double alpha
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
  in complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  in double beta
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
subroutine zlahef
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine zlahqr
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  out complex*16 w array dimension (n)
  in integer iloz
  in integer ihiz
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  out integer info
subroutine zlahr2
  in integer n
  in integer k
  in integer nb
  in/out complex*16 a array dimension (lda,n-k+1)
  in integer lda
  out complex*16 tau array dimension (nb)
  out complex*16 t array dimension (ldt,nb)
  in integer ldt
  out complex*16 y array dimension (ldy,nb)
  in integer ldy
subroutine zlahrd
  in integer n
  in integer k
  in integer nb
  in/out complex*16 a array dimension (lda,n-k+1)
  in integer lda
  out complex*16 tau array dimension (nb)
  out complex*16 t array dimension (ldt,nb)
  in integer ldt
  out complex*16 y array dimension (ldy,nb)
  in integer ldy
subroutine zlaic1
  in integer job
  in integer j
  in complex*16 x array dimension (j)
  in double sest
  in complex*16 w array dimension (j)
  in complex*16 gamma
  out double sestpr
  out complex*16 s
  out complex*16 c
subroutine zlals0
  in integer icompq
  in integer nl
  in integer nr
  in integer sqre
  in integer nrhs
  in/out complex*16 b array (ldb, nrhs)
  in integer ldb
  in/out complex*16 bx array (ldbx, nrhs)
  in integer ldbx
  in integer perm array dimension (n)
  in integer givptr
  in integer givcol array (ldgcol, 2)
  in integer ldgcol
  in double givnum array (ldgnum, 2)
  in integer ldgnum
  in double poles array (ldgnum, 2)
  in double difl array dimension (k).
  in double difr array (ldgnum, 2).
  in double z array dimension (k)
  in integer k
  in double c
  in double s
  in/out double rwork array array, dimension
  out integer info
subroutine zlalsa
  in integer icompq
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out complex*16 b array (ldb, nrhs)
  in integer ldb
  out complex*16 bx array (ldbx, nrhs)
  in integer ldbx
  in double u array (ldu, smlsiz).
  in integer ldu
  in double vt array (ldu, smlsiz+1).
  in integer k array dimension (n).
  in double difl array (ldu, nlvl).
  in double difr array * nlvl).
  in double z array (ldu, nlvl).
  in double poles array * nlvl).
  in integer givptr array dimension (n).
  in integer givcol array * nlvl).
  in integer ldgcol
  in integer perm array (ldgcol, nlvl).
  in double givnum array * nlvl).
  in double c array dimension (n).
  in double s array dimension (n).
  in/out double rwork array at least
  in/out integer iwork array integer array.
  out integer info
subroutine zlalsd
  in character*1 uplo
  in integer smlsiz
  in integer n
  in integer nrhs
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in double rcond
  out integer rank
  in/out complex*16 work array at least
  in/out double rwork array at least
  in/out integer iwork array at least
  out integer info
function double precision zlangb
  in character*1 norm
  in integer n
  in integer kl
  in integer ku
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision zlange
  in character*1 norm
  in integer m
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision zlangt
  in character*1 norm
  in integer n
  in complex*16 dl array dimension (n-1)
  in complex*16 d array dimension (n)
  in complex*16 du array dimension (n-1)
function double precision zlanhb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision zlanhe
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision zlanhp
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out double work array dimension (max(1,lwork)),
function double precision zlanhs
  in character*1 norm
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision zlanht
  in character*1 norm
  in integer n
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
function double precision zlansb
  in character*1 norm
  in character*1 uplo
  in integer n
  in integer k
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision zlansp
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out double work array dimension (max(1,lwork)),
function double precision zlansy
  in character*1 norm
  in character*1 uplo
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
function double precision zlantb
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer k
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out double work array dimension (max(1,lwork)),
function double precision zlantp
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out double work array dimension (max(1,lwork)),
function double precision zlantr
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer m
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out double work array dimension (max(1,lwork)),
subroutine zlapll
  in integer n
  in/out complex*16 x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex*16 y array dimension (1+(n-1)*incy)
  in integer incy
  out double ssmin
subroutine zlapmt
  in logical forwrd
  in integer m
  in integer n
  in/out complex*16 x array dimension (ldx,n)
  in integer ldx
  in/out integer k array dimension (n)
subroutine zlaqgb
  in integer m
  in integer n
  in integer kl
  in integer ku
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in double r array dimension (m)
  in double c array dimension (n)
  in double rowcnd
  in double colcnd
  in double amax
  out character*1 equed
subroutine zlaqge
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in double r array dimension (m)
  in double c array dimension (n)
  in double rowcnd
  in double colcnd
  in double amax
  out character*1 equed
subroutine zlaqhb
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlaqhe
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlaqhp
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlaqp2
  in integer m
  in integer n
  in integer offset
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex*16 tau array dimension (min(m,n))
  in/out double vn1 array dimension (n)
  in/out double vn2 array dimension (n)
  in/out complex*16 work array dimension (n)
subroutine zlaqps
  in integer m
  in integer n
  in integer offset
  in integer nb
  out integer kb
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out integer jpvt array dimension (n)
  out complex*16 tau array dimension (kb)
  in/out double vn1 array dimension (n)
  in/out double vn2 array dimension (n)
  in/out complex*16 auxv array dimension (nb)
  in/out complex*16 f array dimension (ldf,nb)
  in integer ldf
subroutine zlaqr0
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  out complex*16 w array dimension (n)
  in/out complex*16 z array dimension (ldz,ihi)
  in integer ldz
  in/out complex*16 work array dimension lwork
  in integer lwork
  out integer info
subroutine zlaqr1
  in integer n
  in complex*16 h array dimension (ldh,n)
  in integer ldh
  in complex*16 s1
  out complex*16 v array dimension n
subroutine zlaqr2
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex*16 z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out complex*16 sh array dimension kbot
  in/out complex*16 v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out complex*16 t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out complex*16 wv array dimension (ldwv,nw)
  in integer ldwv
  in/out complex*16 work array dimension lwork.
  in integer lwork
subroutine zlaqr3
  in logical wantt
  in logical wantz
  in integer n
  in integer ktop
  in integer kbot
  in integer nw
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex*16 z array dimension (ldz,ihi)
  in integer ldz
  out integer ns
  out integer nd
  out complex*16 sh array dimension kbot
  in/out complex*16 v array dimension (ldv,nw)
  in integer ldv
  in integer nh
  in/out complex*16 t array dimension (ldt,nw)
  in integer ldt
  in integer nv
  in/out complex*16 wv array dimension (ldwv,nw)
  in integer ldwv
  in/out complex*16 work array dimension lwork.
  in integer lwork
subroutine zlaqr4
  in logical wantt
  in logical wantz
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 h array dimension (ldh,n)
  in integer ldh
  out complex*16 w array dimension (n)
  in/out complex*16 z array dimension (ldz,ihi)
  in integer ldz
  in/out complex*16 work array dimension lwork
  in integer lwork
  out integer info
subroutine zlaqr5
  in logical wantt
  in logical wantz
  in integer kacc22
  in integer n
  in integer ktop
  in integer kbot
  in integer nshfts
  in complex*16 s array size (nshfts)
  in/out complex*16 h array size (ldh,n)
  in integer ldh
  in integer iloz
  in integer ihiz
  in/out complex*16 z array size (ldz,ihi)
  in integer ldz
  in/out complex*16 v array size (ldv,nshfts/2)
  in integer ldv
  in/out complex*16 u array of size
  in integer ldu
  in integer nh
  in/out complex*16 wh array size (ldwh,nh)
  in integer ldwh
  in integer nv
  in/out complex*16 wv array of size
  in integer ldwv
subroutine zlaqsb
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlaqsp
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlaqsy
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in double s array dimension (n)
  in double scond
  in double amax
  out character*1 equed
subroutine zlar1v
  in integer n
  in integer b1
  in integer bn
  in double lambda
  in double l array dimension (n-1)
  in double d array dimension (n)
  in double ld array dimension (n-1)
  in double lld array dimension (n-1)
  in double pivmin
  in double gaptol
  in/out complex*16 z array dimension (n)
  in logical wantnc
  out integer negcnt
  out double ztz
  out double mingma
  in/out integer r
  out integer isuppz array dimension (2)
  out double nrminv
  out double resid
  out double rqcorr
  in/out double work array dimension (4*n)
subroutine zlar2v
  in integer n
  in/out complex*16 x array dimension (1+(n-1)*incx)
  in/out complex*16 y array dimension (1+(n-1)*incx)
  in/out complex*16 z array dimension (1+(n-1)*incx)
  in integer incx
  in double c array dimension (1+(n-1)*incc)
  in complex*16 s array dimension (1+(n-1)*incc)
  in integer incc
subroutine zlarcm
  in integer m
  in integer n
  in double a array (lda, m)
  in integer lda
  in double b array (ldb, n)
  in integer ldb
  in complex*16 c array (ldc, n)
  in integer ldc
  in/out double rwork array dimension (2*m*n)
subroutine zlarfb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in complex*16 v array array, dimension
  in integer ldv
  in complex*16 t array dimension (ldt,k)
  in integer ldt
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (ldwork,k)
  in integer ldwork
subroutine zlarf
  in character*1 side
  in integer m
  in integer n
  in complex*16 v array array, dimension
  in integer incv
  in complex*16 tau
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
subroutine zlarfg
  in integer n
  in/out complex*16 alpha
  in/out complex*16 x array array, dimension
  in integer incx
  out complex*16 tau
subroutine zlarft
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out complex*16 v array array, dimension
  in integer ldv
  in complex*16 tau array dimension (k)
  out complex*16 t array dimension (ldt,k)
  in integer ldt
subroutine zlarfx
  in character*1 side
  in integer m
  in integer n
  in complex*16 v array = 'l'
  in complex*16 tau
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array = 'l'
subroutine zlargv
  in integer n
  in/out complex*16 x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex*16 y array dimension (1+(n-1)*incy)
  in integer incy
  out double c array dimension (1+(n-1)*incc)
  in integer incc
subroutine zlarnv
  in integer idist
  in/out integer iseed array dimension (4)
  in integer n
  out complex*16 x array dimension (n)
subroutine zlarrv
  in integer n
  in double vl
  in double vu
  in/out double d array dimension (n)
  in/out double l array dimension (n)
  in integer isplit array dimension (n)
  in integer m
  in integer dol
  in integer dou
  in double minrgp
  in double rtol1
  in double rtol2
  in/out double w array dimension (n)
  in/out double werr array dimension (n)
  in/out double wgap array dimension (n)
  in integer iblock array dimension (n)
  in integer indexw array dimension (n)
  in double gers array dimension (2*n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz array dimension (2*max(1,m))
  in/out double work array dimension (12*n)
  in/out integer iwork array dimension (7*n)
  out integer info
subroutine zlartg
  in complex*16 f
  in complex*16 g
  out double cs
  out complex*16 sn
  out complex*16 r
subroutine zlartv
  in integer n
  in/out complex*16 x array dimension (1+(n-1)*incx)
  in integer incx
  in/out complex*16 y array dimension (1+(n-1)*incy)
  in integer incy
  in double c array dimension (1+(n-1)*incc)
  in complex*16 s array dimension (1+(n-1)*incc)
  in integer incc
subroutine zlarzb
  in character*1 side
  in character*1 trans
  in character*1 direct
  in character*1 storev
  in integer m
  in integer n
  in integer k
  in integer l
  in complex*16 v array dimension (ldv,nv).
  in integer ldv
  in complex*16 t array dimension (ldt,k)
  in integer ldt
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (ldwork,k)
  in integer ldwork
subroutine zlarz
  in character*1 side
  in integer m
  in integer n
  in integer l
  in complex*16 v array dimension (1+(l-1)*abs(incv))
  in integer incv
  in complex*16 tau
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
subroutine zlarzt
  in character*1 direct
  in character*1 storev
  in integer n
  in integer k
  in/out complex*16 v array array, dimension
  in integer ldv
  in complex*16 tau array dimension (k)
  out complex*16 t array dimension (ldt,k)
  in integer ldt
subroutine zlascl
  in character*1 type
  in integer kl
  in integer ku
  in double cfrom
  in double cto
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zlaset
  in character*1 uplo
  in integer m
  in integer n
  in complex*16 alpha
  in complex*16 beta
  in/out complex*16 a array dimension (lda,n)
  in integer lda
subroutine zlasr
  in character*1 side
  in character*1 pivot
  in character*1 direct
  in integer m
  in integer n
  in double c array array, dimension
  in double s array array, dimension
  in/out complex*16 a array dimension (lda,n)
  in integer lda
subroutine zlassq
  in integer n
  in complex*16 x array dimension (n)
  in integer incx
  in/out double scale
  in/out double sumsq
subroutine zlaswp
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in integer k1
  in integer k2
  in integer ipiv array dimension (k2*abs(incx))
  in integer incx
subroutine zlasyf
  in character*1 uplo
  in integer n
  in integer nb
  out integer kb
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 w array dimension (ldw,nb)
  in integer ldw
  out integer info
subroutine zlatbs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in integer kd
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine zlatdf
  in integer ijob
  in integer n
  in double z array (ldz, n)
  in integer ldz
  in/out double rhs array dimension (n).
  in/out double rdsum
  in/out double rdscal
  in integer ipiv array dimension (n).
  in integer jpiv array dimension (n).
subroutine zlatps
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine zlatrd
  in character*1 uplo
  in integer n
  in integer nb
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out double e array dimension (n-1)
  out complex*16 tau array dimension (n-1)
  out complex*16 w array dimension (ldw,nb)
  in integer ldw
subroutine zlatrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in character*1 normin
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 x array dimension (n)
  out double scale
  in/out double cnorm array dimension (n)
  out integer info
subroutine zlatrz
  in integer m
  in integer n
  in integer l
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (m)
  in/out complex*16 work array dimension (m)
subroutine zlatzm
  in character*1 side
  in integer m
  in integer n
  in complex*16 v array array, dimension
  in integer incv
  in complex*16 tau
  in/out complex*16 c1 array array, dimension
  in/out complex*16 c2 array array, dimension
  in integer ldc
  in/out complex*16 work array array, dimension
subroutine zlauu2
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zlauum
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zpbcon
  in character*1 uplo
  in integer n
  in integer kd
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpbequ
  in character*1 uplo
  in integer n
  in integer kd
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine zpbrfs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in double ab array dimension (ldab,n)
  in integer ldab
  in complex*16 afb array dimension (ldafb,n)
  in integer ldafb
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpbstf
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine zpbsv
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zpbsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 afb array dimension (ldafb,n)
  in integer ldafb
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpbtf2
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine zpbtrf
  in character*1 uplo
  in integer n
  in integer kd
  in/out complex*16 ab array dimension (ldab,n)
  in integer ldab
  out integer info
subroutine zpbtrs
  in character*1 uplo
  in integer n
  in integer kd
  in integer nrhs
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zpocon
  in character*1 uplo
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpoequ
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine zporfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zposv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zposvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpotf2
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zpotrf
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zpotri
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine zpotrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zppcon
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zppequ
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  out double s array dimension (n)
  out double scond
  out double amax
  out integer info
subroutine zpprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 afp array dimension (n*(n+1)/2)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zppsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zppsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 afp array dimension (n*(n+1)/2)
  in/out character*1 equed
  in/out double s array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpptrf
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer info
subroutine zpptri
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer info
subroutine zpptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zptcon
  in integer n
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
  in double anorm
  out double rcond
  in/out double rwork array dimension (n)
  out integer info
subroutine zpteqr
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 z array (ldz, n)
  in integer ldz
  in/out double work array dimension (4*n)
  out integer info
subroutine zptrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
  in double df array dimension (n)
  in complex*16 ef array dimension (n-1)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zptsv
  in integer n
  in integer nrhs
  in/out double d array dimension (n)
  in/out complex*16 e array dimension (n-1)
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  out integer info
subroutine zptsvx
  in character*1 fact
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
  in/out double df array dimension (n)
  in/out complex*16 ef array dimension (n-1)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zpttrf
  in integer n
  in/out double d array dimension (n)
  in/out complex*16 e array dimension (n-1)
  out integer info
subroutine zpttrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zptts2
  in integer iuplo
  in integer n
  in integer nrhs
  in double d array dimension (n)
  in complex*16 e array dimension (n-1)
  in/out double b array dimension (ldb,nrhs)
  in integer ldb
subroutine zrot
  in integer n
  in/out complex*16 cx array dimension (n)
  in integer incx
  in/out complex*16 cy array dimension (n)
  in integer incy
  in double c
  in complex*16 s
subroutine zspcon
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zspmv
  in character*1 uplo
  in integer n
  in complex*16 alpha
  in complex*16 ap array at least
  in complex*16 x array at least
  in integer incx
  in complex*16 beta
  in/out complex*16 y array at least
  in integer incy
subroutine zspr
  in character*1 uplo
  in integer n
  in complex*16 alpha
  in complex*16 x array at least
  in integer incx
  in/out complex*16 ap array at least
subroutine zsprfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 afp array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zspsv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zspsvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 afp array dimension (n*(n+1)/2)
  in/out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zsptrf
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer ipiv array dimension (n)
  out integer info
subroutine zsptri
  in character*1 uplo
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zsptrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine zstedc
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array precision array,
  in integer lrwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine zstegr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in double vl
  in double vu
  in integer il
  in integer iu
  in double abstol
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  out integer isuppz
  in/out double work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine zstein
  in integer n
  in double d array dimension (n)
  in double e array dimension (n-1)
  in integer m
  in double w array dimension (n)
  in integer iblock array dimension (n)
  in integer isplit array dimension (n)
  out complex*16 z array (ldz, m)
  in integer ldz
  in/out double work array dimension (5*n)
  in/out integer iwork array dimension (n)
  out integer ifail array dimension (m)
  out integer info
subroutine zstemr
  in character*1 jobz
  in character*1 range
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n)
  in double vl
  in double vu
  in integer il
  in integer iu
  out integer m
  out double w array dimension (n)
  out complex*16 z array (ldz, max(1,m))
  in integer ldz
  in integer nzc
  out integer isuppz
  in/out logical tryrac
  in/out double work array dimension (lwork)
  in integer lwork
  in/out integer iwork array dimension (liwork)
  in integer liwork
  out integer info
subroutine zsteqr
  in character*1 compz
  in integer n
  in/out double d array dimension (n)
  in/out double e array dimension (n-1)
  in/out complex*16 z array (ldz, n)
  in integer ldz
  in/out double work array dimension (max(1,2*n-2))
  out integer info
subroutine zsycon
  in character*1 uplo
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in double anorm
  out double rcond
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zsymv
  in character*1 uplo
  in integer n
  in complex*16 alpha
  in complex*16 a array (lda, n)
  in integer lda
  in complex*16 x array at least
  in integer incx
  in complex*16 beta
  in/out complex*16 y array at least
  in integer incy
subroutine zsyr
  in character*1 uplo
  in integer n
  in complex*16 alpha
  in complex*16 x array at least
  in integer incx
  in/out complex*16 a array (lda, n)
  in integer lda
subroutine zsyrfs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine zsysv
  in character*1 uplo
  in integer n
  in integer nrhs
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zsysvx
  in character*1 fact
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 af array dimension (ldaf,n)
  in integer ldaf
  in/out integer ipiv array dimension (n)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double rcond
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out double rwork array dimension (n)
  out integer info
subroutine zsytf2
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  out integer info
subroutine zsytrf
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer ipiv array dimension (n)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zsytri
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 work array dimension (2*n)
  out integer info
subroutine zsytrs
  in character*1 uplo
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in integer ipiv array dimension (n)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ztbcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in integer kd
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztbrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztbtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer kd
  in integer nrhs
  in complex*16 ab array dimension (ldab,n)
  in integer ldab
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ztgevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex*16 s array dimension (lds,n)
  in integer lds
  in complex*16 p array dimension (ldp,n)
  in integer ldp
  in/out complex*16 vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex*16 vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (2*n)
  out integer info
subroutine ztgex2
  in logical wantq
  in logical wantz
  in integer n
  in/out complex*16 a array dimensions (lda,n)
  in integer lda
  in/out complex*16 b array dimensions (ldb,n)
  in integer ldb
  in/out complex*16 q array dimension (ldz,n)
  in integer ldq
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  in integer j1
  out integer info
subroutine ztgexc
  in logical wantq
  in logical wantz
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  in/out complex*16 q array dimension (ldz,n)
  in integer ldq
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  in integer ifst
  in/out integer ilst
  out integer info
subroutine ztgsen
  in integer ijob
  in logical wantq
  in logical wantz
  in logical select array dimension (n)
  in integer n
  in/out complex*16 a array array, dimension(lda,n)
  in integer lda
  in/out complex*16 b array array, dimension(ldb,n)
  in integer ldb
  out complex*16 alpha array dimension (n)
  out complex*16 beta array dimension (n)
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out complex*16 z array dimension (ldz,n)
  in integer ldz
  out integer m
  out double pl
  out double pr
  out double dif array dimension (2).
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (max(1,liwork))
  in integer liwork
  out integer info
subroutine ztgsja
  in character*1 jobu
  in character*1 jobv
  in character*1 jobq
  in integer m
  in integer p
  in integer n
  in integer k
  in integer l
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,n)
  in integer ldb
  in double tola
  in double tolb
  out double alpha array dimension (n)
  out double beta array dimension (n)
  in/out complex*16 u array dimension (ldu,m)
  in integer ldu
  in/out complex*16 v array dimension (ldv,p)
  in integer ldv
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out complex*16 work array dimension (2*n)
  out integer ncycle
  out integer info
subroutine ztgsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 b array dimension (ldb,n)
  in integer ldb
  in complex*16 vl array dimension (ldvl,m)
  in integer ldvl
  in complex*16 vr array dimension (ldvr,m)
  in integer ldvr
  out double s array dimension (mm)
  out double dif array dimension (mm)
  in integer mm
  out integer m
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (n+2)
  out integer info
subroutine ztgsy2
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in complex*16 a array (lda, m)
  in integer lda
  in complex*16 b array (ldb, n)
  in integer ldb
  in/out complex*16 c array (ldc, n)
  in integer ldc
  in complex*16 d array (ldd, m)
  in integer ldd
  in complex*16 e array (lde, n)
  in integer lde
  in/out complex*16 f array (ldf, n)
  in integer ldf
  out double scale
  in/out double rdsum
  in/out double rdscal
  out integer info
subroutine ztgsyl
  in character*1 trans
  in integer ijob
  in integer m
  in integer n
  in complex*16 a array (lda, m)
  in integer lda
  in complex*16 b array (ldb, n)
  in integer ldb
  in/out complex*16 c array (ldc, n)
  in integer ldc
  in complex*16 d array (ldd, m)
  in integer ldd
  in complex*16 e array (lde, n)
  in integer lde
  in/out complex*16 f array (ldf, n)
  in integer ldf
  out double dif
  out double scale
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  in/out integer iwork array dimension (m+n+2)
  out integer info
subroutine ztpcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztprfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztptri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex*16 ap array dimension (n*(n+1)/2)
  out integer info
subroutine ztptrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex*16 ap array dimension (n*(n+1)/2)
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ztrcon
  in character*1 norm
  in character*1 uplo
  in character*1 diag
  in integer n
  in complex*16 a array dimension (lda,n)
  in integer lda
  out double rcond
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztrevc
  in character*1 side
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in/out complex*16 t array dimension (ldt,n)
  in integer ldt
  in/out complex*16 vl array dimension (ldvl,mm)
  in integer ldvl
  in/out complex*16 vr array dimension (ldvr,mm)
  in integer ldvr
  in integer mm
  out integer m
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztrexc
  in character*1 compq
  in integer n
  in/out complex*16 t array dimension (ldt,n)
  in integer ldt
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  in integer ifst
  in integer ilst
  out integer info
subroutine ztrrfs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  in complex*16 x array dimension (ldx,nrhs)
  in integer ldx
  out double ferr array dimension (nrhs)
  out double berr array dimension (nrhs)
  in/out complex*16 work array dimension (2*n)
  in/out double rwork array dimension (n)
  out integer info
subroutine ztrsen
  in character*1 job
  in character*1 compq
  in logical select array dimension (n)
  in integer n
  in/out complex*16 t array dimension (ldt,n)
  in integer ldt
  in/out complex*16 q array dimension (ldq,n)
  in integer ldq
  out complex*16 w array dimension (n)
  out integer m
  out double s
  out double sep
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine ztrsna
  in character*1 job
  in character*1 howmny
  in logical select array dimension (n)
  in integer n
  in complex*16 t array dimension (ldt,n)
  in integer ldt
  in complex*16 vl array dimension (ldvl,m)
  in integer ldvl
  in complex*16 vr array dimension (ldvr,m)
  in integer ldvr
  out double s array dimension (mm)
  out double sep array dimension (mm)
  in integer mm
  out integer m
  in/out complex*16 work array dimension (ldwork,n+6)
  in integer ldwork
  in/out double rwork array dimension (n)
  out integer info
subroutine ztrsyl
  in character*1 trana
  in character*1 tranb
  in integer isgn
  in integer m
  in integer n
  in complex*16 a array dimension (lda,m)
  in integer lda
  in complex*16 b array dimension (ldb,n)
  in integer ldb
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  out double scale
  out integer info
subroutine ztrti2
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine ztrtri
  in character*1 uplo
  in character*1 diag
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out integer info
subroutine ztrtrs
  in character*1 uplo
  in character*1 trans
  in character*1 diag
  in integer n
  in integer nrhs
  in complex*16 a array dimension (lda,n)
  in integer lda
  in/out complex*16 b array dimension (ldb,nrhs)
  in integer ldb
  out integer info
subroutine ztzrqf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (m)
  out integer info
subroutine ztzrzf
  in integer m
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  out complex*16 tau array dimension (m)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zung2l
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zung2r
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (n)
  out integer info
subroutine zungbr
  in character*1 vect
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array array, dimension
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunghr
  in integer n
  in integer ilo
  in integer ihi
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (n-1)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zungl2
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (m)
  out integer info
subroutine zunglq
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zungql
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zungqr
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zungr2
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (m)
  out integer info
subroutine zungrq
  in integer m
  in integer n
  in integer k
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zungtr
  in character*1 uplo
  in integer n
  in/out complex*16 a array dimension (lda,n)
  in integer lda
  in complex*16 tau array dimension (n-1)
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunm2l
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array dimension (lda,k)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info
subroutine zunm2r
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array dimension (lda,k)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info
subroutine zunmbr
  in character*1 vect
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (min(nq,k))
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmhr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer ilo
  in integer ihi
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array array, dimension
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunml2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info
subroutine zunmlq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmql
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array dimension (lda,k)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmqr
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array dimension (lda,k)
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmr2
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info
subroutine zunmr3
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info
subroutine zunmrq
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmrz
  in character*1 side
  in character*1 trans
  in integer m
  in integer n
  in integer k
  in integer l
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array dimension (k)
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zunmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in complex*16 a array array, dimension
  in integer lda
  in complex*16 tau array array, dimension
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array dimension (max(1,lwork))
  in integer lwork
  out integer info
subroutine zupgtr
  in character*1 uplo
  in integer n
  in complex*16 ap array dimension (n*(n+1)/2)
  in complex*16 tau array dimension (n-1)
  out complex*16 q array dimension (ldq,n)
  in integer ldq
  in/out complex*16 work array dimension (n-1)
  out integer info
subroutine zupmtr
  in character*1 side
  in character*1 uplo
  in character*1 trans
  in integer m
  in integer n
  in complex*16 ap array array, dimension
  in complex*16 tau array = 'l'
  in/out complex*16 c array dimension (ldc,n)
  in integer ldc
  in/out complex*16 work array array, dimension
  out integer info