OpenCMISS-Iron Internal API Documentation
blas.f90
Go to the documentation of this file.
1 
43 
45 MODULE blas
46 
47  USE kinds
48 
49  IMPLICIT NONE
50 
51  INTERFACE
52 
53  !Level 1 BLAS
54 
55  SUBROUTINE sasum(N, X, INCX)
56  USE kinds
57  INTEGER(INTG), INTENT(IN) :: N
58  REAL(SP), INTENT(IN) :: X(*)
59  INTEGER(INTG), INTENT(IN) :: INCX
60  END SUBROUTINE sasum
61 
62  SUBROUTINE dasum(N, X, INCX)
63  USE kinds
64  INTEGER(INTG), INTENT(IN) :: N
65  REAL(DP), INTENT(IN) :: X(*)
66  INTEGER(INTG), INTENT(IN) :: INCX
67  END SUBROUTINE dasum
68 
69  SUBROUTINE saxpy(N, A, X, INCX, Y, INCY)
70  USE kinds
71  INTEGER(INTG), INTENT(IN) :: N
72  REAL(SP), INTENT(IN) :: A
73  REAL(SP), INTENT(IN) :: X(*)
74  INTEGER(INTG), INTENT(IN) :: INCX
75  REAL(SP), INTENT(OUT) :: Y(*)
76  INTEGER(INTG), INTENT(IN) :: INCY
77  END SUBROUTINE saxpy
78 
79  SUBROUTINE daxpy(N, A, X, INCX, Y, INCY)
80  USE kinds
81  INTEGER(INTG), INTENT(IN) :: N
82  REAL(DP), INTENT(IN) :: A
83  REAL(DP), INTENT(IN) :: X(*)
84  INTEGER(INTG), INTENT(IN) :: INCX
85  REAL(DP), INTENT(OUT) :: Y(*)
86  INTEGER(INTG), INTENT(IN) :: INCY
87  END SUBROUTINE daxpy
88 
89  SUBROUTINE scopy(N, DX, INCX, DY, INCY)
90  USE kinds
91  INTEGER(INTG), INTENT(IN) :: N
92  REAL(SP), INTENT(IN) :: DX(*)
93  INTEGER(INTG), INTENT(IN) :: INCX
94  REAL(SP), INTENT(OUT) :: DY(*)
95  INTEGER(INTG), INTENT(IN) :: INCY
96  END SUBROUTINE scopy
97 
98  SUBROUTINE dcopy(N, DX, INCX, DY, INCY)
99  USE kinds
100  INTEGER(INTG), INTENT(IN) :: N
101  REAL(DP), INTENT(IN) :: DX(*)
102  INTEGER(INTG), INTENT(IN) :: INCX
103  REAL(DP), INTENT(OUT) :: DY(*)
104  INTEGER(INTG), INTENT(IN) :: INCY
105  END SUBROUTINE dcopy
106 
107  FUNCTION sdot(N, X, INCX, Y, INCY)
108  USE kinds
109  INTEGER(INTG), INTENT(IN) :: N
110  REAL(SP), INTENT(IN) :: X(*)
111  INTEGER(INTG), INTENT(IN) :: INCX
112  REAL(SP), INTENT(IN) :: Y(*)
113  INTEGER(INTG), INTENT(IN) :: INCY
114  REAL(SP) :: SDOT
115  END FUNCTION sdot
116 
117  FUNCTION ddot(N, X, INCX, Y, INCY)
118  USE kinds
119  INTEGER(INTG), INTENT(IN) :: N
120  REAL(DP), INTENT(IN) :: X(*)
121  INTEGER(INTG), INTENT(IN) :: INCX
122  REAL(DP), INTENT(IN) :: Y(*)
123  INTEGER(INTG), INTENT(IN) :: INCY
124  REAL(DP) :: DDOT
125  END FUNCTION ddot
126 
127  FUNCTION snrm2(N, X, INCX)
128  USE kinds
129  INTEGER(INTG), INTENT(IN) :: N
130  REAL(SP), INTENT(IN) :: X(*)
131  INTEGER(INTG), INTENT(IN) :: INCX
132  REAL(SP) :: SNRM2
133  END FUNCTION snrm2
134 
135  FUNCTION dnrm2(N, X, INCX)
136  USE kinds
137  INTEGER(INTG), INTENT(IN) :: N
138  REAL(DP), INTENT(IN) :: X(*)
139  INTEGER(INTG), INTENT(IN) :: INCX
140  REAL(DP) :: DNRM2
141  END FUNCTION dnrm2
142 
143  SUBROUTINE srot(N, DX, INCX, DY, INCY, C, S)
144  USE kinds
145  INTEGER(INTG), INTENT(IN) :: N
146  REAL(SP), INTENT(OUT) :: DX(*)
147  INTEGER(INTG), INTENT(IN) :: INCX
148  REAL(SP), INTENT(OUT) :: DY(*)
149  INTEGER(INTG), INTENT(IN) :: INCY
150  REAL(SP), INTENT(IN) :: C
151  REAL(SP), INTENT(IN) :: S
152  END SUBROUTINE srot
153 
154  SUBROUTINE drot(N, DX, INCX, DY, INCY, C, S)
155  USE kinds
156  INTEGER(INTG), INTENT(IN) :: N
157  REAL(DP), INTENT(OUT) :: DX(*)
158  INTEGER(INTG), INTENT(IN) :: INCX
159  REAL(DP), INTENT(OUT) :: DY(*)
160  INTEGER(INTG), INTENT(IN) :: INCY
161  REAL(DP), INTENT(IN) :: C
162  REAL(DP), INTENT(IN) :: S
163  END SUBROUTINE drot
164 
165  SUBROUTINE srotg(DA, DB, C, S)
166  USE kinds
167  REAL(SP), INTENT(IN) :: DA
168  REAL(SP), INTENT(IN) :: DB
169  REAL(SP), INTENT(IN) :: C
170  REAL(SP), INTENT(IN) :: S
171  END SUBROUTINE srotg
172 
173  SUBROUTINE drotg(DA, DB, C, S)
174  USE kinds
175  REAL(DP), INTENT(IN) :: DA
176  REAL(DP), INTENT(IN) :: DB
177  REAL(DP), INTENT(IN) :: C
178  REAL(DP), INTENT(IN) :: S
179  END SUBROUTINE drotg
180 
181  SUBROUTINE sscal(N, A, X, INCX)
182  USE kinds
183  INTEGER(INTG), INTENT(IN) :: N
184  REAL(SP), INTENT(IN) :: A
185  REAL(SP), INTENT(INOUT) :: X(*)
186  INTEGER(INTG), INTENT(IN) :: INCX
187  END SUBROUTINE sscal
188 
189  SUBROUTINE dscal(N, A, X, INCX)
190  USE kinds
191  INTEGER(INTG), INTENT(IN) :: N
192  REAL(DP), INTENT(IN) :: A
193  REAL(DP), INTENT(INOUT) :: X(*)
194  INTEGER(INTG), INTENT(IN) :: INCX
195  END SUBROUTINE dscal
196 
197  !Level 2 BLAS
198 
199  SUBROUTINE sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y ,&
200  & incy)
201  USE kinds
202  CHARACTER(LEN=1), INTENT(IN) :: TRANS
203  INTEGER(INTG), INTENT(IN) :: M, N
204  REAL(SP), INTENT(IN) :: ALPHA
205  INTEGER(INTG), INTENT(IN) :: LDA
206  REAL(SP), INTENT(IN) :: A(lda,*)
207  REAL(SP), INTENT(IN) :: X(*)
208  INTEGER(INTG), INTENT(IN) :: INCX
209  REAL(SP), INTENT(IN) :: BETA
210  REAL(SP), INTENT(INOUT) :: Y(*)
211  INTEGER(INTG), INTENT(IN) :: INCY
212  END SUBROUTINE sgemv
213 
214  SUBROUTINE dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y ,&
215  & incy)
216  USE kinds
217  CHARACTER(LEN=1), INTENT(IN) :: TRANS
218  INTEGER(INTG), INTENT(IN) :: M, N
219  REAL(DP), INTENT(IN) :: ALPHA
220  INTEGER(INTG), INTENT(IN) :: LDA
221  REAL(DP), INTENT(IN) :: A(lda,*)
222  REAL(DP), INTENT(IN) :: X(*)
223  INTEGER(INTG), INTENT(IN) :: INCX
224  REAL(DP), INTENT(IN) :: BETA
225  REAL(DP), INTENT(INOUT) :: Y(*)
226  INTEGER(INTG), INTENT(IN) :: INCY
227  END SUBROUTINE dgemv
228 
229  SUBROUTINE strsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
230  USE kinds
231  CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG
232  INTEGER(INTG), INTENT(IN) :: N, LDA
233  REAL(SP), INTENT(IN) :: A(lda, *)
234  REAL(SP), INTENT(IN) :: X(*)
235  INTEGER(INTG), INTENT(IN) :: INCX
236  END SUBROUTINE strsv
237 
238  SUBROUTINE dtrsv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
239  USE kinds
240  CHARACTER(LEN=1), INTENT(IN) :: UPLO, TRANS, DIAG
241  INTEGER(INTG), INTENT(IN) :: N, LDA
242  REAL(DP), INTENT(IN) :: A(lda, *)
243  REAL(DP), INTENT(IN) :: X(*)
244  INTEGER(INTG), INTENT(IN) :: INCX
245  END SUBROUTINE dtrsv
246 
247  !Level 3 BLAS
248 
249  END INTERFACE
250 
251 END MODULE blas
This module contains the interface descriptions to the BLAS routines.
Definition: blas.f90:45
This module contains all kind definitions.
Definition: kinds.f90:45