LAPACK 3.11.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 50 of file lsame.f.

51*
52* -- LAPACK auxiliary routine --
53* -- LAPACK is a software package provided by Univ. of Tennessee, --
54* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
55*
56* .. Scalar Arguments ..
57 CHARACTER CA, CB
58* ..
59*
60* =====================================================================
61*
62* .. Intrinsic Functions ..
63 INTRINSIC ichar
64* ..
65* .. Local Scalars ..
66 INTEGER INTA, INTB, ZCODE
67* ..
68* .. Executable Statements ..
69*
70* Test if the characters are equal
71*
72 lsame = ca.EQ.cb
73 IF( lsame )
74 $ 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*
logical function lsame(CA, CB)
LSAME
Definition: lsame.f:53
Here is the call graph for this function: