File:  [local] / rpl / lapack / blas / xerbla_array.f
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Wed Aug 22 09:36:41 2012 UTC (11 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_9, rpl-4_1_10, HEAD
Cohérence

    1: *> \brief \b XERBLA_ARRAY
    2: *
    3: *  =========== DOCUMENTATION ===========
    4: *
    5: * Online html documentation available at 
    6: *            http://www.netlib.org/lapack/explore-html/ 
    7: *
    8: *  Definition:
    9: *  ===========
   10: *
   11: *       SUBROUTINE XERBLA_ARRAY(SRNAME_ARRAY, SRNAME_LEN, INFO)
   12:    13: *       .. Scalar Arguments ..
   14: *       INTEGER SRNAME_LEN, INFO
   15: *       ..
   16: *       .. Array Arguments ..
   17: *       CHARACTER(1) SRNAME_ARRAY(SRNAME_LEN)
   18: *       ..
   19: *  
   20: *
   21: *> \par Purpose:
   22: *  =============
   23: *>
   24: *> \verbatim
   25: *>
   26: *> XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK
   27: *> and BLAS error handler.  Rather than taking a Fortran string argument
   28: *> as the function's name, XERBLA_ARRAY takes an array of single
   29: *> characters along with the array's length.  XERBLA_ARRAY then copies
   30: *> up to 32 characters of that array into a Fortran string and passes
   31: *> that to XERBLA.  If called with a non-positive SRNAME_LEN,
   32: *> XERBLA_ARRAY will call XERBLA with a string of all blank characters.
   33: *>
   34: *> Say some macro or other device makes XERBLA_ARRAY available to C99
   35: *> by a name lapack_xerbla and with a common Fortran calling convention.
   36: *> Then a C99 program could invoke XERBLA via:
   37: *>    {
   38: *>      int flen = strlen(__func__);
   39: *>      lapack_xerbla(__func__, &flen, &info);
   40: *>    }
   41: *>
   42: *> Providing XERBLA_ARRAY is not necessary for intercepting LAPACK
   43: *> errors.  XERBLA_ARRAY calls XERBLA.
   44: *> \endverbatim
   45: *
   46: *  Arguments:
   47: *  ==========
   48: *
   49: *> \param[in] SRNAME_ARRAY
   50: *> \verbatim
   51: *>          SRNAME_ARRAY is CHARACTER(1) array, dimension (SRNAME_LEN)
   52: *>          The name of the routine which called XERBLA_ARRAY.
   53: *> \endverbatim
   54: *>
   55: *> \param[in] SRNAME_LEN
   56: *> \verbatim
   57: *>          SRNAME_LEN is INTEGER
   58: *>          The length of the name in SRNAME_ARRAY.
   59: *> \endverbatim
   60: *>
   61: *> \param[in] INFO
   62: *> \verbatim
   63: *>          INFO is INTEGER
   64: *>          The position of the invalid parameter in the parameter list
   65: *>          of the calling routine.
   66: *> \endverbatim
   67: *
   68: *  Authors:
   69: *  ========
   70: *
   71: *> \author Univ. of Tennessee 
   72: *> \author Univ. of California Berkeley 
   73: *> \author Univ. of Colorado Denver 
   74: *> \author NAG Ltd. 
   75: *
   76: *> \date November 2011
   77: *
   78: *> \ingroup aux_blas
   79: *
   80: *  =====================================================================
   81:       SUBROUTINE XERBLA_ARRAY(SRNAME_ARRAY, SRNAME_LEN, INFO)
   82: *
   83: *  -- Reference BLAS level1 routine (version 3.4.0) --
   84: *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   85: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   86: *     November 2011
   87: *
   88: *     .. Scalar Arguments ..
   89:       INTEGER SRNAME_LEN, INFO
   90: *     ..
   91: *     .. Array Arguments ..
   92:       CHARACTER(1) SRNAME_ARRAY(SRNAME_LEN)
   93: *     ..
   94: *
   95: * =====================================================================
   96: *
   97: *     ..
   98: *     .. Local Scalars ..
   99:       INTEGER I
  100: *     ..
  101: *     .. Local Arrays ..
  102:       CHARACTER*32 SRNAME
  103: *     ..
  104: *     .. Intrinsic Functions ..
  105:       INTRINSIC MIN, LEN
  106: *     ..
  107: *     .. External Functions ..
  108:       EXTERNAL XERBLA
  109: *     ..
  110: *     .. Executable Statements ..
  111:       SRNAME = ''
  112:       DO I = 1, MIN( SRNAME_LEN, LEN( SRNAME ) )
  113:          SRNAME( I:I ) = SRNAME_ARRAY( I )
  114:       END DO
  115: 
  116:       CALL XERBLA( SRNAME, INFO )
  117: 
  118:       RETURN
  119:       END

CVSweb interface <joel.bertrand@systella.fr>