bspline_blas_module Module

BLAS procedures, which can be use used if not linking with a BLAS library, if one is not available, or if a real kind /= real64 is required.

The original code has been slightly modernized.

Notes

  reference blas level1 routines
  reference blas is a software package provided by univ. of tennessee,
  univ. of california berkeley, univ. of colorado denver and nag ltd.

See also

  • [BLAS Sourcecode](https:

Uses

  • module~~bspline_blas_module~~UsesGraph module~bspline_blas_module bspline_blas_module module~bspline_kinds_module bspline_kinds_module module~bspline_blas_module->module~bspline_kinds_module iso_fortran_env iso_fortran_env module~bspline_kinds_module->iso_fortran_env

Used by

  • module~~bspline_blas_module~~UsedByGraph module~bspline_blas_module bspline_blas_module module~bspline_defc_module bspline_defc_module module~bspline_defc_module->module~bspline_blas_module module~bspline_module bspline_module module~bspline_module->module~bspline_defc_module

Functions

public function ddot(n, dx, incx, dy, incy)

ddot forms the dot product of two vectors. uses unrolled loops for increments equal to one.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx
real(kind=wp) :: dy(*)
integer(kind=ip) :: incy

Return Value real(kind=wp)

public function dnrm2(n, x, incx)

returns the euclidean norm of a vector

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: x(*)
integer(kind=ip) :: incx

Return Value real(kind=wp)

public function dasum(n, dx, incx)

dasum takes the sum of the absolute values.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx

Return Value real(kind=wp)

public function idamax(n, dx, incx)

idamax finds the index of the first element having maximum absolute value.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx

Return Value integer


Subroutines

public subroutine daxpy(n, da, dx, incx, dy, incy)

DAXPY constant times a vector plus a vector. uses unrolled loops for increments equal to one.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: da
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx
real(kind=wp) :: dy(*)
integer(kind=ip) :: incy

public subroutine dcopy(n, dx, incx, dy, incy)

DCOPY copies a vector, x, to a vector, y. uses unrolled loops for increments equal to 1.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx
real(kind=wp) :: dy(*)
integer(kind=ip) :: incy

public subroutine dscal(n, da, dx, incx)

DSCAL scales a vector by a constant. uses unrolled loops for increment equal to 1.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: da
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx

public subroutine dswap(n, dx, incx, dy, incy)

DSWAP interchanges two vectors. uses unrolled loops for increments equal to 1.

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx
real(kind=wp) :: dy(*)
integer(kind=ip) :: incy

public subroutine drotm(n, dx, incx, dy, incy, dparam)

apply the modified givens transformation, H, to the 2 by n matrix

Arguments

Type IntentOptional Attributes Name
integer(kind=ip) :: n
real(kind=wp) :: dx(*)
integer(kind=ip) :: incx
real(kind=wp) :: dy(*)
integer(kind=ip) :: incy
real(kind=wp) :: dparam(5)

public subroutine drotmg(dd1, dd2, dx1, dy1, dparam)

construct the modified givens transformation matrix H

Arguments

Type IntentOptional Attributes Name
real(kind=wp) :: dd1
real(kind=wp) :: dd2
real(kind=wp) :: dx1
real(kind=wp) :: dy1
real(kind=wp) :: dparam(5)