dftd3_blas Module

Interface to BLAS library, in case DFT-D3 is not linked against BLAS this module provides redistributed reference BLAS implementations instead.


Uses


Interfaces

public interface blas_gemv

Performs one of the matrix-vector operations

y := alphaAx + betay, or y := alphaATx + betay,

where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.

  • private pure subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)

    Reference BLAS level2 routine (version 3.7.0) – Reference BLAS is a software package provided by Univ. of Tennessee, – Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. December 2016

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: trans
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=sp), intent(in) :: alpha
    real(kind=sp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=sp), intent(in) :: x(*)
    integer, intent(in) :: incx
    real(kind=sp), intent(in) :: beta
    real(kind=sp), intent(inout) :: y(*)
    integer, intent(in) :: incy
  • private pure subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)

    Reference BLAS level2 routine (version 3.7.0) – Reference BLAS is a software package provided by Univ. of Tennessee, – Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. December 2016

    Arguments

    Type IntentOptional Attributes Name
    character(len=1), intent(in) :: trans
    integer, intent(in) :: m
    integer, intent(in) :: n
    real(kind=dp), intent(in) :: alpha
    real(kind=dp), intent(in) :: a(lda,*)
    integer, intent(in) :: lda
    real(kind=dp), intent(in) :: x(*)
    integer, intent(in) :: incx
    real(kind=dp), intent(in) :: beta
    real(kind=dp), intent(inout) :: y(*)
    integer, intent(in) :: incy

public interface d3_gemv

Performs one of the matrix-vector operations

y := alphaAx + betay, or y := alphaATx + betay,

where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.

  • private pure subroutine d3_sgemv(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in) :: amat(:,:)
    real(kind=sp), intent(in) :: xvec(:)
    real(kind=sp), intent(inout) :: yvec(:)
    real(kind=sp), intent(in), optional :: alpha
    real(kind=sp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans
  • private pure subroutine d3_dgemv(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: amat(:,:)
    real(kind=dp), intent(in) :: xvec(:)
    real(kind=dp), intent(inout) :: yvec(:)
    real(kind=dp), intent(in), optional :: alpha
    real(kind=dp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans
  • private subroutine d3_sgemv312(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in), contiguous, target :: amat(:,:,:)
    real(kind=sp), intent(in) :: xvec(:)
    real(kind=sp), intent(inout), contiguous, target :: yvec(:,:)
    real(kind=sp), intent(in), optional :: alpha
    real(kind=sp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans
  • private subroutine d3_sgemv321(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in), contiguous, target :: amat(:,:,:)
    real(kind=sp), intent(in), contiguous, target :: xvec(:,:)
    real(kind=sp), intent(inout) :: yvec(:)
    real(kind=sp), intent(in), optional :: alpha
    real(kind=sp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans
  • private subroutine d3_dgemv312(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in), contiguous, target :: amat(:,:,:)
    real(kind=dp), intent(in) :: xvec(:)
    real(kind=dp), intent(inout), contiguous, target :: yvec(:,:)
    real(kind=dp), intent(in), optional :: alpha
    real(kind=dp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans
  • private subroutine d3_dgemv321(amat, xvec, yvec, alpha, beta, trans)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in), contiguous, target :: amat(:,:,:)
    real(kind=dp), intent(in), contiguous, target :: xvec(:,:)
    real(kind=dp), intent(inout) :: yvec(:)
    real(kind=dp), intent(in), optional :: alpha
    real(kind=dp), intent(in), optional :: beta
    character(len=1), intent(in), optional :: trans