
;+ ***********************************************************************
; NAME:
;	NRH_FOPEN
;
; PURPOSE:
;	Cette procedure ouvre un fichier pour le logiciel de traitement NRH
;
; CATEGORY:
;	Fichiers.
;
; CALLING SEQUENCE:
;	NRH_FOPEN, File, Str_fic, Str_lim, Physpar, Lfreq
;
; INPUTS:
;	FILE	Nom du fichier
;
; KEYWORD PARAMETERS:
;	Non
;
; OUTPUTS:
;	STR_FIC	Structure d'information sur le fichier (NRH_STR_INFIC)
;		Cette structure doit etre cree avant l'appel
;	STR_LIM Structure de limites de traitement (NRH_STR_LIM)
;		Cette structure doit etre cree avant l'appel
;	PHYSPAR	Liste des parametres physiques contenus dans le fichier
;		STOKESI et STOKESV pour le NRH2D, c'est cette liste qui 
;		est affichee pour le choix d'image
;	LFREQ	Liste des frequences ou longueurs d'ondes contenues dans
;		le fichier (nulle pour le moment) 
;
; COMMON BLOCKS:
;	Non
;
; SIDE EFFECTS:
;	Cette procedure initialise la structure NRH_STR_INFIC, et
;	reinitialise la structure NRH_STR_LIM. Les limites de traitement
;	sont reinitialisees avec les valeurs contenues dans le fichier
;
; RESTRICTIONS:
;	Les structures NRH_STR_INFIC et NRH_STR_LIM doivent exister avant
;	l'appel
;
; PROCEDURE:
;	Cette procedure lit les informations dans les header et remplit les
;	structures. Elle utilise le mot cle FITS: INSTRUME pour selectionner
;	la procedure appelee. Liste des instruments reconnus:
;		NRH2
;	Le fichier reste ouvert pour pouvoir effectuer des lectures par les
;	routines FX.....
;
; EXAMPLE:
;	Please provide a simple example here
;
; MODIFICATION HISTORY:
;	Ecrit par:J Bonmartin (obspm.fr) le 24/08/98
;       05/12/02 : lecture des donnees du GMRT (issues de AIPS) 
;-*******************************************************************



PRO NRH_FOPEN, File, Str_inf2d, Str_lim, Physpar, Lfreq

LFREQ = ''
PHYSPAR = ['','']

	IF File EQ '' THEN Return
CHAMP = Str_sep( File, '.')
EXTEN = Champ((size(champ))(1)-1)

IF Exten EQ 'fts' OR Exten EQ 'fits' THEN BEGIN	;Fichiers FITS
	H = HEADFITS(file)

	Str_inf2d.INSTRUME = STRCOMPRESS(FXPAR(h,'INSTRUME'),/REMOVE_ALL)
    	Str_inf2d.CONTENT = STRCOMPRESS(FXPAR(H, 'NRH_DATA'),/REMOVE_ALL)

   IF Str_inf2d.INSTRUME NE 'NRH2' AND Str_inf2d.INSTRUME NE 'HSSI' THEN $

;	******Entrer les instruments FITS non STANDARD SOHO******
   IF Str_inf2d.INSTRUME EQ 'GMRT' THEN  $
            FOPEN_STD_GMRT, File, Str_inf2d	ELSE $ 
;	Instruments au STANDARD SOHO
	    FOPEN_STD_SOHO, File, Str_inf2d		 ;FITS STANDARD SOHO 

   IF Str_inf2d.INSTRUME EQ 'NRH2' OR Str_inf2d.INSTRUME EQ 'HSSI' THEN $
				FOPEN_NRH2, File, Str_inf2d, Physpar
END

IF Exten EQ 'gif' THEN BEGIN		;Fichiers GIF
		FOPEN_GIF,File, Str_inf2d
END
IF Exten EQ 'png' THEN BEGIN		;Fichiers PNG
		FOPEN_PNG,File, Str_inf2d
END
IF Exten EQ 'jpg' THEN BEGIN		;Fichiers PNG
		FOPEN_JPG,File, Str_inf2d
END

IF Exten NE 'fts' AND Exten NE 'gif' AND Exten NE 'png' AND Exten NE 'fits' AND Exten NE 'jpg' THEN $ ;Suppose YOHKOH
		FOPEN_YOHKOH, File, Str_inf2d

;	PARTIE COMMUNE A TOUS LES INSTRUMENTS
;		INITIALISATION DE STR_LIM
		Str_lim.xd = 0 & Str_lim.yd = 0
		Str_lim.xf = Str_inf2d.npx-1
		Str_lim.yf = Str_inf2d.npy-1

		Str_lim.Hd = Str_inf2d.hd
		str_lim.hf = str_inf2d.hf

END
