PRO RH_LECDEB, msd, msf, kdeb, kfin
;+ recherche des numeros de record a lire
; msd	: heure de debut demandee en millisec
; msf	: heure de fin demandee en millisec
; kdeb	: numero de la 1ere image a lire
; kfin	: numero de la derniere image a lire
;  22-07-1998 : nouvelles routines rh_read pour extension NS24
;-
    @rh_common.inc
    temp=[3600000L,60000L,1000L,10L]
    hdeb=lonarr(4)&hfin=lonarr(4)
    klu=0L
    RH_READ, KLU
    msdeb=(transpose(temp)#bfi.h)(0)
    hdeb=bfi.h
    klumax=entfi.klumax
;print,klumax,'klumax',entfi.itg,' itg'
    klu=klumax
    RH_READ, klu
    msfin=(transpose(temp)#bfi.h)(0)+ bfi.c*entfi.itg
    hfin=bfi.h
;help,msdeb,msd
    if msf lt msdeb then begin
        print,hdeb, $
    format='(" heure fin demandee < heure debut de fichier ",4i4.2," STOP")'
        stop
    endif
    if msd gt msfin then begin
       print,hfin, $
    format='(" heure debut demandee > heure fin de fichier ",4i4.2," STOP")'
       stop
    endif
; recherche heure de debut
    if msd le msdeb then begin
        kdeb=0L
        goto,apres
    endif
;if entfi.comp eq 1 then msd=msd-255*entfi.itg
    kluc=klumax/2L
    kint=klumax/2L

BOUCLE:

    klu=kluc
    RH_READ, klu
    mslu=(transpose(temp)#bfi.h)(0)+(bfi.c(0)+1)*entfi.itg
;print,kluc,kint,mslu,msd,bfi.c(0),bfi.nof(0)
;stop
    kint=kint/2l
    if mslu gt msd then begin
        kluc=kluc-kint
    end else begin
        if msd-mslu lt 10*entfi.itg or kint le 20l then begin
            kdeb=kluc
            hdeb=bfi.h
	    goto,suite
        endif
       kluc=kluc+kint
    endelse
    goto,boucle

SUITE:

; print,' suite:kluc,kint',kluc,kint
; recherche sequentielle pour finir
; print,'debut:recherche sequentielle pour finir'

BCL:
    kluc=kluc+1L
    hdeb=bfi.h
    klu=kluc
    RH_READ, klu
    mslu=(transpose(temp)#bfi.h)(0)+(bfi.c(0)+1)*entfi.itg
;print,kluc,kint,mslu,msd,bfi.c(0),bfi.nof(0)
    if mslu lt msd then goto,bcl
;print,'bc',kluc
    kdeb=kluc-1L 

APRES: 
    if msf eq msd then begin
	kfin = kdeb
        goto, suite2
    endif
;print,' debut heure, num d''image:',hdeb,kdeb
;
; recherche heure de fin
;
    if msf ge msfin then begin
        kfin=klumax
        goto,suite2
    endif
    kluc=klumax/2L
    kint=klumax/2L

BOUCLE2:

    klu=kluc
    RH_READ, klu
    mslu=(transpose(temp)#bfi.h)(0)+(bfi.c(0)+1)*entfi.itg
;print,kluc,kint,mslu,msf,bfi.c(0),bfi.nof(0)
    kint=kint/2L
    if mslu lt msf and kint gt 0 then begin
        kluc=kluc+kint
    end else begin
        if mslu-msf lt max([ 1000l,entfi.itg]) or kint le 20l then begin
            klu=kluc+1L
            RH_READ, klu
;print,kluc,kint,mslu,msf,bfi.c(0),bfi.nof(0)
            kfin=klu
            hfin=bfi.h
	    goto,suite2
        endif
        kluc=kluc-kint
    endelse
    goto,boucle2

SUITE2:

;print,' suite2:kluc,kint',kluc,kint
;print,'heure de fin, num d''image',hfin,kfin
    end

 




