]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/kernlib/kerngen/tcgen/chtoig.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgen / chtoig.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/02/15 17:49:42 mclareni
6* Kernlib
7*
8*
9#include "kerngen/pilot.h"
10#if !defined(CERNLIB_QASCII)
11 SUBROUTINE CHTOI(CH,I,*)
12C
13C CERN PROGLIB# M400 CHTOI .VERSION KERNFOR 4.11 850529
14C ORIG. 29/05/84 H.RENSHALL
15C
16C SUBROUTINE WITH TWO ENTRY POINTS :
17C CHTOI - CONVERT INPUT SINGLE CHARACTER CH (OF TYPE CHARACTER) TO AN
18C OUTPUT INTEGER I VIA THE LOOK-UP TABLE STORED IN CHSTR.
19C ITOCH - CONVERT INPUT SINGLE INTEGER I TO AN OUTPUT SINGLE CHARACTER
20C CH (OF TYPE CHARACTER) VIA THE LOOK-UP TABLE STORED IN CHSTR.
21C A VALUE OUTSIDE THE ALLOWED SET OF 95 CHARACTERS RESULTS IN THE
22C ALTERNATE RETURN BEING TAKEN, WITH THE VALUE ZERO RETURNED IN I FOR
23C A CALL TO CHTOI, OR THE VALUE '?' BEING RETURNED IN CH FOR ITOCH.
24C THE INTEGER REPRESENTATIONS ARE THOSE OF 8-BIT ASCII RANGING FROM
25C 32 (FOR BLANK) TO 126 (FOR ~). SOME OF THE MORE EXOTIC CHARACTERS
26C PRODUCE STRANGE (BUT NON-FATAL) CONVERSIONS ON SOME MACHINES.
27C
28 INTEGER CHMAX2
29 CHARACTER CH
30 PARAMETER(CHMAX2=128)
31 CHARACTER*(CHMAX2)CHSTR
32C
33C INTEGERS 0 TO 127 MAP CONSECUTIVELY INTO THE CHARACTERS STORED
34C IN CHSTR AS DEFINED BELOW. NOTE CHSTR(39:39)=' (APOSTROPHE)
35C
36 DATA
37 +CHSTR(32:47)/' !"#$%&''()*+,-./'/
38 +CHSTR(48:57)/'0123456789'/
39 +CHSTR(58:64)/':;<=>?@'/
40 +CHSTR(65:90)/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/
41 +CHSTR(91:96)/'[\]^_`'/
42 +CHSTR(97:122)/'abcdefghijklmnopqrstuvwxyz'/
43 +CHSTR(123:126)/'{|}~'/
44C
45 I= INDEX(CHSTR(32:126),CH)
46 IF(I.LT.1) RETURN 1
47 I= I + 31
48 RETURN
49C
50 ENTRY ITOCH(I,CH,*)
51C SET ILLEGAL VALUE OF I TO RETURN CHARACTER '?'
52 CH= CHSTR(63:63)
53 IF(I.LT.32.OR.I.GT.126) RETURN 1
54 CH=CHSTR(I:I)
55 RETURN
56 END
57#endif