xerbla_array Subroutine

public subroutine xerbla_array(srname_array, srname_len, info)

NAME

xerbla_array(3f) - [BLAS:AUX_BLAS] call XERBLA(3f) with an array of characters instead of a string

SYNOPSIS

 subroutine xerbla_array(srname_array, srname_len, info)

    .. Scalar Arguments ..
    integer srname_len, info
    ..
    .. Array Arguments ..
    character(*) srname_array(srname_len)
    ..

DEFINITION

XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK and BLAS error handler. Rather than taking a Fortran string argument as the function’s name, XERBLA_ARRAY takes an array of single characters along with the array’s length. XERBLA_ARRAY then copies up to 32 characters of that array into a Fortran string and passes that to XERBLA. If called with a non-positive SRNAME_LEN, XERBLA_ARRAY will call XERBLA with a string of all blank characters.

Say some macro or other device makes XERBLA_ARRAY available to C99 by a name lapack_xerbla and with a common Fortran calling convention. Then a C99 program could invoke XERBLA via: { int flen = strlen(func); lapack_xerbla(func, &flen, &info); }

Providing XERBLA_ARRAY is not necessary for intercepting LAPACK errors. XERBLA_ARRAY calls XERBLA.

OPTIONS

SRNAME_ARRAY

       SRNAME_ARRAY is CHARACTER(*) array, dimension (SRNAME_LEN)
       The name of the routine which called XERBLA_ARRAY.

SRNAME_LEN

       SRNAME_LEN is INTEGER
       The length of the name in SRNAME_ARRAY.

INFO

       INFO is INTEGER
       The position of the invalid parameter in the parameter list
       of the calling routine.

AUTHORS

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

date:December 2016

SEE ALSO

Online html documentation available at
http://www.netlib.org/lapack/explore-html/

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: srname_array(srname_len)
integer, intent(in) :: srname_len
integer, intent(in) :: info

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
integer, public :: i
character(len=32), public :: srname

Source Code

       subroutine xerbla_array(srname_array, srname_len, info)
      implicit none
!
!  -- Reference BLAS level1 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
!
!     .. Scalar Arguments ..
      integer,intent(in) :: srname_len, info
!     ..
!     .. Array Arguments ..
      character(len=*),intent(in) :: srname_array(srname_len)
!     ..
!
! =====================================================================
!
!     ..
!     .. Local Scalars ..
      integer i
!     ..
!     .. Local Arrays ..
      character*32 srname
!     ..
!     .. Intrinsic Functions ..
      intrinsic min, len
!     ..
!     .. External Functions ..
!      EXTERNAL XERBLA
!     ..
!     .. Executable Statements ..
      srname = ''
      do i = 1, min( srname_len, len( srname ) )
         srname( i:i ) = srname_array( i )
      enddo

      call xerbla( srname, info )

      end subroutine xerbla_array