SpectraRust/synspec/extracted/locate.f
2026-03-19 14:05:33 +08:00

27 lines
489 B
Fortran

SUBROUTINE locate(xx,n,x,j,nxdim)
c =================================
c
IMPLICIT REAL*8(A-H,O-Z)
dimension xx(nxdim)
c
jl=0
ju=n+1
10 if(ju-jl.gt.1)then
jm=(ju+jl)/2
if((xx(n).ge.xx(1)).eqv.(x.ge.xx(jm)))then
jl=jm
else
ju=jm
endif
goto 10
endif
if(x.eq.xx(1)) then
j=1
else if(x.eq.xx(n)) then
j=n-1
else
j=jl
endif
return
END