
;+ ***********************************************************************
; NAME:
;	TR_TIME_NRH
;
; PURPOSE:
;	Cette procedure trace une donnee en fonction du temps.
;
; CATEGORY:
;	VISUALISATION.
;
; CALLING SEQUENCE:
;	TR_TIME_NRH, Param, Time
;
; INPUTS:
;	PARAM	Tableau a tracer
;	TIME	Tableau contenant les temps en ms
;
; KEYWORD PARAMETERS:
;	HR_BEG	Heure de debut du trace, debut du fichier par defaut
;	HR_END	Heure de fin du trace, fin du fichier par defaut
;	TITLE	Titre du trace
;	CLAB	Texte, reperrage de la courbe
;	XLAB	Label porte sur l'axe X
;	YLAB	Label porte sur l'axe Y
;	OPLOT	Appel a OPLOT sinon appel a PLOT
;	YLOG	0 Echelle Y logarithmique, 1 echelle lineaire
;	YRANGE		YRANGE de PLOT IDL
;	LINESTYLE	LINESTYLE de PLOT IDL
;	CHARSIZE	Taille des caracteres
;
; OUTPUTS:
;	Describe any outputs here
;
; COMMON BLOCKS:
;	BLOCK1:	Describe any common blocks here. If there are no COMMON
;		blocks, just delete this entry.
;
; PROCEDURE:
;	Cette procedure permet de tracer plusieurs courbes dans le meme cadre
; Pour obtenir plusieurs cadres dans la meme fenetre gerer !P.MULTI
;	Le trace de en couleur se fait en chargeant une nouvelle table de
; couleurs. L'indice de la couleur utilisee est donne par la valeur de 
; LINESTYLE
;
; EXAMPLE:
;	TR_TIME_NRH, Flux, Time, DEB='10:30', FIN='11:10:40', $
;		TITLE= 'date',LINESTYLE=1, YLOG = 1
;	Trace du flux en echelle lineaire
;
; MODIFICATION HISTORY:
;	Ecrit par:J Bonmartin le 30/01/98
;		Le 10/05/99 Limites de traces definis par HR_BEG et HR_END (JB)
;		LE 11/10/00 Rajoute le traitement de la couleur
;			corrige la limite X en lineaire (JB)
;-*******************************************************************

PRO TR_TIME_NRH, Flux, Time, HR_BEG=Hr_beg,HR_END=Hr_end, $
	 TITLE=Title, YRANGE=Yrange,$
	 XLAB =xlab, YLAB=Ylab, CLAB=clab, OPLOT = Oplot, YLOG = Ylog,$
	 LINESTYLE = Linestyle, CHARSIZE= Charsize, PSYM= Psym, $
	 BACKGROUND= Background, COLOR = COLOR

	IND = 0
	INF = (SIZE(Flux))(1)-1
	TVLCT,R,G,B,/GET & INDCOL=N_ELEMENTS(R)-1

IF (NOT KEYWORD_SET(LineStyle)) THEN Linestyle =0

	COL_T = 0 & POS_LABEL= Linestyle
IF NOT KEYWORD_SET(BACKGROUND) THEN BEGIN
		Background = 0
	IF NOT KEYWORD_SET(COLOR) THEN BEGIN
		COL_T=!D.Table_size - 1
		IF !D.NAME EQ 'PS' THEN COL_T=0
	ENDIF ELSE BEGIN
		COL_T= Linestyle+1
		IF Linestyle EQ 0 THEN BEGIN
			COL_T= 1
			IF !D.NAME EQ 'PS' THEN COL_T=0
		ENDIF
		LineStyle = 0
	ENDELSE
ENDIF ELSE BEGIN
		Background=!D.Table_size - 1
	IF NOT KEYWORD_SET(COLOR) THEN BEGIN
		COL_T=0
	ENDIF ELSE BEGIN
		COL_T= Linestyle+1
		IF Linestyle EQ 0 THEN COL_T= 0
		Linestyle = 0
	ENDELSE
ENDELSE

IF NOT KEYWORD_SET(PSYM) THEN Psym= !P.Psym
IF NOT KEYWORD_SET(Yrange) Then Yrange = [MIN(flux),MAX(flux)]
	HTR=LONARR(2)
		HTR[0]= Time[0] & HTR[1] = Time[N_ELEMENTS(Time)-1]
IF KEYWORD_SET(HR_BEG) THEN HTR[0]= hms(HR_BEG)
IF KEYWORD_SET(HR_END) THEN HTR(1)= hms(HR_END)
;IF KEYWORD_SET(HR_BEG) THEN $
;	IF Time(0) LT HMS(Hr_beg) THEN BEGIN
;		IND = TIME_IND(Time, HMS(Hr_beg)) & HTR[0] = Time[Ind]
;	ENDIF ELSE HTR[0] = HMS(Hr_beg)
;IF KEYWORD_SET(HR_END) THEN $
;	IF Time(Inf) GT HMS(Hr_End) THEN BEGIN
;		INF = TIME_IND(Time, HMS(Hr_End)) & HTR[1] = Time[Inf]
;	ENDIF ELSE HTR[1] = HMS(Hr_end)

MILSEC_AXIS, Htr,tickv,tickl,ticks

IF NOT KEYWORD_SET(Charsize) THEN Charsize=0.6 
		IF !P.multi[1] NE 0 THEN $
			Charsize = CHARSIZE / (!p.multi[1]* !p.multi[2])

IF (NOT KEYWORD_SET(CLAB))  THEN Clab = ''
IF (NOT KEYWORD_SET(XLAB))  THEN Xlab = ''
IF (NOT KEYWORD_SET(YLAB))  THEN Ylab = ''
IF (NOT KEYWORD_SET(TITLE))  THEN Title = ''
IF (NOT KEYWORD_SET(YLOG))  THEN Ylog = 0

	Maxc= MAX(flux(ind:inf))
	Minc= MIN(flux(ind:inf))

IF KEYWORD_SET(Oplot) THEN $
	Oplot,time(IND:INF),Flux(IND:INF), Linestyle = linestyle, PSYM= Psym, $
		COLOR= COL_T

IF (NOT KEYWORD_SET(Oplot)) THEN BEGIN
   IF YLOG EQ 0 THEN BEGIN
	IF Yrange(0) EQ 0 AND Yrange(1) EQ 0 THEN BEGIN
		 Yrange(0) =Minc/10 
		 Yrange(1) = Maxc*10
	End
	YSTYLE= 0 &YL=1
   ENDIF	
   IF YLOG NE 0 THEN BEGIN
	IF Yrange(0) EQ 0 AND Yrange(1) EQ 0 THEN BEGIN
		IF Minc GE 0 THEN Yrange(0) =Minc/5 $
			ELSE Yrange(0) = Minc *2 
		IF Maxc GE 0 THEN Yrange(1) = Maxc*2 $
			ELSE Yrange(1) = Maxc/5
	End
	YSTYLE=1 & YL=0	

    ENDIF

    plot,time(IND:INF),Flux(IND:INF), $
	  Xrange=Htr, $
	  Yrange= Yrange, PSYM= Psym, $
 	  XTICKV=tickv, XTICKS= ticks(0), XMINOR= ticks(1), $
	  XTICKNAME= tickl, $
	  YSTYLE = YSTYLE, $
	  BACKGROUND= Background,COLOR = Col_t, $
	  CHARSIZE = 0.4+Charsize, $
	  XTITLE= Xlab, $
 	  YTITLE= Ylab, $
	  TITLE= Title, $
	  YLOG=YL	  
ENDIF

		;Calcul des coordonees des inscriptions
P1 = !P.multi(1) & IF P1 EQ 0 THEN P1=1
P2 = !P.multi(2) & IF P2 EQ 0 THEN P2=1
FENTOT = P1 * P2
NUMFEN = FENTOT - !P.MULTI(0)
NCOL = (Numfen-1) MOD P1
NLIG = (Numfen-1) / P1

DEC = (0.11/ P2) * (1.1 + 0.3 * Pos_Label) 
ycoor=  1.0 / P2 *(P2 - Nlig)$
			 - Dec + (0.002*(P1-1))

Xdeb = 0.24-0.048*P1-0.002*(P2-1)$
			 + (1.0 /P1)* (Ncol)
xend=Xdeb+0.05/P1
	IF KEYWORD_SET (CLAB) THEN BEGIN
	    PLOTS,[Xdeb,Xend], [Ycoor,Ycoor], linestyle= linestyle,/Normal, $
		PSYM= 0, COLOR=Col_t
	    XYOUTS, Xend,Ycoor,+ Clab, Charsize= 0.22+Charsize,/Normal, $
		COLOR=Col_t
	END

       TVLCT , R,G,B   ;restitution de l'ancienne table
END
