subroutine oqp_dgemm_i64(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
double precision :: alpha
double precision :: beta
integer :: k
integer :: lda
integer :: ldb
integer :: ldc
integer :: m
integer :: n
character :: transa
character :: transb
double precision :: a(lda,*)
double precision :: b(ldb,*)
double precision :: c(ldc,*)
integer(blas_int) :: m_, n_, k_, lda_, ldb_, ldc_
logical :: ok
if (ARG_CHECK) then
ok = .true.
ok = ok .and. abs(m ) <= HUGE_BLAS_INT-1
ok = ok .and. abs(n ) <= HUGE_BLAS_INT-1
ok = ok .and. abs(k ) <= HUGE_BLAS_INT-1
ok = ok .and. abs(lda ) <= HUGE_BLAS_INT-1
ok = ok .and. abs(ldb ) <= HUGE_BLAS_INT-1
ok = ok .and. abs(ldc ) <= HUGE_BLAS_INT-1
if (.not.ok) call show_message(ERRMSG, WITH_ABORT)
end if
m_ = int(m , blas_int)
n_ = int(n , blas_int)
k_ = int(k , blas_int)
lda_ = int(lda , blas_int)
ldb_ = int(ldb , blas_int)
ldc_ = int(ldc , blas_int)
call dgemm(transa, transb, m_, n_, k_, alpha, a, lda_, b, ldb_, beta, c, ldc_)
end subroutine oqp_dgemm_i64