Index: trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt.pro
===================================================================
--- trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt.pro	(revision 134)
+++ trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt.pro	(revision 142)
@@ -3,295 +3,198 @@
 ;------------------------------------------------------------
 ;+
-; NAME:
-;	PLT
-;
-; PURPOSE:
-;	trace des graphes horizontaux (cartes)
-;
-; CATEGORY:
-;       Graphics, trace des graphes horizontaux
-;
-; CALLING SEQUENCE:
-;	plt, champ [,min[, max]]
-;
-; INPUTS:
-;	champ: le champ dont on veut faire la carte horizontale champ
-;	peut etre de 2 types:
+;
+; @file_comments 
+; Draw horizontal graph (map)
+;
+; @categories 
+; graphic
+;
+; @param TAB1 {in}{required} 
+; The field whose we want to make the horizontal map can be 2 kind of thing:
 ;         1) an array. if needed, its mean along the z and t direction
 ;         will be automatically performed.
-;         2) une structure repondant aux critaire specifies par
+;         2) a structure respecting all criterions specified by
 ;         litchamp.pro. cf. IDL> xhelp,'litchamp'
-;
-; ces ARGUMENTS ne sont pas obligatoires:
 ;  
-;	MAX: valeur maximum que l''on veut prendre en compte dans le trace
-; des contours. Par defaut on prend le max de tab1 (sur les pts mer)
-;
-;	MIN: valeur minimum que l''on veut prendre en compte dans le trace
-; des contours. Par defaut on prend le min de tab1 (sur les pts mer)
-;
-; KEYWORD PARAMETERS:
-;
-;	BOXZOOM:vecteur indiquant la zone geographique sur laquelle doit etre
-; faite la coupe. Si BOXZOOM a :
-; 1 element : l''extraction est faite sur [lon1, lon2, lat1, lat2, 0.,boxzoom[0]]
-; 2 elements: l''extraction est faite sur [lon1, lon2, lat1, lat2, boxzoom[0],boxzoom[1]]
-; 4 elements: l''extraction est faite sur [Boxzoom, 0, max([gdept, gdepw])]
-; 5 elements: l''extraction est faite sur [Boxzoom[0:3], 0, Boxzoom[4]]
-; 6 elements: l''extraction est faite sur Boxzoom
-;
-; Ou lon1, lon2,lat1,lat2 sont les variables globales
-; definies lors du dernier domdef!
-;
-;	REALCONT:Permet de dessiner les continents definits ds IDL. REALCONT
-;	peut prendre deux formes:
-;           /REALCONT: on dessine les continents a la place du mask
-;           REALCONT=2 on dessine le contours des continents par
-;           dessus le dessin masque (ceci permet de voir si le masque
-;           correspond bien aux continents reels).
-;
-;      CB_TITLE: le titre de la colorbar
-;
-;      CB_SUBTITLE: le soustitre de la colorbar
-;
-;      CB_CHARSIZE: The character size of the color bar annotations
-;
-;      CMREF: la longeur en cm sur le papier que doit faire la fleche
-;      de norme normeref. par defaut ajuste au dessin et compris entre
-;      .5 et 1.5 cm
-;
-;        COAST_COLOR: the color of the coastline.
-;                     defaut value is 0 => black
-;
-;        COAST_THICK: the thickness of the coastline.
-;                     defaut value is 1
-;
-;        /CONT_NOFILL: activer pour ne pas remplir les points masques
-;        pour les laisser en transparent! 
-;        Rq: on trace qd meme le contour du mask
-;
-;        CONT_COLOR: the color of the continent. defaut value is
-;        (!d.n_colors - 1) < 255 => white
-;
-;	CONTINTERVALLE: lorsque CONTOUR est active, valeur d'un
-; intervalle entre deux isolignes traces par un trait. Il peut ainsi
-; etre different de celui specifie par INTERVALLE 
-; qui, cas ce cas, ne controle que les isolignes coloriees en
-; couleurs. Si aucun min n''est specifie, on choisit un contour min qui va
-; bien avec l''intervalle specifie!. Si ce mot cle n''est pas
-; specifie, on trace 20 isolignes du min au max. 
-;
-;	CONTLABEL: un entier n. lorsque CONTOUR est active, si n
-; different de 0, choisit le type de label correspondant aux cas n
-; pour les isolignes tracees par un trait. Pour specifier le type de
-; label du contour en couleur, utiliser LABEL
-;
-;	CONTMAX: lorsque CONTOUR est active, valeur maximum que l''on
-; veut prendre en compte dans le trace des isolignes traces par un
-; trait. Par defaut on prend le max (sur les pts mer)
-; du tableau passe ds le mot cle CONTOUR. 
-;
-;	CONTMIN: lorsque CONTOUR est active, valeur minimum que l''on
-; veut prendre en compte dans le trace des isolignes traces par un
-; trait. Par defaut on prend le max (sur les pts mer)
-; du tableau passe ds le mot cle CONTOUR. 
-;
-;	CONTNLEVEL: lorsque CONTOUR est active, nombre de contours
-; trace par un trait a dessiner (actif si
-; CONTLABEL=0) par defaut =20.
-;
-;	CONTOUR: si on veut tracer les contours d'un champ different que celui
-; que l''on dessin en couleur (par ex E-P en couleur et QSR en
-; contours). Doit etre un champ repondant aux meme caracteristiques
-; que l''argument numero 1 de plt
-;
-;       GRIDTYPE:'U','T','V','W' ou 'F' pour specifer eventuellement la
-;       grille a laquelle est rattache le champ. Rq: il afaut mieux
-;       utiliser ds ce cas une structure comme champ
-;
-;	INTERVALLE: valeur d''un intervalle entre deux isolignes. Si
-; aucun min n''est specifie, on choisit un contour min qui va bien
-; avec l'intervalle specifie!. Si ce mot cle n''est pas specifie, on
-; trace 20 isolignes du min au max. Rq: Qd CONTOUR est active
-; INTERVALLE ne specifie que intervalle entre 2 isolignes coloriees en
-; couleur. Pour specifier l''intervalle entre 2 isolignes traces par un trait
-; utiliser CONTINTERVALLE.
-;
-;	/INV: inverse le vecteur couleur utilise pour colorier le graphe
-;             (sans toucher au noir, au blanc et a la palette utilisee)
+; @param PARAM2 {in}{optional}{default=min of tab1 (on ocean points)} 
+; Min value we want to consider in the contour's drawing.
+;         Note: Could also be the type of plot that can be only 'xy' for plt
+;
+; @param PARAM3 {in}{optional}{default=max of tab1 (on ocean points)} 
+; Max value we want to consider in the contour's drawing.
+;         Note: if param2 is defined as 'xy' then param3 is used to define the min (see param2)
+;
+; @param PARAM4 {in}{optional}{default='xy'} 
+; Type of plot (can be only 'xy' for plt).
+;         Note: if param2 is defined as 'xy' then param4 is used to define the max (see param3)
+;
+; @keyword BOXZOOM 
+; Vector indicating the geographic zone on which we want to cut the map. 
+;  If BOXZOOM has :
+; 1 element : The extraction is made on [lon1, lon2, lat1, lat2, 0.,boxzoom[0]]
+; 2 elements: The extraction is made on [lon1, lon2, lat1, lat2, boxzoom[0],boxzoom[1]]
+; 4 elements: The extraction is made on [Boxzoom, 0, max([gdept, gdepw])]
+; 5 elements: The extraction is made on [Boxzoom[0:3], 0, Boxzoom[4]]
+; 6 elements: The extraction is made on Boxzoom
+;
+; Where lon1, lon2,lat1,lat2 are global variables defined at the last domdef!
+;
+; @keyword REALCONT 
+; Allow to draw continents defined in IDL. REALCONT can have 2 form:
+;           /REALCONT: we draww continents in place of the mask
+;           REALCONT=2 we draw cnotinents's contour over the mask (this allows 
+;                      to see if the mask correspond at real continents).
+;
+; @keyword CONTINTERVALLE 
+; When CONTOUR is activated, it is the value between 2 isolines 
+; traced by a trait. So it can be different from the one specified by INTERVALLE which, 
+; in this case, does not control colored isolines in color anymore. If there is noone 
+; specified min, we choose a contour min which goes well with the specified interval! 
+; If this keyword is not specified, we trace 20 isolines from the min to the max. 
+;
+; @keyword CONTLABEL 
+; It is an integer n. When CONTOUR is actvated, if n
+; is different of 0, choose the label type corresponding to n cases for 
+; the traced by a traitisolines. To specify the type of label of the 
+; colored contour, use LABEL
+;
+; @keyword CONTMAX 
+; When CONTOUR is activated, max value we want to consider in the isoline 
+; traced by a trait's line. By default, we take the max (on ocean points) of the array 
+; passed in the keyword CONTOUR. 
+;
+; @keyword CONTMIN 
+; When CONTOUR is activated, min value we want to consider in the isoline 
+; traced by a trait's line. By default, we take the min (on ocean points) of the array 
+; passed in the keyword CONTOUR. 
+;
+; @keyword CONTNLEVEL 
+; When  CONTOUR is activated, it is the numbre of contours
+; traced by a trait for drawing (active if
+; CONTLABEL=0) by default=20.
+;
+; @keyword CONTOUR 
+; If we want to trace contours of a different field than the one 
+; whose we have the colored drawing (by examlpe E-P in color and QSR in contours). 
+; It must be a field respecting same caracteristics than the argument number one of plt.
+;
+; @keyword GRIDTYPE 'U','T','V','W' or 'F' to specify possibly the grid on wiche the field is joined.
+; Comment: In this case, we should use a structure like field.
+;
+; @keyword INTERVALLE 
+; Value of an internal between to isoline. If there is none specified min, 
+; we choose a min contour which goes well with the specified interval!. If this keyword is not 
+; specified, we trace 20 isoline from the min to the max. Comment: When CONTOUR is activated, 
+; INTERVALLE only specify the interval between 2 colored isoline. To specify the interval 
+; between 2 isolines traced by a trait, use CONTINTERVALLE.
+;
+; @keyword INV 
+; Invert the color vector used to color the graph 
+;               (without use the black, the white and the used palette)
 ; 
-;	LABEL: un entier n. si n different de 0, choisit le type de
-; label correspondant aux cas n. cf label.pro
-; Rq: Qd CONTOUR est active, ne specifie le type de label que pour les
-; isolignes coloriees en couleur. Pour celles tracees par un trait
-; utiliser CONTLABEL. 
-;
-;	/LANDSCAPE: oblige la feuille ou le fenetre a l''ecran a etre
-;	en position "allongee".
-;
-;       LCT: entier designant le numero de la palette de couleur que
-;       l''on veut utiliser pour le plot. 
+; @keyword LABEL 
+; It is an integer n. If n different of 0, it choose the label's type 
+; corresponding to cases n. cf label.pro
+; Comment: When CONTOUR is activated, it only specify the label's type for colored isolines. 
+; For tese one traced by a trait, use CONTLABEL.
 ;	
-;       MAP:Mot cle a actine losque l''on veut faire une projection.
-; Ce mot cle peut etre de 2 formes:
-;     MAP=[P0lat,P0lon,Rot]. Pour la description de ces 3 valeurs cf.
-;         l''aide en ligne de MAP_SET.
-;     /MAP: dans ce cas map est calcule tout seul et vaut: 
+; @keyword MAP 
+; We use it when we want to do a projection.
+; This keyword can be of two types:
+;     MAP=[P0lat,P0lon,Rot]. For the descrption of these 3 values (see the online help of MAP_SET).
+;     /MAP: In this case, map is automatically caculated have the value: 
 ;          map = [0, (lon1+lon2)/2., 0]
-; Rq: Un bon moyen de choisir sa projection est la valeur du vecteur
-; MAP est d''utiliser la demo d''IDL5.2:
+; Comment: A good way to choose the type of the projection we want to do is to have a look at IDL demo:
 ; IDL> demo
-; Puis choisir earth sciences et mapping.
-; Rq2: Par defaut c''est une projection cylindrique qui est effectuee
-; (avec ou sans le mot cle map). Si on veut une autre projection MAP
-; doit etre active et il faut rajouter le mot cle: /nom_projection.
-; par ex pour une projection polaire centree sur le pole sud:
+; Then choose earth sciences and  mapping.
+; Comment2: By default it  is a cindrical projection which is effectuated (with or without the keyword map). 
+; If we want an other projection, MAP must be activated and we have to add the keyword: /nom_projection.
+; For example, for a polar projection centered on the south pole:
 ; IDL> domdef,-180,180,-90,-45
 ; IDL> plt, tab, /stereo,map=[-90,0,0]
 ;
-;       labmap: corresponds to label keywords of map_set. Defaut
+; @keyword LABMAP 
+; Corresponds to label keywords of map_set. Defaut
 ;       definition is labmap=1
 ;
 ;
-;       MAXIN: permet de specifier la valeur maximum que l''on veut
-;       prendre en compte dans le trace des contours a l''aide d''un
-;       mot cle plutot que par l''argument max. Si l''argument et le
-;       mot cle sont specifies en meme temps, c''est la valeur
-;       specifiee par le mot cle qui est retenue.
-;
-;       MININ: permet de specifier la valeur minimum que l''on veut
-;       prendre en compte dans le trace des contours a l''aide d''un
-;       mot cle plutot que par l''argument min. Si l''argument et le
-;       mot cle sont specifies en meme temps, c''est la valeur
-;       specifiee par le mot cle qui est retenue.
-;
-;	NLEVEL: nombre de contours a dessiner. par defaut =20. actif si
-; LABEL=0 ou n'est pas specifie.
-;
-;	/NOCOLORBAR: activer si on ne veut pas de colorbar
-;
-;	/NOCONTOUR: activer si on ne veut pas de contour mais juste
-;	les couleurs
-;
-;	/NOFILL: activer si on veut juste les contours en noir et
-;	blanc sur fond blanc
-;
-;       /NOERASE: activer pour faire un dessin a l''ecran sans creer
-;       une nouvelle fenetre
-;
-;      NORMEREF: la norme de la fleche de reference. par defaut on
-;      essaie de faire qqch qui colle pas trop mal!
-;
-;       /NOTRI: pour forcer a ne pas utiliser de
-;       triangulation. Attention dans ce cas le trace ne marchera que
-;       si la grille est non deformee (cad, chaque pts d''une
-;       longitude donnee a la meme latitude et chaque pts d''une
-;       latitude donnee a la meme longitude) sauf si on utilise le mot
-;       clef CELL_FILL=2. Rq si le champ contient des points a
-;       !values.f_nan alors on fait qd meme une triangulation.
-;
-;       OVERPLOT: pour faire un plt par dessus un autre. Rq:
-;       contrairemnet a l''utilisation de CONTOUR ou de VECTEUR,
-;       l''utilisation de ce mot clef ne modifie pas la legende ou/et
-;       la barre de couleur.
-;
-;	PETITDESSIN: vecteur de 3 ou 4 elements, applique pour faire un
-; dessin sur une petite portion de feuille ou d''ecran. il delimite
-; la zone ds laquelle va etre fait le dessin
-; si il a 4 elements:
-;       il est alors constitute des coordonnees -exprime en cm reperes par
-;       rapport au coin en bas a gauche de la feuille ou de la fenetre
-;       (en portrait comme en landscape)- du coin en bas a
-;       gauche et du coin en haut a droite  de la zone de dessin.
-; si il a 3 elements:
-;       Ds ce cas, on divise la fenetre ou l''ecran en PETITDESSIN[0]
-;       colonnes, en PETITDESSIN[1] lignes le dessin se faisant ds la
-;       case numero PETITDESSIN[2].La numerotation commencant en haut
-;       a gauche par le numero 1 et suivant apres dans le sens de
-;       l''ecriture.
-; Par defaut on fait un dessin occupant la plus grande place possible
-; tout en concervant le rapport d''aspect (sauf qd REMPLI est active)
-;
-;	/PORTRAIT: oblige la feuille ou la fenetre a etre en position "debout".
-;
-;	/POST: faire une sortie postscript. Ne marche que si on fait
-;	un seul dessin sur la feuille. Si on fait plusieurs dessins,
-;	utiliser @ps ou plein2dessins
-;
-;	/REMPLI:oblige le dessin a occuper l'espace maximum definit
-;	par petitdessin
-;
-;       /REVERSE_X: pour inverser l''axe des x (et aussi le dessin)
-;
-;       /REVERSE_Y: pour inverser l''axe des y (et aussi le dessin)
-;
-;       /STRICTFILL: activer ce mot clef pour que le remplissage des
-;       contours ce fasse precisement entre le min et le max specifie
-;       en laissant en banc les valeurs inferieurs au min specifie et
-;       superieurs au max specifie.
-;
-;	STYLE: style de tracer a adopter pour dessiner les isolignes par
-; defaut style=0. cf style.pro
-;
-;        UNLABSUR: entier n. specifant qu''on ne labelle qu''un
-;        contour sur n. Par defaut unlabsur=2
-;
-;	/UNSUR2: si on veut tracer un countour sur deux. par  defaut trace
-; tous les contours
-;
-;	/UNVECTSUR:un scalaire n on un tableau a 2 elements [n1,n2].
-;         dans le premier cas, on tracera un vecteur sur n suivant les
-;         x et les y.
-;         dans le second cas on tracera un vecteur sur n1 suivant x
-;         et un vecteur sur n2 suivant y
-;       Rq; pour tracer tous les vecteurs suivant y et 1 sur 2 suivant
-;       x mettre unvectsur=[2,1]
-;       Rq: ce mot cle est passe ds _extra
-;
-;       VECTCOLOR: la couleur de la fleche. Par defaut noir (couleur 0)
-;
-;	VECTEUR: une structure a 2 elements contenant les 2 champs U
-;	et V des valeurs de la composante zonale et meridienne du
-;	champ de vecteurs a tracer. Ces champs peuvent etre un tableau
-;	ou une structure
-;       par ex: vecteur={matriceu:lec('unsurface'),matricev:lec('vnsurface')}
-;       rq:le nom des elements de vecteur n''a aucune importance.
-;       vecteur={u:lec('unsurface'),v:lec('vnsurface')} convient aussi
-;
-;	VECTMIN=norme minimum des vecteurs a tracer 
-;
-;	VECTMAX=norme maximum des vecteurs a tracer 
-;
-;       VECTTHICK; l''epaissuer de la fleche. par defaut 1.
-;
-;	WINDOW: numero de la fenetre ou l'on veut faire le graphe (permet
-; d'ouvrir plusieurs fenetres). par defaut on ouvre 'IDL0'
-;
-;	YXASPECT: rapport d'echelle entre y et x (par ex: =1 pour un repere
-; orthonorme, =2 si l'axe des y est deux fois plus dilate que celui des x).
-; Par defaut on adapte pour occupe une grande partie de la feuille en sortie
-; postScript ou pour cree une fenetre pas trop etiree
-;
-;       /ZEROMIDDLE: fo force the middle of the colorbar to be equal
-;       to 0 (force max=max(abs([min,max])) and min=-max)
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;			7/1999
-;                       Sebastien Masson 08/02/2000 checkfield and
-;                       notri keyword (or triangule = -1) .
+; @keyword MAXIN 
+; Allows to specify the max value we want to consider in the drawing of contour 
+; helping by the keyword instead of the argument max. If the argument and the keyword are 
+; specified in the same time, it is the value specified by the keyword which is retained.
+;
+; @keyword MININ 
+; Allows to specify the min value we want to consider in the drawing of contour 
+; helping by the keyword instead of the argument min. If the argument and the keyword are 
+; specified in the same time, it is the value specified by the keyword which is retained.
+;
+; @keyword NLEVEL 
+; Number of contour to draw by default =20. active if
+; LABEL=0 or is not specified.
+;
+; @keyword NOTRI 
+; To force not to use the triangulation. Beware, in this case, the 
+; drawing only works if the grid is undeformed (It means that each point of a longitude 
+; give one latitude and each point of a latitude give one longitude) exept if we use 
+; the keyword CELL_FILL=2. 
+; Comment: if the field contain points !values.f_nan, then we even do a triangulation.
+;
+; @keyword OVERPLOT 
+; To make a plot over an other one. 
+; Comment: Contrarily to the use of CONTOUR or VECTEUR, the use of this keyword 
+; does not the caption and/or the color bar.
+;
+; @keyword STRICTFILL 
+; Activate this keyword to that the filling of contours be 
+; precisely done between the min and the max specified letting values inferior at the 
+; specified min and values superior at the specified max in white.
+;
+; @keyword STYLE 
+; Contour's style to adopt to draw isolines(by default, style=0. see style.pro)
+;
+; @keyword VECTEUR
+; It is a structure composed by 2 elements containing the 2 fields U
+; and V of values of the zonal and meridian component of the vector of the fields
+; to draw. These fields can be an array or a structure.
+;       For example: vecteur={matriceu:lec('unsurface'),matricev:lec('vnsurface')}
+;       Comment: name of elements of vectors are inconsenquential.
+;       vecteur={u:lec('unsurface'),v:lec('vnsurface')} is also appropriated.
+;
+; @keyword _EXTRA
+; used to pass your keywords
+; 
+; @keyword CONT_NOFILL       
+; Activate it not to fill the point mask to let them transparent! 
+; Comment: Nevertheless, we trace mask's contour.
+; 
+; @keyword USETRI
+; To force using triangulation.
+; 
+; @keyword MASKFILL 
+; 
+; @keyword DUPLICATE
+;
+; @keyword DECIMATETRI
+;
+; @uses
+; common.pro
+;
+; @history 
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+; 7/1999
+; Sebastien Masson 08/02/2000 checkfield and
+; notri keyword (or triangule = -1) .
+; 
+; @version
+; $Id$
+; 
+; @todo seb 
+; Changer param "tab1",keyword "REMPLI", "UNLABSUR", "UNSUR2",
+; "UNVECTSUR"+ quelques trucs dans la routine.
 ;-
 ;------------------------------------------------------------
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-pro plt, tab1, giventype, givenmin, givenmax, REALCONT = realcont, CONTOUR = contour $
+pro plt, tab1, param2, param3, param4, REALCONT = realcont, CONTOUR = contour $
          , INTERVALLE = intervalle, INV = inv, GRIDTYPE = gridtype, BOXZOOM = boxzoom $
          , CONTINTERVALLE = contintervalle, LABEL = label, CONTLABEL = contlabel $
@@ -314,11 +217,11 @@
   ENDIF
 ;--------------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-; I) preparation de l''environnement graphique et petites verifications
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-; I1) verification du type de grille associe a tab1
+  tempsun = systime(1)          ; To key_performance
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+; I) preparation of the graphic environment and small verifications.
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+; I1) verification of the grid's type associated to tab1.
 ;--------------------------------------------------------------
   if keyword_set(gridtype) then vargrid = gridtype
@@ -331,5 +234,5 @@
   ENDIF
 ;--------------------------------------------------------------
-; I2) lecture du champ et checkup.
+; I2) Reading of the field and checkup.
 ;--------------------------------------------------------------
   if keyword_set(boxzoom) AND n_elements(contour) ne 4  then BEGIN
@@ -337,7 +240,7 @@
     saveboxparam, 'boxparam4plt.dat'
   END
-  if n_elements(giventype) NE 0 then type = giventype
-  if n_elements(givenmin) NE 0 then min = givenmin
-  if n_elements(givenmax) NE 0 then max = givenmax
+  if n_elements(param2) NE 0 then type = param2
+  if n_elements(param3) NE 0 then min = param3
+  if n_elements(param4) NE 0 then max = param4
   if n_elements(minin) NE 0 then min = minin 
   if n_elements(maxin) NE 0 then max = maxin
@@ -350,5 +253,5 @@
   IF n_elements(usetri) EQ 0 THEN BEGIN
 ; do we have holes in the triangulation?
-    holeintri = n_elements(triangles_list)/3 LT (jpi-1+keyword_set(key_periodic))*(jpj-1)*2 ; -> the triangulation must be used to draw the data 
+    holeintri = n_elements(triangles_list)/3 LT (jpi-1+keyword_set(key_periodic))*(jpj-1)*2 ; -> the triangulation must be used to draw the field 
 ; do we have a triangulation?
     wehavetri = triangles_list[0] NE -1 ; -> the triangulation must be used to draw the continents
@@ -366,15 +269,15 @@
   ENDIF
 ;--------------------------------------------------------------
-; I3) reinitialisation. !p.,!x.,!y.
-; Rq: on ne reinitialise pas qd on rapelle plt en boucle pour utiliser contour
+; I3) reinitialization. !p.,!x.,!y.
+; Comment: We do not reinitializate when we call bck plt in loop to use contour.
 ;--------------------------------------------------------------
   if n_elements(contour) ne 4 AND NOT keyword_set(overplot) then reinitplt, /z, /invert
 ;---------------------------------------------------------------
-; I4) attribution du mask et des tableaux de longitude et latitude
+; I4) attribution of the mask and of longitude and latitude arrays.
 ;---------------------------------------------------------------
   IF  strupcase(vargrid) EQ 'W' THEN profond = firstzw NE 0 $
   ELSE profond = firstzt NE 0 
 ; do we need to extract now the triangulation that will be use for
-; contouring the data?
+; contouring the field?
   if keyword_set(profond) $
     OR (usetri EQ 0 AND (vargrid EQ 'T' OR vargrid EQ 'W')) $
@@ -389,20 +292,20 @@
   ENDELSE
 ;----------------------------------------------------------------------------
-; I5 determination du mi:min et du ma:max de z2d ainsi que de max: max et
-;    min: min pour le dessin.
+; I5 determination of the mi:min and of the ma:max of z2d in the same way 
+; as max: max and min: min for the drawing.
 ;-----------------------------------------------------------------------------
   masknan = finite(z2d)
   nan = total(masknan) NE n_elements(z2d) 
-; faudra-t-il faire un autoscale ???
+; Do we need to do an autoscale ???
   autoscale = testvar(var = min) EQ testvar(var = max) AND NOT keyword_set(intervalle)
   determineminmax, z2d, mask, mi, ma, glam, gphi, MININ = min, MAXIN = max $
     , nan = nan, INTERVALLE = intervalle, usetri = usetri, _extra = ex
   if z2d[0] EQ -1 THEN GOTO, sortie
-; on fait un autoscale si besoin
+; We do an autoscale if needed.
   if autoscale then autoscale, min, max, intervalle
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
-; II) mise en place du dessin sur la fenetre ou la page et ouverture
-; eventuelle de la fenetre et de la page
+; II) We put the drawing in its place on the window or the page 
+; and possible opening of the window or of the page.
 ;--------------------------------------------------------------
   if n_elements(contour) NE 4 AND NOT keyword_set(overplot) THEN $
@@ -411,10 +314,10 @@
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
-; III) habillage du dessin (labels,style,axe)
-;------------------------------------------------------------
-;--------------------------------------------------------------
-;
-;--------------------------------------------------------------
-; III1) choix des labels
+; III) Covering of the drawing (labels,style,axis)
+;------------------------------------------------------------
+;--------------------------------------------------------------
+;
+;--------------------------------------------------------------
+; III1) Choice of labels
 ;-----------------------------------------------------------
   if keyword_set(intervalle) AND NOT keyword_set(label) then label = 1
@@ -423,5 +326,5 @@
     , INTERVALLE = intervalle, strictfill = strictfill
 ;--------------------------------------------------------------
-; III2)choix de style
+; III2) Choice of style
 ;-----------------------------------------------------------
   if not keyword_set(style) then style = 0
@@ -429,5 +332,5 @@
   if keyword_set(inv) then colnumb = reverse(colnumb)
 ;-----------------------------------------------------------
-; III3) definition des axes
+; III3) Definition of axis
 ;----------------------------------------------------------
   if NOT keyword_set(overplot) THEN axe, 'xy', _EXTRA = ex
@@ -435,9 +338,9 @@
 ;--------------------------------------------------------------
 ;------------------------------------------------------------
-; IV) dessin
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-; extrapolation des donnees sur les terres et seuillage
+; IV) Drawing
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+; extrapolation of field on lands and setup of min, max values
 ;--------------------------------------------------------------
   if keyword_set(nan) then begin
@@ -464,10 +367,9 @@
 ; nan values.
 ;---------------------------------------------------------- 
-; si on fait un dessin en profondeur on redefinit une triangulation
-; sur le zoom, cette triangulation sera utilisee pour tracer le
-; champ. on utilise tmask pour que les trous de cette triangulation
-; soient bien les memes que ceux utilises pour tracer le
-; masque et correspondent bien au trous qu''il y a a cette nouvelle
-; profondeur.
+;If we make a drawing in depth, we redifine a triangulation 
+; on the zoom , this triangulation will be used to trace the 
+; field. We use tmask in order to holes of this triangulation 
+; are the same than these used for the mask and correspond to 
+; holes there is in this new depth.
   if (keyword_set(profond) OR keyword_set(cont_nofill)) $
     AND ((usetri GE 1 AND (vargrid EQ 'T' OR vargrid EQ 'W')) $
@@ -491,9 +393,8 @@
     glammsk = glam
     gphimsk = gphi
-  ENDIF ELSE begin
-; decoupe terre: pour que le trace des cotes soit propre on essaye de
-; prendre des points en + pour la terre comme ca on ne voit pas le
-; decalage des grilles. c''est ce que fait decoupeterre. au passage on
-; redefinit trimsk.
+ENDIF ELSE begin
+; decoupe terre: For the drawing of the coast be clean, we try to take additionally 
+; points for the land. Like that, we do not see grid's gap. It is what decoupeterre 
+; do. We profit of it to redefine trimsk.
     decoupeterre, mask, glammsk, gphimsk, type = 'xy'$
       , TRI = trimsk, usetri = usetri, indicezoom = indicezoommask $
@@ -502,9 +403,9 @@
   ENDELSE
 ;------------------------------------------------------------
-; IV1) choix du type de dessin
+; IV1) Choice of type of drawing.
 ;------------------------------------------------------------
   typetrace = 'classique'
   if keyword_set(map) AND key_onearth then BEGIN 
-; appelle de mapset qd on veut faire des projections
+; Call of  mapset when we want to do projections.
     IF n_elements(map) NE 3 THEN map = [0, ((lon1+lon2)/2.) MOD 360, 0]
     typetrace = 'projection'
@@ -526,11 +427,10 @@
     endif
   ENDIF ELSE BEGIN 
-;pour que les axes de coordonees soient pris en compte
+;To axes of coordinates be considerated.
     if !x.type EQ 0 AND n_elements(contour) LE 4 then $
       plot, [0], [0], /nodata, xstyle = 5, ystyle = 5, title = '', subtitle = '', /noerase 
     if keyword_set(key_periodic) then BEGIN
-; ds ce cas la triangulation est refermee en x et couvre toute la
-; sphere. il faut dont la couper au niveau ou l''on coupe la sphere
-; pour faire le dessin
+; In this case, triangulation is closed in x and cover all the sphere. 
+; We have to cut it at the level where we cut the sphere to make the drawing.
       if n_elements(trifield) GE 2 then trifield = ciseauxtri(trifield, glam, gphi, _EXTRA = ex)
       if n_elements(trimsk) GE 2 then trimsk = ciseauxtri(trimsk, glammsk, gphimsk, _EXTRA = ex)
@@ -539,5 +439,5 @@
   endelse
 ;------------------------------------------------------------
-; IV2) coutours et coloriages
+; IV2) Contours and coloring
 ;------------------------------------------------------------
   if keyword_set(duplicate)  then BEGIN
@@ -557,5 +457,5 @@
 ; save, glam, gphi, trifield, file = 'tri.dat'
   if keyword_set(decimatetri) then BEGIN
-    tempsdeux = systime(1)      ; pour key_performance
+    tempsdeux = systime(1)      ; To key_performance
     IF n_elements(trimsk) EQ 0 THEN trimsk = trifield
     Verts = transpose([[(temporary(glam))[*]], [(temporary(gphi))[*]] $
@@ -584,5 +484,5 @@
     , masknan = masknan, trinan = trinan, _extra = ex
 ;------------------------------------------------------------
-; IV3) rappelle de plt en boucle qd contour est active
+; IV3) Recall of plt in loop when contour is activated.
 ;------------------------------------------------------------
   if n_elements(contour) eq 4 then BEGIN ; c''est la 2eme fois que je passe ds pltt
@@ -604,10 +504,10 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; V) petites finitions
-;------------------------------------------------------------
-;------------------------------------------------------------
-;
-;------------------------------------------------------------
-; V1) ajout eventuel de vecteurs en surimpression
+; V) Small functions
+;------------------------------------------------------------
+;------------------------------------------------------------
+;
+;------------------------------------------------------------
+; V1) Possible add of vectors in double exposure.
 ;------------------------------------------------------------
   if keyword_set(vecteur) then BEGIN 
@@ -619,10 +519,9 @@
   if keyword_set(overplot) then GOTO, fini
 ;------------------------------------------------------------
-; V2) Trace de la ligne de changement de date,l'equateur et
-; le meridien de greenwich, ...
+; V2) Trace the line of change of date, the equator and the greenwich meridian, ...
 ;------------------------------------------------------------
   if NOT keyword_set(map) AND key_onearth then meridienparallele, 'xy'
 ;------------------------------------------------------------
-; V3) pour tracer les continents d'IDL
+; V3) To trace IDL's continents
 ;------------------------------------------------------------
   if keyword_set(realcont) then BEGIN
@@ -647,9 +546,9 @@
   ENDIF
 ;------------------------------------------------------------
-; V4) legendes + affichage de celles-ci
+; V4) caption + display of these.
 ;------------------------------------------------------------
   legende, mi, ma, 'xy', CONTOUR = pourlegende, VECTLEGENDE = vectlegende, INTERVALLE = intervalle, DIREC = direc, _EXTRA = ex
   if n_elements(ex) NE 0 then BEGIN 
-; pour garder les axes du cadre en noir
+; To keep frame's axes in black
     if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = coast_color
   endif
@@ -681,5 +580,5 @@
   endcase
 ;------------------------------------------------------------
-; V5) barre de couleur
+; V5) Colorbar.
 ;------------------------------------------------------------
   colnumb = colnumb[0:ncontour-1-keyword_set(strictfill)]
@@ -688,5 +587,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; VI) impression eventuelle
+; VI) Possible print.
 ;------------------------------------------------------------
 ;------------------------------------------------------------
