LAPACK 3.11.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches
lsame.f
Go to the documentation of this file.
1*> \brief \b LSAME
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8* Definition:
9* ===========
10*
11* LOGICAL FUNCTION LSAME(CA,CB)
12*
13* .. Scalar Arguments ..
14* CHARACTER CA,CB
15* ..
16*
17*
18*> \par Purpose:
19* =============
20*>
21*> \verbatim
22*>
23*> LSAME returns .TRUE. if CA is the same letter as CB regardless of
24*> case.
25*> \endverbatim
26*
27* Arguments:
28* ==========
29*
30*> \param[in] CA
31*> \verbatim
32*> CA is CHARACTER*1
33*> \endverbatim
34*>
35*> \param[in] CB
36*> \verbatim
37*> CB is CHARACTER*1
38*> CA and CB specify the single characters to be compared.
39*> \endverbatim
40*
41* Authors:
42* ========
43*
44*> \author Univ. of Tennessee
45*> \author Univ. of California Berkeley
46*> \author Univ. of Colorado Denver
47*> \author NAG Ltd.
48*
49*> \ingroup aux_blas
50*
51* =====================================================================
52 LOGICAL FUNCTION lsame(CA,CB)
53*
54* -- Reference BLAS level1 routine --
55* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
56* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
57*
58* .. Scalar Arguments ..
59 CHARACTER ca,cb
60* ..
61*
62* =====================================================================
63*
64* .. Intrinsic Functions ..
65 INTRINSIC ichar
66* ..
67* .. Local Scalars ..
68 INTEGER inta,intb,zcode
69* ..
70*
71* Test if the characters are equal
72*
73 lsame = ca .EQ. cb
74 IF (lsame) RETURN
75*
76* Now test for equivalence if both characters are alphabetic.
77*
78 zcode = ichar('Z')
79*
80* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
81* machines, on which ICHAR returns a value with bit 8 set.
82* ICHAR('A') on Prime machines returns 193 which is the same as
83* ICHAR('A') on an EBCDIC machine.
84*
85 inta = ichar(ca)
86 intb = ichar(cb)
87*
88 IF (zcode.EQ.90 .OR. zcode.EQ.122) THEN
89*
90* ASCII is assumed - ZCODE is the ASCII code of either lower or
91* upper case 'Z'.
92*
93 IF (inta.GE.97 .AND. inta.LE.122) inta = inta - 32
94 IF (intb.GE.97 .AND. intb.LE.122) intb = intb - 32
95*
96 ELSE IF (zcode.EQ.233 .OR. zcode.EQ.169) THEN
97*
98* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
99* upper case 'Z'.
100*
101 IF (inta.GE.129 .AND. inta.LE.137 .OR.
102 + inta.GE.145 .AND. inta.LE.153 .OR.
103 + inta.GE.162 .AND. inta.LE.169) inta = inta + 64
104 IF (intb.GE.129 .AND. intb.LE.137 .OR.
105 + intb.GE.145 .AND. intb.LE.153 .OR.
106 + intb.GE.162 .AND. intb.LE.169) intb = intb + 64
107*
108 ELSE IF (zcode.EQ.218 .OR. zcode.EQ.250) THEN
109*
110* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
111* plus 128 of either lower or upper case 'Z'.
112*
113 IF (inta.GE.225 .AND. inta.LE.250) inta = inta - 32
114 IF (intb.GE.225 .AND. intb.LE.250) intb = intb - 32
115 END IF
116 lsame = inta .EQ. intb
117*
118* RETURN
119*
120* End of LSAME
121*
122 END
logical function lsame(CA, CB)
LSAME
Definition: lsame.f:53