C DSMBS - BINARY SEARCHTABLE LOOK-UP C C 11/21/79 LEN - ADDED NWSTAT TO INDICATE SIZE OF ISTAT RECORD C CHANGED SO IT IEN = 0 THEN IT'S THE FIRST TIME OUT C 01/28/81 LEN - BUG IN ERROR CHECKING ON NUMBER OF UIC'S C ALLOWED IN ISTAT TABLE! C C SUBROUTINE DSMBS (ISN, IEN, JSOL, NER) INCLUDE 'DSMCM.COM/NOLIST' C IF (IEN .EQ. 0) GO TO 60 ILO = ISN - 1 IHI = IEN + 1 C 5 IMI = (ILO + IHI)/2 IF (ILO - IMI) 7, 40, 7 7 CONTINUE IF (ICMP (NUIC, ISTAT(1,IMI))) 10, 50, 30 10 IHI = IMI GO TO 5 30 ILO = IMI GO TO 5 40 JSOL = IMI + 1 IF (IEN+1 .GT. MAXUIC) GO TO 70 DO 45 I=IEN, JSOL, -1 45 CALL SIVMV (ISTAT(1,I), ISTAT(1,I+1), NWSTAT) ISTAT(1,JSOL) = NUIC CALL SIVFL (0, ISTAT(2,JSOL), NWSTAT-1) IEN = IEN + 1 GO TO 80 C 50 CONTINUE JSOL = IMI GO TO 80 C 60 CONTINUE JSOL = 1 IEN = 1 ISTAT(1,JSOL) = NUIC GO TO 80 C C OVER MAXIMUM NO. OF UIC SPACE C 70 CONTINUE NER = NER + 1 C 80 CONTINUE RETURN END