Rev 85083 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
*> \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*> CA is CHARACTER*1*> \endverbatim*>*> \param[in] CB*> \verbatim*> CB is CHARACTER*1*> 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.**> \ingroup lsame** =====================================================================LOGICAL FUNCTION LSAME(CA,CB)** -- Reference BLAS level1 routine --* -- Reference BLAS is a software package provided by Univ. of Tennessee, --* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--** .. Scalar Arguments ..CHARACTER CA,CB* ..** =====================================================================** .. Intrinsic Functions ..INTRINSIC ICHAR* ..* .. Local Scalars ..INTEGER INTA,INTB,ZCODE* ..** Test if the characters are equal*LSAME = CA .EQ. CBIF (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 - 32IF (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 + 64IF (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 - 32IF (INTB.GE.225 .AND. INTB.LE.250) INTB = INTB - 32END IFLSAME = INTA .EQ. INTB** RETURN** End of LSAME*END