OpenCMISS-Iron Internal API Documentation
lapack.f90
Go to the documentation of this file.
1 
43 
45 MODULE lapack
46 
47  USE kinds
48 
49  IMPLICIT NONE
50 
51  INTERFACE
52 
53  SUBROUTINE dgesv(N, NRHS, A, LDA, IPIV, B, LDB, INFO )
54  USE kinds
55  INTEGER(INTG), INTENT(IN) :: N
56  INTEGER(INTG), INTENT(IN) :: NRHS
57  INTEGER(INTG), INTENT(IN) :: LDA
58  REAL(DP), INTENT(INOUT) :: A(lda,*)
59  INTEGER(INTG), INTENT(OUT) :: IPIV(*)
60  INTEGER(INTG), INTENT(IN) :: LDB
61  REAL(DP), INTENT(INOUT) :: B(ldb,*)
62  INTEGER(INTG), INTENT(OUT) :: INFO
63  END SUBROUTINE dgesv
64 
65  ! DGESVD - compute the singular value decomposition (SVD) of a
66  ! real M-by-N matrix A, optionally computing the left and/or
67  ! right singular vectors
68  SUBROUTINE dgesvd( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, INFO )
69  USE kinds
70  CHARACTER(1) :: JOBU ! Specifies options for computing all or part of the matrix U (options: A,S,O,N)
71  CHARACTER(1) :: JOBVT ! Specifies options for computing all or part of the matrix V**T (options: A,S,O,N)
72  INTEGER(INTG), INTENT(IN) :: M ! Number of rows in A
73  INTEGER(INTG), INTENT(IN) :: N ! Number of columns in A
74  REAL(DP), INTENT(INOUT) :: A(lda,*) ! The matrix to perform the SVD on
75  INTEGER(INTG), INTENT(IN) :: LDA ! Leading dimension of A
76  REAL(DP), INTENT(OUT) :: S(min(m,n)) ! Singular values of A, sorted S(i) >= S(i+1)
77  REAL(DP), INTENT(OUT) :: U(ldu,*) ! If JOBU = 'A', U contains the M-by-M orthogonal matrix U
78  INTEGER(INTG), INTENT(IN) :: LDU ! Leading dimension of U
79  REAL(DP), INTENT(OUT) :: VT(ldvt,n) ! If JOBVT = 'A', VT contains the N-by-N orthogonal matrix V**T
80  INTEGER(INTG), INTENT(IN) :: LDVT ! The leading dimension of the array VT
81  REAL(DP), INTENT(INOUT) :: WORK(*) ! On exit, if INFO = 0, WORK(1) returns the optimal LWORK
82  INTEGER(INTG), INTENT(IN) :: LWORK ! The dimension of the array WORK
83  INTEGER(INTG), INTENT(OUT) :: INFO ! 0 if successful exit; < 0 if INFO = -i (the i-th argument had an illegal value); > 0 if DBDSQR did not converge
84  END SUBROUTINE dgesvd
85 
86  SUBROUTINE dsyev( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO )
87  USE kinds
88  CHARACTER(LEN=1), INTENT(IN) :: JOBZ
89  CHARACTER(LEN=1), INTENT(IN) :: UPLO
90  INTEGER(INTG), INTENT(IN) :: N
91  REAL(DP), INTENT(INOUT) :: A(lda,n)
92  INTEGER(INTG), INTENT(IN) :: LDA
93  REAL(DP), INTENT(OUT) :: W(n)
94  REAL(DP), INTENT(OUT) :: WORK(lwork)
95  INTEGER(INTG), INTENT(IN) :: LWORK
96  INTEGER(INTG), INTENT(OUT) :: INFO
97  END SUBROUTINE dsyev
98 
99  END INTERFACE
100 
101 END MODULE lapack
This module contains the interface descriptions to the LAPACK routines.
Definition: lapack.f90:45
This module contains all kind definitions.
Definition: kinds.f90:45