github.com/gonum/lapack@v0.0.0-20181123203213-e4cdc5a0bff9/internal/testdata/dsterftest/lsame.f (about) 1 *> \brief \b LSAME 2 * 3 * =========== DOCUMENTATION =========== 4 * 5 * Online html documentation available at 6 * http://www.netlib.org/lapack/explore-html/ 7 * 8 * Definition: 9 * =========== 10 * 11 * LOGICAL FUNCTION LSAME( CA, CB ) 12 * 13 * .. Scalar Arguments .. 14 * CHARACTER CA, CB 15 * .. 16 * 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 *> \endverbatim 33 *> 34 *> \param[in] CB 35 *> \verbatim 36 *> CA and CB specify the single characters to be compared. 37 *> \endverbatim 38 * 39 * Authors: 40 * ======== 41 * 42 *> \author Univ. of Tennessee 43 *> \author Univ. of California Berkeley 44 *> \author Univ. of Colorado Denver 45 *> \author NAG Ltd. 46 * 47 *> \date November 2011 48 * 49 *> \ingroup auxOTHERauxiliary 50 * 51 * ===================================================================== 52 LOGICAL FUNCTION LSAME( CA, CB ) 53 * 54 * -- LAPACK auxiliary routine (version 3.4.0) -- 55 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 56 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 57 * November 2011 58 * 59 * .. Scalar Arguments .. 60 CHARACTER CA, CB 61 * .. 62 * 63 * ===================================================================== 64 * 65 * .. Intrinsic Functions .. 66 INTRINSIC ICHAR 67 * .. 68 * .. Local Scalars .. 69 INTEGER INTA, INTB, ZCODE 70 * .. 71 * .. Executable Statements .. 72 * 73 * Test if the characters are equal 74 * 75 LSAME = CA.EQ.CB 76 IF( LSAME ) 77 $ RETURN 78 * 79 * Now test for equivalence if both characters are alphabetic. 80 * 81 ZCODE = ICHAR( 'Z' ) 82 * 83 * Use 'Z' rather than 'A' so that ASCII can be detected on Prime 84 * machines, on which ICHAR returns a value with bit 8 set. 85 * ICHAR('A') on Prime machines returns 193 which is the same as 86 * ICHAR('A') on an EBCDIC machine. 87 * 88 INTA = ICHAR( CA ) 89 INTB = ICHAR( CB ) 90 * 91 IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 ) THEN 92 * 93 * ASCII is assumed - ZCODE is the ASCII code of either lower or 94 * upper case 'Z'. 95 * 96 IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32 97 IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32 98 * 99 ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 ) THEN 100 * 101 * EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or 102 * upper case 'Z'. 103 * 104 IF( INTA.GE.129 .AND. INTA.LE.137 .OR. 105 $ INTA.GE.145 .AND. INTA.LE.153 .OR. 106 $ INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64 107 IF( INTB.GE.129 .AND. INTB.LE.137 .OR. 108 $ INTB.GE.145 .AND. INTB.LE.153 .OR. 109 $ INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64 110 * 111 ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 ) THEN 112 * 113 * ASCII is assumed, on Prime machines - ZCODE is the ASCII code 114 * plus 128 of either lower or upper case 'Z'. 115 * 116 IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32 117 IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32 118 END IF 119 LSAME = INTA.EQ.INTB 120 * 121 * RETURN 122 * 123 * End of LSAME 124 * 125 END