aboutsummaryrefslogtreecommitdiff
path: root/src/blas.F90
blob: 86364b712f89c0f58a5fe32a6019ab72dbe9e216 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
module blas
  implicit none
  
  integer, parameter :: izero = 0
  integer, parameter :: blas_integer_kind = kind(izero)
  
  interface gemm
     SUBROUTINE SGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
       IMPLICIT NONE
       REAL ALPHA,BETA
       INTEGER   K,LDA,LDB,LDC,M,N
       CHARACTER TRANSA,TRANSB
       REAL A(LDA,*),B(LDB,*),C(LDC,*)
     END SUBROUTINE SGEMM
     
     SUBROUTINE DGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
       IMPLICIT NONE
       DOUBLE PRECISION ALPHA,BETA
       INTEGER   K,LDA,LDB,LDC,M,N
       CHARACTER TRANSA,TRANSB
       DOUBLE PRECISION A(LDA,*),B(LDB,*),C(LDC,*)
     END SUBROUTINE DGEMM
     
     SUBROUTINE CGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
       IMPLICIT NONE
       COMPLEX ALPHA,BETA
       INTEGER   K,LDA,LDB,LDC,M,N
       CHARACTER TRANSA,TRANSB
       COMPLEX A(LDA,*),B(LDB,*),C(LDC,*)
     END SUBROUTINE CGEMM
     
     SUBROUTINE ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
       COMPLEX*16 ALPHA,BETA
       INTEGER   K,LDA,LDB,LDC,M,N
       CHARACTER TRANSA,TRANSB
       COMPLEX*16 A(LDA,*),B(LDB,*),C(LDC,*)
     END SUBROUTINE ZGEMM
  end interface gemm
  
end module blas