C SUBROUTINE INSRTR. PURPOSE-TO INSERT ONE RECORD IN A FILE C IN ID ORDER C PARAMETERS-IB,IHOW. IB IS TEMPORARY STORAGE FOR EACH RECORD AS IT C IS COPIED. IHOW INDICATES WHETHER FILE IS IN ASCENDING (1) OR C DESCENDING ORDER(-1), RANDOM ORDER(0). C OUTPUTS-IHOW=+1 SUBROUTINE INSRTR(IB,IHOW) DIMENSION IB(1),IPAR(10),IR(260) COMMON IDF,LFR,NAVR,MAXR,NSPR,LSR,LFMT,NCPR,C1,C2 EQUIVALENCE (IPAR(1),IDF) IF(IPAR(3)-IPAR(4))6,6,7 7 TYPE 100 100 FORMAT(9HFILE FULL) CALL DMPPAR CALL EXIT C SAVE COPY OF RECORD TO BE INSERTED 6 IF(10*NSPR.GT.260)GO TO 1 CALL COPYR(IB,IR,10*NSPR) ID=IB(1) C START AT END OF FILE LSR=NAVR-NSPR NR=(NAVR-LFR)/NSPR IF(NR.EQ.0.OR.IHOW.EQ.0)GO TO 14 2 DO 10 I=1,NR CALL DIO(LSR,1,IB,NSPR) IF(IB(1)-ID)11,11,12 13 CALL DIO(LSR+NSPR,0,IB,NSPR) 10 LSR=LSR-NSPR GO TO 14 11 IF(IHOW)13,13,14 14 CALL COPYR(IR,IB,10*NSPR) CALL DIO(LSR +NSPR,0,IB,NSPR) LSR=LSR+NSPR NAVR=NAVR+NSPR RETURN 12 IF(IHOW)14,13,13 1 TYPE 101 101 FORMAT(1X,'RECORD BUFFER IN INSRTR TOO SMALL'/) CALL EXIT END