LAPACK 3.12.1
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:
Here is the caller graph for this function: