xerbla_array(3f) - [BLAS:AUX_BLAS] call XERBLA(3f) with an array of characters instead of a string
subroutine xerbla_array(srname_array, srname_len, info)
.. Scalar Arguments ..
integer srname_len, info
..
.. Array Arguments ..
character(*) srname_array(srname_len)
..
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.
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.
date:December 2016
Online html documentation available at
http://www.netlib.org/lapack/explore-html/
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | srname_array(srname_len) | |||
integer, | intent(in) | :: | srname_len | |||
integer, | intent(in) | :: | info |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | i | ||||
character(len=32), | public | :: | srname |
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