1 LOGICAL FUNCTION LSAME
(CA
,CB
)
3 * -- LAPACK auxiliary routine
(version
3.1) --
4 * Univ
. of Tennessee
, Univ
. of California Berkeley and NAG Ltd
..
7 * .. Scalar Arguments
..
14 * LSAME returns
.TRUE
. if CA is the same letter as CB regardless of
20 * CA
(input
) CHARACTER*1
22 * CB
(input
) CHARACTER*1
23 * CA and CB specify the single characters
to be compared
.
25 * =====================================================================
27 * .. Intrinsic Functions
..
31 INTEGER INTA
,INTB
,ZCODE
34 * Test
if the characters are equal
39 * Now test
for equivalence
if both characters are alphabetic
.
43 * Use
'Z' rather than
'A' so that ASCII can be detected on Prime
44 * machines
, on which ICHAR returns a value with bit
8 set
.
45 * ICHAR
('A') on Prime machines returns
193 which is the same as
46 * ICHAR
('A') on an EBCDIC machine
.
51 IF (ZCODE
.EQ
.90 .OR
. ZCODE
.EQ
.122) THEN
53 * ASCII is assumed
- ZCODE is the ASCII code of either lower or
56 IF (INTA
.GE
.97 .AND
. INTA
.LE
.122) INTA
= INTA
- 32
57 IF (INTB
.GE
.97 .AND
. INTB
.LE
.122) INTB
= INTB
- 32
59 ELSE IF (ZCODE
.EQ
.233 .OR
. ZCODE
.EQ
.169) THEN
61 * EBCDIC is assumed
- ZCODE is the EBCDIC code of either lower or
64 IF (INTA
.GE
.129 .AND
. INTA
.LE
.137 .OR
.
65 + INTA
.GE
.145 .AND
. INTA
.LE
.153 .OR
.
66 + INTA
.GE
.162 .AND
. INTA
.LE
.169) INTA
= INTA
+ 64
67 IF (INTB
.GE
.129 .AND
. INTB
.LE
.137 .OR
.
68 + INTB
.GE
.145 .AND
. INTB
.LE
.153 .OR
.
69 + INTB
.GE
.162 .AND
. INTB
.LE
.169) INTB
= INTB
+ 64
71 ELSE IF (ZCODE
.EQ
.218 .OR
. ZCODE
.EQ
.250) THEN
73 * ASCII is assumed
, on Prime machines
- ZCODE is the ASCII code
74 * plus
128 of either lower or upper case
'Z'.
76 IF (INTA
.GE
.225 .AND
. INTA
.LE
.250) INTA
= INTA
- 32
77 IF (INTB
.GE
.225 .AND
. INTB
.LE
.250) INTB
= INTB
- 32
79 LSAME
= INTA
.EQ
. INTB