PRO RH_INIT_HEADER, $
    ; Entree
	nomfich,  nbfreq,  freq10,  date,  hdeb,	$
	kdeb,  kfin,  itg_lu,  fac_integ,  ch,		$  
	ipolar,  npew ,					$
	imstd, imstf, larg, tb, mmax, mmin,		$
	dpatch_dir,	str_dp_hdr,			$
    ; Sortie
	dsmf,  numcnt,  iunit,  dirdsmf,  errmsg

;+ ***********************************************************************
; NAME :
;	RH_INIT_HEADER
; PURPOSE:
;	Cette procedure cree les fichiers FITS d'images 2D avec leurs
;	  headers sur le repertoire dpatch_dir
;	Utilise par le soft RH seul. N'est plus utilise par le soft des images
;	  composites RH + GMRT.
; CATEGORY:
;	Traitement de fichiers NRH
; CALLING SEQUENCE: 
;	RH_INIT_HEADER, nomfich, nbfreq, freq10, date, hdeb,		$ 
;	    kdeb, kfin, fac_integ, ch, ipolar, npew , npew,	$
;	    imstd, imstf, larg, tb, mmax, mmin,				$
;	    dpatch_dir,							$
;	; Sortie
;	    dsmf,  numcnt, iunit, dirdsmf, errmsg

; INPUTS:
;   Nomfich : nom du fichier a traiter
;   nbfreq, freq10 : nb de frequences et valeurs*10
;   date,hdeb      : date et heure de debut
;   kdeb kfin      : numeros de debut et de fin des images lues dans le 
;			   fichier de donnees (fichier qui peut etre comprime 
;			   ou non). temps_integ = temps_integ
;   fac_integ      : facteur d'integration des donnees RH pour en reduire 
;			   la cadence
;			   
;   ipolar    : 1 fichiers Helio avec polar 
;		  0                sans polar
;   npew      : nb de points en EW et en NS
;   larg	  : largeur de l'image en rayons solaires  4 (ou 6)
;   imstd      : heure de debut  (ms)
;   imstf      : heure de fin    (ms)
;   dpatch_dir : repertoire d'ecriture des fichiers FITS 2D
;   ch	       : str_array(10) donnant la selection des frequences 'Y' ou 'N'
;   tb	       : si tb=1 images donnees en unites de temperature de brillance
;		  sinon en unites de brillance 
;		  par defaut unites de brillance
; OUTPUTS:
;   dsmf      : nom de fichier de sortie
;   iunit     : tableau des numeros d'unite d'ecriture
;   dirdsmf   : tableau des noms precedes du chemin des fichiers FITS
;   errmsg    : message d'erreur si dpatch_dir n'existe pas 
; MODIFICATION HISTORY:
;	Ecrit par A. Bouteille
; 05 feb  2 : ajout de fac_integ a la liste d'entree. Cela sert a ne pas defi-
;		nir des fichiers de sortie inutilement trop gros d'un facteur 
;		fac_integ.
;	      reorganisation de la liste d'arguments.

;-**************************************************************************
; dsmf : nom des fichiers de sortie
; Type du fichier typ1 '1' ou '2'   typ2 'd', 'c', 'i' ou 'q'
    RH_FICH_CTR, $
	nomfich, 	      $	; entree
	path, typ1, typ2	; sortie
    if ((typ2 eq 'd') or (typ2 eq 'i') or (typ2 eq 'q')) then i_comp = 0
	; drapeau de donnees non comprimees.
    if  (typ2 eq 'c') then i_comp = 1	; drapeau de donnees comprimees.
; si donnees brutes le type est 'b'
; le type 'd' est reserve aux donnees decomprimees
    if (typ2 eq 'd') then typ2 = 'b'
    integ=0   
    dsmf=strarr(nbfreq)
    for nf=0,nbfreq-1 do begin
        if ch(nf) eq 'Y' then begin
            dsmf(nf)= rh_name_fits('2',freq10(nf),'h',npew,integ, $
		date, hdeb, typ2)
        endif  
    end
; Calcul du tableau "numcnt" du nombre d'enrgts pour chaque frequence entre 
	;   kdeb et kfin
	; Dans le cas de donnees comprimees en entree, les resultats sont aussi
	;   comprimes en sortie. Il n'y a pas d'integration possible (definie 
	;   par fac_integ dans RH_DPNEW). On ne modifie pas numcnt en sortie de
	;   RH_FRQCNT.
	; Dans le cas de donnees non comprimees on peut integrer par le facteur
	;   fac_integ defini dans RH_DPNEW. On divise ici numcnt en sortie de 
	;   RH_FRQCNT par fac_integ.
    RH_FRQCNT, $
	kdeb, kfin,   $	; entree
	numcnt		; sortie
    if (i_comp eq 0) then numcnt = numcnt / fac_integ
	; On ne fait rien pour des donnees comprimees.
  
;   print,'RH_INIT_HEADER numcnt:', numcnt
    for nf = 0,  nbfreq - 1   do begin
        if (ch(nf) eq 'Y')  then  begin
	    RH_GET_HEADER, nf, dsmf(nf), ipolar, npew, npew,          $
		    ; le "get" est trompeur, ca produit un header.
		imstd(nf), imstf(nf),                                 $
                larg, tb, numcnt(nf), mmax(nf), mmin(nf),             $
                hdr0, hdr1,           $	; sortie
                str_dp_hdr,	      $ ; structure contenant les parametres
                                      $	;  de calcul de l'image.
	 	temps_integ = fac_integ * itg_lu
            dirdsmf(nf) = dpatch_dir + rh_separator() + dsmf(nf)
	;   Ecriture du header primaire
            errmsg = ''
	    FXWRITE, dirdsmf(nf), hdr0, ERRMSG = errmsg
            if errmsg ne '' then begin
                print, errmsg
                return
            endif
	;   Ecriture du header d'extension (UNIT, parametre de sortie, utilise 
	;    ensuite par FXBWRITE pour ecrire les enrgts de la table binaire)
	    FXBCREATE, iu, dirdsmf(nf), hdr1
	    iunit(nf) = iu
        endif
    endfor
    end
