aboutsummaryrefslogtreecommitdiff
path: root/src/lapack.F90
diff options
context:
space:
mode:
Diffstat (limited to 'src/lapack.F90')
-rw-r--r--src/lapack.F9083
1 files changed, 82 insertions, 1 deletions
diff --git a/src/lapack.F90 b/src/lapack.F90
index 5bcd70b..cbe41b6 100644
--- a/src/lapack.F90
+++ b/src/lapack.F90
@@ -6,6 +6,10 @@ module lapack
implicit none
public
+ ! ev: eigenvalues
+ ! ge (general), gg (generalised eigenvalues), sb (symmetric banded),
+ ! sp (symmetric packed), st (symmetric tridiagonal), sy (symmetric)
+
interface geev
subroutine sgeev (jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, &
& ldvr, work, lwork, info)
@@ -22,7 +26,28 @@ module lapack
& wi(n), work(lwork), wr(n)
end subroutine dgeev
end interface
-
+
+ interface syev
+ subroutine ssyev (jobz, uplo, n, a, lda, w, work, lwork, info)
+ character jobz, uplo
+ integer info, lda, lwork, n
+ real a(lda,n), w(n), work(lwork)
+ end subroutine ssyev
+ subroutine dsyev (jobz, uplo, n, a, lda, w, work, lwork, info)
+ character jobz, uplo
+ integer info, lda, lwork, n
+ double precision a(lda,n), w(n), work(lwork)
+ end subroutine dsyev
+ end interface
+
+
+
+ ! sv: solve
+ ! gb (general banded), ge (general), gt (general tridiagonal),
+ ! pb (symmetric positive banded), po (symmetric positive),
+ ! pp (symmetric positive packed), pt (symmetric positive tridiagonal),
+ ! sp (symmetric packed), sy (symmetric)
+
interface gesv
subroutine sgesv (n, nrhs, a, lda, ipiv, b, ldb, info)
implicit none
@@ -47,5 +72,61 @@ module lapack
integer info
end subroutine dgesv
end interface
+
+ interface posv
+ subroutine sposv (uplo, n, nrhs, a, lda, b, ldb, info)
+ implicit none
+ character uplo
+ integer n
+ integer nrhs
+ integer lda
+ real a(lda,n)
+ integer ldb
+ real b(ldb,nrhs)
+ integer info
+ end subroutine sposv
+ subroutine dposv (uplo, n, nrhs, a, lda, b, ldb, info)
+ implicit none
+ character uplo
+ integer n
+ integer nrhs
+ integer lda
+ double precision a(lda,n)
+ integer ldb
+ double precision b(ldb,nrhs)
+ integer info
+ end subroutine dposv
+ end interface
+
+ interface sysv
+ subroutine ssysv (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
+ implicit none
+ character uplo
+ integer n
+ integer nrhs
+ integer lda
+ real a(lda,n)
+ integer ipiv(n)
+ integer ldb
+ real b(ldb,nrhs)
+ integer lwork
+ real work(lwork)
+ integer info
+ end subroutine ssysv
+ subroutine dsysv (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info)
+ implicit none
+ character uplo
+ integer n
+ integer nrhs
+ integer lda
+ double precision a(lda,n)
+ integer ipiv(n)
+ integer ldb
+ double precision b(ldb,nrhs)
+ integer lwork
+ double precision work(lwork)
+ integer info
+ end subroutine dsysv
+ end interface
end module lapack