INTEGER*2 FUNCTION ICOMP(NNL,NNR) LOGICAL*1 BUFFER(1) INTEGER*2 TOTLEN,LLEN(9),KEYLOC(9),KEYORD(9),KEYLEN(9) COMMON LPEREC,TOTLEN,LLEN,NKEYS,KEYLOC,KEYORD,KEYLEN COMMON /BUFFER/BUFFER COMMON /COMPAR/NRECSP C C NNL,NNR ARE SUBSCRIPTS IN BUFFER ARRAY OF RECORDS TO COMPARE. C IF RECORD NUMBER 0 IS SELECTED, SUBSCRIPT WILL BE 1-TOTLEN; C IF RECORD NUMBER N+1 IS SELECTED, SUBSCRIPT WILL BE NRECSP; C IF SUBSCRIPT IS -NRECSP, THEN WE ACTUALLY WANT WHAT IS STORED C THERE, NAMELY THE CURRENT COMPARISON KEY RECORD. C C COMPARISON OF ANY REAL RECORD K WITH RECORD 0 AND RECORD N+1 YIELDS: C C #K:WHICH ASCENDING RESULT DESCENDING RESULT C C #0 > (+1) < (+1) C #N+1 < (-1) > (-1) C NL=NNL NR=NNR IF(NL.NE.1-TOTLEN.AND.NL.LT.NRECSP.AND.NR.NE.1-TOTLEN.AND. 1NR.LT.NRECSP)GOTO1000 IF(NL.EQ.NR)GOTO4 I=1 IF(NL.EQ.1-TOTLEN)GOTO5 IF(NL.EQ.NRECSP)GOTO6 IF(NR.EQ.NRECSP)GOTO5 GOTO6 1000 IF(NL.LT.0)NL=-NL IF(NR.LT.0)NR=-NR DO 1 I=1,NKEYS L=KEYLOC(I) N=KEYLEN(I)-1 DO 1 J=L,L+N IF(BUFFER(NL+J)-BUFFER(NR+J))2,1,3 1 CONTINUE 4 ICOMP=0 RETURN 2 ICOMP=-KEYORD(I) RETURN 3 ICOMP=KEYORD(I) RETURN 5 ICOMP=-1 RETURN 6 ICOMP=1 RETURN END