1acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* lsame.f -- translated by f2c (version 20100827).
2acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray   You must link the resulting object file with libf2c:
3acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Microsoft Windows system, link with libf2c.lib;
4acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	on Linux or Unix systems, link with .../path/to/libf2c.a -lm
5acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	or, if you install libf2c.a in a standard place, with -lf2c -lm
6acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	-- in that order, at the end of the command line, as in
7acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		cc *.o -lf2c -lm
8acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
9acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
10acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray		http://www.netlib.org/f2c/libf2c.zip
11acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray*/
12acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
13acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray#include "datatypes.h"
14acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
15acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murraylogical lsame_(char *ca, char *cb, ftnlen ca_len, ftnlen cb_len)
16acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray{
17acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* System generated locals */
18acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    logical ret_val;
19acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
20acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    /* Local variables */
21acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    integer inta, intb, zcode;
22acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
23acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
24acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  -- LAPACK auxiliary routine (version 3.1) -- */
25acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
26acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     November 2006 */
27acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
28acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Scalar Arguments .. */
29acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
30acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
31acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Purpose */
32acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ======= */
33acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
34acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  LSAME returns .TRUE. if CA is the same letter as CB regardless of */
35acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  case. */
36acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
37acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  Arguments */
38acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  ========= */
39acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
40acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  CA      (input) CHARACTER*1 */
41acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
42acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*  CB      (input) CHARACTER*1 */
43acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*          CA and CB specify the single characters to be compared. */
44acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
45acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/* ===================================================================== */
46acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
47acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Intrinsic Functions .. */
48acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
49acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. Local Scalars .. */
50acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     .. */
51acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
52acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Test if the characters are equal */
53acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
54acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    ret_val = *(unsigned char *)ca == *(unsigned char *)cb;
55acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (ret_val) {
56acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	return ret_val;
57acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
58acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
59acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Now test for equivalence if both characters are alphabetic. */
60acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
61acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    zcode = 'Z';
62acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
63acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     Use 'Z' rather than 'A' so that ASCII can be detected on Prime */
64acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     machines, on which ICHAR returns a value with bit 8 set. */
65acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     ICHAR('A') on Prime machines returns 193 which is the same as */
66acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     ICHAR('A') on an EBCDIC machine. */
67acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
68acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    inta = *(unsigned char *)ca;
69acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    intb = *(unsigned char *)cb;
70acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
71acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    if (zcode == 90 || zcode == 122) {
72acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
73acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        ASCII is assumed - ZCODE is the ASCII code of either lower or */
74acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        upper case 'Z'. */
75acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
76acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (inta >= 97 && inta <= 122) {
77acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    inta += -32;
78acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
79acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (intb >= 97 && intb <= 122) {
80acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    intb += -32;
81acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
82acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
83acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (zcode == 233 || zcode == 169) {
84acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
85acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        EBCDIC is assumed - ZCODE is the EBCDIC code of either lower or */
86acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        upper case 'Z'. */
87acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
88acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if ((inta >= 129 && inta <= 137) || (inta >= 145 && inta <= 153) ||
89acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray            (inta >= 162 && inta <= 169)) {
90acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    inta += 64;
91acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
92acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if ((intb >= 129 && intb <= 137) || (intb >= 145 && intb <= 153) ||
93acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray            (intb >= 162 && intb <= 169)) {
94acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    intb += 64;
95acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
96acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
97acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    } else if (zcode == 218 || zcode == 250) {
98acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
99acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        ASCII is assumed, on Prime machines - ZCODE is the ASCII code */
100acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*        plus 128 of either lower or upper case 'Z'. */
101acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
102acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (inta >= 225 && inta <= 250) {
103acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    inta += -32;
104acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
105acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	if (intb >= 225 && intb <= 250) {
106acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	    intb += -32;
107acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray	}
108acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    }
109acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    ret_val = inta == intb;
110acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
111acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     RETURN */
112acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
113acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray/*     End of LSAME */
114acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
115acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray    return ret_val;
116acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray} /* lsame_ */
117acf83bd421067e7a2b828c5fe61594a4fda5e9a5Tim Murray
118