-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathhunt.f
39 lines (39 loc) · 803 Bytes
/
hunt.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
SUBROUTINE HUNT(XX,N,X,JLO)
DIMENSION XX(N)
LOGICAL ASCND
ASCND=XX(N).GT.XX(1)
IF(JLO.LE.0.OR.JLO.GT.N)THEN
JLO=0
JHI=N+1
GO TO 3
ENDIF
INC=1
IF(X.GE.XX(JLO).EQV.ASCND)THEN
1 JHI=JLO+INC
IF(JHI.GT.N)THEN
JHI=N+1
ELSE IF(X.GE.XX(JHI).EQV.ASCND)THEN
JLO=JHI
INC=INC+INC
GO TO 1
ENDIF
ELSE
JHI=JLO
2 JLO=JHI-INC
IF(JLO.LT.1)THEN
JLO=0
ELSE IF(X.LT.XX(JLO).EQV.ASCND)THEN
JHI=JLO
INC=INC+INC
GO TO 2
ENDIF
ENDIF
3 IF(JHI-JLO.EQ.1)RETURN
JM=(JHI+JLO)/2
IF(X.GT.XX(JM).EQV.ASCND)THEN
JLO=JM
ELSE
JHI=JM
ENDIF
GO TO 3
END