Annotation of rpl/lapack/blas/lsame.f, revision 1.14

1.7       bertrand    1: *> \brief \b LSAME
1.1       bertrand    2: *
1.7       bertrand    3: *  =========== DOCUMENTATION ===========
1.1       bertrand    4: *
1.12      bertrand    5: * Online html documentation available at
                      6: *            http://www.netlib.org/lapack/explore-html/
1.1       bertrand    7: *
1.7       bertrand    8: *  Definition:
                      9: *  ===========
                     10: *
                     11: *       LOGICAL FUNCTION LSAME(CA,CB)
1.12      bertrand   12: *
1.7       bertrand   13: *       .. Scalar Arguments ..
                     14: *       CHARACTER CA,CB
                     15: *       ..
1.12      bertrand   16: *
1.7       bertrand   17: *
                     18: *> \par Purpose:
                     19: *  =============
                     20: *>
                     21: *> \verbatim
                     22: *>
                     23: *> LSAME returns .TRUE. if CA is the same letter as CB regardless of
                     24: *> case.
                     25: *> \endverbatim
                     26: *
                     27: *  Arguments:
                     28: *  ==========
                     29: *
                     30: *> \param[in] CA
                     31: *> \verbatim
                     32: *>          CA is CHARACTER*1
                     33: *> \endverbatim
                     34: *>
                     35: *> \param[in] CB
                     36: *> \verbatim
                     37: *>          CB is CHARACTER*1
                     38: *>          CA and CB specify the single characters to be compared.
                     39: *> \endverbatim
                     40: *
                     41: *  Authors:
                     42: *  ========
                     43: *
1.12      bertrand   44: *> \author Univ. of Tennessee
                     45: *> \author Univ. of California Berkeley
                     46: *> \author Univ. of Colorado Denver
                     47: *> \author NAG Ltd.
1.1       bertrand   48: *
1.7       bertrand   49: *> \ingroup aux_blas
1.1       bertrand   50: *
1.7       bertrand   51: *  =====================================================================
                     52:       LOGICAL FUNCTION LSAME(CA,CB)
1.1       bertrand   53: *
1.14    ! bertrand   54: *  -- Reference BLAS level1 routine --
1.7       bertrand   55: *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
                     56: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
                     57: *
                     58: *     .. Scalar Arguments ..
                     59:       CHARACTER CA,CB
                     60: *     ..
1.1       bertrand   61: *
                     62: * =====================================================================
                     63: *
                     64: *     .. Intrinsic Functions ..
                     65:       INTRINSIC ICHAR
                     66: *     ..
                     67: *     .. Local Scalars ..
                     68:       INTEGER INTA,INTB,ZCODE
                     69: *     ..
                     70: *
                     71: *     Test if the characters are equal
                     72: *
                     73:       LSAME = CA .EQ. CB
                     74:       IF (LSAME) 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: *
                    122:       END

CVSweb interface <joel.bertrand@systella.fr>