;---------------------------------------------------------------------
;                            rh_hdeb
;---------------------------------------------------------------------
; Determine klu pour l'heure demandee. 
;
; CALLING SEQUENCE: 
;       rh_hdeb, heur, klu, heurlu 
; 
; INPUTS:
;       heur : 		heure cherchee			intarr(4)
;
; OUTPUTS: 
;	klu: 		no d'acquisition correspondant a l'heure cherchee 
;	     		= -1L si heure non trouvee
;	heurlu:		heure correspondant a klu
;
; COMMON BLOCKS: 
;       RH 
; HISTORY      :
;   19 mars 2002 : klu est le numero de l'image de frequence 0
;       dont l'heure est immediatement superieure a l'heure demandee.
;-----------------------------------------------------------------------  

FUNCTION rh_hdeb_ctr, h, hmini
  RETURN, h + 8640000L * ( h LT long(hmini))
END

PRO rh_hdeb, heur, klu, hlu

@rh_common.inc

  hlu = intarr(4)
  hdeb = rh_hcent(entFI.hdeb)             ; heure en ct de sec
  h    = rh_hdeb_ctr(rh_hcent(heur),hdeb) ; verif passage 24 heures
  klu  = (LONG((h-hdeb)*10./entfi.itg))   ; num d'image
  IF sFI.mode EQ 0 THEN klu = long(klu*entFI.nf)
                   ; SFI.mode = 0 lecture image par image
                                ; SFI.mode = 1 lecture du jeu d'images
                                ; des differentes freq. 
  klu  = klu > 0L < entfi.klumax

  hlu = rh_readh(klu)
;print,'rh_hdeb avant reajustages',klu ,hlu
;stop
;  IF klu EQ entFI.klumax OR klu EQ 0 THEN BEGIN
;     hlu = rh_readh(klu)
;     RETURN
;  ENDIF
  hluc = rh_hdeb_ctr(rh_hcent(RH_READH(klu)), hdeb)

;Ajustement si l'heure lue est trop grande
  IF sFI.mode EQ 1 then kdl = 1L else kdl = long(entFI.nf)
                                ; en lecture image/image la recherche
                                ; d'heure s'effectue par jeu d'images
  WHILE ( hluc GT h ) DO BEGIN
        KLU = (KLU-kdl) > 0
        hluc = rh_hdeb_ctr(rh_hcent(RH_READH(klu)), hdeb)
  ENDWHILE
  
;Ajustement si l'heure lue est trop petite

  IF hluc LT h THEN BEGIN
    WHILE ( hluc LT h ) DO BEGIN
          klu = (klu+kdl) < entFI.klumax
          hluc = rh_hdeb_ctr(rh_hcent(RH_READH(klu)), hdeb)
    ENDWHILE
;    klu = (klu-kdl) > 0L    ; suppression du recul de kdl images pour
;    commencer avant l'heure demandee
  ENDIF
; Dans le cas de la lecture image par image il faut renvoyer un 
; numero d'image de frequence zero
  IF sfi.mode EQ 0 THEN BEGIN
      RH_READB, klu             
      IF (bfi.nof NE 0) THEN BEGIN
          klu = klu - bfi.nof
          IF klu LT 0L THEN klu = klu +entfi.nf
      ENDIF
  ENDIF
  klu  = klu > 0L < entfi.klumax 

  hlu = RH_READH(klu)
;print,'rh_hdeb apres reajustages',klu ,hlu
;stop
  RETURN
END
