
;+ ***********************************************************************
; NAME:
;	NRHRCALIBRATION
;
; PURPOSE:
;	Cette procedure calcule la calibration de toutes les frequences
;	observees et enregistre les resultats dans unfichier
;
; CATEGORY:
;	Routines
;
; CALLING SEQUENCE:
;	NRHRCALIBRATION, File
;
; INPUTS:
;	FILE	Nom du fichier contenant l'observation de calibration
;	
; KEYWORD PARAMETERS:
;	REPERT	Repertoire d'ecriture du fichier de coefficients de 
;		calibration
;	HDEB	Heure de debut du calcul de calibration (voir NRHR_CAL)
;	DUREE	Duree de l'intervalle de calibration en secondes (42)
;	CALIB	Tableau des coefficients de calibration
;
; OUTPUTS:
;	Fichier de calibration
;		Ce fichier contient le nombre de frequences calibrrees (I*4)
;		le tableau de calibration [4001, 10]en FLOAT
;			1ere valeur Numero de la frequence
;			4000 valeurs de calibration. 
;	Si le nombre de frequences est inferiur a 10, seules les N 1eres 
;	colonnes sont 
;	remplies].
;		Le nom du fichier de calibration est
;			calibration.bin
;	Il est possible d'avoir le nom de fichier suivant:
;			nrot_yymmjj_hhmmss.cal
;	l'heure etant l'heure de debut de l'intervalle de calibration
;
; COMMON BLOCKS:
;	Non
;
; MODIFICATION HISTORY:
;	Ecrit par:J Bonmartin le 22/02/01
;		mise au point le 27/03/01
;-*******************************************************************

PRO NRHRCALIBRATION, File, REPERT=Repert, HDEB=Hdeb, DUREE= Duree, $
	CALIB = Tcal , TEST= Test

IF NOT KEYWORD_SET(REPERT) THEN $
			CD, CURRENT= Repert
	Sep = '/'
		IF !VERSION.OS_FAMILY EQ 'Windows' THEN Sep= '\'
	IF STRMID(Repert, STRLEN(Repert)-1,1) NE Sep THEN $
		Repert= Repert+sep

IF NOT KEYWORD_SET(DUREE) THEN Duree= 42    ;duree de la calibration en sec
IF NOT KEYWORD_SET(HDEB) THEN Hdeb=0

HD0= HEADFITS(File)
	Nfreq = FXPAR(Hd0, 'NFREQ')
	TCAL = FLTARR(4001, Nfreq)
	Lfreq = NRHR_LFREQ(Hd0)

FOR I= 0, Nfreq-1 DO BEGIN
		IFREQ= FLOAT(Lfreq[I])
		PRINT,'Frequence', I,Ifreq,'MHz'
	IF NOT KEYWORD_SET(TEST) THEN BEGIN
		NRHR_CAL, File, I, Tab,TIME_STAR= Tstart, HDEB=Hdeb, $
			DUREE=Duree
		Tcal[0,I] = Ifreq
		Tcal[1:4000,I]= Tab
	ENDIF ELSE BEGIN
		Res= DIALOG_MESSAGE('Frequence:'+String(Ifreq)+' MHz',$
						/QUESTION)
		IF Res EQ 'No' THEN RETURN
		NRHR_CAL, File, I, Tab,TIME_STAR= Tstart, HDEB=Hdeb, $
			/PLOT, DUREE=Duree
		IF I EQ NFREQ-1 THEN BEGIN
			Res= DIALOG_MESSAGE('Fin de calibration')
		RETURN & ENDIF
	ENDELSE
ENDFOR

IF NOT KEYWORD_SET(TEST) THEN BEGIN
	HFILE= STRMID(Tstart,0,2)+STRMID(Tstart,3,2)+STRMID(Tstart,6,2)
		NCHAR= STRLEN(File)
	FNOM= STRMID(File,Nchar-24,14)+Hfile+'.cal'
  FNOM='calibration.bin'
	OPENW, Unit, Repert+Fnom, /GET_LUN, VAX_FLOAT
	WRITEU, Unit, Nfreq, Tcal
	CLOSE, Unit
	FREE_LUN, Unit

ENDIF

END