Initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
SUBROUTINE hunt(xx,n,x,jlo)
|
||||
INTEGER jlo,n
|
||||
REAL x,xx(n)
|
||||
INTEGER inc,jhi,jm
|
||||
LOGICAL ascnd
|
||||
ascnd=xx(n).ge.xx(1)
|
||||
if(jlo.le.0.or.jlo.gt.n)then
|
||||
jlo=0
|
||||
jhi=n+1
|
||||
goto 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
|
||||
goto 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
|
||||
goto 2
|
||||
endif
|
||||
endif
|
||||
3 if(jhi-jlo.eq.1)then
|
||||
if(x.eq.xx(n))jlo=n-1
|
||||
if(x.eq.xx(1))jlo=1
|
||||
return
|
||||
endif
|
||||
jm=(jhi+jlo)/2
|
||||
if(x.ge.xx(jm).eqv.ascnd)then
|
||||
jlo=jm
|
||||
else
|
||||
jhi=jm
|
||||
endif
|
||||
goto 3
|
||||
END
|
||||
Reference in New Issue
Block a user