Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0080/cspman.for
There are no other files named cspman.for in the archive.
C
C COMMERCIAL SUBROUTINE PACKAGE MANIPULATION ROUTINES
C
C TAKEN FROM THE IBM 1130 COMMERCIAL SUBROUTINE PACKAGE
C REWRITTEN IN FORTRAN FOR THE DECSYSTEM-10 BY -
C PETE SCHILLING ALCOA TECHNICAL CENTER MAY, 1974
C
SUBROUTINE FILL ( JCARD, J, JLAST, NCH )
C
C FILLS AREA JCARD(J) THROUGH JCARD(JLAST) WITH
C CHARACTER NCH .
C
DIMENSION JCARD(1)
JEND = JLAST
IF ( J .GT. JLAST ) JEND = J
DO 10 JNOW = J, JEND
JCARD(JNOW) = NCH
10 CONTINUE
RETURN
END
SUBROUTINE MOVE ( JCARD, J, JLAST, KCARD, K )
C
C MOVES DATA FROM JCARD(J) THROUGH JCARD(JLAST) TO
C KCARD(K) THROUGH KCARD(K+JLAST-J)
C
DIMENSION JCARD(1), KCARD(1)
JEND = JLAST
IF ( J .GT. JLAST ) JEND = J
K1 = K - J
DO 10 JNOW = J, JEND
KNOW = K1 + JNOW
KCARD(KNOW) = JCARD(JNOW)
10 CONTINUE
RETURN
END
FUNCTION NCOMP ( JCARD, J, JLAST, KCARD, K )
C
C COMPARES JCARD(J) THROUGH JCARD(JLAST) WITH KCARD(K)
C THROUGH KCARD(K+JLAST-J), RETURNING -1 IF JCARD IS
C LESS, 0 IF JCARD EQUALS KCARD, AND +1 IF JCARD IS
C GREATER.
C
DIMENSION JCARD(1), KCARD(1)
DATA ICLEAR / "377777777777 /
JEND = JLAST
IF ( J .GT. JLAST ) JEND = J
K1 = K - J
DO 10 JNOW = J, JEND
KNOW = K1 + JNOW
IF ( JCARD(JNOW) .EQ. KCARD(KNOW) ) GO TO 10
JCOMP = JCARD(JNOW) / 2
KCOMP = KCARD(KNOW) / 2
JCOMP = JCOMP .AND. ICLEAR
KCOMP = KCOMP .AND. ICLEAR
IF ( JCOMP .LT. KCOMP ) GO TO 6
C IF NOT EQUAL OR LESS THAN, MUST BE GREATER THAN.
NCOMP = 1
GO TO 20
C
6 NCOMP = -1
GO TO 20
C
10 CONTINUE
NCOMP = 0
C
20 RETURN
END