linalg 1.8.2
A linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines.
Loading...
Searching...
No Matches
blas.f90
1
2module blas
3 implicit none
4
5 interface
6 subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, &
7 c, ldc)
8 use iso_fortran_env, only : int32, real64
9 character, intent(in) :: transa, transb
10 integer(int32), intent(in) :: m, n, k, lda, ldb, ldc
11 real(real64), intent(in) :: alpha, beta, a(lda,*), b(ldb,*)
12 real(real64), intent(inout) :: c(ldc,*)
13 end subroutine
14
15 subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
16 use iso_fortran_env, only : int32, real64
17 character, intent(in) :: trans
18 integer(int32), intent(in) :: m, n, lda, incx, incy
19 real(real64), intent(in) :: alpha, beta, a(lda,*), x(*)
20 real(real64), intent(inout) :: y(*)
21 end subroutine
22
23 subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, &
24 c, ldc)
25 use iso_fortran_env, only : int32, real64
26 character, intent(in) :: transa, transb
27 integer(int32), intent(in) :: m, n, k, lda, ldb, ldc
28 complex(real64), intent(in) :: alpha, beta, a(lda,*), b(ldb,*)
29 complex(real64), intent(inout) :: c(ldc,*)
30 end subroutine
31
32 subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
33 use iso_fortran_env, only : int32, real64
34 character, intent(in) :: trans
35 integer(int32), intent(in) :: m, n, lda, incx, incy
36 complex(real64), intent(in) :: alpha, beta, a(lda,*), x(*)
37 complex(real64), intent(inout) :: y(*)
38 end subroutine
39
40 subroutine dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
41 use iso_fortran_env, only : int32, real64
42 character, intent(in) :: side, uplo, transa, diag
43 integer(int32), intent(in) :: m, n, lda, ldb
44 real(real64), intent(in) :: alpha, a(lda,*)
45 real(real64), intent(inout) :: b(ldb,*)
46 end subroutine
47
48 subroutine ztrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
49 use iso_fortran_env, only : int32, real64
50 character, intent(in) :: side, uplo, transa, diag
51 integer(int32), intent(in) :: m, n, lda, ldb
52 complex(real64), intent(in) :: alpha, a(lda,*)
53 complex(real64), intent(inout) :: b(ldb,*)
54 end subroutine
55
56 subroutine dtrsv(uplo, trans, diag, n, a, lda, x, incx)
57 use iso_fortran_env, only : int32, real64
58 character, intent(in) :: uplo, trans, diag
59 integer(int32), intent(in) :: n, lda, incx
60 real(real64), intent(in) :: a(lda,*)
61 real(real64), intent(inout) :: x(*)
62 end subroutine
63
64 subroutine ztrsv(uplo, trans, diag, n, a, lda, x, incx)
65 use iso_fortran_env, only : int32, real64
66 character, intent(in) :: uplo, trans, diag
67 integer(int32), intent(in) :: n, lda, incx
68 complex(real64), intent(in) :: a(lda,*)
69 complex(real64), intent(inout) :: x(*)
70 end subroutine
71
72 subroutine dscal(n, da, dx, incx)
73 use iso_fortran_env, only : int32, real64
74 integer(int32), intent(in) :: n, incx
75 real(real64), intent(in) :: da
76 real(real64), intent(inout) :: dx(*)
77 end subroutine
78
79 subroutine zscal(n, za, zx, incx)
80 use iso_fortran_env, only : int32, real64
81 integer(int32), intent(in) :: n, incx
82 complex(real64), intent(in) :: za
83 complex(real64), intent(inout) :: zx(*)
84 end subroutine
85
86 subroutine zdscal(n, da, zx, incx)
87 use iso_fortran_env, only : int32, real64
88 integer(int32), intent(in) :: n, incx
89 real(real64), intent(in) :: da
90 complex(real64), intent(inout) :: zx(*)
91 end subroutine
92
93 subroutine dgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, &
94 incy)
95 use iso_fortran_env, only : int32, real64
96 character, intent(in) :: trans
97 integer(int32), intent(in) :: m, n, kl, ku, lda, incx, incy
98 real(real64), intent(in) :: alpha, beta, a(lda,*), x(*)
99 real(real64), intent(inout) :: y(*)
100 end subroutine
101
102 subroutine zgbmv(trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, &
103 incy)
104 use iso_fortran_env, only : int32, real64
105 character, intent(in) :: trans
106 integer(int32), intent(in) :: m, n, kl, ku, lda, incx, incy
107 complex(real64), intent(in) :: alpha, beta, a(lda,*), x(*)
108 complex(real64), intent(inout) :: y(*)
109 end subroutine
110
111 function ddot(n, dx, incx, dy, incy) result(rst)
112 use iso_fortran_env, only : int32, real64
113 integer(int32), intent(in) :: n, incx, incy
114 real(real64), intent(in) :: dx(*), dy(*)
115 real(real64) :: rst
116 end function
117 end interface
118end module
A module providing explicit interfaces to BLAS routines.
Definition blas.f90:2