SUBROUTINE CATNUM(STRING,NUM) 00010 INTEGER STRING,HOLD(4) 00020 DATA HOLD/5,0,0,0/ 00030 CALL PUTNUM(HOLD,NUM) 00040 CALL CATSTR(STRING,HOLD) 00050 RETURN 00060 END 00070 SUBROUTINE CATSTR(A,B) 00080 CALL CATSUB(A,B,1,B) 00090 RETURN 00100 END 00110 SUBROUTINE CPYSTR(ISTR,JSTR) 00120 ISTR=0 00130 CALL CATSUB(ISTR,JSTR,1,JSTR) 00140 RETURN 00150 END 00160 SUBROUTINE CPYSUB(ISTR,JSTR,IST,LEN) 00170 ISTR=0 00180 CALL CATSUB(ISTR,JSTR,IST,LEN) 00190 RETURN 00200 END 00210 INTEGER FUNCTION HASH(A,PRIME) 00220 IMPLICIT INTEGER (A-Z) 00230 INTEGER A(100) 00240 LEN=(A(1)+3)/2 00250 HASH=0 00260 DO 10 I=1,LEN 00270 HASH = HASH + (A(I)-A(I)/PRIME*PRIME) 00280 10 IF(HASH.GT.32000) HASH=0 00290 HASH=HASH-HASH/PRIME*PRIME 00300 RETURN 00310 END 00320 SUBROUTINE PUTNUM(HOLD,NOM) 00330 INTEGER HOLD(4),NUM 00340 IDIG(N) = NUM/N - NUM/N/10*10 + 48 00350 NUM = NOM 00360 HOLD(2)=NUM/10000+48+IDIG(1000)*256 00370 HOLD(3)=IDIG(100)+IDIG(10)*256 00380 HOLD(4)=IDIG(1)+8192 00390 RETURN 00400 END 00410 INTEGER FUNCTION NEWNO(N) 00420 ITMP=ITMP-1 00430 IF(N.NE.0)ITMP=N-1 00440 NEWNO=ITMP 00450 RETURN 00460 END 00470