subroutine oqp_zgemm_i64(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
complex(kind=8) :: alpha
complex(kind=8) :: beta
integer :: k
integer :: lda
integer :: ldb
integer :: ldc
integer :: m
integer :: n
character :: transa
character :: transb
complex(kind=8) :: a(lda,*)
complex(kind=8) :: b(ldb,*)
complex(kind=8) :: 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 zgemm(transa, transb, m_, n_, k_, alpha, a, lda_, b, ldb_, beta, c, ldc_)
end subroutine oqp_zgemm_i64