| *> \brief \b LSAME |
| * |
| * =========== DOCUMENTATION =========== |
| * |
| * Online html documentation available at |
| * http://www.netlib.org/lapack/explore-html/ |
| * |
| * Definition: |
| * =========== |
| * |
| * LOGICAL FUNCTION LSAME( CA, CB ) |
| * |
| * .. Scalar Arguments .. |
| * CHARACTER CA, CB |
| * .. |
| * |
| * |
| *> \par Purpose: |
| * ============= |
| *> |
| *> \verbatim |
| *> |
| *> LSAME returns .TRUE. if CA is the same letter as CB regardless of |
| *> case. |
| *> \endverbatim |
| * |
| * Arguments: |
| * ========== |
| * |
| *> \param[in] CA |
| *> \verbatim |
| *> \endverbatim |
| *> |
| *> \param[in] CB |
| *> \verbatim |
| *> CA and CB specify the single characters to be compared. |
| *> \endverbatim |
| * |
| * Authors: |
| * ======== |
| * |
| *> \author Univ. of Tennessee |
| *> \author Univ. of California Berkeley |
| *> \author Univ. of Colorado Denver |
| *> \author NAG Ltd. |
| * |
| *> \date November 2011 |
| * |
| *> \ingroup auxOTHERauxiliary |
| * |
| * ===================================================================== |
| LOGICAL FUNCTION LSAME( CA, CB ) |
| * |
| * -- LAPACK auxiliary routine (version 3.4.0) -- |
| * -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| * November 2011 |
| * |
| * .. Scalar Arguments .. |
| CHARACTER CA, CB |
| * .. |
| * |
| * ===================================================================== |
| * |
| * .. Intrinsic Functions .. |
| INTRINSIC ICHAR |
| * .. |
| * .. Local Scalars .. |
| INTEGER INTA, INTB, ZCODE |
| * .. |
| * .. Executable Statements .. |
| * |
| * Test if the characters are equal |
| * |
| LSAME = CA.EQ.CB |
| IF( LSAME ) |
| $ RETURN |
| * |
| * Now test for equivalence if both characters are alphabetic. |
| * |
| ZCODE = ICHAR( 'Z' ) |
| * |
| * Use 'Z' rather than 'A' so that ASCII can be detected on Prime |
| * machines, on which ICHAR returns a value with bit 8 set. |
| * ICHAR('A') on Prime machines returns 193 which is the same as |
| * ICHAR('A') on an EBCDIC machine. |
| * |
| INTA = ICHAR( CA ) |
| INTB = ICHAR( CB ) |
| * |
| IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN |
| * |
| * ASCII is assumed - ZCODE is the ASCII code of either lower or |
| * upper case 'Z'. |
| * |
| IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32 |
| IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32 |
| * |
| ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN |
| * |
| * EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or |
| * upper case 'Z'. |
| * |
| IF( INTA.GE.129 .AND. INTA.LE.137 .OR. |
| $ INTA.GE.145 .AND. INTA.LE.153 .OR. |
| $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64 |
| IF( INTB.GE.129 .AND. INTB.LE.137 .OR. |
| $ INTB.GE.145 .AND. INTB.LE.153 .OR. |
| $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64 |
| * |
| ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN |
| * |
| * ASCII is assumed, on Prime machines - ZCODE is the ASCII code |
| * plus 128 of either lower or upper case 'Z'. |
| * |
| IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32 |
| IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32 |
| END IF |
| LSAME = INTA.EQ.INTB |
| * |
| * RETURN |
| * |
| * End of LSAME |
| * |
| END |