LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ lsame()

logical function lsame ( character  ca,
character  cb 
)

LSAME

Purpose:
 LSAME returns .TRUE. if CA is the same letter as CB regardless of
 case.
Parameters
[in]CA
[in]CB
          CA and CB specify the single characters to be compared.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 47 of file lsame.f.

48*
49* -- LAPACK auxiliary routine --
50* -- LAPACK is a software package provided by Univ. of Tennessee, --
51* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
52*
53* .. Scalar Arguments ..
54 CHARACTER CA, CB
55* ..
56*
57* =====================================================================
58*
59* .. Intrinsic Functions ..
60 INTRINSIC ichar
61* ..
62* .. Local Scalars ..
63 INTEGER INTA, INTB, ZCODE
64* ..
65* .. Executable Statements ..
66*
67* Test if the characters are equal
68*
69 lsame = ca.EQ.cb
70 IF( lsame )
71 $ RETURN
72*
73* Now test for equivalence if both characters are alphabetic.
74*
75 zcode = ichar( 'Z' )
76*
77* Use 'Z' rather than 'A' so that ASCII can be detected on Prime
78* machines, on which ICHAR returns a value with bit 8 set.
79* ICHAR('A') on Prime machines returns 193 which is the same as
80* ICHAR('A') on an EBCDIC machine.
81*
82 inta = ichar( ca )
83 intb = ichar( cb )
84*
85 IF( zcode.EQ.90 .OR. zcode.EQ.122 ) THEN
86*
87* ASCII is assumed - ZCODE is the ASCII code of either lower or
88* upper case 'Z'.
89*
90 IF( inta.GE.97 .AND. inta.LE.122 ) inta = inta - 32
91 IF( intb.GE.97 .AND. intb.LE.122 ) intb = intb - 32
92*
93 ELSE IF( zcode.EQ.233 .OR. zcode.EQ.169 ) THEN
94*
95* EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or
96* upper case 'Z'.
97*
98 IF( inta.GE.129 .AND. inta.LE.137 .OR.
99 $ inta.GE.145 .AND. inta.LE.153 .OR.
100 $ inta.GE.162 .AND. inta.LE.169 ) inta = inta + 64
101 IF( intb.GE.129 .AND. intb.LE.137 .OR.
102 $ intb.GE.145 .AND. intb.LE.153 .OR.
103 $ intb.GE.162 .AND. intb.LE.169 ) intb = intb + 64
104*
105 ELSE IF( zcode.EQ.218 .OR. zcode.EQ.250 ) THEN
106*
107* ASCII is assumed, on Prime machines - ZCODE is the ASCII code
108* plus 128 of either lower or upper case 'Z'.
109*
110 IF( inta.GE.225 .AND. inta.LE.250 ) inta = inta - 32
111 IF( intb.GE.225 .AND. intb.LE.250 ) intb = intb - 32
112 END IF
113 lsame = inta.EQ.intb
114*
115* RETURN
116*
117* End of LSAME
118*
logical function lsame(ca, cb)
LSAME
Definition lsame.f:48
Here is the call graph for this function: