Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
00001 /* 00002 00003 Copyright (C) 2000, 2001 Silicon Graphics, Inc. All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify it 00006 under the terms of version 2.1 of the GNU Lesser General Public License 00007 as published by the Free Software Foundation. 00008 00009 This program is distributed in the hope that it would be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 00013 Further, this software is distributed without any warranty that it is 00014 free of the rightful claim of any third person regarding infringement 00015 or the like. Any license provided herein, whether implied or 00016 otherwise, applies only to this software file. Patent licenses, if 00017 any, provided herein do not apply to combinations of this program with 00018 other software, or any other product whatsoever. 00019 00020 You should have received a copy of the GNU Lesser General Public 00021 License along with this program; if not, write the Free Software 00022 Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, 00023 USA. 00024 00025 Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pky, 00026 Mountain View, CA 94043, or: 00027 00028 http://www.sgi.com 00029 00030 For further information regarding this notice, see: 00031 00032 http://oss.sgi.com/projects/GenInfo/NoticeExplan 00033 00034 */ 00035 00036 00037 #pragma ident "@(#) libfi/char/len_trim.c 92.1 07/08/99 10:41:51" 00038 #include <fortran.h> 00039 00040 /* 00041 * Duplicate names 00042 * 00043 * _LEN_TRIM_ - for f90 00044 * _LEN_TRIM - for f90 3.0? and previous on PVP systems 00045 */ 00046 #ifdef _UNICOS 00047 #pragma _CRI duplicate _LEN_TRIM_ as _LEN_TRIM 00048 #endif 00049 00050 _f_int 00051 _LEN_TRIM_(_fcd str) 00052 { 00053 long len; 00054 char *cptr; 00055 long i; 00056 00057 len = _fcdlen (str); 00058 cptr = _fcdtocp (str); 00059 00060 for (i = len - 1; i >= 0; i--) { 00061 if (cptr[i] != ' ') 00062 return (i+1); 00063 } 00064 00065 return (0); 00066 } 00067 00068 00069 #ifdef _F_INT4 00070 /* 00071 * Duplicate names 00072 * 00073 * _LEN_TRIM_4_ - for f90 00074 * _LEN_TRIM_4 - for f90 3.0? and previous on PVP systems 00075 */ 00076 #ifdef _UNICOS 00077 #pragma _CRI duplicate _LEN_TRIM_4_ as _LEN_TRIM_4 00078 #endif 00079 00080 _f_int4 00081 _LEN_TRIM_4_(_fcd str) 00082 { 00083 long len; 00084 char *cptr; 00085 long i; 00086 00087 len = _fcdlen (str); 00088 cptr = _fcdtocp (str); 00089 00090 for (i = len - 1; i >= 0; i--) { 00091 if (cptr[i] != ' ') 00092 return ((_f_int4) i+1); 00093 } 00094 00095 return (0); 00096 } 00097 #endif 00098 00099 00100 #ifdef _F_INT8 00101 /* 00102 * Duplicate names 00103 * 00104 * _LEN_TRIM_8_ - for f90 00105 * _LEN_TRIM_8 - for f90 3.0? and previous on PVP systems 00106 */ 00107 #ifdef _UNICOS 00108 #pragma _CRI duplicate _LEN_TRIM_8_ as _LEN_TRIM_8 00109 #endif 00110 00111 _f_int8 00112 _LEN_TRIM_8_(_fcd str) 00113 { 00114 long len; 00115 char *cptr; 00116 long i; 00117 00118 len = _fcdlen (str); 00119 cptr = _fcdtocp (str); 00120 00121 for (i = len - 1; i >= 0; i--) { 00122 if (cptr[i] != ' ') 00123 return ((_f_int8) i+1); 00124 } 00125 00126 return (0); 00127 } 00128 #endif