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