LAPACK  3.5.0
LAPACK: Linear Algebra PACKage
 All Classes Files Functions Variables Typedefs Macros
xerbla_array.f
Go to the documentation of this file.
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 *> \htmlonly
9 *> Download XERBLA_ARRAY + dependencies
10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/xerbla_array.f">
11 *> [TGZ]</a>
12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/xerbla_array.f">
13 *> [ZIP]</a>
14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/xerbla_array.f">
15 *> [TXT]</a>
16 *> \endhtmlonly
17 *
18 * Definition:
19 * ===========
20 *
21 * SUBROUTINE XERBLA_ARRAY( SRNAME_ARRAY, SRNAME_LEN, INFO)
22 *
23 * .. Scalar Arguments ..
24 * INTEGER SRNAME_LEN, INFO
25 * ..
26 * .. Array Arguments ..
27 * CHARACTER(1) SRNAME_ARRAY(SRNAME_LEN)
28 * ..
29 *
30 *
31 *> \par Purpose:
32 * =============
33 *>
34 *> \verbatim
35 *>
36 *> XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK
37 *> and BLAS error handler. Rather than taking a Fortran string argument
38 *> as the function's name, XERBLA_ARRAY takes an array of single
39 *> characters along with the array's length. XERBLA_ARRAY then copies
40 *> up to 32 characters of that array into a Fortran string and passes
41 *> that to XERBLA. If called with a non-positive SRNAME_LEN,
42 *> XERBLA_ARRAY will call XERBLA with a string of all blank characters.
43 *>
44 *> Say some macro or other device makes XERBLA_ARRAY available to C99
45 *> by a name lapack_xerbla and with a common Fortran calling convention.
46 *> Then a C99 program could invoke XERBLA via:
47 *> {
48 *> int flen = strlen(__func__);
49 *> lapack_xerbla(__func__, &flen, &info);
50 *> }
51 *>
52 *> Providing XERBLA_ARRAY is not necessary for intercepting LAPACK
53 *> errors. XERBLA_ARRAY calls XERBLA.
54 *> \endverbatim
55 *
56 * Arguments:
57 * ==========
58 *
59 *> \param[in] SRNAME_ARRAY
60 *> \verbatim
61 *> SRNAME_ARRAY is CHARACTER(1) array, dimension (SRNAME_LEN)
62 *> The name of the routine which called XERBLA_ARRAY.
63 *> \endverbatim
64 *>
65 *> \param[in] SRNAME_LEN
66 *> \verbatim
67 *> SRNAME_LEN is INTEGER
68 *> The length of the name in SRNAME_ARRAY.
69 *> \endverbatim
70 *>
71 *> \param[in] INFO
72 *> \verbatim
73 *> INFO is INTEGER
74 *> The position of the invalid parameter in the parameter list
75 *> of the calling routine.
76 *> \endverbatim
77 *
78 * Authors:
79 * ========
80 *
81 *> \author Univ. of Tennessee
82 *> \author Univ. of California Berkeley
83 *> \author Univ. of Colorado Denver
84 *> \author NAG Ltd.
85 *
86 *> \date November 2011
87 *
88 *> \ingroup auxOTHERauxiliary
89 *
90 * =====================================================================
91  SUBROUTINE xerbla_array( SRNAME_ARRAY, SRNAME_LEN, INFO)
92 *
93 * -- LAPACK auxiliary routine (version 3.4.0) --
94 * -- LAPACK is a software package provided by Univ. of Tennessee, --
95 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
96 * November 2011
97 *
98 * .. Scalar Arguments ..
99  INTEGER srname_len, info
100 * ..
101 * .. Array Arguments ..
102  CHARACTER(1) srname_array(srname_len)
103 * ..
104 *
105 * =====================================================================
106 *
107 * ..
108 * .. Local Scalars ..
109  INTEGER i
110 * ..
111 * .. Local Arrays ..
112  CHARACTER*32 srname
113 * ..
114 * .. Intrinsic Functions ..
115  INTRINSIC min, len
116 * ..
117 * .. External Functions ..
118  EXTERNAL xerbla
119 * ..
120 * .. Executable Statements ..
121  srname = ''
122  DO i = 1, min( srname_len, len( srname ) )
123  srname( i:i ) = srname_array( i )
124  END DO
125 
126  CALL xerbla( srname, info )
127 
128  RETURN
129  END