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