Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/testinterp.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/testinterp.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/testinterp.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/curl.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/curl.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/curl.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Calculate the vertical component of the curl of a field of horizontal vectors
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_curl">
 
-	  <h2><a class="top" href="#container">top</a>curl </h2>
+	  <h2><a class="top" href="#container">top</a>curl <span class="categories">
+ Calculation on matrixes
+ </span></h2>
 	
 	  <p class="header">
@@ -717,49 +721,9 @@
 	
 	  <div class="comments">
- NAME:curl
-
- PURPOSE:calcule la composante verticale du rotationnel d''un champ
- de vecteur horizontaux
-
- CATEGORY:calcule sur les matrices
-
- CALLING SEQUENCE:res=curl(u,v)
-
- INPUTS:
-       u et v deux matrices representant les coordonnes d''un
-       champ de vecteur
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res: une matrice 2d
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
- les matrices u et v peuvent de 2 a 4 dimensions.
- attention pour distinger les differents configurations de u et v
- (xy, xyz, xyt, xyzt), on regarde la variable du common 
-        -time qui contient le calendrier en jour julien d''IDL auquel
-        se rapportent u et v ansi que la variable 
-        -jpt qui est le nombre de pas de temps a considerer ds time.
- les tableaux u et v sont decoupes sur le meme domaine
- geographique. A cause du decalage des grilles T, U, V et F il est
- possiible que ces 2 tableaux n''aient pas la meme taille et se
- repportent a des indices differents. Si tel est le cas les tableaux
- sont redecoupes sur les indices qu'ils ont en commun et le dommaine
- est redefinit pour qu'il colle a ces indices communs.
- pour eviter ces redecoupes utiliser le mot cles /memeindice ds
- domdef.pro
-
-
- les points sur le bord du dessin sont mis a !values.f_nan 
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> RES
+ A 2d matrix
+</div>
 
 	  
@@ -778,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Matrix representing coordinates of a field of vectors
+</div>
 	    
 	    <h4 id="_curl_param_vv">vv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -791,5 +757,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ Matrix representing coordinates of a field of vectors
+</div>
 	    
 
@@ -799,20 +767,39 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ U and V matrixes can be 2 or 4d.
+ Beware, to discern differents configuration of U and V (xy, xyz, xyt, xyzt), 
+ we look at the variable of the common 
+        -time which contain the calendar in IDL julian days to which U and 
+ V refered to, in the same way as the variable 
+        -jpt which is the number of time's step to consider in time.
+ U and V arrays ae cut in the same geographic domain. Because of the gap of 
+ T, U, V and F grids, it is possible that these two arrays hase not the same 
+ size and refered to different indexes. In this case, arrays are recut on 
+ common indexesand the domain is redifined to match with these common 
+ indexes. To avoid these recuts, use the keyword /memeindice in domdef.pro
+
+
+ Points on the drawing edge are at !values.f_nan 
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2floatlevel.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2floatlevel.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2floatlevel.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Rather comparable to depth2level but here, the calculated level is in float. 
+ For example, the level 5.4 correspond to a depth equal 
+ to gdep[5]+.4*(gdep[6]-gdep[5])
+</div>
 
       
@@ -711,44 +715,16 @@
 	<div class="routine_details" id="_depth2floatlevel">
 
-	  <h2><a class="top" href="#container">top</a>depth2floatlevel </h2>
+	  <h2><a class="top" href="#container">top</a>depth2floatlevel <span class="categories"> 
+ Without loop.
+</span></h2>
 	
 	  <p class="header">
 	    <span class="result">result = </span>depth2floatlevel(<span class="result"><a href="#_depth2floatlevel_param_tab">tab</a></span>, <a href="#_depth2floatlevel_keyword_NOMASK">NOMASK</a>=<span class="result">NOMASK</span>)</p>
 	
-	  <div class="comments">
- NAME:depth2floatlevel
-
- PURPOSE: assez comparable a depth2level mais ici le niveau calcule
- est en float. Par ex le niveau 5.4 correspond a une profondeur egale
- a gdep[5]+.4*(gdep[6]-gdep[5])
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE:res=depth2floatlevel(depth2d)
- 
- INPUTS: depth2d tableau 2d de profondeur (ou une structure repondant
- aux criteres de litchamp)
-
- KEYWORD PARAMETERS: 
-       /NOMASK: pour ne pas masquer les points terres
-
- OUTPUTS: un tableau 2d de float contenant les valeurs des niveaux.
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:accepte les vcaleurs a !values.f_nan et masque les
- points terres a valmask.
-
- RESTRICTIONS:
-
- EXAMPLE:
-
-    IDL> a=(jpk-1)/(1.*jpi*jpj)*findgen(jpi,jpj)
-    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
-
-  ->champ nul a 1e-6 pres
-</div>
-
-	  
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="preformat">
+ An 2d array of float containing levels's values.
+</div>
 
 	  
@@ -757,8 +733,8 @@
 	    
 	    <h4 id="_depth2floatlevel_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -767,5 +743,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 2d depth array (or a structure respecting litchamp criterions)
+</div>
 	    
 
@@ -787,25 +765,38 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ To do not mask land points
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+    IDL> a=(jpk-1)/(1.*jpi*jpj)*findgen(jpi,jpj)
+    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
+
+  ->champ nul a 1e-6 pres
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Accept values at !values.f_nan and mask land points at valmask.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2level.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2level.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2level.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Allows to pass from a 2d depth array to a corresponding 2d level array.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_depth2level">
 
-	  <h2><a class="top" href="#container">top</a>depth2level </h2>
+	  <h2><a class="top" href="#container">top</a>depth2level <span class="categories">
+ Without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,44 +721,9 @@
 	
 	  <div class="comments">
- NAME: depth2level
-
- PURPOSE: permet de passer d''un tableau 2d de profondeur au tableau
- 2d correspondant de niveaux.
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE: res=depth2level(depth2d)
-
- INPUTS: depth2d tableau 2d de profondeur (ou une structure repondant
- aux criteres de litchamp)
-
- KEYWORD PARAMETERS:
-
-      /UPPER: (active par defaut) on selectionne le niveau
-      directement au dessus de la profondeur
-
-      /LOWER: on selectionne le niveau directement au dessous de la
-      profondeur 
-
-      /CLOSER: on selectionne le niveau le plus proche de la
-      profondeur 
-
-      /NOMASK: pour ne pas masquer les points terres
-
- OUTPUTS: un tableau 2d contenant les valeurs des niveaux.
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:pour les profondeurs hors des valeurs de gdep, la
- valeur !values.f_nan est retournee.
- Si la profondeur est superieur a celle du fond, on retourne
- jpk-1dans le cas upper, et !values.f_nan ds le cas lower.
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ It is a 2d array containing level's values.
+</div>
 
 	  
@@ -773,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ 2d depth array (or a structure respecting litchamp critrions)
+</div>
 	    
 
@@ -793,77 +764,92 @@
 	    </h4>
 	
+	    <div class="comments">
+ We select the level just below the depth 
+</div>
+	    
+	    <h4 id="_depth2level_keyword_UPPER">UPPER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ (activated by default) We select the level just above the depth
+</div>
+	    
+	    <h4 id="_depth2level_keyword_CLOSER">CLOSER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ We select the depth's closer level 
+</div>
+	    
+	    <h4 id="_depth2level_keyword_NOMASK">NOMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To do not mask land points
+</div>
+	    
+	    <h4 id="_depth2level_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_depth2level_keyword_UPPER">UPPER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_depth2level_keyword_CLOSER">CLOSER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_depth2level_keyword_NOMASK">NOMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_depth2level_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ For depthes out of gdep's values, the value !values.f_nan is sent back.
+ if the depth is superior to this one of the bottom, we send back jpk-1 in 
+ the upper case, and !values.f_nan in the lower case.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2mask.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2mask.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/depth2mask.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Allows to pass from a 2d depth sill array to a 3d array of mask 
+ with one of levels above the sill depth and 0s below.
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_depth2mask">
 
-	  <h2><a class="top" href="#container">top</a>depth2mask </h2>
+	  <h2><a class="top" href="#container">top</a>depth2mask <span class="categories">
+ Without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +722,10 @@
 	
 	  <div class="comments">
- NAME: depth2mask
-
- PURPOSE: permet de passer d''un tableau 2d de profondeur seuil au
- tableau 3d de mask avec des 1 ds les niveaux au dessus de la
- profondeur seuil et des 0 en dessous.
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE: res=depth2mask(depht2d)
-
- INPUTS: depht2d tableau 2d de profondeur seuil (ou une structure repondant
- aux criteres de litchamp)
-
- KEYWORD PARAMETERS:
-
-      /UPPER: (active par defaut) on selectionne le niveau
-      directement au dessus de la profondeur
-
-      /LOWER: on selectionne le niveau directement au dessous de la
-      profondeur 
-
-      /CLOSER: on selectionne le niveau le plus proche de la
-      profondeur 
-
- OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ It is a 3d array containing the mas associated to the 2d sill depth array
  profondeurs seuil
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
-
-	  
 
 	  
@@ -771,5 +744,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ 2d sill depth array (or a structure respecting litchamp critrions)
+</div>
 	    
 
@@ -791,25 +766,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ used to pass your keywords
+ </div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ2.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ2.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ2.html	(revision 142)
@@ -711,5 +711,7 @@
 	<div class="routine_details" id="_determ2">
 
-	  <h2><a class="top" href="#container">top</a>determ2 </h2>
+	  <h2><a class="top" href="#container">top</a>determ2 <span class="categories"> 
+ Without loop
+ </span></h2>
 	
 	  <p class="header">
@@ -717,102 +719,98 @@
 	
 	  <div class="comments">
- NAME:determ2
-
- PURPOSE: computes the determinant of n 2 by 2 arrays
-
- CATEGORY: no DO loops and better accuracy
-
- CALLING SEQUENCE: 2 cases:
-     res = determ2(z2ds)
-     res = determ2(z1d00,z1d01,z1d10,z1d11)
-
- INPUTS:
-     z2ds: an 2*2*n array
-     or
-     z1d00,z1d01,z1d10,z1d11: the four n elements arrays
-     defined as:
-              z2ds[0, 0, *] = z1d00
-              z2ds[0, 1, *] = z1d01
-              z2ds[1, 0, *] = z1d10
-              z2ds[1, 1, *] = z1d11
-
- OUTPUTS: n elements array, the determinent of each 2*2 arrrays
-
- EXAMPLE:
-
+
+ file_comments
+ computes the determinant of n 2 by 2 arrays
+ Z2DS is an 2*2*n array
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ n elements array, the determinent of each 2*2 arrrays
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_determ2_param_a">a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ n element array
+ Defined as z2ds[0, 0, *] = z1d00
+</div>
+	    
+	    <h4 id="_determ2_param_b">b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ n element array
+ Defined as z2ds[0, 1, *] = z1d01
+</div>
+	    
+	    <h4 id="_determ2_param_c">c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ n element array
+ Defined as z2ds[1, 0, *] = z1d10
+</div>
+	    
+	    <h4 id="_determ2_param_d">d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ n element array
+ Defined as z2ds[1, 1, *] = z1d11
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
  a=findgen(2,2,5)
  print, determ2(a)
  FOR i=0,4 DO print, determ(a[*,*,i]) ; IDL solution
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_determ2_param_a">a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ2_param_b">b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ2_param_c">c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ2_param_d">d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ3.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ3.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/determ3.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ computes the determinant of n 3 by 3 arrays.
+ Z2DS is an 3*3*n array
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_determ3">
 
-	  <h2><a class="top" href="#container">top</a>determ3 </h2>
+	  <h2><a class="top" href="#container">top</a>determ3 <span class="categories">
+ Without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,172 +722,179 @@
 	
 	  <div class="comments">
- NAME:determ3
-
- PURPOSE: computes the determinant of n 3 by 3 arrays
-
- CATEGORY: no DO loops and better accuracy
-
- CALLING SEQUENCE:2 cases:
-     res = determ2(z2ds)
-     res = determ2(in00, in01, in02, in10, in11, in12, in20, in21, in22)
-
- INPUTS:
-     z2ds: an 3*3*n array
-     or
-     in00, in01, in02, in10, in11, in12, in20, in21, in22: the nine n
-     elements arrays defined as:
-           in00 = z2ds[0, 0, *]
-           in01 = z2ds[0, 1, *]
-           in02 = z2ds[0, 2, *]
-           in10 = z2ds[1, 0, *]
-           in11 = z2ds[1, 1, *]
-           in12 = z2ds[1, 2, *]
-           in20 = z2ds[2, 0, *]
-           in21 = z2ds[2, 1, *]
-           in22 = z2ds[2, 2, *]
-
- OUTPUTS: n elements array, the determinent of each 3*3 arrrays
-
- EXAMPLE:
-
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ n elements array, the determinent of each 3*3 arrrays
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_determ3_param_in00">in00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in00 = z2ds[0, 0, *]
+</div>
+	    
+	    <h4 id="_determ3_param_in01">in01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in01 = z2ds[0, 1, *]
+</div>
+	    
+	    <h4 id="_determ3_param_in02">in02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in02 = z2ds[0, 2, *]
+</div>
+	    
+	    <h4 id="_determ3_param_in10">in10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in10 = z2ds[1, 0, *]
+
+</div>
+	    
+	    <h4 id="_determ3_param_in11">in11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in11 = z2ds[1, 1, *]
+
+</div>
+	    
+	    <h4 id="_determ3_param_in12">in12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in12 = z2ds[1, 2, *]
+
+</div>
+	    
+	    <h4 id="_determ3_param_in20">in20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in20 = z2ds[2, 0, *]
+
+</div>
+	    
+	    <h4 id="_determ3_param_in21">in21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in21 = z2ds[2, 1, *]
+
+</div>
+	    
+	    <h4 id="_determ3_param_in22">in22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an n element array
+ defined by in22 = z2ds[2, 2, *]
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
  a=findgen(3,3,5)
  print, determ3(a^2)
  FOR i=0,4 DO print, determ((a[*,*,i])^2) ; IDL solution
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_determ3_param_in00">in00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in01">in01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in02">in02&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in10">in10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in11">in11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in12">in12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in20">in20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in21">in21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determ3_param_in22">in22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/directory-overview.html	(revision 142)
@@ -699,14 +699,14 @@
       
 	<dt><a href="curl.html?format=raw">curl.pro</a></dt>
-	<dd></dd>
+	<dd>  Calculate the vertical component of the curl of a field of horizontal vectors </dd>
       
 	<dt><a href="depth2floatlevel.html?format=raw">depth2floatlevel.pro</a></dt>
-	<dd></dd>
+	<dd>  Rather comparable to depth2level but here, the calculated level is in float.</dd>
       
 	<dt><a href="depth2level.html?format=raw">depth2level.pro</a></dt>
-	<dd></dd>
+	<dd>   Allows to pass from a 2d depth array to a corresponding 2d level array.</dd>
       
 	<dt><a href="depth2mask.html?format=raw">depth2mask.pro</a></dt>
-	<dd></dd>
+	<dd>   Allows to pass from a 2d depth sill array to a 3d array of mask   with one of levels above the sill depth and 0s below.</dd>
       
 	<dt><a href="determ2.html?format=raw">determ2.pro</a></dt>
@@ -714,11 +714,11 @@
       
 	<dt><a href="determ3.html?format=raw">determ3.pro</a></dt>
-	<dd></dd>
+	<dd>  computes the determinant of n 3 by 3 arrays.</dd>
       
 	<dt><a href="div.html?format=raw">div.pro</a></dt>
-	<dd></dd>
+	<dd>  calculation of the divergence of a 2d field </dd>
       
 	<dt><a href="floatlevel2depth.html?format=raw">floatlevel2depth.pro</a></dt>
-	<dd></dd>
+	<dd>   Rather comparable to level2depth.</dd>
       
 	<dt><a href="fsfzpt.html?format=raw">fsfzpt.pro</a></dt>
@@ -729,26 +729,26 @@
       
 	<dt><a href="grossemoyenne.html?format=raw">grossemoyenne.pro</a></dt>
-	<dd></dd>
+	<dd>    averages a 3- or 4-d time serie field over a selected  geographical area or along the time axis.</dd>
       
 	<dt><a href="hdyn.html?format=raw">hdyn.pro</a></dt>
-	<dd></dd>
+	<dd>  Calculate the height by rapport to a reference state for a depth reference.</dd>
       
 	<dt><a href="level2depth.html?format=raw">level2depth.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to pass from a 2d level array to a 2d depth array corresponding o these levels </dd>
       
 	<dt><a href="level2index.html?format=raw">level2index.pro</a></dt>
-	<dd></dd>
+	<dd>   We want, from a 3d matrix, to extract a 2d (x,y) array whose each element   has been extract from a level specified by the 2d level array (typically,   we want to obtain the salinity along an isopycn we have repered by its level).</dd>
       
 	<dt><a href="level2mask.html?format=raw">level2mask.pro</a></dt>
-	<dd></dd>
+	<dd>  Allow to pass from a 2d sill level array to the 3d mask array with 1s in   levels above the sill level and 0s below (and on it) </dd>
       
 	<dt><a href="moyenne.html?format=raw">moyenne.pro</a></dt>
-	<dd></dd>
+	<dd>    averages a 2- or 3-d field over a selected            geographical area and along one ore more 	    selected axes (x, y or z) </dd>
       
 	<dt><a href="norme.html?format=raw">norme.pro</a></dt>
-	<dd></dd>
+	<dd>   calculate the norme of a field of vectors, then make a possible average.</dd>
       
 	<dt><a href="projectondepth.html?format=raw">projectondepth.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to project a 3d field following a depth array.</dd>
       
 	<dt><a href="remplit.html?format=raw">remplit.pro</a></dt>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/div.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/div.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/div.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ calculation of the divergence of a 2d field
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_div">
 
-	  <h2><a class="top" href="#container">top</a>div </h2>
+	  <h2><a class="top" href="#container">top</a>div <span class="categories">
+ Calculation on matrixes
+</span></h2>
 	
 	  <p class="header">
@@ -717,47 +721,9 @@
 	
 	  <div class="comments">
- NAME:div
-
- PURPOSE:calcule la divergence d'un champ 2D
-
- CATEGORY:calcule sur les matrices
-
- CALLING SEQUENCE:res=div(u,v)
-
- INPUTS:
-       u et v deux matrices representant les coordonnes d''un
-       champ de vecteur
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res: une matrice 2d
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
- les matrices u et v peuvent de 2 a 4 dimensions.
- attention pour distinger les differents configurations de u et v
- (xy, xyz, xyt, xyzt), on regarde la variable du common 
-        -time qui contient le calendrier en jour julien d''IDL auquel
-        se rapportent u et v ansi que la variable 
-        -jpt qui est le nombre de pas de temps a considerer ds time.
- les tableaux u et v sont decoupes sur le meme domaine
- geographique. A cause du decalage des grilles T, U, V et F il est
- possiible que ces 2 tableaux n''aient pas la meme taille et se
- repportent a des indices differents. Si tel est le cas les tableaux
- sont redecoupes sur les indices qu'ils ont en commun et le dommaine
- est redefinit pour qu'il colle a ces indices communs.
- pour eviter ces redecoupes utiliser le mot cles /memeindice ds
- domdef.pro
-
- les points sur le bord du dessin sont mis a !values.f_nan
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> RES
+ A 2d matrix
+</div>
 
 	  
@@ -776,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ Matrix representing coordinates of a field of vectors
+</div>
 	    
 	    <h4 id="_div_param_vv">vv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -789,5 +757,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ Matrix representing coordinates of a field of vectors
+</div>
 	    
 
@@ -797,20 +767,40 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ U and V matrixes can be 2 or 4d.
+ Beware, to discern differents configuration of U and V (xy, xyz, xyt, xyzt), 
+ we look at the variable of the common 
+        -time which contain the calendar in IDL julian days to which U and 
+ V refered to, in the same way as the variable 
+        -jpt which is the number of time's step to consider in time.
+ U and V arrays ae cut in the same geographic domain. Because of the gap of 
+ T, U, V and F grids, it is possible that these two arrays hase not the same 
+ size and refered to different indexes. In this case, arrays are recut on 
+ common indexesand the domain is redifined to match with these common 
+ indexes. To avoid these recuts, use the keyword /memeindice in domdef.pro
+
+
+ Points on the drawing edge are at !values.f_nan 
+
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/floatlevel2depth.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/floatlevel2depth.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/floatlevel2depth.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Rather comparable to level2depth. It is the invert funcion of depth2floatlevel
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_floatlevel2depth">
 
-	  <h2><a class="top" href="#container">top</a>floatlevel2depth </h2>
+	  <h2><a class="top" href="#container">top</a>floatlevel2depth <span class="categories">
+ Without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,36 +721,9 @@
 	
 	  <div class="comments">
- NAME:floatlevel2depth
-
- PURPOSE: assez comparable a level2depth. C'est la fonction inverse
- de depth2floatlevel
-
- CATEGORY:SANS BOUCLE
-
- CALLING SEQUENCE:res=floatlevel2depth(niveau)
- 
- INPUTS: tableau 2d de niveaux seuil (ou une structure repondant aux
- criteres de litchamp)
-
- KEYWORD PARAMETERS:
-       /NOMASK: pour ne pas masquer les points terres
-
- OUTPUTS: un tableau 2d contenant des profondeurs
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-
-    IDL> a=gdept[jpk-1]/(1.*jpi*jpj)*findgen(jpi,jpj)
-    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
-
-  ->champ nul a 1e-6 pres
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ 2d array containing depthes
+</div>
 
 	  
@@ -765,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 2d array of sill levels (or a structure respecting litchamp criterions)
+</div>
 	    
 
@@ -785,25 +764,36 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ To do not mask land points
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+    IDL> a=gdept[jpk-1]/(1.*jpi*jpj)*findgen(jpi,jpj)
+    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
+
+  ->null field at 1e-6 pres
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/fsfzpt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/fsfzpt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/fsfzpt.html	(revision 142)
@@ -727,5 +727,6 @@
                eigth report jpots
                annex 6 freezing point of seawater F.J.Millero pp.29-35
-	checkvalue: fsfzpt=-2.588567 deg.c,for s=40.0,p=500 decibars</div>
+	checkvalue: fsfzpt=-2.588567 deg.c,for s=40.0,p=500 decibars
+</div>
 
 	  
@@ -773,8 +774,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grad.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grad.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grad.html	(revision 142)
@@ -784,8 +784,10 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: remplir les truc!
+
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grossemoyenne.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grossemoyenne.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/grossemoyenne.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">  
+ averages a 3- or 4-d time serie field over a selected
+ geographical area or along the time axis. For one ore more
+ selected axes (x, y, z, t)
+</div>
 
       
@@ -711,5 +715,6 @@
 	<div class="routine_details" id="_grossemoyenne">
 
-	  <h2><a class="top" href="#container">top</a>grossemoyenne </h2>
+	  <h2><a class="top" href="#container">top</a>grossemoyenne <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,73 +722,4 @@
 	
 	  <div class="comments">
- NAME: grossemoyenne
-
- PURPOSE:  averages a 3- or 4-d time serie field over a selected
-           geographical area or along the time axis. For one ore more
-	    selected axes (x, y, z, t)
-
- CATEGORY:
-
- CALLING SEQUENCE: result = grossemoyenne(tab,'direc',BOXZOOM=boxzoom)
-
- INPUTS:	tab = 3 or 4d field
-		direc ='x' 'y' 'z' 't' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt'
-		'xyt' 'xzt' 'yzt' or 'xyzt' 
-
- KEYWORD PARAMETERS:
-
-		boxzoom = [xmin,xmax,ymin,ymax (,(zmin,)zmax)] pour plus
-		de detail cf domdef
-               boxzoom peut prendre 5 formes: 
-               [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
-               [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
-             
-               NAN: not a number, a activer si l''on peut faire veut
-               faire une moyenne sans tenir compte de certaines
-               valeurs masques de tab.
-               si les valeurs masques de tab sont la valeur consacree
-               par IDL (!values.f_nan), il suffit de mettre /NAN.
-               si les valeurs masques de tab on pour valeur a (a doit
-               etre differente de 1 (correspond a nan =
-               !values.f_nan) et de 0 (qui desactive nan).
-               Il faut mettre NAN=a. 
-               Rq: en sorties les points de result qui sont NAN
-               auront pour valeur a ou !values.f_nan.
-            
-               NODOMDEF: activer si l''on ne veut pas passer ds
-               domdef bien que le mot cle boxzoom soit present (comme
-               c''est le cas qd grossemoyenne est appelee via
-               checkfield)
-
-               INTEGRATION: pour faire une integrale plutot qu''une
-               moyenne
-
-               /SPATIALFIRST, when performing at the same time
-               spatial and temporal mean, grossemoyenne is assuming
-               that the mask is not changing with the time. In
-               consequence, grossemoyenne performs temporal mean
-               first and then call moyenne. Activate /SPATIALFIRST if
-               you want to perform the spatial mean before the
-               temporal mean. Note that if NAN is activated, then
-               SPATIALFIRST is activated automatically.
-
-               /TEMPORALFIRST: to force to perform first temporal
-               mean even if nan is activated (see SPATIALFIRST
-               explanations...)
-
- 
-         /WDEPTH: to specify that the field is at W depth instad of T 
-         depth (automatically activated if vargrid eq 'W')
-            
- OUTPUTS: 
-
- COMMON BLOCKS:   result:un tableau 
-	common    domdef
-
- SIDE EFFECTS: met les valeurs correspondants a la terre a 1e20
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -795,8 +731,8 @@
 	    
 	    <h4 id="_grossemoyenne_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -805,11 +741,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 3 or 4d field
+</div>
 	    
 	    <h4 id="_grossemoyenne_param_direc">direc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -818,5 +756,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 'x' 'y' 'z' 't' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt'
+ 'xyt' 'xzt' 'yzt' or 'xyzt' 
+</div>
 	    
 
@@ -838,116 +779,155 @@
 	    </h4>
 	
+	    <div class="comments">  
+ [xmin,xmax,ymin,ymax (,(zmin,)zmax)] to more details, see domdef
+ boxzoom can have 5 forms: 
+ [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
+ [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
+             </div>
+	    
+	    <h4 id="_grossemoyenne_keyword_INTEGRATION">INTEGRATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To make an integral rather than an average
+</div>
+	    
+	    <h4 id="_grossemoyenne_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ not a number, we activate it if we want to average without considerate some masked values of TAB.
+ If masked values of TAB are values consecrated by IDL(!values.f_nan), wr just have to put NAN.
+ If masked values of TAB are valued a (a must be different of 1, corresponding to nan =
+ !values.f_nan and of 0, which desactivate nan). We have to put NAN=a. 
+ Comment: In output, rsult points which are NAN will be valued a or !values.f_nan.
+            </div>
+	    
+	    <h4 id="_grossemoyenne_keyword_NODOMDEF">NODOMDEF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate it if we do not want to pass in domdef even if the keyword boxzoom 
+ is present (like when grossemoyenne is called via checkfield)
+</div>
+	    
+	    <h4 id="_grossemoyenne_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ to specify that the field is at W depth instad of T 
+ depth (automatically activated if vargrid eq 'W') 
+</div>
+	    
+	    <h4 id="_grossemoyenne_keyword_SPATIALFIRST">SPATIALFIRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ when performing at the same time
+ spatial and temporal mean, grossemoyenne is assuming
+ that the mask is not changing with the time. In
+ consequence, grossemoyenne performs temporal mean
+ first and then call moyenne. Activate /SPATIALFIRST if
+ you want to perform the spatial mean before the
+ temporal mean. Note that if NAN is activated, then
+ SPATIALFIRST is activated automatically.
+</div>
+	    
+	    <h4 id="_grossemoyenne_keyword_TEMPORALFIRST">TEMPORALFIRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ to force to perform first temporal
+ mean even if nan is activated (see SPATIALFIRST
+ explanations...)
+
+ </div>
+	    
+	    <h4 id="_grossemoyenne_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_grossemoyenne_keyword_INTEGRATION">INTEGRATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword_NODOMDEF">NODOMDEF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword_SPATIALFIRST">SPATIALFIRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword_TEMPORALFIRST">TEMPORALFIRST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grossemoyenne_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$</div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> Put values corresponding to land at 1.e20
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ result:un tableau 
+ common
+ domdef
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/hdyn.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/hdyn.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/hdyn.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Calculate the height by rapport to a reference state for a depth reference. 
+ See keywords for different possibilities. By default, the state reference 
+ is rho=1020 and the depth reference is gdepw[ka] with ka the first W level 
+ directly above 1000 m. 
+</div>
 
       
@@ -711,5 +716,7 @@
 	<div class="routine_details" id="_hdyn">
 
-	  <h2><a class="top" href="#container">top</a>hdyn </h2>
+	  <h2><a class="top" href="#container">top</a>hdyn <span class="categories">
+ Post-traiment calculation
+</span></h2>
 	
 	  <p class="header">
@@ -717,65 +724,10 @@
 	
 	  <div class="comments">
- NAME:hdyn
-
- PURPOSE:calcule la hauteur dynamique par rapport a un etat de
- reference pour une profondeur de reference. Cf les mots cles pour
- les differentes possibilites. 
- Par defaut l''etat de reference est
- rho=1020 et la profondeur de reference est gdepw[ka] avec ka le
- premier niveau W directement au dessus de 1000 m. 
-
- CATEGORY: calculs de post-traitement
-
- CALLING SEQUENCE:res=hdyn(sn,tn)
-
- INPUTS:sn et tn sont des tableaux de meme taille representant la
- salinite et la temperature.
-
- KEYWORD PARAMETERS:
-
-        GILL: activer cette cle si on veut faire le calcul de la
-        hauteur dynamique comme ds le GILL page 215 cad par rapport a
-        un etat de reference qui varie en profondeur et qui est
-        determine par une temperature de reference tref a 0 degre et
-        une salinite de reference sref a 35psu
-
-        LEVEL: C''est le niveau de reference a prendre. Ce niveau est
-        definit tel que gdepw[level] est la profondeur de reference
-
-        SREF: donner une valeur a ce mot cle pour changer la salinite
-        de reference utiliser ds le calcul lorsque GILL est active.
-   
-        TREF: donner une valeur a ce mot cle pour changer la temperature
-        de reference utiliser ds le calcul lorsque GILL est active.
-
-        PROFREF: donner a ce mot cle une profondeur qui sera prise comme
-        la profondeur de reference (ds ce cas LEVEL n'' a aucun
-        effet). le calcul sera alors effectue jusqu''a cette
-        profondeur en effectuant une interpolation entre le dernier
-        niveau W au dessus de PROFREF et PROFREF.
-
-        SURFACE_LEVEL: C''est le niveau auquel on veut calculer la
-        hauteur dynamique. Par defaut c''est le niveau 0.
-
- OUTPUTS:un tableau de la meme taille que sn et tn representant la
- hauteur dynamique calculee a partir d''une profondeur de reference
- et par rapport a un etat de reference.
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
- les points pour lesquels on nje peut calcule la hauteur dynamique
- (dont la batymetrie est moins profonde que la profondeur de
- reference) sont mis a la valeur !values.f_nan
-
- RESTRICTIONS:approximation: la pression en decibars est egale a la
- profondeur en metres (la pression augmente de 1bar tous les 10m)
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ An array of the same size of sn and tn representing the dynamic height calculated 
+ from a reference depth nd by rapport to a reference state.
+</div>
 
 	  
@@ -784,8 +736,8 @@
 	    
 	    <h4 id="_hdyn_param_tabsn">tabsn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -794,11 +746,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ array representing the salinity
+</div>
 	    
 	    <h4 id="_hdyn_param_tabtn">tabtn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -807,5 +761,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ array representing the temperature.Has the same size than SN
+</div>
 	    
 
@@ -827,5 +783,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Give a value to this keyword to change the reference temperature used in the 
+ calculation when GILL  is activated.
+ </div>
 	    
 	    <h4 id="_hdyn_keyword_SREF">SREF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -840,5 +799,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ Give a value to this keyword to change the reference salinity used in the 
+ calculation when GILL  is activated. 
+   </div>
 	    
 	    <h4 id="_hdyn_keyword_PROFREF">PROFREF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -853,5 +815,10 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Give a depth to this keyword which will be considerated as the refeence depth 
+ (in this case, LEVEL has not any effect). the calculation will be effectuated 
+ until this depth effecting an interpolation between the the last W level above 
+ PROFREF and PROFREF.
+</div>
 	    
 	    <h4 id="_hdyn_keyword_LEVEL">LEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -866,5 +833,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ It is the same reference level to take. This level is defined like 
+ that gdepw[level] is the reference depth
+ </div>
 	    
 	    <h4 id="_hdyn_keyword_GILL">GILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -879,5 +849,9 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> We activate this key if we want to calculate the dinamic height 
+ like in the GILL page 215, which means by rapport to a reference state which 
+ vary in depth and which is determinated by a reference temperature tref at 0°C 
+ and a reference salinity sref at 35psu
+</div>
 	    
 	    <h4 id="_hdyn_keyword_SURFACE_LEVEL">SURFACE_LEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -892,25 +866,38 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ It is the level where we wan to calculate the dynamic height. By default, it is 
+ the level 0.
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Points for which we can not calculate the dynamic height (whose the batymetry 
+ is less deep than the reference depth) are put at the value !values.f_nan
+
+
+ approximation: The pressure in decibars is equal to the depth in meters (the pressure increase of 1bar all 10m)
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat"> 
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2depth.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2depth.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2depth.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to pass from a 2d level array to a 2d depth array corresponding o these levels
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_level2depth">
 
-	  <h2><a class="top" href="#container">top</a>level2depth </h2>
+	  <h2><a class="top" href="#container">top</a>level2depth <span class="categories">
+ Without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,32 +721,9 @@
 	
 	  <div class="comments">
- NAME:level2depht
-
- PURPOSE: permet de passer d''un tableau 2d de niveau au
- tableau 2d de profondeur correspondant a ces niveaux
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE: res=level2depth(niveau)
-
- INPUTS: niveau tableau 2d de niveaux seuil (ou une structure repondant
- aux criteres de litchamp)
-
- KEYWORD PARAMETERS:
-       /NOMASK: pour ne pas masquer les points terres
-
- OUTPUTS: un tableau 2d contenant des profondeurs
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ 2d array containing depthes
+</div>
 
 	  
@@ -751,8 +732,8 @@
 	    
 	    <h4 id="_level2depth_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -761,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 2d level array of sill levels (or a structure respecting litchamp criterions)
+</div>
 	    
 
@@ -781,25 +764,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ To do not mask land points.
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2index.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2index.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2index.html	(revision 142)
@@ -696,5 +696,11 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ We want, from a 3d matrix, to extract a 2d (x,y) array whose each element 
+ has been extract from a level specified by the 2d level array (typically, 
+ we want to obtain the salinity along an isopycn we have repered by its level).
+ level2index is a function who give, in function of level, a 2d indexes array 
+ which will allow to extract the 2d array from the 3d array...
+</div>
 
       
@@ -711,5 +717,7 @@
 	<div class="routine_details" id="_level2index">
 
-	  <h2><a class="top" href="#container">top</a>level2index </h2>
+	  <h2><a class="top" href="#container">top</a>level2index <span class="categories">
+ without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,34 +725,9 @@
 	
 	  <div class="comments">
- NAME:level2index
-
- PURPOSE: on veut ds une matrice 3d extraire un tableau 2d (x,y) dont
- chacun des elements a ete extrait a un niveau specifie par le
- tableau 2d level (typiquement, on veut obtenir la salinite le long
- d''une isopycne que l''on a reperee par son niveau).
- level2index est une fonction qui donne en fonction de level un
- tableau 2d d'indice qui permettra d''extraire le tableau 2d du
- tableau 3d...
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE: index=level2index(level)
- 
- INPUTS:level: un tableau 2d de niveaux
-
- KEYWORD PARAMETERS:
-
- OUTPUTS: untableau 2d d''indices
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
-	  
+	  <h3>Return value</h3><div class="preformat">
+ a 2d indexes array
+</div>
 
 	  
@@ -753,8 +736,8 @@
 	    
 	    <h4 id="_level2index_param_level">level&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -763,5 +746,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A 2d level array
+</div>
 	    
 
@@ -771,8 +756,10 @@
 
 	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2mask.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2mask.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/level2mask.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allow to pass from a 2d sill level array to the 3d mask array with 1s in 
+ levels above the sill level and 0s below (and on it)
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_level2mask">
 
-	  <h2><a class="top" href="#container">top</a>level2mask </h2>
+	  <h2><a class="top" href="#container">top</a>level2mask <span class="categories"> 
+ without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +722,9 @@
 	
 	  <div class="comments">
- NAME:level2mask
-
- PURPOSE: permet de passer d''un tableau 2d de niveau seuil au
- tableau 3d de mask avec des 1 ds les niveaux au dessus du
- niveau seuil et des 0 en dessous (et sur).
-
- CATEGORY: SANS BOUCLE
-
- CALLING SEQUENCE: res=level2mask(niveau)
-
- INPUTS: niveau tableau 2d de niveaux seuil (ou une structure repondant
- aux criteres de litchamp)
-
- KEYWORD PARAMETERS:
-
- OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de
- niveaux seuil
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ It is a 3d array containing the mask associated to the 2d sill level array
+</div>
 
 	  
@@ -752,8 +733,8 @@
 	    
 	    <h4 id="_level2mask_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,5 +743,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 2d level array of sill level (or a structure respecting litchamp criterions)
+</div>
 	    
 
@@ -770,20 +753,24 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/moyenne.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/moyenne.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/moyenne.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">  
+ averages a 2- or 3-d field over a selected
+           geographical area and along one ore more
+	    selected axes (x, y or z)
+</div>
 
       
@@ -711,5 +715,6 @@
 	<div class="routine_details" id="_moyenne">
 
-	  <h2><a class="top" href="#container">top</a>moyenne </h2>
+	  <h2><a class="top" href="#container">top</a>moyenne <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,60 +722,9 @@
 	
 	  <div class="comments">
- NAME: moyenne
-
- PURPOSE:  averages a 2- or 3-d field over a selected
-           geographical area and along one ore more
-	    selected axes (x, y or z)
-
- CATEGORY:
-
- CALLING SEQUENCE: result = moyenne(tab,'direc',BOXZOOM=boxzoom)
-
- INPUTS:	tab = 2 or 3d field
-		direc = 'x' 'y' 'z' 'xy' 'xz' 'yz' or 'xyz'
-
- KEYWORD PARAMETERS:
-
-		BOXZOOM = [xmin,xmax,ymin,ymax (,(zmin,)zmax)] pour plus
-		de detail cf domdef.
-               boxzoom peut prendre 5 formes: 
-               [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
-               [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1,
-               lat2, vert1,vert2]
-
-               NAN: not a number, a activer si l''on peut faire veut
-               faire une moyenne sans tenir compte de certaines
-               valeurs masques de tab.
-               si les valeurs masques de tab sont la valeur consacree
-               par IDL (!values.f_nan), il suffit de mettre /NAN.
-               si les valeurs masques de tab on pour valeur a (a doit
-               etre differente de 1 (correspond a nan =
-               !values.f_nan) et de 0 (qui desactive nan)
-               il faut mettre NAN=a. 
-               Rq: en sorties les points de result qui sont NAN
-               auront pour valeur a ou !values.f_nan.
-
-               NODOMDEF: activer si l''on ne veut pas passer ds
-               domdef bien que le mot cle boxzoom soit present (comme
-               c''est le cas qd moyenne est appelee via checkfield) 
-            
-               INTEGRATION: pour faire une integrale plutot qu''une moyenne
- 
-         /WDEPTH: to specify that the field is at W depth instad of T 
-         depth (automatically activated if vargrid eq 'W')
-            
- OUTPUTS:  result:un tableau 
-
- COMMON BLOCKS:
-	common   domdef
-
- SIDE EFFECTS:met les valeurs correspondants a la terre a 1e20
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ An array 
+</div>
 
 	  
@@ -779,8 +733,8 @@
 	    
 	    <h4 id="_moyenne_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -789,11 +743,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 2 or 3d field
+</div>
 	    
 	    <h4 id="_moyenne_param_direc">direc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -802,5 +758,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ 'x' 'y' 'z' 'xy' 'xz' 'yz' or 'xyz'
+</div>
 	    
 
@@ -822,90 +780,115 @@
 	    </h4>
 	
+	    <div class="comments">  
+ [xmin,xmax,ymin,ymax (,(zmin,)zmax)] to more details, see domdef
+ boxzoom can have 5 forms: 
+ [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
+ [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
+</div>
+	    
+	    <h4 id="_moyenne_keyword_INTEGRATION">INTEGRATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To make an integral rather than an average
+ </div>
+	    
+	    <h4 id="_moyenne_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ not a number, we activate it if we want to average without considerate some masked values of TAB.
+ If masked values of TAB are values consecrated by IDL(!values.f_nan), wr just have to put NAN.
+ If masked values of TAB are valued a (a must be different of 1, corresponding to nan =
+ !values.f_nan and of 0, which desactivate nan). We have to put NAN=a. 
+ Comment: In output, rsult points which are NAN will be valued a or !values.f_nan.
+            </div>
+	    
+	    <h4 id="_moyenne_keyword_NODOMDEF">NODOMDEF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate it if we do not want to pass in domdef even if the keyword boxzoom 
+ is present (like when grossemoyenne is called via checkfield)
+</div>
+	    
+	    <h4 id="_moyenne_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ to specify that the field is at W depth instad of T 
+ depth (automatically activated if vargrid eq 'W') 
+            </div>
+	    
+	    <h4 id="_moyenne_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_moyenne_keyword_INTEGRATION">INTEGRATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_moyenne_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_moyenne_keyword_NODOMDEF">NODOMDEF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_moyenne_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_moyenne_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> Put values corresponding to land at 1.e20
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common
+ domdef
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/norme.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/norme.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/norme.html	(revision 142)
@@ -696,5 +696,14 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ calculate the norme of a field of vectors, then make a possible average.
+   Comment 1: The field of vector can be, 2d:xy, 3d: xyz or xyt,
+ 4d: xyzt
+   Comment 2:
+ The calculation of the norme is made before the possible spatial or 
+ temporal average because the average of the norme is not equal to the 
+ norme of averages
+
+</div>
 
       
@@ -711,5 +720,7 @@
 	<div class="routine_details" id="_norme">
 
-	  <h2><a class="top" href="#container">top</a>norme </h2>
+	  <h2><a class="top" href="#container">top</a>norme <span class="categories">
+ Post traitment calculation
+</span></h2>
 	
 	  <p class="header">
@@ -717,65 +728,9 @@
 	
 	  <div class="comments">
- NAME:norme
-
- PURPOSE: calcule la norme d''un champ de vecteurs, puis fait une
- moyenne eventuelle.
-          Rq1: le champ de vecteur peut etre, 2d:xy, 3d: xyz ou xyt,
-          4d: xyzt
-          Rq2: le calcul de la norme est fait avant l''eventuelle
-          moyenne spatiale ou temporelle car la moyenne de la norme
-          n''est pas egale a la norme des moyennes.
-
- CATEGORY: calcul de post traitement
-
- CALLING SEQUENCE:res=norme(champ_de_vecteurs)
-
- INPUTS:un tableau 2d, 3d ou 4d
-
- KEYWORD PARAMETERS:
-
-       BOXZOOM: boxzoom sur laquelle moyenner (par defaut le domaine
-       selectionner par le dernier domdef effectue)
-
-       DIREC:'t' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
-       'xzt' 'yzt' 'xyzt' directions selon lesquelles effectuer les
-       moyennes 
-
- OUTPUTS:tableau a tracer avec plt, pltz ou pltt.
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
-      La norme est calculee aux points T. Pour faire ce calcul, on
-      moyenne les champs U et V aux points T avant de calculer la norme.
-      Au bord des cotes et du domaine, on ne peut pas calculer les
-      champs U et V aux points T, ces points sont donc a la valeur
-      !values.f_nan. 
- 
-      lorsqu''on fait le calcul sur un domaine geographique reduit,
-      les champs U et V ne comprennent pas forcement le meme nombre
-      de points. Dans ce cas on redecoupe U et V pour ne garder que
-      les points en commun. Au passage on refait un domdef qui
-      redefinit un domaine geographique sur lequel les champs U et V
-      sont extraits sur les meme points.
-
- RESTRICTIONS:
-
-      pour savoir a quel type de tableau on a a faire, on teste la
-      taille de celui-ci et les dates donnees par time[0] et
-      time[jpt-1] pour savoir si il y a une dimension
-      temporelle. Avant de lancer norme s''assurer que time et jpt
-      sont bien definis comme il faut! 
-
- EXAMPLE:
-
-     pour calculer la moyenne de la norme des courants sur tout le
-     dommaine entre 0 et 50:
-      IDL> res=norme(un,vn,boxzoom=[0,50],dir='xyz')
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ Array to trace with plt, pltz or pltt.
+</div>
 
 	  
@@ -784,8 +739,8 @@
 	    
 	    <h4 id="_norme_param_composanteu">composanteu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -794,11 +749,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ an 2d, 3d or 4d array
+</div>
 	    
 	    <h4 id="_norme_param_composantev">composantev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -807,5 +764,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ an 2d, 3d or 4d array
+</div>
 	    
 
@@ -827,51 +786,81 @@
 	    </h4>
 	
+	    <div class="comments">
+ boxzoom on which do the average (by default the domain selected 
+ by the last domdef done)
+</div>
+	    
+	    <h4 id="_norme_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ 't' 'x' 'y' 'z' 'xys' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
+       'xzt' 'yzt' 'xyzt' Direction on which do averages 
+</div>
+	    
+	    <h4 id="_norme_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_norme_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_norme_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ To calculate the average of the norme of streams on all the domain 
+ between 0 et 50:
+      IDL> res=norme(un,vn,boxzoom=[0,50],dir='xyz')
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ The norme is calculated on points TTo do this calculation, we average 
+ field U and Von points T before calculate the norme. At the edge of 
+ coast and of domain, we can not calculate fields U and V at points T, 
+ that is why these points are at value !values.f_nan. 
+ 
+ When we calculate on a reduce geographic domain, field U and V have not 
+ necessarily the same number of point. In this case, we recut U and V to 
+ keep only common points. We profit of this to redo a domdef which redefine 
+ a geographic domain on which fields U and V are extracted on same points
+
+
+ To know what type of array we work with, we  test its size and dates 
+ gave by time[0] and time[jpt-1] to know if thee is a temporal dimension. 
+ Before to start norme, make sure that time and jpt are defined how 
+ they have to! 
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/projectondepth.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/projectondepth.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/projectondepth.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to project a 3d field following a depth array.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_projectondepth">
 
-	  <h2><a class="top" href="#container">top</a>projectondepth </h2>
+	  <h2><a class="top" href="#container">top</a>projectondepth <span class="categories">
+ without loop
+</span></h2>
 	
 	  <p class="header">
@@ -717,102 +721,84 @@
 	
 	  <div class="comments">
- NAME:projectondepth
-
- PURPOSE: routine permettant de projeter un champ 3d suivant un
- tableau de profondeurs.
-
- CATEGORY: sans boucles
-
- CALLING SEQUENCE:res=projectondepth(arrayin, depthin)
- 
- INPUTS:
-       arrayin: un tableau 3d dont la 3eme dimension doit etre egale
-       a jpk
-       depthin: un tableau 2d indiquant n chaque point a quel
-       profondeur projeter
-       
- KEYWORD PARAMETERS:none
-
- OUTPUTS:res: un tableau 2d projection du tableau 3d suivant les
- profondeurs indiquees par depthin
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS: points a !values.f_nan qd calcul impossible. points
- terres masques a Valmask.
-
- RESTRICTIONS:
-
- EXAMPLE:
-
- on contruit un tableau de profondeurs possibles
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ A 2d array which is the projection of the 3d array following depthes indicated by depthin
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_projectondepth_param_arrayin">arrayin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ It is a 3d array whose 3rd dimension must be equal to jpk
+ </div>
+	    
+	    <h4 id="_projectondepth_param_depthin">depthin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ It is a 2d array indicating for each point n, at which depth to project
+       </div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ we build a possible depthes array
    IDL> a=gdept[jpk-1]/(1.*jpi*jpj)*findgen(jpi,jpj)
- on contruit un tableau a projeter sur ces profondeurs. pour le test
- on construit un tableau 3d dont chaque vecteur suivant z est la
- profondeur. 
+ We build an array to project on these depthes. For the test,
+ we build a 3d array whose each vector following z is the depth. 
    IDL> arraytest=replicate(1,jpi*jpj)#gdept
    IDL> arraytest=reform(arraytest,jpi,jpj,jpk, /over)
- on test la projection du tabeau profondeur sur la profondeur...
+ We test the projection of the depth array on the depth...
    IDL> plt, 1e6*(a-projectondepth(arraytest,a)),/nocontour
-   ->champ nul a 1e-6 pres
+   ->null field at 1e-6 pres
  
-  verifcation en projettant la temperature sur la profondeur de la 20
-  degres par exemple...
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_projectondepth_param_arrayin">arrayin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_projectondepth_param_depthin">depthin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+  verifcation projecting the temperature of 20°C for example...
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ points at !values.f_nan impossible calculation. Land points masked at valmask.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/remplit.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/remplit.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/remplit.html	(revision 142)
@@ -872,8 +872,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/rhon.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/rhon.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALCULS/rhon.html	(revision 142)
@@ -723,5 +723,6 @@
 ; adaptation pour les tableaux z,zt,xyz,xyzt
 ; par seb.
-;</div>
+;
+</div>
 
 	  
@@ -799,8 +800,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/caldat.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/caldat.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/caldat.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/julday.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/julday.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/julday.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/color24.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/color24.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/color24.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/colorbar.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/colorbar.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/colorbar.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/getcolor.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/getcolor.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/getcolor.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/lct.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/lct.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/lct.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/newpalette.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/newpalette.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/newpalette.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xlct.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xlct.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xlct.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xpal.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xpal.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xpal.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/changegrid.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/changegrid.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/changegrid.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>changegrid(<span class="result"><a href="#_changegrid_param_newgrid">newgrid</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -749,8 +750,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/cmpgrid.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/cmpgrid.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/cmpgrid.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>cmpgrid(<span class="result"><a href="#_cmpgrid_param_newgrid">newgrid</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -749,8 +750,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/decoupeterre.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/decoupeterre.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/decoupeterre.html	(revision 142)
@@ -696,5 +696,12 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Similar to grille. Here, when vargrid is not 'T' or 'W', we have to
+ recuperate Tmask, glamt, gphit and the array of triangulation on the
+ considerated subdomain for the drawing. The specificity of decoupeterre
+ in comparaison with grille, is that we take, if possible, a subdomain
+ just a little bit bigger than the one defined by domdef in order to be
+ sure that the mask we draw will cover over all the drawing.
+</div>
 
       
@@ -711,5 +718,7 @@
 	<div class="routine_details" id="_decoupeterre">
 
-	  <h2><a class="top" href="#container">top</a>decoupeterre </h2>
+	  <h2><a class="top" href="#container">top</a>decoupeterre <span class="categories">
+ utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +726,4 @@
 	
 	  <div class="comments">
- NAME:decoupeterre
-
- PURPOSE:tres semblable a grille. Ici qd vargrid ne 'T' ou 'W' alors
- pour le trace il faut recuperer Tmask, glamt, gphit et le tableau de
- triangulation sur le sous domaine considere. La specificite de
- decoupeterre par rapport a grille, c''est que l''on prend ds la
- mesure du possible un sous domaine juste un peu plus grand que celui
- definit par domdef de facon a etre sur que le masque que l''on trace
- recouvrira bien tout le dessin.
-
- CATEGORY:pour plt
-
- CALLING SEQUENCE:decoupeterre, mask, glam, gphi, z, nx, ny, nz, TRI = tri
-
- INPUTS:
-
- KEYWORD PARAMETERS:
-         TRI si ce mot clef sert a obtenir grace a grille la
-         triangulation qui se rapporte a la grille mais uniquement
-         sur la partie du zoom. ce tableau de triangulation reduit
-         est passe ds la variable que l''on a egalee a tri.par ex:
-         grille,...,tri=triangulation_reduite. ne mot clef est
-         utilise dans plt.pro
-
-         /WDEPTH: to specify that the field is at W depth instad of T 
-         depth (automatically activated if vargrid eq 'W')
-
-
- OUTPUTS:le masque et ses coordonnees
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -846,7 +817,26 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ This keyword serve to obtain, thanks to grille, the triangulation which
+ refer to the grid but only on the part of the zoom. This of triangulation
+ is passed in the variable we have equate at TRI.
+ For example: grille,...,tri=triangulation_reduite.
+ This keyword is used in plt.pro
+</div>
+	    
+	    <h4 id="_decoupeterre_keyword_INDICEZOOM">INDICEZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_INDICEZOOM">INDICEZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_decoupeterre_keyword_COINMONTE">COINMONTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -861,5 +851,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_COINMONTE">COINMONTE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_decoupeterre_keyword_COINDESCEND">COINDESCEND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -874,5 +864,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_COINDESCEND">COINDESCEND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_decoupeterre_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -885,7 +875,23 @@
 	    </h4>
 	
+	    <div class="comments">
+ To specify that the field is at W depth instad of T 
+ depth (automatically activated if vargrid eq 'W')
+</div>
+	    
+	    <h4 id="_decoupeterre_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_decoupeterre_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -900,5 +906,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_decoupeterre_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -913,49 +919,31 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_decoupeterre_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_decoupeterre_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb : manque tous les param et plein de keywords.
+
+
+
+</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/directory-overview.html	(revision 142)
@@ -705,35 +705,35 @@
       
 	<dt><a href="decoupeterre.html?format=raw">decoupeterre.pro</a></dt>
-	<dd></dd>
+	<dd>  Similar to grille.</dd>
       
 	<dt><a href="domdef.html?format=raw">domdef.pro</a></dt>
-	<dd></dd>
+	<dd>   Allows to extract a subdomain of study by providing parameters   needed for drawings (see outputs) </dd>
       
 	<dt><a href="f2v.html?format=raw">f2v.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to pass a field refering to the grid F on the grid V,   thanks to the average:   res = 0.</dd>
       
 	<dt><a href="fmask.html?format=raw">fmask.pro</a></dt>
-	<dd></dd>
+	<dd>  calculate fmask.</dd>
       
 	<dt><a href="grille.html?format=raw">grille.pro</a></dt>
-	<dd></dd>
+	<dd>  Choose the grid which must be used to do the graph in function of  vargrid and send back corresponding parameters calculated in  domdef.</dd>
       
 	<dt><a href="t2v.html?format=raw">t2v.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to pass a field refering to the grid T on the grid V,   thanks to the average res = 0.</dd>
       
 	<dt><a href="tracegrille.html?format=raw">tracegrille.pro</a></dt>
-	<dd></dd>
+	<dd>  Draw the grid </dd>
       
 	<dt><a href="u2t.html?format=raw">u2t.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to pass a field refering to the grid U on the grid T,   thanks to the average:   res = 0.</dd>
       
 	<dt><a href="umask.html?format=raw">umask.pro</a></dt>
-	<dd></dd>
+	<dd>  calculate umask.</dd>
       
 	<dt><a href="v2t.html?format=raw">v2t.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to pass a field refering to the grid V on the grid T,   thanks to the average:   res = 0.</dd>
       
 	<dt><a href="vmask.html?format=raw">vmask.pro</a></dt>
-	<dd></dd>
+	<dd>  calculate fmask.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/domdef.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/domdef.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/domdef.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Allows to extract a subdomain of study by providing parameters 
+ needed for drawings (see outputs)
+</div>
 
       
@@ -711,68 +714,219 @@
 	<div class="routine_details" id="_domdef">
 
-	  <h2><a class="top" href="#container">top</a>domdef </h2>
+	  <h2><a class="top" href="#container">top</a>domdef <span class="categories">
+</span></h2>
 	
 	  <p class="header">
-	    domdef<span class="result">, <a href="#_domdef_param_x1">x1</a>, <a href="#_domdef_param_x2">x2</a>, <a href="#_domdef_param_y1">y1</a>, <a href="#_domdef_param_y2">y2</a>, <a href="#_domdef_param_z1">z1</a>, <a href="#_domdef_param_z2">z2</a></span>, <a href="#_domdef_keyword_FINDALWAYS">FINDALWAYS</a>=<span class="result">FINDALWAYS</span>, <a href="#_domdef_keyword_GRIDTYPE">GRIDTYPE</a>=<span class="result">GRIDTYPE</span>, <a href="#_domdef_keyword_MEMEINDICES">MEMEINDICES</a>=<span class="result">MEMEINDICES</span>, <a href="#_domdef_keyword_XINDEX">XINDEX</a>=<span class="result">XINDEX</span>, <a href="#_domdef_keyword_YINDEX">YINDEX</a>=<span class="result">YINDEX</span>, <a href="#_domdef_keyword_ZINDEX">ZINDEX</a>=<span class="result">ZINDEX</span>, <a href="#_domdef_keyword_ENDPOINTS">ENDPOINTS</a>=<span class="result">ENDPOINTS</span>, <a href="#_domdef_keyword_TYPE">TYPE</a>=<span class="result">TYPE</span>, <a href="#_domdef_keyword_INDEX">INDEX</a>=<span class="result">INDEX</span>, <a href="#_domdef_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
+	    domdef<span class="result">[, <a href="#_domdef_param_x1">x1</a>][, <a href="#_domdef_param_x2">x2</a>][, <a href="#_domdef_param_y1">y1</a>][, <a href="#_domdef_param_y2">y2</a>][, <a href="#_domdef_param_z1">z1</a>][, <a href="#_domdef_param_z2">z2</a>]</span>, <a href="#_domdef_keyword_FINDALWAYS">FINDALWAYS</a>=<span class="result">FINDALWAYS</span>, <a href="#_domdef_keyword_GRIDTYPE">GRIDTYPE</a>=<span class="result">GRIDTYPE</span>, <a href="#_domdef_keyword_MEMEINDICES">MEMEINDICES</a>=<span class="result">MEMEINDICES</span>, <a href="#_domdef_keyword_XINDEX">XINDEX</a>=<span class="result">XINDEX</span>, <a href="#_domdef_keyword_YINDEX">YINDEX</a>=<span class="result">YINDEX</span>, <a href="#_domdef_keyword_ZINDEX">ZINDEX</a>=<span class="result">ZINDEX</span>, <a href="#_domdef_keyword_ENDPOINTS">ENDPOINTS</a>=<span class="result">ENDPOINTS</span>, <a href="#_domdef_keyword_TYPE">TYPE</a>=<span class="result">TYPE</span>, <a href="#_domdef_keyword_INDEX">INDEX</a>=<span class="result">INDEX</span>, <a href="#_domdef_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
 	  <div class="comments">
- NAME: DOMDEF
-
- PURPOSE:permet d'extraire un sous domaine d'etude en fournissant les
- parametres necessaires pour les traces. (cf. outputs)
-
- CATEGORY:
-
- CALLING SEQUENCE:domdef [,lon1, lon2, lat1, lat2[,vert1,vert2]] ou
-             bien domdef,vecteur
-
- INPUTS:(facultatif), [vecteur a] 2, 4 ou 6 elements:;
- sans l''utilisation des mots cles index,xindex,yindex,zindex:
- *vert1, vert2: pour un domaine 3D dont la partie horizontale couvre tout
-  glam et gphi
- *lon1, lon2, lat1, lat2:
- definissant les longitudes min. max et les latitudes min, max du  domaine a
- etudier (tous les niveaux sont selectiones)
- *lon1,lon2,lat1,lat2,vert1,vert2 pour specifier les profondeurs.
-
- KEYWORD PARAMETERS:
-
-       ENDPOINTS: a four elements vector [x1,y1,x2,y2] used to specify
-       that domdef must define the box used to make a plot (pltz, pltt,
-       plt1d) done strictly along the line (that can have any direction)
-       starting at (x1, y1) ending at (x2, y2). When defining endpoints,
-       you must also define TYPE which define the type of plots
-       ('pltz', 'xt', 'yt', 'zt', 'x', 'y', 'z', 't') will used
-       ENDPOINTS keywords
-
-       FINDALWAYS:oblige a redefinir une boite meme qd auqun point
-       n''est trouve ds la boite. dans ce cas on selectionne toute la
-       grille.
-
-	GRIDTYPE:un string ou un vecteur de string contennant le nom des
-	grilles (determinees uniquement par : 'T','U','V','W','F') pour
-	lesquelles le calcul doit etre fait. par
-	ex :'T' ou ['T','U']
-
-       /MEMEINDICES: il se peut que les points t,u,v et F correspondant a
-       une meme boite geographique ne concernent pas les memes
-       indices des tableaux. Ceci pose parfois de pb (ou du moins de
-       serieuses complications) ds les programmes ou plusieurs types
-       de grilles interviennent (cf.: norme, curl...). Activer
-       MEMEINDICES pour forcer domdef a prendre les memes indices -ceux
-       de la grille T- pour toutes les autres grilles.
-
-       /INDEX: activer si on veut specifier que tous les elements
-       passes en entree de domdef se rapportent aux indices des
-       tableaux glam, gphi et gdep plutot qu'aux valeurs de ces
-       tableaux
-
-       /xindex: activer si on veut que les elements passes en entrre
-       de domdef et concernant la dimension en x se rapportent aux
-       indices des tableaux glam qu'aux valeurs de ces tableaux.
-
-       /yindex: cf xindex mais pour y et les gphi
-
-       /zindex: cf xindex mais pour z et les gdep
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_domdef_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Define the minimum longitude. (All levels are selected)
+</div>
+	    
+	    <h4 id="_domdef_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Define the maximum longitude. (All levels are selected)
+</div>
+	    
+	    <h4 id="_domdef_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Define the minimum latitude. (All levels are selected)
+</div>
+	    
+	    <h4 id="_domdef_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Define the maximum latitude. (All levels are selected)
+</div>
+	    
+	    <h4 id="_domdef_param_z1">z1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For a 3d domain whose the horizontal part cover all glam
+ </div>
+	    
+	    <h4 id="_domdef_param_z2">z2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For a 3d domain whose the horizontal part cover all gphi
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_domdef_keyword_FINDALWAYS">FINDALWAYS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Force to redefine a box even when none point is find in the box. 
+ In this case, we select all the grid.
+</div>
+	    
+	    <h4 id="_domdef_keyword_GRIDTYPE">GRIDTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ It is a string or a vector of strings containing the grids's name 
+ (Only determinated by 'T','U','V','W','F') for which the calculation 
+ must be done. 
+  For example: 'T' ou ['T','U']
+</div>
+	    
+	    <h4 id="_domdef_keyword_MEMEINDICES">MEMEINDICES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ It is possible that points t,u,v and F correspond to a same geographic
+ box which do not concern the same array indexes. This is sometimes a
+ problem (or at least serious complications) in programs where several
+ type of grid interven (see norme, curl...). Activate MEMEINDICE to
+ force domdef to take same indexes -those of the grid T- for all other
+ grids.
+</div>
+	    
+	    <h4 id="_domdef_keyword_XINDEX">XINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ We activate it if we want that all elements passed in input of domdef 
+ and concerning the X dimension refer to indexes of glam arrays rather 
+ than to values of these arrays.
+</div>
+	    
+	    <h4 id="_domdef_keyword_YINDEX">YINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ We activate it if we want that all elements passed in input of domdef 
+ and concerning the X dimension refer to indexes of gphi arrays rather 
+ than to values of these arrays.
+ </div>
+	    
+	    <h4 id="_domdef_keyword_ZINDEX">ZINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ We activate it if we want that all elements passed in input of domdef 
+ and concerning the X dimension refer to indexes of gdep arrays rather 
+ than to values of these arrays.
 
  OUTPUTS:on recupere pour les 4 grilles t,u,v,f
@@ -795,107 +949,7 @@
    -lastzt,w: le last indice qui delimite le sous domaine
    suivant z
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_domdef_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_domdef_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_domdef_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_domdef_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_domdef_param_z1">z1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_domdef_param_z2">z2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_domdef_keyword_FINDALWAYS">FINDALWAYS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</div>
+	    
+	    <h4 id="_domdef_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -908,7 +962,28 @@
 	    </h4>
 	
+	    <div class="comments">
+ A four elements vector [x1,y1,x2,y2] used to specify
+ that domdef must define the box used to make a plot (pltz, pltt,
+ plt1d) done strictly along the line (that can have any direction)
+ starting at (x1, y1) ending at (x2, y2). When defining endpoints,
+ you must also define TYPE which define the type of plots
+ ('pltz', 'xt', 'yt', 'zt', 'x', 'y', 'z', 't') will used
+ ENDPOINTS keywords
+</div>
+	    
+	    <h4 id="_domdef_keyword_TYPE">TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_domdef_keyword_GRIDTYPE">GRIDTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_domdef_keyword_INDEX">INDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -921,129 +996,47 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ We activate it if we want that all elements passed in input of domdef 
+ refer to indexes of glam, gphi and gdep arrays rather than to values 
+ of these arrays.
+</div>
+	    
+	    <h4 id="_domdef_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_domdef_keyword_MEMEINDICES">MEMEINDICES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_XINDEX">XINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_YINDEX">YINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_ZINDEX">ZINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_TYPE">TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword_INDEX">INDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_domdef_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: output pas clair/ pas d'input required?</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/f2v.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/f2v.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/f2v.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to pass a field refering to the grid F on the grid V, 
+ thanks to the average: 
+ res = 0.5*(res + shift(res, 1, 0))    
+</div>
 
       
@@ -711,5 +715,7 @@
 	<div class="routine_details" id="_f2v">
 
-	  <h2><a class="top" href="#container">top</a>f2v </h2>
+	  <h2><a class="top" href="#container">top</a>f2v <span class="categories"> 
+ Grille
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +723,9 @@
 	
 	  <div class="comments">
- NAME:f2v
-
- PURPOSE:permet de passer un champs se rapportant a la grille F sur
- la grille V, grace a la moyenne: res = 0.5*(res + shift(res, 1, 0))
-      
-
- CATEGORY:grille
-
- CALLING SEQUENCE:res=f2v(tab)
- 
- INPUTS:tab, un tableau 2, 3 ou 4d
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res, un tableau 2, 3 ou 4d
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
- les memes que ceux sur la grille T.
-
- RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
- valeur NaN consacree par IDL: !values.f_nan
-
- EXAMPLE:
-
- MODIFICATION HISTORY:a partir des programmes de Marina Levy</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ res, a 2, 3 or 4d array
+</div>
 
 	  
@@ -752,8 +734,8 @@
 	    
 	    <h4 id="_f2v_param_temp">temp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,5 +744,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A 2, 3 or 4d array
+</div>
 	    
 
@@ -770,20 +754,32 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ From Marina Levy's programs</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Force parameters of the zoom on the grid V to be the same as 
+ those on the grid T.
+
+ 
+ Points which can not be calculated are put at the value NaN 
+ consecrated by IDL: !values.f_nan
+</div>
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/fmask.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/fmask.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/fmask.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ calculate fmask. Economize memory (we do not need to keep fmask anymore)
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_fmask">
 
-	  <h2><a class="top" href="#container">top</a>fmask </h2>
+	  <h2><a class="top" href="#container">top</a>fmask <span class="categories">
+ Utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,31 +721,24 @@
 	
 	  <div class="comments">
- NAME:fmask
-
- PURPOSE:calcule fmask
-
- CATEGORY:fonction economisatrice de memoire (plus besion de garder
- fmask)  
-
- CALLING SEQUENCE:res=fmask()
-
- OUTPUTS:un tableau 3d correspondant a fmask
-
- EXAMPLE:s''utilise comme si fmask etait un tableau connu en
- replacant ds la syntaxe fmask par (fmask()). par ex:
- au lieu de taper fmask[domainef] il faut taper (fmask())[domainef]
 </div>
 
-	  
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+	  <h3>Return value</h3><div class="preformat">
+ A 3d array corresponding to fmask.
+</div>
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ Used like if fmask was a known array by substituing fmask by (fmask())
+ For example: Instaed of write fmask[domainef] we have to write (fmask())[domainef]
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/grille.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/grille.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/grille.html	(revision 142)
@@ -696,5 +696,12 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Choose the grid which must be used to do the graph in function of
+ vargrid and send back corresponding parameters calculated in
+ domdef.pro and reduced at the domain defined by domdef (contrarily
+ to grandegrille.pro)
+ BEWARE!! The choice of the grid is made from the value of the 
+ global variable vargrid, which can be equal to 'T', 'U', 'V', 'W' ou 'F'.
+</div>
 
       
@@ -711,60 +718,11 @@
 	<div class="routine_details" id="_grille">
 
-	  <h2><a class="top" href="#container">top</a>grille </h2>
+	  <h2><a class="top" href="#container">top</a>grille <span class="categories">
+</span></h2>
 	
 	  <p class="header">
-	    grille<span class="result">, <a href="#_grille_param_mask">mask</a>, <a href="#_grille_param_glam">glam</a>, <a href="#_grille_param_gphi">gphi</a>, <a href="#_grille_param_gdep">gdep</a>, <a href="#_grille_param_nx">nx</a>, <a href="#_grille_param_ny">ny</a>, <a href="#_grille_param_nz">nz</a>, <a href="#_grille_param_firstx">firstx</a>, <a href="#_grille_param_firsty">firsty</a>, <a href="#_grille_param_firstz">firstz</a>, <a href="#_grille_param_lastx">lastx</a>, <a href="#_grille_param_lasty">lasty</a>, <a href="#_grille_param_lastz">lastz</a>, <a href="#_grille_param_e1">e1</a>, <a href="#_grille_param_e2">e2</a>, <a href="#_grille_param_e3">e3</a></span>, <a href="#_grille_keyword_TRI">TRI</a>=<span class="result">TRI</span>, <a href="#_grille_keyword_NOTRI">NOTRI</a>=<span class="result">NOTRI</span>, <a href="#_grille_keyword_TOUT">TOUT</a>=<span class="result">TOUT</span>, <a href="#_grille_keyword_FORPLT">FORPLT</a>=<span class="result">FORPLT</span>, <a href="#_grille_keyword_IFPLTZ">IFPLTZ</a>=<span class="result">IFPLTZ</span>, <a href="#_grille_keyword_WDEPTH">WDEPTH</a>=<span class="result">WDEPTH</span>, <a href="#_grille_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
-	
-	  <div class="comments">
- NAME:grille
-
- PURPOSE: choisit la grille qui doit etre utilisee pour faire le graphe en
- fonction de vargrid et renvoie les parametres correspondants calcules ds
- domdef.pro et reduit au domaine definit par domdef (contrairement a
- grandegrille.pro)
-
- CATEGORY:
-
- CALLING SEQUENCE:
-  grille,mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz,e1,e2,e3
-
- INPUTS:rien. ATTENTION les choix de la grille se fait a partir de la
- valeur de la variable globale vargrid, qui peut etre egale a 'T',
- 'U', 'V', 'W' ou 'F'.
-
- KEYWORD PARAMETERS:
-         TRI si ce mot clef sert a obtenir grace a grille la
-         triangulation qui se rapporte a la grille mais uniquement
-         sur la partie du zoom. ce tableau de triangulation reduit
-         est passe ds la variable que l''on a egalee a tri.par ex:
-         grille,...,tri=triangulation_reduite. ne mot clef est
-         utilise dans plt.pro
-
-         /FORPLT: ds plt on veut que sur les points terres, glam et
-         gphi soit egale a glamt et gphit quelle que soit la grille.
-
-         /NOTRI: utile seulement qd TRI est active. dans ce cas
-         grille retourne -1 ds la variable tri meme si la variable du
-         common triangles_list est definie et differente de -1
-
-         /WDEPTH: to specify that the field is at W depth instad of T 
-         depth (automatically activated if vargrid eq 'W')
-
- OUTPUTS:mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz,
-         lastx,lasty,lastz,e1,e2,e3
-
-         pour leur definition cf domdef et la gestion des sous
-         domaines sur le web
-
-         Rq: ces outputs sont optionnels, si je veux recuperer que
-         mask, glam et gphi il suffit de taper grille, mask, glam, gphi
-
- COMMON BLOCKS: cm_4mesh and cm_4data
-
- SIDE EFFECTS: utilise la variable globale vargird
-
- RESTRICTIONS: vargrid doit etre 'T', 'W', 'U', 'V' ou 'F'
-
- EXAMPLE:
+	    grille<span class="result">[, <a href="#_grille_param_mask">mask</a>][, <a href="#_grille_param_glam">glam</a>][, <a href="#_grille_param_gphi">gphi</a>][, <a href="#_grille_param_gdep">gdep</a>][, <a href="#_grille_param_nx">nx</a>][, <a href="#_grille_param_ny">ny</a>][, <a href="#_grille_param_nz">nz</a>][, <a href="#_grille_param_firstx">firstx</a>][, <a href="#_grille_param_firsty">firsty</a>][, <a href="#_grille_param_firstz">firstz</a>][, <a href="#_grille_param_lastx">lastx</a>][, <a href="#_grille_param_lasty">lasty</a>][, <a href="#_grille_param_lastz">lastz</a>][, <a href="#_grille_param_e1">e1</a>][, <a href="#_grille_param_e2">e2</a>][, <a href="#_grille_param_e3">e3</a>]</span>, <a href="#_grille_keyword_TRI">TRI</a>=<span class="result">TRI</span>, <a href="#_grille_keyword_NOTRI">NOTRI</a>=<span class="result">NOTRI</span>, <a href="#_grille_keyword_TOUT">TOUT</a>=<span class="result">TOUT</span>, <a href="#_grille_keyword_FORPLT">FORPLT</a>=<span class="result">FORPLT</span>, <a href="#_grille_keyword_IFPLTZ">IFPLTZ</a>=<span class="result">IFPLTZ</span>, <a href="#_grille_keyword_WDEPTH">WDEPTH</a>=<span class="result">WDEPTH</span>, <a href="#_grille_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
+	
+	  <div class="comments">
 </div>
 
@@ -777,209 +735,241 @@
 	    <h4 id="_grille_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_glam">glam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_gphi">gphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_gdep">gdep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_nx">nx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_ny">ny&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_nz">nz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_firstx">firstx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_firsty">firsty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_firstz">firstz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+         </div>
 	    
 	    <h4 id="_grille_param_lastx">lastx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_lasty">lasty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_lastz">lastz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_e1">e1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+</div>
 	    
 	    <h4 id="_grille_param_e2">e2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+ </div>
 	    
 	    <h4 id="_grille_param_e3">e3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ For the definition, see domdef and the management of subdomains on the web.
+</div>
 	    
 
@@ -1001,7 +991,73 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ This keyword serve to obtain, thanks to grille, the triangulation which
+ refer to the grid but only on the part of the zoom. This of triangulation
+ is passed in the variable we have equate at TRI.
+ For example: grille,...,tri=triangulation_reduite.
+ This keyword is used in plt.pro
+</div>
+	    
+	    <h4 id="_grille_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Useful only when TRI is activated. In this case, grill send back -1 in the 
+ variable tri even if the variable of the common triangles_list is defined 
+ and different of-1
+ </div>
+	    
+	    <h4 id="_grille_keyword_TOUT">TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	    <h4 id="_grille_keyword_FORPLT">FORPLT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ In plt, we want that land points, glam and gphi, be equal to glamt and 
+ gphit regardless of the grid.
+</div>
+	    
+	    <h4 id="_grille_keyword_IFPLTZ">IFPLTZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_grille_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_grille_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1014,7 +1070,10 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grille_keyword_TOUT">TOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <div class="comments">
+ To specify that the field is at W depth instad of T 
+ depth (automatically activated if vargrid eq 'W')
+ </div>
+	    
+	    <h4 id="_grille_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1027,77 +1086,38 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grille_keyword_FORPLT">FORPLT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grille_keyword_IFPLTZ">IFPLTZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grille_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_grille_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments"> 
+ Used to pass your keywords
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$ 
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> Comment ecrire la remarque sur les inputs?
+ </div>
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Use the variable vargrid
+
+
+ Vargrid must be 'T', 'W', 'U', 'V' ou 'F'
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ cm_4mesh 
+ cm_4data
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/t2v.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/t2v.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/t2v.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to pass a field refering to the grid T on the grid V, 
+ thanks to the average res = 0.5*(res + shift(res, 0, -1))
+ </div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_t2v">
 
-	  <h2><a class="top" href="#container">top</a>t2v </h2>
+	  <h2><a class="top" href="#container">top</a>t2v <span class="categories"> 
+ Grille
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +722,9 @@
 	
 	  <div class="comments">
- NAME:t2v
-
- PURPOSE:permet de passer un champs se rapportant a la grille T sur
- la grille V, grace a la moyenne: res = 0.5*(res + shift(res, 0, -1))
-      
-
- CATEGORY:grille
-
- CALLING SEQUENCE:res=t2v(tab)
- 
- INPUTS:tab, un tableau 2, 3 ou 4d
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res, un tableau 2, 3 ou 4d
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
- les memes que ceux sur la grille T.
-
- RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
- valeur NaN consacree par IDL: !values.f_nan
-
- EXAMPLE:
-
- MODIFICATION HISTORY:Marina Levy</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ res, a 2, 3 or 4d array
+</div>
 
 	  
@@ -752,8 +733,8 @@
 	    
 	    <h4 id="_t2v_param_temp">temp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,5 +743,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A 2, 3 or 4d array
+</div>
 	    
 
@@ -770,20 +753,32 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ From Marina Levy's programs</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Force parameters of the zoom on the grid V to be the same as 
+ those on the grid T.
+
+ 
+ Points which can not be calculated are put at the value NaN 
+ consecrated by IDL: !values.f_nan
+</div>
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/tracegrille.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/tracegrille.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/tracegrille.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Draw the grid
+</div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_tracegrille">
 
-	  <h2><a class="top" href="#container">top</a>tracegrille </h2>
+	  <h2><a class="top" href="#container">top</a>tracegrille <span class="categories">
+ </span></h2>
 	
 	  <p class="header">
@@ -717,43 +720,149 @@
 	
 	  <div class="comments">
- NAME:tracegrille
-
- PURPOSE:dessine la grille
-
- CATEGORY:
-
- CALLING SEQUENCE:tracegrille
- 
- INPUTS:glam et gphi, les tableaux 1d ou 2d des position en
- longitude/latitude des points de la grille. Si glam et gphi ne sont
- pas specifies, trace la grille specifiee par vargrid, sur le domaine
- definit par le dernier domdef.
-
- KEYWORD PARAMETERS:
-
-        XSTRIDE un entier pour specifier qu''on ne veut tracer
-        qu''une ligne de i constant tout les xstride points
-
-        YSTRIDE un entier pour specifier qu''on ne veut tracer
-        qu''une ligne de j constant tout les ystride points
-
-        /OCEAN: pour ne tracer la grille que sur les points oceans
- 
-        /EARTH: pour ne tracer la grille que sur les points terre
-
-        /RMOUT:select to remove all cell having one corner out of the
-        plot boundaries (!x.range, !y.range)
-
-        + tous les mots clefs de la procedure PLOTS
-
- OUTPUTS:none
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_tracegrille_param_glamin">glamin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The 1d or 2d array in longitude of points of the grid.If GLAM/GLAMIN 
+ is not specified, it trace the grid specified by vargrid, on the 
+ domain defined by domdef.
+</div>
+	    
+	    <h4 id="_tracegrille_param_gphiin">gphiin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The 1d or 2d array in latitude of points of the grid.If GPHI/GPHIIN 
+ is not specified, it trace the grid specified by vargrid, on the 
+ domain defined by domdef.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_tracegrille_keyword_OCEAN">OCEAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To trace the grid only on ocean points.
+ </div>
+	    
+	    <h4 id="_tracegrille_keyword_EARTH">EARTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To trace the grid only on land points pour ne tracer la grille que sur les points terre
+</div>
+	    
+	    <h4 id="_tracegrille_keyword_XSTRIDE">XSTRIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ It is an integer to specify that we want to trace only one line of 
+ constant i every xstride points
+</div>
+	    
+	    <h4 id="_tracegrille_keyword_YSTRIDE">YSTRIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ It is an integer to specify that we want to trace only one line of 
+ constant j every xstride points
+</div>
+	    
+	    <h4 id="_tracegrille_keyword_RMOUT">RMOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Select to remove all cell having one corner out of the
+ plot boundaries (!x.range, !y.range)
+</div>
+	    
+	    <h4 id="_tracegrille_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used to pass your keywords.
+ </div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
 
      IDL> plt,indgen(jpi,jpj),/nocontour,/nofill
@@ -763,141 +872,24 @@
 
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_tracegrille_param_glamin">glamin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_param_gphiin">gphiin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_tracegrille_keyword_OCEAN">OCEAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_keyword_EARTH">EARTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_keyword_XSTRIDE">XSTRIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_keyword_YSTRIDE">YSTRIDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_keyword_RMOUT">RMOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tracegrille_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+                  </div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+ </div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/u2t.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/u2t.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/u2t.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to pass a field refering to the grid U on the grid T, 
+ thanks to the average: 
+ res = 0.5*(res + shift(res, 1, 0))    
+</div>
 
       
@@ -711,5 +715,7 @@
 	<div class="routine_details" id="_u2t">
 
-	  <h2><a class="top" href="#container">top</a>u2t </h2>
+	  <h2><a class="top" href="#container">top</a>u2t <span class="categories"> 
+ Grille
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +723,9 @@
 	
 	  <div class="comments">
- NAME:u2t
-
- PURPOSE:permet de passer un champs se rapportant a la grille U sur
- la grille T, grace a la moyenne: res = 0.5*(res + shift(res, 1, 0))
-      
-
- CATEGORY:grille
-
- CALLING SEQUENCE:res=u2t(tab)
- 
- INPUTS:tab, un tableau 2, 3 ou 4d
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res, un tableau 2, 3 ou 4d
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
- les memes que ceux sur la grille T.
-
- RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
- valeur NaN consacree par IDL: !values.f_nan
-
- EXAMPLE:
-
- MODIFICATION HISTORY:a partir des programmes de Marina Levy</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ res, a 2, 3 or 4d array
+</div>
 
 	  
@@ -752,8 +734,8 @@
 	    
 	    <h4 id="_u2t_param_temp">temp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,5 +744,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A 2, 3 or 4d array
+</div>
 	    
 
@@ -770,20 +754,32 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ From Marina Levy's programs</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Force parameters of the zoom on the grid V to be the same as 
+ those on the grid T.
+
+ 
+ Points which can not be calculated are put at the value NaN 
+ consecrated by IDL: !values.f_nan
+</div>
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/umask.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/umask.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/umask.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ calculate umask. Economize memory (we do not need to keep umask anymore)
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_umask">
 
-	  <h2><a class="top" href="#container">top</a>umask </h2>
+	  <h2><a class="top" href="#container">top</a>umask <span class="categories">
+ Utilities 
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +721,23 @@
 	
 	  <div class="comments">
- NAME:umask
-
- PURPOSE:calcule umask
-
- CATEGORY:fonction economisatrice de memoire (plus besion de garder
- umask)  
-
- CALLING SEQUENCE:res=umask()
-
- INPUTS:
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:un tableau 3d correspondant a umask
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:s''utilise comme si umask etait un tableau connu en
- replacant ds la syntaxe umask par umask(). par ex:
- au lieu de taper umask[domaineu] il faut taper (umask())[domaineu]
-
-</div>
-
-	  
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ A 3d array corresponding to umask. 
+</div>
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ Used like if umask was a known array by substituing umask by (umask())
+ For example: Instaed of write umask[domainef] we have to write (umask())[domainef]
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
 	  
 	  
@@ -764,8 +749,10 @@
 	  
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/v2t.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/v2t.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/v2t.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to pass a field refering to the grid V on the grid T, 
+ thanks to the average: 
+ res = 0.5*(res + shift(res, 1, 0))    
+</div>
 
       
@@ -711,5 +715,7 @@
 	<div class="routine_details" id="_v2t">
 
-	  <h2><a class="top" href="#container">top</a>v2t </h2>
+	  <h2><a class="top" href="#container">top</a>v2t <span class="categories"> 
+ Grille
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +723,9 @@
 	
 	  <div class="comments">
- NAME:v2t
-
- PURPOSE:permet de passer un champs se rapportant a la grille V sur
- la grille T, grace a la moyenne: res = 0.5*(res + shift(res, 0, +1))
-      
-
- CATEGORY:grille
-
- CALLING SEQUENCE:res=v2t(tab)
- 
- INPUTS:tab, un tableau 2, 3 ou 4d
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:res, un tableau 2, 3 ou 4d
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
- les memes que ceux sur la grille T.
-
- RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
- valeur NaN consacree par IDL: !values.f_nan
-
- EXAMPLE:
-
- MODIFICATION HISTORY:a partir des programmes de Marina Levy</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ res, a 2, 3 or 4d array
+</div>
 
 	  
@@ -752,8 +734,8 @@
 	    
 	    <h4 id="_v2t_param_temp">temp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,5 +744,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A 2, 3 or 4d array
+</div>
 	    
 
@@ -770,20 +754,33 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ From Marina Levy's programs</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: nom du input?
+</div>
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Force parameters of the zoom on the grid V to be the same as 
+ those on the grid T.
+
+ 
+ Points which can not be calculated are put at the value NaN 
+ consecrated by IDL: !values.f_nan
+</div>
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/vmask.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/vmask.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/GRILLE/vmask.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ calculate fmask. Economize memory (we do not need to keep vmask anymore)
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_vmask">
 
-	  <h2><a class="top" href="#container">top</a>vmask </h2>
+	  <h2><a class="top" href="#container">top</a>vmask <span class="categories">
+ Utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,31 +721,24 @@
 	
 	  <div class="comments">
- NAME:vmask
-
- PURPOSE:calcule vmask
-
- CATEGORY:fonction economisatrice de memoire (plus besion de garder
- vmask)  
-
- CALLING SEQUENCE:res=vmask()
-
- OUTPUTS:un tableau 3d correspondant a vmask
-
- EXAMPLE:s''utilise comme si vmask etait un tableau connu en
- replacant ds la syntaxe vmask par vmask(). par ex:
- au lieu de taper vmask[domainef] il faut taper vmask()[domainef]
 </div>
 
-	  
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+	  <h3>Return value</h3><div class="preformat">
+ A 3d array corresponding to vmask.
+</div>
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ Used like if vmask was a known array by substituing vmask by (vmask())
+ For example: Instaed of write vmask[domainef] we have to write (vmask())[domainef]
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/completetype.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/completetype.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/completetype.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>completetype(<span class="result"><a href="#_completetype_param_typein">typein</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -749,8 +750,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/computehopegrid.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/computehopegrid.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/computehopegrid.html	(revision 142)
@@ -696,5 +696,6 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+</div>
 
       
@@ -711,5 +712,7 @@
 	<div class="routine_details" id="_computehopegrid">
 
-	  <h2><a class="top" href="#container">top</a>computehopegrid </h2>
+	  <h2><a class="top" href="#container">top</a>computehopegrid <span class="categories">
+ grille
+ </span></h2>
 	
 	  <p class="header">
@@ -717,25 +720,4 @@
 	
 	  <div class="comments">
- NAME:computehopegrid
-
- PURPOSE:
-
- CATEGORY:grille
-
- CALLING SEQUENCE:computehopegrid
- 
- INPUTS:
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -757,5 +739,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_param_yaxis">yaxis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -770,5 +753,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_param_zaxis">zaxis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -783,5 +767,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_param_linetype">linetype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -796,5 +781,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 	    
 
@@ -816,5 +802,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_keyword_WPOINT">WPOINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -829,5 +816,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_keyword_FIRSTS">FIRSTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -842,5 +830,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_keyword_LASTS">LASTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -855,5 +844,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+</div>
 	    
 	    <h4 id="_computehopegrid_keyword_PTTYPE">PTTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -868,25 +858,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/createhopestruct.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/createhopestruct.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/createhopestruct.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>createhopestruct(<span class="result"><a href="#_createhopestruct_param_event">event</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -749,8 +750,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/cw_selectinterval.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/cw_selectinterval.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/cw_selectinterval.html	(revision 142)
@@ -711,5 +711,5 @@
 	  
 	  <dt><p><a href="#_cw_selectinterval_get_value"><span class="result">result = </span>cw_selectinterval_get_value(<span class="result">id</span>)</a></p><dt>
-	  <dd></dd>	
+	  <dd> </dd>	
 	  
 	  <dt><p><a href="#_cw_selectinterval_event"><span class="result">result = </span>cw_selectinterval_event(<span class="result">event</span>)</a></p><dt>
@@ -733,5 +733,6 @@
 	    <span class="result">result = </span>cw_selectinterval_get_value(<span class="result"><a href="#_cw_selectinterval_get_value_param_id">id</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -766,8 +767,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/directory-overview.html	(revision 142)
@@ -702,5 +702,5 @@
       
 	<dt><a href="computehopegrid.html?format=raw">computehopegrid.pro</a></dt>
-	<dd></dd>
+	<dd> </dd>
       
 	<dt><a href="createhopestruct.html?format=raw">createhopestruct.pro</a></dt>
@@ -717,5 +717,5 @@
       
 	<dt><a href="read_hope.html?format=raw">read_hope.pro</a></dt>
-	<dd></dd>
+	<dd>  Read the Hope grid file converted in NetCdf by xconv </dd>
       
 	<dt><a href="rh_alldomains.html?format=raw">rh_alldomains.pro</a></dt>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/domainpart.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/domainpart.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/domainpart.html	(revision 142)
@@ -716,5 +716,6 @@
 	    domainpart<span class="result">, <a href="#_domainpart_param_top_uvalue">top_uvalue</a>, <a href="#_domainpart_param_basedomain">basedomain</a>, <a href="#_domainpart_param_selected">selected</a></span>, <a href="#_domainpart_keyword_DESTROY">DESTROY</a>=<span class="result">DESTROY</span></p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -792,8 +793,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/findlineandpointtype.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/findlineandpointtype.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/findlineandpointtype.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>findlineandpointtype(<span class="result"><a href="#_findlineandpointtype_param_sectype">sectype</a>, <a href="#_findlineandpointtype_param_xaxis">xaxis</a>, <a href="#_findlineandpointtype_param_yaxis">yaxis</a>, <a href="#_findlineandpointtype_param_iodir">iodir</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -788,8 +789,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/read_hope.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/read_hope.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/read_hope.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Read the Hope grid file converted in NetCdf by xconv
+</div>
 
       
@@ -711,8 +713,8 @@
 	  
 	  <dt><p><a href="#_read_hope_event">read_hope_event<span class="result">, event</span></a></p><dt>
-	  <dd>  NAME: read_hope   PURPOSE: read the Hope grid file converted in NetCdf by xconv   CATEGORY: reading   CALLING SEQUENCE: a=read_hope([typein, varnamein])    INPUTS:         typein: a string specifing from which type of section the 4D         array based: 'xy, 'xz', 'yz'          varnamein: a string the name of the cariable to be read (in         lower or upper case)   KEYWORD PARAMETERS:           FILENAME = the name of the file to be read           XLIMITS = a two elements vertor [lonmin, lonmax]]                    the bondary of the longitudes (from 0 to 360)           YLIMITS = a two elements vertor [latmin, latmax]]                    the bondary of the latitudes (from -90 to 90)           ZLIMITS = a two elements vertor [depthmin, depthmax]]                    the bondary of the depth           TLIMITS = a two elements vertor [date1, date2]]                    the bondary of the calendar with date1 and date2                    folowing the syntaxe yyyymmdd           /ODDPT: activate to read only the sections located on ODD          points            /EVENPT: activate to read only the sections located on even          points            /ODDEVENPT: activate to read only the sections located on          both even and odd points (horizontal sections)   OUTPUTS:          -1 if typein and varnamein are undefine (this is the widget         version)          a structure which but be read by litchamp.</dd>	
+	  <dd></dd>	
 	  
 	  <dt><p><a href="#_read_hope"><span class="result">result = </span>read_hope(<span class="result">typein, varnamein</span>, FILENAME=<span class="result">FILENAME</span>, XLIMITS=<span class="result">XLIMITS</span>, YLIMITS=<span class="result">YLIMITS</span>, ZLIMITS=<span class="result">ZLIMITS</span>, TLIMITS=<span class="result">TLIMITS</span>, ODDPT=<span class="result">ODDPT</span>, ODDEVENPT=<span class="result">ODDEVENPT</span>, EVENPT=<span class="result">EVENPT</span>, _extra=<span class="result">_extra</span>)</a></p><dt>
-	  <dd></dd>	
+	  <dd> </dd>	
 	  	
 	</dl>
@@ -730,80 +732,266 @@
 	    read_hope_event<span class="result">, <a href="#_read_hope_event_param_event">event</a></span></p>
 	
+	  <div class="comments"></div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_read_hope_event_param_event">event&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	
+	</div>
+	
+
+	<div class="routine_details" id="_read_hope">
+
+	  <h2><a class="top" href="#container">top</a>read_hope <span class="categories">
+ Reading
+</span></h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>read_hope(<span class="result"><a href="#_read_hope_param_typein">typein</a>, <a href="#_read_hope_param_varnamein">varnamein</a></span>, <a href="#_read_hope_keyword_FILENAME">FILENAME</a>=<span class="result">FILENAME</span>, <a href="#_read_hope_keyword_XLIMITS">XLIMITS</a>=<span class="result">XLIMITS</span>, <a href="#_read_hope_keyword_YLIMITS">YLIMITS</a>=<span class="result">YLIMITS</span>, <a href="#_read_hope_keyword_ZLIMITS">ZLIMITS</a>=<span class="result">ZLIMITS</span>, <a href="#_read_hope_keyword_TLIMITS">TLIMITS</a>=<span class="result">TLIMITS</span>, <a href="#_read_hope_keyword_ODDPT">ODDPT</a>=<span class="result">ODDPT</span>, <a href="#_read_hope_keyword_ODDEVENPT">ODDEVENPT</a>=<span class="result">ODDEVENPT</span>, <a href="#_read_hope_keyword_EVENPT">EVENPT</a>=<span class="result">EVENPT</span>, <a href="#_read_hope_keyword__extra">_extra</a>=<span class="result">_extra</span>)</p>
+	
 	  <div class="comments">
- NAME: read_hope
-
- PURPOSE: read the Hope grid file converted in NetCdf by xconv
-
- CATEGORY: reading
-
- CALLING SEQUENCE: a=read_hope([typein, varnamein])
- 
- INPUTS:
-        typein: a string specifing from which type of section the 4D
-        array based: 'xy, 'xz', 'yz'
-
-        varnamein: a string the name of the cariable to be read (in
-        lower or upper case)
-
- KEYWORD PARAMETERS:
-
-         FILENAME = the name of the file to be read
-
-         XLIMITS = a two elements vertor [lonmin, lonmax]]
-                   the bondary of the longitudes (from 0 to 360)
-
-         YLIMITS = a two elements vertor [latmin, latmax]]
-                   the bondary of the latitudes (from -90 to 90)
-
-         ZLIMITS = a two elements vertor [depthmin, depthmax]]
-                   the bondary of the depth
-
-         TLIMITS = a two elements vertor [date1, date2]]
-                   the bondary of the calendar with date1 and date2
-                   folowing the syntaxe yyyymmdd
-
-         /ODDPT: activate to read only the sections located on ODD
-         points 
-
-         /EVENPT: activate to read only the sections located on even
-         points 
-
-         /ODDEVENPT: activate to read only the sections located on
-         both even and odd points (horizontal sections)
-
- OUTPUTS:
-
-        -1 if typein and varnamein are undefine (this is the widget
-        version)
-
-        a structure which but be read by litchamp.pro and is
-        necessary to complute the grid associated to the data (see
-        the example).
-
- COMMON BLOCKS: common.pro (usefull only for the definition of iodir)
-
- SIDE EFFECTS:
-     'x', 'y', 'z', 't', 'xt', 'yt' and 'zt' section not coded, xconv
-     must be able to works with this kind of fonction.
-     The grib file has no zoom possibilities on horizontal
-     dimensions.
-
- RESTRICTIONS:
-
-     When typein and varnamein are defined, the methode to find the
-     godd variable is:
-     1) find the variables which are available on this type of
-     sections woth this name
-     2) if ODDPT, EVENPT or ODDEVENPT are specified, consider only
-     these types of sections
-     3) for an XY section the chosen variable is the one which has
-     the most level in the vertical domain specified by ZLIMITS.
-        for an XZ section the chosen variable is the one which has
-     the most points in the latitude domain specified by YLIMITS.
-        for an YZ section the chosen variable is the one which has
-     the most points in the longitude domain specified by XLIMITS.
-
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ -1 if typein and varnamein are undefine (this is the widget
+ version)
+
+ A structure which but be read by litchamp.pro and is
+ necessary to complute the grid associated to the data (see
+ the example).
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_read_hope_param_typein">typein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A string specifing from which type of section the 4D
+ array based: 'xy, 'xz', 'yz'
+</div>
+	    
+	    <h4 id="_read_hope_param_varnamein">varnamein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A string the name of the cariable to be read (in
+ lower or upper case)
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_read_hope_keyword_FILENAME">FILENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The name of the file to be read
+</div>
+	    
+	    <h4 id="_read_hope_keyword_XLIMITS">XLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A two elements vertor [lonmin, lonmax]]
+ the bondary of the longitudes (from 0 to 360)
+</div>
+	    
+	    <h4 id="_read_hope_keyword_YLIMITS">YLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A two elements vertor [latmin, latmax]]
+ the bondary of the latitudes (from -90 to 90)
+</div>
+	    
+	    <h4 id="_read_hope_keyword_ZLIMITS">ZLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A two elements vertor [depthmin, depthmax]]
+ the bondary of the depth
+</div>
+	    
+	    <h4 id="_read_hope_keyword_TLIMITS">TLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A two elements vertor [date1, date2]]
+ the bondary of the calendar with date1 and date2
+ folowing the syntaxe yyyymmdd
+</div>
+	    
+	    <h4 id="_read_hope_keyword_ODDPT">ODDPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Activate to read only the sections located on ODD
+ points 
+</div>
+	    
+	    <h4 id="_read_hope_keyword_ODDEVENPT">ODDEVENPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Activate to read only the sections located on
+ both even and odd points (horizontal sections)
+</div>
+	    
+	    <h4 id="_read_hope_keyword_EVENPT">EVENPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Activate to read only the sections located on even
+ points 
+</div>
+	    
+	    <h4 id="_read_hope_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used to pass yor keywords
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
 
      IDL> a=read_hope('xy','ocpt',filename='CLIM_CNT_1993-1998.nc')
@@ -829,239 +1017,44 @@
      <Expression>    FLOAT     = Array[128, 242, 15]
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_read_hope_event_param_event">event&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	
-	</div>
-	
-
-	<div class="routine_details" id="_read_hope">
-
-	  <h2><a class="top" href="#container">top</a>read_hope </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>read_hope(<span class="result"><a href="#_read_hope_param_typein">typein</a>, <a href="#_read_hope_param_varnamein">varnamein</a></span>, <a href="#_read_hope_keyword_FILENAME">FILENAME</a>=<span class="result">FILENAME</span>, <a href="#_read_hope_keyword_XLIMITS">XLIMITS</a>=<span class="result">XLIMITS</span>, <a href="#_read_hope_keyword_YLIMITS">YLIMITS</a>=<span class="result">YLIMITS</span>, <a href="#_read_hope_keyword_ZLIMITS">ZLIMITS</a>=<span class="result">ZLIMITS</span>, <a href="#_read_hope_keyword_TLIMITS">TLIMITS</a>=<span class="result">TLIMITS</span>, <a href="#_read_hope_keyword_ODDPT">ODDPT</a>=<span class="result">ODDPT</span>, <a href="#_read_hope_keyword_ODDEVENPT">ODDEVENPT</a>=<span class="result">ODDEVENPT</span>, <a href="#_read_hope_keyword_EVENPT">EVENPT</a>=<span class="result">EVENPT</span>, <a href="#_read_hope_keyword__extra">_extra</a>=<span class="result">_extra</span>)</p>
-	
-	  <div class="comments"></div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_read_hope_param_typein">typein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_param_varnamein">varnamein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_read_hope_keyword_FILENAME">FILENAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_XLIMITS">XLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_YLIMITS">YLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_ZLIMITS">ZLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_TLIMITS">TLIMITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_ODDPT">ODDPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_ODDEVENPT">ODDEVENPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword_EVENPT">EVENPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_hope_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ 'x', 'y', 'z', 't', 'xt', 'yt' and 'zt' section not coded, xconv
+ must be able to works with this kind of fonction.
+ The grib file has no zoom possibilities on horizontal dimensions.
+
+
+
+ When typein and varnamein are defined, the methode to find the
+ godd variable is:
+  1) find the variables which are available on this type of
+ sections woth this name
+  2) if ODDPT, EVENPT or ODDEVENPT are specified, consider only
+ these types of sections
+  3) For an XY section the chosen variable is the one which has
+ the most level in the vertical domain specified by ZLIMITS.
+     For an XZ section the chosen variable is the one which has
+ the most points in the latitude domain specified by YLIMITS.
+     For an YZ section the chosen variable is the one which has
+ the most points in the longitude domain specified by XLIMITS.
+
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro (usefull only for the definition of iodir)
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/rh_alldomains.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/rh_alldomains.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/rh_alldomains.html	(revision 142)
@@ -716,5 +716,6 @@
 	    rh_alldomains<span class="result">, <a href="#_rh_alldomains_param_topid">topid</a>, <a href="#_rh_alldomains_param_selected">selected</a></span></p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -762,8 +763,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/sortdim.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/sortdim.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/sortdim.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>sortdim(<span class="result"><a href="#_sortdim_param_dims">dims</a></span>, <a href="#_sortdim_keyword_inverse">inverse</a>=<span class="result">inverse</span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -766,8 +767,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/xrh.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/xrh.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/HOPE/xrh.html	(revision 142)
@@ -716,5 +716,6 @@
 	    xrh, <a href="#_xrh_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -748,8 +749,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/animgif.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/animgif.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/animgif.html	(revision 142)
@@ -713,5 +713,6 @@
 	<div class="routine_details" id="_animgif">
 
-	  <h2><a class="top" href="#container">top</a>animgif <span class="categories"> Animated drawings.
+	  <h2><a class="top" href="#container">top</a>animgif <span class="categories"> 
+ Animated drawings.
 </span></h2>
 	
@@ -729,8 +730,8 @@
 	    
 	    <h4 id="_animgif_param_nomfic">nomfic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -739,5 +740,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ It is the name of the gif file containing the animation.
+          Comment: this file is placed in the directory defined by iodir.
+</div>
 	    
 
@@ -749,7 +753,8 @@
 	  <h3>Version history</h3>
 	  
-	  <h4>Version</h4><div class="preformat"> $Id: animgif.pro 134 2006-07-07 10:19:08Z navarro $
+	  <h4>Version</h4><div class="preformat"> 
+ $Id: animgif.pro 134 2006-07-07 10:19:08Z navarro $
 </div>
-	  <h4>History</h4><div class="preformat"> Guillaume Roullet (grlod@ipsl.jussieu.fr)</div>
+	  <h4>History</h4><div class="preformat"> </div>
 	  
 	  
@@ -758,5 +763,6 @@
 	  
 	  
-	  <h4>Restrictions</h4><div class="preformat"> We use the Z buffer to go faster!.
+	  <h4>Restrictions</h4><div class="preformat"> 
+ We use the Z buffer to go faster!.
               So, if it failed in animgif, you have to do:
               IDL> device, /close
@@ -764,13 +770,11 @@
               IDL> retall
 
- If we want to delete the @common,
-               we have to define manually the picture's size 
-               (variables xsize and ysize) just as iodir.
-</div>
+ </div>
 	
 	  <h3>Other attributes</h3>
 	  
 	  
-	  <h4>Uses routines</h4><div class="preformat"> common.pro
+	  <h4>Uses routines</h4><div class="preformat"> 
+ common.pro
 </div>
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/image_viewer.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/image_viewer.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/image_viewer.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/imdisp.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/imdisp.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/imdisp.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/saveimage.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/saveimage.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/saveimage.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/showimage.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/showimage.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/showimage.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/directory-overview.html	(revision 142)
@@ -699,5 +699,5 @@
       
 	<dt><a href="initncdf.html?format=raw">initncdf.pro</a></dt>
-	<dd></dd>
+	<dd>  Initfile for Netcdf file.</dd>
       
 	<dt><a href="initncdfxxx.html?format=raw">initncdfxxx.pro</a></dt>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/initncdf.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/initncdf.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/INIT/initncdf.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Initfile for Netcdf file. define all the grid parameters
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_initncdf">
 
-	  <h2><a class="top" href="#container">top</a>initncdf </h2>
+	  <h2><a class="top" href="#container">top</a>initncdf <span class="categories">
+
+ </span></h2>
 	
 	  <p class="header">
@@ -717,269 +721,250 @@
 	
 	  <div class="comments">
- NAME:initncdf
-
- PURPOSE:initfile for Netcdf file. define all the grid parameters
-
- CATEGORY:
-
- CALLING SEQUENCE:initncdf, ncfilename
- 
- INPUTS:ncfilename: a string giving the name of the NetCdf file
-
- KEYWORD PARAMETERS:
-
-       GLAMBOUNDARY:a 2 elements vector, {lon1,lon2], the longitute
-       boundaries that should be used to visualize the data.
-         lon2 > lon1
-         lon2 - lon1 le 360
-       key_shift will be defined according to GLAMBOUNDARY.
-
-       /INVMASK: to inverse the mask: mask = 1-mask
-
-       IODIRECTORY;a string giving the name of iodirectory (see
-       isafile.pro for all possibilities). default value is common 
-       variable iodir
-
-       MASKNAME: a string giving the name of the variable in the file 
-       that contains the land/sea mask
-
-       MISSING_VALUE: to define (or redifine if the attribute is
-       already existing) the missing values used with USEASMASK
-       keyword
-
-       /start1: index the axis from 1 instead of 0 when using
-       /xyindex and/or zindex
-
-       USEASMASK: a string giving the name of the variable in the file 
-       that will be used to build the land/sea mask. In this case the
-       mask is based on the first record (if record dimension
-       exists). The mask is build according to :
-         1 the keyword missing_value if existing
-         2 the attribute 'missing_value' if existing
-         3 NaN values if existing
-
-       [XYZ]AXISNAME= a string giving the name of the variable in the file 
-       that contains the [xyz]axis. 
-       for X axis, default name must be 'x', 'longitude', 'nav_lon' or 'lon'.
-       for Y axis, default name must be 'y', 'latitude', 'nav_lat' or 'lat'.
-       for Z axis, default name must be 'z', 'level', 'lev', 'depth...'
-
-       [XYZ]MINMESH: to define the common variables i[xyz]minmesh
-       used to define the grid only in a zoomed part of the original
-       grid. Defaut values are 0L
-
-       [XYZ]MAXMESH: to define the common variables i[xyz]maxmesh
-       used to define the grid only in a zoomed part of the original
-       grid. Defaut values are jp[ijk]glo-1
-
-       /xyindex: to define the x/y axis with index instead of using
-       the values contained in X/YAXISNAME. 
-       x/yaxis = keyword_set(start1) + findgen(jpi/jpj) 
-       this forces key_onearth = 0
-
-       /zindex: to define the z axis with index instead of using
-       the values contained in ZAXISNAME. 
-       zaxis = keyword_set(start1) + findgen(jpk) 
-
- OUTPUTS:none, except the grid parameters of the common.pro
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:change the grid parameters of the common.pro
-
- RESTRICTIONS:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_initncdf_param_ncfilein">ncfilein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A string giving the name of the NetCdf file
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_initncdf_keyword_XAXISNAME">XAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A string giving the name of the variable in the file 
+ that contains the [xyz]axis. 
+ for X axis, default name must be 'x', 'longitude', 'nav_lon' or 'lon'.
+      </div>
+	    
+	    <h4 id="_initncdf_keyword_YAXISNAME">YAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A string giving the name of the variable in the file 
+ that contains the [xyz]axis. 
+ for Y axis, default name must be 'y', 'latitude', 'nav_lat' or 'lat'.
+</div>
+	    
+	    <h4 id="_initncdf_keyword_ZAXISNAME">ZAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A string giving the name of the variable in the file 
+ that contains the [xyz]axis. 
+ for Z axis, default name must be 'z', 'level', 'lev', 'depth...'
+</div>
+	    
+	    <h4 id="_initncdf_keyword_MASKNAME">MASKNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A string giving the name of the variable in the file 
+ that contains the land/sea mask
+</div>
+	    
+	    <h4 id="_initncdf_keyword_INVMASK">INVMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To inverse the mask: mask = 1-mask
+</div>
+	    
+	    <h4 id="_initncdf_keyword_USEASMASK">USEASMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ A string giving the name of the variable in the file 
+ that will be used to build the land/sea mask. In this case the
+ mask is based on the first record (if record dimension
+ exists). The mask is build according to :
+    1 the keyword missing_value if existing
+    2 the attribute 'missing_value' if existing
+    3 NaN values if existing
+</div>
+	    
+	    <h4 id="_initncdf_keyword_MISSING_VALUE">MISSING_VALUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To define (or redifine if the attribute is
+ already existing) the missing values used with USEASMASK
+ keyword
+</div>
+	    
+	    <h4 id="_initncdf_keyword_START1">START1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Index the axis from 1 instead of 0 when using
+ /xyindex and/or zindex
+</div>
+	    
+	    <h4 id="_initncdf_keyword_XYINDEX">XYINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To define the x/y axis with index instead of using
+ the values contained in X/YAXISNAME. 
+ x/yaxis = keyword_set(start1) + findgen(jpi/jpj) 
+ this forces key_onearth = 0
+</div>
+	    
+	    <h4 id="_initncdf_keyword_ZINDEX">ZINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To define the z axis with index instead of using
+ the values contained in ZAXISNAME. 
+ zaxis = keyword_set(start1) + findgen(jpk) 
+ </div>
+	    
+	    <h4 id="_initncdf_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used to pass your keywords/
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+  IDL> initncdf,'toto.nc',glam=[-180,180]
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Change the grid parameters of the common.pro
+
+
  the file must contain an x and an y axis. (1 ou 2 dimentional array)
-
- EXAMPLE: IDL> initncdf,'toto.nc',glam=[-180,180]
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_initncdf_param_ncfilein">ncfilein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_initncdf_keyword_XAXISNAME">XAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_YAXISNAME">YAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_ZAXISNAME">ZAXISNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_MASKNAME">MASKNAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_INVMASK">INVMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_USEASMASK">USEASMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_MISSING_VALUE">MISSING_VALUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_START1">START1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_XYINDEX">XYINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword_ZINDEX">ZINDEX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_initncdf_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/binary.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/binary.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/binary.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Returns the binary representation of a number of any numerical type.
+ </div>
 
       
@@ -716,14 +718,35 @@
 	    <span class="result">result = </span>binary(<span class="result"><a href="#_binary_param_number">number</a></span>)</p>
 	
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="preformat">
+ Byte array with binary representation of numbers.
+ </div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_binary_param_number">number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	  <div class="comments">
- Name:
-   binary
- Purpose:
-   Returns the binary representation of a number of any numerical type.
- Argument:
-   number   scalar or array of numbers (any numerical type)
- Returns:
-   Byte array with binary representation of numbers.
- Examples:
+ scalar or array of numbers (any numerical type)
+ </div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
    Binary representation of 11b:
      IDL> print, binary(11b)
@@ -742,5 +765,11 @@
      alpha   vms     0fda4149 68c0a221     49 41 da 0f 21 a2 c0 68
      (Beginning with IDL 5.1, Alpha VMS uses IEEE representation as well.)
- Modification history:
+ </div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">:
     19 Dec 1997  Originally a news posting by David Fanning.
                        (Re: bits from bytes)
@@ -752,35 +781,6 @@
       single bytes. Check that big and little endian machines
       return exactly the same results (if IEEE).
-    7 May 2003     Added newish data types, unsigned and long64.  BT</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_binary_param_number">number&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+    7 May 2003     Added newish data types, unsigned and long64.  BT
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/changeread.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/changeread.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/changeread.html	(revision 142)
@@ -716,5 +716,6 @@
 	    <span class="result">result = </span>changeread(<span class="result"><a href="#_changeread_param_newread">newread</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -749,8 +750,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/directory-overview.html	(revision 142)
@@ -699,5 +699,5 @@
       
 	<dt><a href="binary.html?format=raw">binary.pro</a></dt>
-	<dd></dd>
+	<dd>  Returns the binary representation of a number of any numerical type.</dd>
       
 	<dt><a href="changeread.html?format=raw">changeread.pro</a></dt>
@@ -705,11 +705,11 @@
       
 	<dt><a href="inverse_binary.html?format=raw">inverse_binary.pro</a></dt>
-	<dd></dd>
+	<dd>  Inverse function of the binary.</dd>
       
 	<dt><a href="litchamp.html?format=raw">litchamp.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to read an array or a sructure cooresponding to a field.</dd>
       
 	<dt><a href="ncdf_lec.html?format=raw">ncdf_lec.pro</a></dt>
-	<dd></dd>
+	<dd>  Give informations on a file net cdf and allows to recuperate   variables which are write in.</dd>
       
 	<dt><a href="read_ftp.html?format=raw">read_ftp.pro</a></dt>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/inverse_binary.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/inverse_binary.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/inverse_binary.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Inverse function of the binary.pro function => given a
+ input array of 0/1, return its corresponding byte/integer/long
+ representation
+</div>
 
       
@@ -711,5 +715,6 @@
 	<div class="routine_details" id="_inverse_binary">
 
-	  <h2><a class="top" href="#container">top</a>inverse_binary </h2>
+	  <h2><a class="top" href="#container">top</a>inverse_binary <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +722,43 @@
 	
 	  <div class="comments">
- NAME: inverse_binary
-
- PURPOSE: inverse function of the binary.pro function => given a
- input array of 0/1, return its corresponding byte/integer/long
- representation
-
- CATEGORY:
-
- CALLING SEQUENCE: res = inverse_binary(binnum)
-
- INPUTS: 
-    binnum must be a binary type array containing only 0 and 1.
-    According to binary.pro outputs, binnum array must have the
-    following dimensions values: (8, t, d1, d2...)
-    t gives the output type: t = 1 -> byte
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ A byte/integer/long array with (d1, d2...) dimensions
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_inverse_binary_param_binnumb">binnumb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Must be a binary type array containing only 0 and 1.
+ According to binary.pro outputs, binnum array must have the
+ following dimensions values: (8, t, d1, d2...)
+ t gives the output type: t = 1 -> byte
                              t = 2 -> integer
                              t = 4 -> long
     
-     (d1, d2...) are the output dimensions
-
- KEYWORD PARAMETERS: no
-
- OUTPUTS: a byte/integer/long array with (d1, d2...) dimensions
-
- COMMON BLOCKS: no
-
- RESTRICTIONS:the binary number can represent only byte/integer/long
-
- EXAMPLE:
+  (d1, d2...) are the output dimensions
+
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
 
      IDL> a=indgen(5)
@@ -770,43 +785,20 @@
      IDL> print, inverse_binary(b)
             0       1       2       3       4
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_inverse_binary_param_binnumb">binnumb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ The binary number can represent only byte/integer/long
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/litchamp.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/litchamp.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/litchamp.html	(revision 142)
@@ -696,5 +696,14 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to read an array or a sructure cooresponding to a field.
+ If we have in input: 
+   -an array, litchamp send back the array.
+   -a structure, litchamp send back the first element of the structure 
+   which must be the field in an array.
+   Litchamp profit of this to look other elements of the structure et
+   update if needed global variables which refer to the field:
+   vargrid, varname, varunit, vardate, varexp , valmask et time 
+</div>
 
       
@@ -711,5 +720,7 @@
 	<div class="routine_details" id="_litchamp">
 
-	  <h2><a class="top" href="#container">top</a>litchamp </h2>
+	  <h2><a class="top" href="#container">top</a>litchamp <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,85 +728,175 @@
 	
 	  <div class="comments">
- NAME:litchamp
-
- PURPOSE:permet de lire un simple tableau ou une structure
- correspondant a un champ.
- Si en entree on a :
-   -un simple tableau, litchamp renvoie le tableau
-   -une stucture, litchamp renvoie le premier element de la structure
-   qui doit obligatoirement etre le champ sous forme d''un tableau.
-   Au passage litchamp regarde les autres elements de la structure et
-   met a jour si besoin les variables globales qui se rapportent au
-   champ: vargrid, varname, varunit, vardate, varexp , valmask et time 
-
- CATEGORY:permet d''appeler plt, pltz, pltt ... avec un tableau ou une
- structure et de mettre a jour les variables globales liees au champ. 
-
- CALLING SEQUENCE:res=litchamp(struct)
-
- INPUTS:
-        struct: c''est soit un tableau soit une structure.
-    Si struct est une structure, elle doit suivre les regles
-    suivantes:
-        -le premier element est le tableau contenant le champ.
-        -les autres elements sont des strings qui contiennent des
-        informations sur le champ SAUF pour l''element relatif a
-        date. Ce dernier peut etre soit un string pour designer une date
-        particuliere (ex: 'August 1999') ou bien un vecteur de jours
-        juliens (d''IDL) correspondant au calendrier a associer au
-        champ si c'est une serie temporelle.
-        -l''ordre des elements (autre que le premier) n''a pas
-        d''importance. 
-        -les autres elements (autre que le premier) sont tous
-        optionnels.
-        -ils sont reconnus par la premiere lettre de leur nom:
-             g  pour actualiser vargrid
-             u  pour actualiser varunit
-             e  pour actualiser varexp
-             d  pour actualiser vardate
-             n  pour actualiser varname
-             m  pour actualiser valmask
-
- KEYWORD PARAMETERS:
-
-        /GRID: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'g' si il existe et '' dans le cas contraire.
-
-        /UNIT: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'u' si il existe et '' dans le cas contraire.
-
-        /EXP: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'e' si il existe et '' dans le cas contraire.
-
-        /DATE: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'd' si il existe et '' dans le cas contraire.
-
-        /NAME: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'n' si il existe et '' dans le cas contraire.
-
-        /LEVEL: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'l' si il existe et -1 dans le cas contraire.
-
-        /MASK: activer ce mot cle si on veut que litchamp renvoie la
-        variable associee a l''element de la structure commencant
-        par 'm' si il existe et -1 dans le cas contraire.
-
- OUTPUTS:c''est le tableau qui continent le champ.
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS: actualise au besion les variables globales vargrid,
- varname, varunit, vardate, varexp, valmask et time.
-
- RESTRICTIONS:
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ It is the array containing the field.
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_litchamp_param_struct">struct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is either an array or a structure.
+  If STRUCT is a structure, it must follow following rules:
+        -the first element is the array containing the field.
+        -other elements are strings containing informations on the field exept
+        for the one about the date. This one can be either a string to designate
+        a particular date (ex: 'August 1999') or a vector of julian days (of IDL)
+        corresponding  to the calendar to be associated with the field if it is a
+        temporal series.
+        -the order of elements (exept the first) has not any importance. 
+        -the other elements (exept the first) are optional.
+        -they are recognize by the first letter of their names:
+             g  to update vargrid
+             u  to update varunit
+             e  to update varexp
+             d  to update vardate
+             n  to update varname
+             m  to update valmask
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_litchamp_keyword_GRID">GRID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'g' if it exist 
+ and '' if it does not.
+</div>
+	    
+	    <h4 id="_litchamp_keyword_NAME">NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'n' if it exist 
+ and '' if it does not.
+</div>
+	    
+	    <h4 id="_litchamp_keyword_UNIT">UNIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'u' if it exist 
+ and '' if it does not.
+</div>
+	    
+	    <h4 id="_litchamp_keyword_EXP">EXP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'u' if it exist 
+ and '' if it does not.
+</div>
+	    
+	    <h4 id="_litchamp_keyword_DATE">DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'd' if it exist 
+ and '' if it does not.
+</div>
+	    
+	    <h4 id="_litchamp_keyword_LEVEL">LEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'l' if it exist 
+ and -1 if it does not.
+ 
+</div>
+	    
+	    <h4 id="_litchamp_keyword_MASK">MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ We activate this keyword if we want litchamp to send back the variable 
+ associated with the element of the structure starting by 'm' if it exist 
+ and -1 if it does not.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
      
     IDL> print, vargrid,', ', varname,', ', varunit,', ', vardate,', ', varexp     
@@ -811,141 +912,27 @@
  
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_litchamp_param_struct">struct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_litchamp_keyword_GRID">GRID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_NAME">NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_UNIT">UNIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_EXP">EXP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_DATE">DATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_LEVEL">LEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_litchamp_keyword_MASK">MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Update if needed global variables vargrid,
+ varname, varunit, vardate, varexp, valmask and time.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/ncdf_lec.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/ncdf_lec.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/ncdf_lec.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Give informations on a file net cdf and allows to recuperate 
+ variables which are write in.
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_ncdf_lec">
 
-	  <h2><a class="top" href="#container">top</a>ncdf_lec </h2>
+	  <h2><a class="top" href="#container">top</a>ncdf_lec <span class="categories">
+ Reading
+</span></h2>
 	
 	  <p class="header">
@@ -717,40 +722,9 @@
 	
 	  <div class="comments">
- NAME:ncdflec
-
- PURPOSE:donne des infos sur un fichier netcdf et permet de recupere
- les variables qui y sont ecrites 
-
- CATEGORY:lecture de fichiers netcdf
-
- CALLING SEQUENCE: res=ncdflec('nom_de _fichier')
-
- INPUTS:nom_de _fichier:nom d'un fichier net cdf situe ds e repertoire
- stipule par iodir
-
- KEYWORD PARAMETERS:
-
-	ATT: 'global' ou au nom d'une variable. permet de voir tous les
- attributs rattaches a une variable.
-
-	/DIM:donne la liste des dimensions
-
-	VAR:
-       1) /var: donne la liste des variables
-       2) var='nom de variable': ds ce cas la fonction retourne la variable
-
-       IODIR: string contenant le repertoire ou aller chercher le
-       fichier a lire.
-
-       _EXTRA: permet de passer les mots cles definits par IDL pour
-       les fonction NETCDF (en particulier OFFSET et COUNT ds ncdf_varget)
-
- OUTPUTS:-1 sauf si var='nom de variable' auquel cas la fonction retourne la variable
-
- REMARQUE:les noms des variables du programme sont similaires a ceux employes
- ds le manuel IDL 'scientific data formats'
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ -1 (exept if var='nom de variable', then the function send back the variable).
+</div>
 
 	  
@@ -759,8 +733,8 @@
 	    
 	    <h4 id="_ncdf_lec_param_nom">nom&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -769,5 +743,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Name of a file net cdf situated in the directory stipulated by iodir.
+</div>
 	    
 
@@ -789,5 +765,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ 'global' or at the name of a variable. Allows to see all attributes 
+ joined at a variable
+</div>
 	    
 	    <h4 id="_ncdf_lec_keyword_DIM">DIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -802,5 +781,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Give the list of dimensions.
+</div>
 	    
 	    <h4 id="_ncdf_lec_keyword_VAR">VAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -815,5 +796,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+       1) /var: Gove the list of dimensions.
+       2) var='nom de variable': in this case the function send back the variable.
+</div>
 	    
 	    <h4 id="_ncdf_lec_keyword_IODIR">IODIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -828,5 +812,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ String containing the directory containing the file to be read
+</div>
 	    
 	    <h4 id="_ncdf_lec_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -841,20 +827,28 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Allows to pass keywords defined by IDL to functions NETCDF ( particularly OFFSET 
+ and COUNT in ncdf_varget)
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Variables's names of the program are similar to these used by the IDL manual 
+ 'scientific data formats'
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ftp.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ftp.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ftp.html	(revision 142)
@@ -711,5 +711,5 @@
 	  
 	  <dt><p><a href="#_ftp_post">ftp_post<span class="result">, u, cmd, res</span>, out=<span class="result">out</span>, count=<span class="result">count</span></a></p><dt>
-	  <dd>  READ_FTP   Syntax:    READ_FTP, remote_host [, files] [, directory] [,/FILE] [,DATA=variable]               [,USER=string] [,PASS=string] [,/PTR]   Arguments    remote_host - Name of the remote host (ftp server) that you want                  to connect to, or a complete ftp location such as for example:                       ftp://ftp.</dd>	
+	  <dd></dd>	
 	  
 	  <dt><p><a href="#_ftp_parse_pasv">ftp_parse_pasv<span class="result">, text, host, port</span></a></p><dt>
@@ -717,5 +717,5 @@
 	  
 	  <dt><p><a href="#_read_ftp">read_ftp<span class="result">, site, files, dir, port</span>, data=<span class="result">data</span>, file=<span class="result">file</span>, user=<span class="result">user</span>, pass=<span class="result">pass</span>, ptr=<span class="result">ptr</span></a></p><dt>
-	  <dd></dd>	
+	  <dd>   Syntax:    READ_FTP, remote_host [, files] [, directory] [,/FILE] [,DATA=variable]               [,USER=string] [,PASS=string] [,/PTR] </dd>	
 	  	
 	</dl>
@@ -733,43 +733,210 @@
 	    ftp_post<span class="result">, <a href="#_ftp_post_param_u">u</a>, <a href="#_ftp_post_param_cmd">cmd</a>, <a href="#_ftp_post_param_res">res</a></span>, <a href="#_ftp_post_keyword_out">out</a>=<span class="result">out</span>, <a href="#_ftp_post_keyword_count">count</a>=<span class="result">count</span></p>
 	
+	  <div class="comments"></div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_ftp_post_param_u">u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_ftp_post_param_cmd">cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_ftp_post_param_res">res&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_ftp_post_keyword_out">out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_ftp_post_keyword_count">count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	
+	</div>
+	
+
+	<div class="routine_details" id="_ftp_parse_pasv">
+
+	  <h2><a class="top" href="#container">top</a>ftp_parse_pasv </h2>
+	
+	  <p class="header">
+	    ftp_parse_pasv<span class="result">, <a href="#_ftp_parse_pasv_param_text">text</a>, <a href="#_ftp_parse_pasv_param_host">host</a>, <a href="#_ftp_parse_pasv_param_port">port</a></span></p>
+	
+	  <div class="comments"></div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_ftp_parse_pasv_param_text">text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_ftp_parse_pasv_param_host">host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_ftp_parse_pasv_param_port">port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	
+	</div>
+	
+
+	<div class="routine_details" id="_read_ftp">
+
+	  <h2><a class="top" href="#container">top</a>read_ftp </h2>
+	
+	  <p class="header">
+	    read_ftp<span class="result">, <a href="#_read_ftp_param_site">site</a>, <a href="#_read_ftp_param_files">files</a>, <a href="#_read_ftp_param_dir">dir</a>, <a href="#_read_ftp_param_port">port</a></span>, <a href="#_read_ftp_keyword_data">data</a>=<span class="result">data</span>, <a href="#_read_ftp_keyword_file">file</a>=<span class="result">file</span>, <a href="#_read_ftp_keyword_user">user</a>=<span class="result">user</span>, <a href="#_read_ftp_keyword_pass">pass</a>=<span class="result">pass</span>, <a href="#_read_ftp_keyword_ptr">ptr</a>=<span class="result">ptr</span></p>
+	
 	  <div class="comments">
- READ_FTP
 
  Syntax:
    READ_FTP, remote_host [, files] [, directory] [,/FILE] [,DATA=variable]
               [,USER=string] [,PASS=string] [,/PTR]
-
- Arguments
-   remote_host - Name of the remote host (ftp server) that you want
-                 to connect to, or a complete ftp location such as for example:
-                      ftp://ftp.rsinc.com/pub/gzip/README.GZIP
-
-   directory - Remote directory where the files reside on the ftp
-               server
-
-   files - A single filename or an array of filenames to be
-           retrieved.
-
- Keywords
-   FILE - Set this keyword to make a local copy of the file to be
-          transferred.  The local file will have the same name as the
-          remote file and will be placed in the current working
-          directory.
-
-   DATA - Set this to a named variable that will contain either a
-          byte array or an array of pointers to byte arrays with the
-          transferred data.  If there is more than one file, an array
-          of pointers is returned, one for each file.
-          Note that when downloading large files using /FILE
-          instead will require much less memory since the entire file
-          is not stored in a variable in that case.
-
-   PTR  - Set this keyword to return an array of pointers
-          even when there is only one file.
-
-   USER - Specify user name to connect to server with.  Default is:
-          anonymous.
-
-   PASS - Specify password to use when connecting.  Default is:</div>
+</div>
 
 	  
@@ -779,5 +946,5 @@
 	
 	    
-	    <h4 id="_ftp_post_param_u">u&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_read_ftp_param_site">site&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -792,5 +959,35 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_ftp_post_param_cmd">cmd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_read_ftp_param_files">files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A single filename or an array of filenames to be retrieved.
+</div>
+	    
+	    <h4 id="_read_ftp_param_dir">dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Remote directory where the files reside on the ftp server
+</div>
+	    
+	    <h4 id="_read_ftp_param_port">port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -805,17 +1002,4 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_ftp_post_param_res">res&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
 
 	  
@@ -825,5 +1009,5 @@
 	    <h3>Keywords</h3>
 	    
-	    <h4 id="_ftp_post_keyword_out">out&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_read_ftp_keyword_data">data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -836,7 +1020,61 @@
 	    </h4>
 	
+	    <div class="comments">
+ Set this to a named variable that will contain either a
+ byte array or an array of pointers to byte arrays with the
+ transferred data.  If there is more than one file, an array
+ of pointers is returned, one for each file.
+ Note that when downloading large files using /FILE
+ instead will require much less memory since the entire file
+ is not stored in a variable in that case.
+</div>
+	    
+	    <h4 id="_read_ftp_keyword_file">file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Set this keyword to make a local copy of the file to be
+ transferred.  The local file will have the same name as the
+ remote file and will be placed in the current working
+ directory.
+</div>
+	    
+	    <h4 id="_read_ftp_keyword_user">user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Specify user name to connect to server with.  Default is: anonymous.
+</div>
+	    
+	    <h4 id="_read_ftp_keyword_pass">pass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_ftp_post_keyword_count">count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_read_ftp_keyword_ptr">ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -849,271 +1087,65 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	
-	</div>
-	
-
-	<div class="routine_details" id="_ftp_parse_pasv">
-
-	  <h2><a class="top" href="#container">top</a>ftp_parse_pasv </h2>
-	
-	  <p class="header">
-	    ftp_parse_pasv<span class="result">, <a href="#_ftp_parse_pasv_param_text">text</a>, <a href="#_ftp_parse_pasv_param_host">host</a>, <a href="#_ftp_parse_pasv_param_port">port</a></span></p>
-	
-	  <div class="comments"></div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_ftp_parse_pasv_param_text">text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_ftp_parse_pasv_param_host">host&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_ftp_parse_pasv_param_port">port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	
-	</div>
-	
-
-	<div class="routine_details" id="_read_ftp">
-
-	  <h2><a class="top" href="#container">top</a>read_ftp </h2>
-	
-	  <p class="header">
-	    read_ftp<span class="result">, <a href="#_read_ftp_param_site">site</a>, <a href="#_read_ftp_param_files">files</a>, <a href="#_read_ftp_param_dir">dir</a>, <a href="#_read_ftp_param_port">port</a></span>, <a href="#_read_ftp_keyword_data">data</a>=<span class="result">data</span>, <a href="#_read_ftp_keyword_file">file</a>=<span class="result">file</span>, <a href="#_read_ftp_keyword_user">user</a>=<span class="result">user</span>, <a href="#_read_ftp_keyword_pass">pass</a>=<span class="result">pass</span>, <a href="#_read_ftp_keyword_ptr">ptr</a>=<span class="result">ptr</span></p>
-	
-	  <div class="comments"></div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_read_ftp_param_site">site&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_param_files">files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_param_dir">dir&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_param_port">port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_read_ftp_keyword_data">data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_keyword_file">file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_keyword_user">user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_keyword_pass">pass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_read_ftp_keyword_ptr">ptr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ Set this keyword to return an array of pointers
+ even when there is only one file.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ 1) Retrieve and print the contents of ftp://ftp.rsinc.com/pub/gzip/README.GZIP:
+   IDL> READ_FTP, 'ftp://ftp.rsinc.com/pub/gzip/README.GZIP', DATA=data
+   IDL> help, data
+          DATA            BYTE      = Array[2134]
+   IDL> print, string(data)
+     ------------------------------------------------------------------------------
+     README file: Research Systems Anonymous FTP site (ftp.rsinc.com)
+                   pub directory
+                   gzip directory
+   ------------------------------------------------------------------------------
+   ...
+
+ 2) Retrieve some files from podaac.jpl.nasa.gov and store the files
+    in the current working directory:
+
+    IDL> files = string(lindgen(10)+50,format='(%"MGB370.%3.3d.gz")')
+    IDL> READ_FTP, 'podaac.jpl.nasa.gov', files,  $
+    IDL>       'pub/sea_surface_height/topex_poseidon/mgdrb/data/MGB_370', /FILE
+    IDL> spawn,'dir MGB*',/log_output
+     Volume in drive C is Local Disk
+     Volume Serial Number is 34CE-24DF
+
+     Directory of C:testtest0307
+
+    07/28/2003  11:58a             362,167 MGB370.050.gz
+    07/28/2003  11:58a             333,005 MGB370.051.gz
+    07/28/2003  11:58a             310,287 MGB370.052.gz
+    07/28/2003  11:58a             358,771 MGB370.053.gz
+    07/28/2003  11:59a             387,282 MGB370.054.gz
+    07/28/2003  11:59a             361,633 MGB370.055.gz
+    07/28/2003  11:59a             383,075 MGB370.056.gz
+    07/28/2003  11:59a             365,844 MGB370.057.gz
+    07/28/2003  11:59a             383,918 MGB370.058.gz
+    07/28/2003  12:00p             372,712 MGB370.059.gz
+                  10 File(s)      3,618,694 bytes
+
+  These compressed files can cosequently be opened with OPENR and the
+   /COMPRESSED keyword.
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: que fait-on de "syntax" au debut du header?
+ </div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ncdf.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ncdf.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ncdf.html	(revision 142)
@@ -717,5 +717,4 @@
 	
 	  <div class="comments">
- NAME: read_ncdf
 
  PURPOSE:fonction de lecture pour fichier net_cdf.
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmapply.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmapply.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmapply.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmset_op.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmset_op.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmset_op.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/colle.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/colle.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/colle.html	(revision 142)
@@ -698,5 +698,5 @@
       <div id="file_comments"> 
  This concatenation function exist in IDL so long 
-as we do not try to stick with a dimension superior or equal at 4.  
+ as we do not try to stick with a dimension superior or equal at 4.  
 </div>
 
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/congridseb.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/congridseb.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/congridseb.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/different.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/different.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/different.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/directory-overview.html	(revision 142)
@@ -699,5 +699,5 @@
       
 	<dt><a href="colle.html?format=raw">colle.pro</a></dt>
-	<dd>   This concatenation function exist in IDL so long  as we do not try to stick with a dimension superior or equal at 4.</dd>
+	<dd>   This concatenation function exist in IDL so long   as we do not try to stick with a dimension superior or equal at 4.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/extrait.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/extrait.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/extrait.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/inter.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/inter.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/inter.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/make_selection.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/make_selection.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/make_selection.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/union.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/union.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/union.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/zeroun.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/zeroun.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/zeroun.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/bar_plot.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/bar_plot.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/bar_plot.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Create a bar graph, or overplot on an existing one.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_bar_plot">
 
-	  <h2><a class="top" href="#container">top</a>bar_plot </h2>
+	  <h2><a class="top" href="#container">top</a>bar_plot <span class="categories"> 
+ Graphics
+</span></h2>
 	
 	  <p class="header">
@@ -717,82 +721,292 @@
 	
 	  <div class="comments">
- PURPOSE:
-	Create a bar graph, or overplot on an existing one.
-
- CATEGORY:
-	Graphics.
-
- CALLING SEQUENCE:
-	BAR_PLOT, Values
-
- INPUTS:
-	Values:	A vector containing the values to be represented by the bars.
-		Each element in VALUES corresponds to a single bar in the
-		output.
-
- KEYWORD PARAMETERS:
-   BASELINES:	A vector, the same size as VALUES, that contains the
-		base value associated with each bar.  If not specified,
-		a base value of zero is used for all bars.
-
-      COLORS:	A vector, the same size as VALUES, containing the color index
-		to be used for each bar.  If not specified, the colors are
-		selected based on spacing the color indices as widely as
-		possible within the available colors (specified by D.N_COLORS).
-
-    BARNAMES:	A string array, containing one string label per bar.
-		If the bars are vertical, the labels are placed beneath
-		them.  If horizontal (rotated) bars are specified, the labels
-		are placed to the left of the bars.
-
-	TITLE:	A string containing the main title to for the bar plot.
-
-	XTITLE:	A string containing the title for the X axis.
-
-	YTITLE:	A string containing the title for the Y axis.
-
-   BASERANGE:	A floating-point scalar in the range 0.0 to 1.0, that
-		determines the fraction of the total available plotting area
-		(in the direction perpendicular to the bars) to be used.
-		If not specified, the full available area is used.
-
-    BARWIDTH:	A floating-point value that specifies the width of the bars
-		in units of "nominal bar width".  The nominal bar width is
-		computed so that all the bars (and the space between them,
-		set by default to 20% of the width of the bars) will fill the
-		available space (optionally controlled with the BASERANGE
-		keyword).
-
-    BARSPACE: 	A scalar that specifies, in units of "nominal bar width",
-		the spacing between bars.  For example, if BARSPACE is 1.0,
-		then all bars will have one bar-width of space between them.
-		If not specified, the bars are spaced apart by 20% of the bar
-		width.
-
-   BAROFFSET:	A scalar that specifies the offset to be applied to the
-		first bar, in units of "nominal bar width".  This keyword
-		allows, for example, different groups of bars to be overplotted
-		on the same graph.  If not specified, the default offset is
-		equal to BARSPACE.
-
-     OUTLINE:	If set, this keyword specifies that an outline should be
-		drawn around each bar.
-
-    OVERPLOT:	If set, this keyword specifies that the bar plot should be
-		overplotted on an existing graph.
-
-  BACKGROUND:	A scalar that specifies the color index to be used for
-		the background color.  By default, the normal IDL background
-		color is used.
-
-	ROTATE:	If set, this keyword indicates that horizontal rather than
-		vertical bars should be drawn.  The bases of horizontal bars
-		are on the left, "Y" axis and the bars extend to the right.
-
- OUTPUTS:
-	A bar plot is created, or an existing one is overplotted.
-
- EXAMPLE:
-	By using the overplotting capability, it is relatively easy to create
+ </div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_bar_plot_param_values">values&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ A vector containing the values to be represented by the bars.
+ Each element in VALUES corresponds to a single bar in the
+ output.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_bar_plot_keyword_baselines">baselines&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A vector, the same size as VALUES, that contains the
+ base value associated with each bar.  If not specified,
+ a base value of zero is used for all bars.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_colors">colors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A vector, the same size as VALUES, containing the color index
+ to be used for each bar.  If not specified, the colors are
+ selected based on spacing the color indices as widely as
+ possible within the available colors (specified by D.N_COLORS).
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_barnames">barnames&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A string array, containing one string label per bar.
+ If the bars are vertical, the labels are placed beneath
+ them.  If horizontal (rotated) bars are specified, the labels
+ are placed to the left of the bars.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_title">title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A string containing the main title to for the bar plot.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_xtitle">xtitle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A string containing the title for the X axis.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_ytitle">ytitle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A string containing the title for the Y axis.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_baserange">baserange&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A floating-point scalar in the range 0.0 to 1.0, that
+ determines the fraction of the total available plotting area
+ (in the direction perpendicular to the bars) to be used.
+ If not specified, the full available area is used.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_barwidth">barwidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A floating-point value that specifies the width of the bars
+ in units of "nominal bar width".  The nominal bar width is
+ computed so that all the bars (and the space between them,
+ set by default to 20% of the width of the bars) will fill the
+ available space (optionally controlled with the BASERANGE
+ keyword).
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_barspace">barspace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A scalar that specifies, in units of "nominal bar width",
+ the spacing between bars.  For example, if BARSPACE is 1.0,
+ then all bars will have one bar-width of space between them.
+ If not specified, the bars are spaced apart by 20% of the bar
+ width.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_baroffset">baroffset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A scalar that specifies the offset to be applied to the
+ first bar, in units of "nominal bar width".  This keyword
+ allows, for example, different groups of bars to be overplotted
+ on the same graph.  If not specified, the default offset is
+ equal to BARSPACE.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_outline">outline&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ If set, this keyword specifies that an outline should be
+ drawn around each bar.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_overplot">overplot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ If set, this keyword specifies that the bar plot should be
+ overplotted on an existing graph.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_background">background&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ A scalar that specifies the color index to be used for
+ the background color.  By default, the normal IDL background
+ color is used.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword_rotate">rotate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ If set, this keyword indicates that horizontal rather than
+ vertical bars should be drawn.  The bases of horizontal bars
+ are on the left, "Y" axis and the bars extend to the right.
+</div>
+	    
+	    <h4 id="_bar_plot_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat"> By using the overplotting capability, it is relatively easy to create
 	stacked bar charts, or different groups of bars on the same graph.
 
@@ -829,241 +1043,17 @@
 	bars.  (In this example, each group uses the same set of colors, but
 	this could easily be changed.)
-
- MODIFICATION HISTORY:
-	August 1990, T.J. Armitage, RSI, initial programming.  Replacement
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="preformat"> August 1990, T.J. Armitage, RSI, initial programming.  Replacement
 	for PLOTBAR and OPLOTBAR routines written by William Thompson.
 
 	September 1990, Steve Richards, RSI, changed defaults to improve the
 	appearance of the bar plots in the default mode. Included
-	spacing the bars slightly.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_bar_plot_param_values">values&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_bar_plot_keyword_baselines">baselines&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_colors">colors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_barnames">barnames&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_title">title&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_xtitle">xtitle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_ytitle">ytitle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_baserange">baserange&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_barwidth">barwidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_barspace">barspace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_baroffset">baroffset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_outline">outline&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_overplot">overplot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_background">background&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword_rotate">rotate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_bar_plot_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+	spacing the bars slightly.
+
+ $Id: bar_plot.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/directory-overview.html	(revision 142)
@@ -699,14 +699,14 @@
       
 	<dt><a href="bar_plot.html?format=raw">bar_plot.pro</a></dt>
-	<dd></dd>
+	<dd>   Create a bar graph, or overplot on an existing one.</dd>
       
 	<dt><a href="plt.html?format=raw">plt.pro</a></dt>
-	<dd></dd>
+	<dd>   Draw horizontal graph (map) </dd>
       
 	<dt><a href="plt1d.html?format=raw">plt1d.pro</a></dt>
-	<dd></dd>
+	<dd>  Trace 1d graphes: x,y,z (or t but in this case, we recall directly pltt) </dd>
       
 	<dt><a href="pltbase.html?format=raw">pltbase.pro</a></dt>
-	<dd></dd>
+	<dd>  Overlayer contour to trace a field which can be mask.</dd>
       
 	<dt><a href="pltsc.html?format=raw">pltsc.pro</a></dt>
@@ -714,14 +714,14 @@
       
 	<dt><a href="pltt.html?format=raw">pltt.pro</a></dt>
-	<dd></dd>
+	<dd>   Trace hovmoller graphs: xt,yt,zt,t </dd>
       
 	<dt><a href="pltz.html?format=raw">pltz.pro</a></dt>
-	<dd></dd>
+	<dd>   Trace vertical graphs.</dd>
       
 	<dt><a href="sbar_plot.html?format=raw">sbar_plot.pro</a></dt>
-	<dd></dd>
+	<dd>   Same thing that bar_plot but compatible with the whole environnement (common.</dd>
       
 	<dt><a href="scontour.html?format=raw">scontour.pro</a></dt>
-	<dd></dd>
+	<dd>  Same thing that contour but compatible with the whole environnement (common.</dd>
       
 	<dt><a href="splot.html?format=raw">splot.pro</a></dt>
@@ -729,5 +729,5 @@
       
 	<dt><a href="tvplus.html?format=raw">tvplus.pro</a></dt>
-	<dd></dd>
+	<dd>  Enhanced version of tvscl </dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Draw horizontal graph (map)
+</div>
 
       
@@ -711,640 +713,556 @@
 	<div class="routine_details" id="_plt">
 
-	  <h2><a class="top" href="#container">top</a>plt </h2>
+	  <h2><a class="top" href="#container">top</a>plt <span class="categories"> 
+ graphic
+</span></h2>
 	
 	  <p class="header">
-	    plt<span class="result">, <a href="#_plt_param_tab1">tab1</a>, <a href="#_plt_param_giventype">giventype</a>, <a href="#_plt_param_givenmin">givenmin</a>, <a href="#_plt_param_givenmax">givenmax</a></span>, <a href="#_plt_keyword_REALCONT">REALCONT</a>=<span class="result">REALCONT</span>, <a href="#_plt_keyword_CONTOUR">CONTOUR</a>=<span class="result">CONTOUR</span>, <a href="#_plt_keyword_INTERVALLE">INTERVALLE</a>=<span class="result">INTERVALLE</span>, <a href="#_plt_keyword_INV">INV</a>=<span class="result">INV</span>, <a href="#_plt_keyword_GRIDTYPE">GRIDTYPE</a>=<span class="result">GRIDTYPE</span>, <a href="#_plt_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_plt_keyword_CONTINTERVALLE">CONTINTERVALLE</a>=<span class="result">CONTINTERVALLE</span>, <a href="#_plt_keyword_LABEL">LABEL</a>=<span class="result">LABEL</span>, <a href="#_plt_keyword_CONTLABEL">CONTLABEL</a>=<span class="result">CONTLABEL</span>, <a href="#_plt_keyword_STYLE">STYLE</a>=<span class="result">STYLE</span>, <a href="#_plt_keyword_CONTMAX">CONTMAX</a>=<span class="result">CONTMAX</span>, <a href="#_plt_keyword_CONTMIN">CONTMIN</a>=<span class="result">CONTMIN</span>, <a href="#_plt_keyword_NLEVEL">NLEVEL</a>=<span class="result">NLEVEL</span>, <a href="#_plt_keyword_CONTNLEVEL">CONTNLEVEL</a>=<span class="result">CONTNLEVEL</span>, <a href="#_plt_keyword_VECTEUR">VECTEUR</a>=<span class="result">VECTEUR</span>, <a href="#_plt_keyword_MAP">MAP</a>=<span class="result">MAP</span>, <a href="#_plt_keyword_MININ">MININ</a>=<span class="result">MININ</span>, <a href="#_plt_keyword_MAXIN">MAXIN</a>=<span class="result">MAXIN</span>, <a href="#_plt_keyword_CONT_NOFILL">CONT_NOFILL</a>=<span class="result">CONT_NOFILL</span>, <a href="#_plt_keyword_USETRI">USETRI</a>=<span class="result">USETRI</span>, <a href="#_plt_keyword_NOTRI">NOTRI</a>=<span class="result">NOTRI</span>, <a href="#_plt_keyword_MASKFILL">MASKFILL</a>=<span class="result">MASKFILL</span>, <a href="#_plt_keyword_DUPLICATE">DUPLICATE</a>=<span class="result">DUPLICATE</span>, <a href="#_plt_keyword_STRICTFILL">STRICTFILL</a>=<span class="result">STRICTFILL</span>, <a href="#_plt_keyword_OVERPLOT">OVERPLOT</a>=<span class="result">OVERPLOT</span>, <a href="#_plt_keyword_DECIMATETRI">DECIMATETRI</a>=<span class="result">DECIMATETRI</span>, <a href="#_plt_keyword_LABMAP">LABMAP</a>=<span class="result">LABMAP</span>, <a href="#_plt_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
+	    plt<span class="result">, <a href="#_plt_param_tab1">tab1</a>[, <a href="#_plt_param_param2">param2</a>][, <a href="#_plt_param_param3">param3</a>][, <a href="#_plt_param_param4">param4</a>]</span>, <a href="#_plt_keyword_REALCONT">REALCONT</a>=<span class="result">REALCONT</span>, <a href="#_plt_keyword_CONTOUR">CONTOUR</a>=<span class="result">CONTOUR</span>, <a href="#_plt_keyword_INTERVALLE">INTERVALLE</a>=<span class="result">INTERVALLE</span>, <a href="#_plt_keyword_INV">INV</a>=<span class="result">INV</span>, <a href="#_plt_keyword_GRIDTYPE">GRIDTYPE</a>=<span class="result">GRIDTYPE</span>, <a href="#_plt_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_plt_keyword_CONTINTERVALLE">CONTINTERVALLE</a>=<span class="result">CONTINTERVALLE</span>, <a href="#_plt_keyword_LABEL">LABEL</a>=<span class="result">LABEL</span>, <a href="#_plt_keyword_CONTLABEL">CONTLABEL</a>=<span class="result">CONTLABEL</span>, <a href="#_plt_keyword_STYLE">STYLE</a>=<span class="result">STYLE</span>, <a href="#_plt_keyword_CONTMAX">CONTMAX</a>=<span class="result">CONTMAX</span>, <a href="#_plt_keyword_CONTMIN">CONTMIN</a>=<span class="result">CONTMIN</span>, <a href="#_plt_keyword_NLEVEL">NLEVEL</a>=<span class="result">NLEVEL</span>, <a href="#_plt_keyword_CONTNLEVEL">CONTNLEVEL</a>=<span class="result">CONTNLEVEL</span>, <a href="#_plt_keyword_VECTEUR">VECTEUR</a>=<span class="result">VECTEUR</span>, <a href="#_plt_keyword_MAP">MAP</a>=<span class="result">MAP</span>, <a href="#_plt_keyword_MININ">MININ</a>=<span class="result">MININ</span>, <a href="#_plt_keyword_MAXIN">MAXIN</a>=<span class="result">MAXIN</span>, <a href="#_plt_keyword_CONT_NOFILL">CONT_NOFILL</a>=<span class="result">CONT_NOFILL</span>, <a href="#_plt_keyword_USETRI">USETRI</a>=<span class="result">USETRI</span>, <a href="#_plt_keyword_NOTRI">NOTRI</a>=<span class="result">NOTRI</span>, <a href="#_plt_keyword_MASKFILL">MASKFILL</a>=<span class="result">MASKFILL</span>, <a href="#_plt_keyword_DUPLICATE">DUPLICATE</a>=<span class="result">DUPLICATE</span>, <a href="#_plt_keyword_STRICTFILL">STRICTFILL</a>=<span class="result">STRICTFILL</span>, <a href="#_plt_keyword_OVERPLOT">OVERPLOT</a>=<span class="result">OVERPLOT</span>, <a href="#_plt_keyword_DECIMATETRI">DECIMATETRI</a>=<span class="result">DECIMATETRI</span>, <a href="#_plt_keyword_LABMAP">LABMAP</a>=<span class="result">LABMAP</span>, <a href="#_plt_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
 	  <div class="comments">
- 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:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_plt_param_tab1">tab1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ 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)
- 
-	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. 
-	
-       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: 
+  </div>
+	    
+	    <h4 id="_plt_param_param2">param2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      <span class="attr">default:</span> <span class="value">min of tab1 (on ocean points)</span>
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ 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
+</div>
+	    
+	    <h4 id="_plt_param_param3">param3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      <span class="attr">default:</span> <span class="value">max of tab1 (on ocean points)</span>
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ 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)
+</div>
+	    
+	    <h4 id="_plt_param_param4">param4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      <span class="attr">default:</span> <span class="value">'xy'</span>
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ 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)
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_plt_keyword_REALCONT">REALCONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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).
+</div>
+	    
+	    <h4 id="_plt_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Invert the color vector used to color the graph 
+               (without use the black, the white and the used palette)
+ </div>
+	    
+	    <h4 id="_plt_keyword_GRIDTYPE">GRIDTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> '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.
+</div>
+	    
+	    <h4 id="_plt_keyword_BOXZOOM">BOXZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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!
+</div>
+	    
+	    <h4 id="_plt_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_plt_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+	</div>
+	    
+	    <h4 id="_plt_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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
+</div>
+	    
+	    <h4 id="_plt_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Contour's style to adopt to draw isolines(by default, style=0. see style.pro)
+</div>
+	    
+	    <h4 id="_plt_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_plt_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_plt_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Number of contour to draw by default =20. active if
+ LABEL=0 or is not specified.
+</div>
+	    
+	    <h4 id="_plt_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ When  CONTOUR is activated, it is the numbre of contours
+ traced by a trait for drawing (active if
+ CONTLABEL=0) by default=20.
+</div>
+	    
+	    <h4 id="_plt_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> is also appropriated.
+</div>
+	    
+	    <h4 id="_plt_keyword_MAP">MAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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
+</div>
+	    
+	    <h4 id="_plt_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_CONT_NOFILL">CONT_NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">       
+ Activate it not to fill the point mask to let them transparent! 
+ Comment: Nevertheless, we trace mask's contour.
+ </div>
+	    
+	    <h4 id="_plt_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To force using triangulation.
+ </div>
+	    
+	    <h4 id="_plt_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_MASKFILL">MASKFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ </div>
+	    
+	    <h4 id="_plt_keyword_DUPLICATE">DUPLICATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	    <h4 id="_plt_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt_keyword_DECIMATETRI">DECIMATETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	    <h4 id="_plt_keyword_LABMAP">LABMAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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,</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_plt_param_tab1">tab1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_plt_keyword_REALCONT">REALCONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_GRIDTYPE">GRIDTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_BOXZOOM">BOXZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_MAP">MAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_CONT_NOFILL">CONT_NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_MASKFILL">MASKFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_DUPLICATE">DUPLICATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_DECIMATETRI">DECIMATETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt_keyword_LABMAP">LABMAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
+</div>
 	    
 	    <h4 id="_plt_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1359,25 +1277,33 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ used to pass your keywords
+ </div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+ </div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb 
+ Changer param "tab1",keyword "REMPLI", "UNLABSUR", "UNSUR2",
+ "UNVECTSUR"+ quelques trucs dans la routine.</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt1d.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt1d.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt1d.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Trace 1d graphes: x,y,z (or t but in this case, we recall directly pltt)
+</div>
 
       
@@ -711,114 +713,13 @@
 	<div class="routine_details" id="_plt1d">
 
-	  <h2><a class="top" href="#container">top</a>plt1d </h2>
+	  <h2><a class="top" href="#container">top</a>plt1d <span class="categories">
+ Graphics
+</span></h2>
 	
 	  <p class="header">
-	    plt1d<span class="result">, <a href="#_plt1d_param_tab">tab</a>, <a href="#_plt1d_param_giventype">giventype</a>, <a href="#_plt1d_param_givenmin">givenmin</a>, <a href="#_plt1d_param_givenmax">givenmax</a></span>, <a href="#_plt1d_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_plt1d_keyword_SIN">SIN</a>=<span class="result">SIN</span>, <a href="#_plt1d_keyword_MININ">MININ</a>=<span class="result">MININ</span>, <a href="#_plt1d_keyword_MAXIN">MAXIN</a>=<span class="result">MAXIN</span>, <a href="#_plt1d_keyword_TYPEIN">TYPEIN</a>=<span class="result">TYPEIN</span>, <a href="#_plt1d_keyword_ENDPOINTS">ENDPOINTS</a>=<span class="result">ENDPOINTS</span>, <a href="#_plt1d_keyword_COL1D">COL1D</a>=<span class="result">COL1D</span>, <a href="#_plt1d_keyword_STY1D">STY1D</a>=<span class="result">STY1D</span>, <a href="#_plt1d_keyword_OV1D">OV1D</a>=<span class="result">OV1D</span>, <a href="#_plt1d_keyword_X">X</a>=<span class="result">X</span>, <a href="#_plt1d_keyword_Y">Y</a>=<span class="result">Y</span>, <a href="#_plt1d_keyword_Z">Z</a>=<span class="result">Z</span>, <a href="#_plt1d_keyword_TT">TT</a>=<span class="result">TT</span>, <a href="#_plt1d_keyword_REVERSE_X">REVERSE_X</a>=<span class="result">REVERSE_X</span>, <a href="#_plt1d_keyword_REVERSE_Y">REVERSE_Y</a>=<span class="result">REVERSE_Y</span>, <a href="#_plt1d_keyword_SWITCHXY">SWITCHXY</a>=<span class="result">SWITCHXY</span>, <a href="#_plt1d_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
+	    plt1d<span class="result">, <a href="#_plt1d_param_tab">tab</a>, <a href="#_plt1d_param_param2">param2</a>[, <a href="#_plt1d_param_param3">param3</a>][, <a href="#_plt1d_param_param4">param4</a>]</span>, <a href="#_plt1d_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_plt1d_keyword_SIN">SIN</a>=<span class="result">SIN</span>, <a href="#_plt1d_keyword_MININ">MININ</a>=<span class="result">MININ</span>, <a href="#_plt1d_keyword_MAXIN">MAXIN</a>=<span class="result">MAXIN</span>, <a href="#_plt1d_keyword_TYPEIN">TYPEIN</a>=<span class="result">TYPEIN</span>, <a href="#_plt1d_keyword_ENDPOINTS">ENDPOINTS</a>=<span class="result">ENDPOINTS</span>, <a href="#_plt1d_keyword_COL1D">COL1D</a>=<span class="result">COL1D</span>, <a href="#_plt1d_keyword_STY1D">STY1D</a>=<span class="result">STY1D</span>, <a href="#_plt1d_keyword_OV1D">OV1D</a>=<span class="result">OV1D</span>, <a href="#_plt1d_keyword_X">X</a>=<span class="result">X</span>, <a href="#_plt1d_keyword_Y">Y</a>=<span class="result">Y</span>, <a href="#_plt1d_keyword_Z">Z</a>=<span class="result">Z</span>, <a href="#_plt1d_keyword_TT">TT</a>=<span class="result">TT</span>, <a href="#_plt1d_keyword_REVERSE_X">REVERSE_X</a>=<span class="result">REVERSE_X</span>, <a href="#_plt1d_keyword_REVERSE_Y">REVERSE_Y</a>=<span class="result">REVERSE_Y</span>, <a href="#_plt1d_keyword_SWITCHXY">SWITCHXY</a>=<span class="result">SWITCHXY</span>, <a href="#_plt1d_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
 	  <div class="comments">
- NAME:
-	PLT1D
-
- PURPOSE:
-	trace des graphes 1d
-
- CATEGORY:
-       Graphics, trace des graphes 1d: x,y,z (ou t mais ds ce cas, on
-       rapelle directement pltt)
-
- CALLING SEQUENCE:
-	plt1d, champ,type [,min[, max]]
-
- INPUTS:
-	champ: le champ dont on veut faire le hovmoller champ
-	peut etre de 2 types:
-	1) un tableu qui peut etre:
-          * 2d, 3d ou 4d:  tableau xy, xyz. xyt ou xyzt. dans ce cas,
-            le tableau va passer dans moyenne ou grossemoyenne pour
-            etre moyennee et devenir un tableau 1 1d. 
-          * 1d:type doit qd meme etre specifie pour qu''on sache de
-          quel trace il sagit. Pour avoir une legende correcte,
-          respecifier la zone d''extraction via BOXZOOM
-       2) une structure repondant aux critaires specifies par
-       litchamp.pro. cf. IDL> xhelp,'litchamp'. Le tableau contennu ds
-       la structure repondant aux criteres du cas 1) cf. ci-dessus
-
-       TYPE: un string: type de plot 1d que l''on veut faire:
-       trace suivant: 'x','y','z'  
-
- ces arguments ne sont pas obligatoires:
-  
-	MAX: valeur maximum que l'on veut prendre en compte dans le trace
- du plot. Par defaut on prend le max de tableau (sur les pts mer)
-
-	MIN: valeur minimum que l'on veut prendre en compte dans le trace
- du plot. Par defaut on prend le min de tableau (sur les pts mer)
-
- KEYWORD PARAMETERS:
-
-	BOXZOOM:vecteur indiquant la zone geographique (3d) sur laquelle doit
- etre fait l''extraction du champ pour faire le hovmoeller.
- 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, vert1, vert2]
- 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,vert1,vert2 sont les variables globales
- definies lors du dernier domdef!
-
-       COL1d: --OBSOLETE--numero de la couleur qd on fait un trace 1d
-       par defaut, 0. il faut mieux utiliser le mot cle COLOR utilise
-       par plot
-
-       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-       verticale en diagonale. les coordonnees des extremites de
-       celle-ci sont alors definies les 4 elements du vecteur
-       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-
-	/LANDSCAPE: oblige la feuille ou le fenetre a l''ecran a etre
-	en position "allongee".
-	
-       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.
-
-       /NOERASE: activer pour faire un dessin a l''ecran sans creer
- une nouvelle fenetre. Rq: activer ds le cas d''un Postscript de
- plusieurs traces de type 't' pour ne pas faire un Postscript de
- plusieurs pages 
-
-       /OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d.
-
-	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,</div>
+</div>
 
 	  
@@ -829,54 +730,73 @@
 	    
 	    <h4 id="_plt1d_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ The field whose we want to make the hovmoller map can be 2 kind of thing:
+	1) An array which can be:
+          * 2d, 3d or 4d:  array xy, xyz. xyt or xyzt. In this case, the array will pass 
+          in moyenne or grossemoyenne to be averaged and becomme  an array 1d. 
+          * 1d:Nevertheless, the type must be specified in order to we know which trace 
+          it is about. To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+       2) a structure respecting all criterions specified by litchamp.pro. 
+          See IDL> xhelp,'litchamp'. The array contained in the structure 
+          respecting criterions of case 1) 
+</div>
+	    
+	    <h4 id="_plt1d_param_param2">param2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ Min value we want to consider in the contour's drawing.
+ Note: could also be the type of plot:'x','y','z'
+  </div>
+	    
+	    <h4 id="_plt1d_param_param3">param3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      <span class="attr">default:</span> <span class="value">min/max of tab (on ocean points)</span>
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ Max value we want to consider in the contour's drawing.
+ Note: if param2 is defined as 'x','y','z' then param3 is used to define the min (see param2)
+</div>
+	    
+	    <h4 id="_plt1d_param_param4">param4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      <span class="attr">default:</span> <span class="value">max of tab (on ocean points)</span>
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ Type of plot (can be only 'x','y','z' for plt1d).
+ Note: if param2 is defined as 'xy' then param4 is used to define the max (see param3)
+</div>
 	    
 
@@ -898,7 +818,166 @@
 	    </h4>
 	
+	    <div class="comments">
+ Vector indicating the geographique zone (3d) on which the extraction of the field must 
+ be done to do the hovmoeller.
+  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, vert1, vert2]
+ 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,vert1,vert2 are global variables defined at the last domdef!
+</div>
+	    
+	    <h4 id="_plt1d_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Activate this keyword if we want the x axis to be traced in sinus of the 
+ latitude when we make a drawing f(y)
+</div>
+	    
+	    <h4 id="_plt1d_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ allows to specify the type of hovmoller we want to do
+             'xt','yt','zt','t'  
+ with help of a keyword rather than the argument type. If the argument andthe 
+ keyword are specified in the same time, it is the value specified by the 
+ keyword which is retained.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+ of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+ coordinates.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_COL1D">COL1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+  --OBSOLETE--Color number when we make a trace 1d by default, 0.It is better to use the 
+ keyword COLOR used by plot.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_STY1D">STY1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ --OBSOLETE--
+ Number of the style used when we make a 1d drawing. We should better use the 
+ keyword LINESTYLE which is tho one of the plot. Beware, this keyword is still 
+ useful if we want to d bars instead of curves, put sty1d='bar'
+</div>
+	    
+	    <h4 id="_plt1d_keyword_OV1D">OV1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Allow the double exposure of an 1d curve to a precedent 1d trace.
+</div>
+	    
+	    <h4 id="_plt1d_keyword_X">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_plt1d_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_plt1d_keyword_Y">Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -913,5 +992,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_plt1d_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_plt1d_keyword_Z">Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -926,5 +1005,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_plt1d_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_plt1d_keyword_TT">TT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -939,5 +1018,35 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_plt1d_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_plt1d_keyword_REVERSE_X">REVERSE_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To invert the x axis (so as the drawing)
+</div>
+	    
+	    <h4 id="_plt1d_keyword_REVERSE_Y">REVERSE_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To invert the y axis (so as the drawing)
+</div>
+	    
+	    <h4 id="_plt1d_keyword_SWITCHXY">SWITCHXY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -952,147 +1061,4 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_plt1d_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_COL1D">COL1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_STY1D">STY1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_OV1D">OV1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_X">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_Y">Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_Z">Z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_TT">TT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_REVERSE_X">REVERSE_X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_REVERSE_Y">REVERSE_Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plt1d_keyword_SWITCHXY">SWITCHXY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
 	    <h4 id="_plt1d_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
@@ -1106,13 +1072,19 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+	    <div class="comments"> 
+ used to pass your keywords
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat"> 
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> 
+ creation 24/6/99 Eric Guilyardi 
+ (a partir routine pltt de Sebastien Masson)</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltbase.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltbase.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltbase.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Overlayer contour to trace a field which can be mask. 
+ Elementary brick of plt, pltz et pltt.
+</div>
 
       
@@ -711,685 +714,642 @@
 	<div class="routine_details" id="_pltbase">
 
-	  <h2><a class="top" href="#container">top</a>pltbase </h2>
+	  <h2><a class="top" href="#container">top</a>pltbase <span class="categories"> graphic
+</span></h2>
 	
 	  <p class="header">
-	    pltbase<span class="result">, <a href="#_pltbase_param_z2d">z2d</a>, <a href="#_pltbase_param_x">x</a>, <a href="#_pltbase_param_y">y</a>, <a href="#_pltbase_param_mask">mask</a>, <a href="#_pltbase_param_xm">xm</a>, <a href="#_pltbase_param_ym">ym</a>, <a href="#_pltbase_param_levels">levels</a>, <a href="#_pltbase_param_colors">colors</a></span>, <a href="#_pltbase_keyword_UNSUR2">UNSUR2</a>=<span class="result">UNSUR2</span>, <a href="#_pltbase_keyword_CONTOUR">CONTOUR</a>=<span class="result">CONTOUR</span>, <a href="#_pltbase_keyword_NOCONTOUR">NOCONTOUR</a>=<span class="result">NOCONTOUR</span>, <a href="#_pltbase_keyword_NOFILL">NOFILL</a>=<span class="result">NOFILL</span>, <a href="#_pltbase_keyword_TRICHAMP">TRICHAMP</a>=<span class="result">TRICHAMP</span>, <a href="#_pltbase_keyword_TRIMSK">TRIMSK</a>=<span class="result">TRIMSK</span>, <a href="#_pltbase_keyword_REALCONT">REALCONT</a>=<span class="result">REALCONT</span>, <a href="#_pltbase_keyword_NAN">NAN</a>=<span class="result">NAN</span>, <a href="#_pltbase_keyword_usetri">usetri</a>=<span class="result">usetri</span>, <a href="#_pltbase_keyword_COLORTRICHAMP">COLORTRICHAMP</a>=<span class="result">COLORTRICHAMP</span>, <a href="#_pltbase_keyword_COLORTRIMASK">COLORTRIMASK</a>=<span class="result">COLORTRIMASK</span>, <a href="#_pltbase_keyword_COLORTRINAN">COLORTRINAN</a>=<span class="result">COLORTRINAN</span>, <a href="#_pltbase_keyword_COLORPOINTS">COLORPOINTS</a>=<span class="result">COLORPOINTS</span>, <a href="#_pltbase_keyword_DRAWPOINTS">DRAWPOINTS</a>=<span class="result">DRAWPOINTS</span>, <a href="#_pltbase_keyword_TH_TRICHAMP">TH_TRICHAMP</a>=<span class="result">TH_TRICHAMP</span>, <a href="#_pltbase_keyword_TH_TRIMASK">TH_TRIMASK</a>=<span class="result">TH_TRIMASK</span>, <a href="#_pltbase_keyword_DESSTRICHAMP">DESSTRICHAMP</a>=<span class="result">DESSTRICHAMP</span>, <a href="#_pltbase_keyword_DESSTRIMASK">DESSTRIMASK</a>=<span class="result">DESSTRIMASK</span>, <a href="#_pltbase_keyword_DESSTRINAN">DESSTRINAN</a>=<span class="result">DESSTRINAN</span>, <a href="#_pltbase_keyword_COLOR_C">COLOR_C</a>=<span class="result">COLOR_C</span>, <a href="#_pltbase_keyword_I_COLORS">I_COLORS</a>=<span class="result">I_COLORS</span>, <a href="#_pltbase_keyword_CONT_COLOR">CONT_COLOR</a>=<span class="result">CONT_COLOR</span>, <a href="#_pltbase_keyword_CONT_NOFILL">CONT_NOFILL</a>=<span class="result">CONT_NOFILL</span>, <a href="#_pltbase_keyword_UNLABSUR">UNLABSUR</a>=<span class="result">UNLABSUR</span>, <a href="#_pltbase_keyword_COINMONTEMASK">COINMONTEMASK</a>=<span class="result">COINMONTEMASK</span>, <a href="#_pltbase_keyword_COINDESCENDMASK">COINDESCENDMASK</a>=<span class="result">COINDESCENDMASK</span>, <a href="#_pltbase_keyword_COINMONTENAN">COINMONTENAN</a>=<span class="result">COINMONTENAN</span>, <a href="#_pltbase_keyword_COINDESCENDNAN">COINDESCENDNAN</a>=<span class="result">COINDESCENDNAN</span>, <a href="#_pltbase_keyword_INDICEZOOMMASK">INDICEZOOMMASK</a>=<span class="result">INDICEZOOMMASK</span>, <a href="#_pltbase_keyword_INDICEZOOMNAN">INDICEZOOMNAN</a>=<span class="result">INDICEZOOMNAN</span>, <a href="#_pltbase_keyword_MASKNAN">MASKNAN</a>=<span class="result">MASKNAN</span>, <a href="#_pltbase_keyword_TRINAN">TRINAN</a>=<span class="result">TRINAN</span>, <a href="#_pltbase_keyword_FORPLT">FORPLT</a>=<span class="result">FORPLT</span>, <a href="#_pltbase_keyword_REALSECTION">REALSECTION</a>=<span class="result">REALSECTION</span>, <a href="#_pltbase_keyword_MORE">MORE</a>=<span class="result">MORE</span>, <a href="#_pltbase_keyword_EXCHANGE_XY">EXCHANGE_XY</a>=<span class="result">EXCHANGE_XY</span>, <a href="#_pltbase_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
+	    pltbase<span class="result">, <a href="#_pltbase_param_z2d">z2d</a>, <a href="#_pltbase_param_x">x</a>, <a href="#_pltbase_param_y">y</a>, <a href="#_pltbase_param_mask">mask</a>, <a href="#_pltbase_param_xm">xm</a>, <a href="#_pltbase_param_ym">ym</a>[, <a href="#_pltbase_param_levels">levels</a>][, <a href="#_pltbase_param_colors">colors</a>]</span>, <a href="#_pltbase_keyword_UNSUR2">UNSUR2</a>=<span class="result">UNSUR2</span>, <a href="#_pltbase_keyword_CONTOUR">CONTOUR</a>=<span class="result">CONTOUR</span>, <a href="#_pltbase_keyword_NOCONTOUR">NOCONTOUR</a>=<span class="result">NOCONTOUR</span>, <a href="#_pltbase_keyword_NOFILL">NOFILL</a>=<span class="result">NOFILL</span>, <a href="#_pltbase_keyword_TRICHAMP">TRICHAMP</a>=<span class="result">TRICHAMP</span>, <a href="#_pltbase_keyword_TRIMSK">TRIMSK</a>=<span class="result">TRIMSK</span>, <a href="#_pltbase_keyword_REALCONT">REALCONT</a>=<span class="result">REALCONT</span>, <a href="#_pltbase_keyword_NAN">NAN</a>=<span class="result">NAN</span>, <a href="#_pltbase_keyword_usetri">usetri</a>=<span class="result">usetri</span>, <a href="#_pltbase_keyword_COLORTRICHAMP">COLORTRICHAMP</a>=<span class="result">COLORTRICHAMP</span>, <a href="#_pltbase_keyword_COLORTRIMASK">COLORTRIMASK</a>=<span class="result">COLORTRIMASK</span>, <a href="#_pltbase_keyword_COLORTRINAN">COLORTRINAN</a>=<span class="result">COLORTRINAN</span>, <a href="#_pltbase_keyword_COLORPOINTS">COLORPOINTS</a>=<span class="result">COLORPOINTS</span>, <a href="#_pltbase_keyword_DRAWPOINTS">DRAWPOINTS</a>=<span class="result">DRAWPOINTS</span>, <a href="#_pltbase_keyword_TH_TRICHAMP">TH_TRICHAMP</a>=<span class="result">TH_TRICHAMP</span>, <a href="#_pltbase_keyword_TH_TRIMASK">TH_TRIMASK</a>=<span class="result">TH_TRIMASK</span>, <a href="#_pltbase_keyword_DESSTRICHAMP">DESSTRICHAMP</a>=<span class="result">DESSTRICHAMP</span>, <a href="#_pltbase_keyword_DESSTRIMASK">DESSTRIMASK</a>=<span class="result">DESSTRIMASK</span>, <a href="#_pltbase_keyword_DESSTRINAN">DESSTRINAN</a>=<span class="result">DESSTRINAN</span>, <a href="#_pltbase_keyword_COLOR_C">COLOR_C</a>=<span class="result">COLOR_C</span>, <a href="#_pltbase_keyword_I_COLORS">I_COLORS</a>=<span class="result">I_COLORS</span>, <a href="#_pltbase_keyword_CONT_COLOR">CONT_COLOR</a>=<span class="result">CONT_COLOR</span>, <a href="#_pltbase_keyword_CONT_NOFILL">CONT_NOFILL</a>=<span class="result">CONT_NOFILL</span>, <a href="#_pltbase_keyword_UNLABSUR">UNLABSUR</a>=<span class="result">UNLABSUR</span>, <a href="#_pltbase_keyword_COINMONTEMASK">COINMONTEMASK</a>=<span class="result">COINMONTEMASK</span>, <a href="#_pltbase_keyword_COINDESCENDMASK">COINDESCENDMASK</a>=<span class="result">COINDESCENDMASK</span>, <a href="#_pltbase_keyword_COINMONTENAN">COINMONTENAN</a>=<span class="result">COINMONTENAN</span>, <a href="#_pltbase_keyword_COINDESCENDNAN">COINDESCENDNAN</a>=<span class="result">COINDESCENDNAN</span>, <a href="#_pltbase_keyword_INDICEZOOMMASK">INDICEZOOMMASK</a>=<span class="result">INDICEZOOMMASK</span>, <a href="#_pltbase_keyword_INDICEZOOMNAN">INDICEZOOMNAN</a>=<span class="result">INDICEZOOMNAN</span>, <a href="#_pltbase_keyword_MASKNAN">MASKNAN</a>=<span class="result">MASKNAN</span>, <a href="#_pltbase_keyword_TRINAN">TRINAN</a>=<span class="result">TRINAN</span>, <a href="#_pltbase_keyword_FORPLT">FORPLT</a>=<span class="result">FORPLT</span>, <a href="#_pltbase_keyword_REALSECTION">REALSECTION</a>=<span class="result">REALSECTION</span>, <a href="#_pltbase_keyword_MORE">MORE</a>=<span class="result">MORE</span>, <a href="#_pltbase_keyword_EXCHANGE_XY">EXCHANGE_XY</a>=<span class="result">EXCHANGE_XY</span>, <a href="#_pltbase_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
 	
 	  <div class="comments">
- NAME:pltbase
-
- PURPOSE: surcouche de contour pour tracer un champ eventuellement
- masque. brique elementaire de plt, pltz et pltt.
-
- CATEGORY:un tarce vite fait et/ou delestage de l''ecriture de plt, pltz, pltt
-
- CALLING SEQUENCE: pltbase, z2d, x, y, mask,xm, ym, [, levels, colors],
-
- INPUTS:
-        z2d:le tableau a tracer
-
-        x et y les axes. vecteurs ou tableaux de meme taille que
-        z2d. Ce sont les coordonnees de z2d
-
-        mask: le tableau qui masque z2d (avec des 0 sur les points a
-        masquer et des 1 sur les autres). si z2d n'est pas masque
-        mettre cet argument egale a 1.
-
-        xm et ym les axes du mask. vecteurs ou tableaux de meme taille que
-        mask. Ce sont les coordonnees de mask
-
-        levels et colors: (optionnels) les vecteurs qui contiennent
-        les niveaus et les couleurs necessaires au contour. S''il ne
-        sont pas donnes on prends 20 niveau entre le min et le max.
-
- KEYWORD PARAMETERS:
-
-        COLORTRICHAMP : la couleur que l''on veut utiliser pour
-        dessiner la triangulation qui est utilisee pour faire les
-        contour du champ
-
-        COLORTRIMASK : la couleur que l''on veut utiliser pour
-        dessiner la triangulation qui est utilisee pour faire les
-        contour du mask
-
-        COAST_COLOR: the color of the coastline.
-                     defaut value is 0 => black
-
-        COAST_THICK: the thickness of the coastline.
-                     defaut value is 1
-
-        COLOR_C: to draw the contour in color instead of in black
-        with filling in color 
-
-        /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
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_pltbase_param_z2d">z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The table to trace
+</div>
+	    
+	    <h4 id="_pltbase_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Axis. Vector or array of the same size that z2d. This is the coordinate of z2d on x.
+</div>
+	    
+	    <h4 id="_pltbase_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Axis. Vector or array of the same size that z2d. This is the coordinate of z2d on y.
+</div>
+	    
+	    <h4 id="_pltbase_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is the array who mask z2d (with 0s on points we want to mask and 1s on others). 
+ If z2d is not masked, put this argument equal to 1.
+</div>
+	    
+	    <h4 id="_pltbase_param_xm">xm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Axis of the mask. Vector or array of the same size that mask. 
+ This is the coordinate of mask on x.
+</div>
+	    
+	    <h4 id="_pltbase_param_ym">ym&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Axis of the mask. Vector or array of the same size that mask. 
+ This is the coordinate of mask on y.
+</div>
+	    
+	    <h4 id="_pltbase_param_levels">levels&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Vectors which contain levels needed at the contour. 
+ If it is not given, we take 20 levels between the min and the max.
+  </div>
+	    
+	    <h4 id="_pltbase_param_colors">colors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Vectors which contain colors needed at the contour. 
+ If it is not given, we take 20 levels between the min and the max.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_pltbase_keyword_UNSUR2">UNSUR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> To trace one isoline on two.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To be used since plt, pltz or pltt. (Have a look on these routines).
+</div>
+	    
+	    <h4 id="_pltbase_keyword_NOCONTOUR">NOCONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To make just colors.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_NOFILL">NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To make just isolines.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_TRICHAMP">TRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_TRIMSK">TRIMSK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_REALCONT">REALCONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_usetri">usetri&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COLORTRICHAMP">COLORTRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ The color we want to use to draw the triangulation which is used to make contours of the field.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_COLORTRIMASK">COLORTRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ The color we want to use to draw the triangulation which is used to make contours of the mask.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_COLORTRINAN">COLORTRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COLORPOINTS">COLORPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_DRAWPOINTS">DRAWPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_TH_TRICHAMP">TH_TRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_TH_TRIMASK">TH_TRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_DESSTRICHAMP">DESSTRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To draw the triangulation which is used to make field's contours. 
+</div>
+	    
+	    <h4 id="_pltbase_keyword_DESSTRIMASK">DESSTRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To draw the triangulation which is used to make mask's contours.
+ </div>
+	    
+	    <h4 id="_pltbase_keyword_DESSTRINAN">DESSTRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COLOR_C">COLOR_C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To draw the contour in color instead of in black
+ with filling in color 
+</div>
+	    
+	    <h4 id="_pltbase_keyword_I_COLORS">I_COLORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ It is a vector specifing the colors to use to trace contours. 
+ It is the same thing that c_colors which act on contours.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_CONT_COLOR">CONT_COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ The color of the continent. defaut value is
         (!d.n_colors - 1) < 255 => white
-
-        /DESSTRICHAMP: pour dessiner la triangulation qui est
-        utilisee pour faire les contour du champ. 
-
-        /DESSTRIMASK: pour dessiner la triangulation qui est
-        utilisee pour faire les contour du mask
-
-        /FORPLT: a activer si on veut que le trace des cote soit
-        realise par tracecote plutot que tracemask.
-
-        I_COLORS: un vecteur specifiant la couleur a utiliser pour
-        tracer les contours. C''est la meme chose que c_colors qui
-        ajit sur les contours.
-
-        MORE: chiffre a donner pour eviter les bug du style:
+</div>
+	    
+	    <h4 id="_pltbase_keyword_CONT_NOFILL">CONT_NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Activate it not to fill the point mask to let them transparent! 
+ Comment: Nevertheless, we trace mask's contour.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_UNLABSUR">UNLABSUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Is an integer n. specifying we only label one contour on two
+</div>
+	    
+	    <h4 id="_pltbase_keyword_COINMONTEMASK">COINMONTEMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COINDESCENDMASK">COINDESCENDMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COINMONTENAN">COINMONTENAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_COINDESCENDNAN">COINDESCENDNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_INDICEZOOMMASK">INDICEZOOMMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_INDICEZOOMNAN">INDICEZOOMNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_MASKNAN">MASKNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_TRINAN">TRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_FORPLT">FORPLT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To activate if we want that the drawing of coast be realized by tracecote rather than tracemask.
+</div>
+	    
+	    <h4 id="_pltbase_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_pltbase_keyword_MORE">MORE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Number to give to avoid style's bugs:
   % Out of range subscript encountered: <LONG      Array[38911]>.
   % Execution halted at:  PLTBASE           151
-             par defaut more=10 si le bug existe tjs, augmenter la
-             valeur de more! (l''explication et la justification de
-             cette methode n''ont pas encore de fondements
-             scientifiques)...
-         
-
-
-        /NOFILL: pour faire juste les isolignes
-
-        /NOCONTOUR: pour faire juste les couleurs
-
-        /UNSUR2: pour tarcer une isoligne sur 2
-
-        UNLABSUR: entier n. specifant qu''on ne labelle qu''un
-        contour sur n
-
-        CONTOUR: pour etrte utilise depuis plt, pltz ou pltt. cf ces
-        routines.
-
-        _EXTRA: mot cle magique d''idl pour faire passer tous lse
-        mots cles acceptes par les routines et fonctions utilises ds
-        ce programme sans les declarer explicitement. 
-
- OUTPUTS:
-
- COMMON BLOCKS:
-        common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:ds le cas ou z2d, x et y sont des tableaux de meme
- taille il faut les metre sous forme de vecteur: z2d[*], x[*], y[*].
-
- EXAMPLE:
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_pltbase_param_z2d">z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_xm">xm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_ym">ym&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_levels">levels&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_param_colors">colors&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_pltbase_keyword_UNSUR2">UNSUR2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_NOCONTOUR">NOCONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_NOFILL">NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_TRICHAMP">TRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_TRIMSK">TRIMSK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_REALCONT">REALCONT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_NAN">NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_usetri">usetri&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COLORTRICHAMP">COLORTRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COLORTRIMASK">COLORTRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COLORTRINAN">COLORTRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COLORPOINTS">COLORPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_DRAWPOINTS">DRAWPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_TH_TRICHAMP">TH_TRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_TH_TRIMASK">TH_TRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_DESSTRICHAMP">DESSTRICHAMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_DESSTRIMASK">DESSTRIMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_DESSTRINAN">DESSTRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COLOR_C">COLOR_C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_I_COLORS">I_COLORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_CONT_COLOR">CONT_COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_CONT_NOFILL">CONT_NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_UNLABSUR">UNLABSUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COINMONTEMASK">COINMONTEMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COINDESCENDMASK">COINDESCENDMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COINMONTENAN">COINMONTENAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_COINDESCENDNAN">COINDESCENDNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_INDICEZOOMMASK">INDICEZOOMMASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_INDICEZOOMNAN">INDICEZOOMNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_MASKNAN">MASKNAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_TRINAN">TRINAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_FORPLT">FORPLT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltbase_keyword_MORE">MORE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
+             By default more=10 If the bug still exist, increase the value of more! 
+ (The explanation and the justification of this method do not have scientific bases yet...).
+</div>
 	    
 	    <h4 id="_pltbase_keyword_EXCHANGE_XY">EXCHANGE_XY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1417,25 +1377,34 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments"> 
+ Used to pass your keywords
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb L.172 à 173
+</div>
+	  <h4>Restrictions</h4><div class="preformat">
+ In the case of z2d, x and y are arrays of same size, we hate to put them as vectors: z2d[*], x[*], y[*].
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltsc.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltsc.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltsc.html	(revision 142)
@@ -716,13 +716,27 @@
 	    pltsc<span class="result">, <a href="#_pltsc_param_tab1">tab1</a>, <a href="#_pltsc_param_tab2">tab2</a>, <a href="#_pltsc_param_min1">min1</a>, <a href="#_pltsc_param_max1">max1</a>, <a href="#_pltsc_param_min2">min2</a>, <a href="#_pltsc_param_max2">max2</a>, <a href="#_pltsc_param_varname2">varname2</a></span>, <a href="#_pltsc_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_pltsc_keyword_COL1D">COL1D</a>=<span class="result">COL1D</span>, <a href="#_pltsc_keyword_STY1D">STY1D</a>=<span class="result">STY1D</span>, <a href="#_pltsc_keyword_OV1D">OV1D</a>=<span class="result">OV1D</span>, <a href="#_pltsc_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
+	  <div class="comments">
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_pltsc_param_tab1">tab1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	  <div class="comments"></div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_pltsc_param_tab1">tab1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    
+	    <h4 id="_pltsc_param_tab2">tab2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -737,5 +751,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_tab2">tab2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltsc_param_min1">min1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -750,5 +764,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_min1">min1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltsc_param_max1">max1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -763,5 +777,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_max1">max1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltsc_param_min2">min2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -776,5 +790,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_min2">min2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltsc_param_max2">max2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -789,5 +803,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_max2">max2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltsc_param_varname2">varname2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -802,17 +816,4 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltsc_param_varname2">varname2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
 
 	  
@@ -896,8 +897,9 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltt.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Trace hovmoller graphs: xt,yt,zt,t
+</div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_pltt">
 
-	  <h2><a class="top" href="#container">top</a>pltt </h2>
+	  <h2><a class="top" href="#container">top</a>pltt <span class="categories"> Graphics
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +720,41 @@
 	
 	  <div class="comments">
- NAME:
-	PLTT
-
- PURPOSE:
-	trace des graphes hovmoller
-
- CATEGORY:
-       Graphics, trace des graphes hovmoller: xt,yt,zt,t
-
- CALLING SEQUENCE:
-	pltt, champ,type [,min[, max[, datmin[, datmax]]]]
-
- INPUTS:
-	champ: le champ dont on veut faire le hovmoller champ
-	peut etre de 2 types:
-	1) un tableu qui peut etre:
-          * 3d ou 4d: la derniere composante etant le temps. dans ce
-            cas, le tableau va passer dans grossemoyenne pour etre
-            moyennee suivant et devenir un tableau 2d ou 1d.
-          * 2d: si tableau est deja 2d, il n''est pas modifie
-            (attention les terres doivent etre masquees a la valeure
-            valmask) et type doit qd meme etre specifie pour qu''on
-            sache de quel trace il sagit. Pour avoir une legende
-            correcte, respecifier la zone d''extraction via BOXZOOM
-          * 1d: uniquement pour les traces de type 't'. Type doit qd
-            meme etre specifie pour qu''on sache de quel trace il
-            sagit. Pour avoir une legende correcte, respecifier la zone
-            d''extraction via BOXZOOM
-       2) une structure repondant aux critaire specifies par
-       litchamp.pro. cf. IDL> xhelp,'litchamp'. Le tableau contennu ds
-       la structure repondant aux criteres du cas 1) cf. ci-dessus
-
-       TYPE: type de hovmoller que l''on veut faire:
-             'xt','yt','zt','t'  
-
- ces arguments ne sont pas obligatoires:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_pltt_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ The field whose we want to make the hovmoller map can be 2 kind of thing:
+	1) An array which can be:
+          * 3d or 4d: array  'xt','yt','zt','t'. The last component is the time. In this case, the array will 
+            pass in grossemoyenne to be averaged and become an 1d or 2d array.
+          * 2d: If the array is already 2d, it is not modified (beware, lands must 
+            be masked at the value valmask) and nevertheless,type must be specified 
+            to we know of which trace it is about.
+            To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+          * 1d: only for traces of the 't' type. Nevertheless, type must be specified 
+            to we know of which trace it is about.
+            To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+       2) a structure respecting all criterions specified by litchamp.pro. 
+          See IDL> xhelp,'litchamp'. The array contained in the structure 
+          respecting criterions of case 1) 
   
-	MAX: valeur maximum que l''on veut prendre en compte dans le trace
+ PARAM:	
+       MAX: valeur maximum que l''on veut prendre en compte dans le trace
  des contours. Par defaut on prend le max de tableau (sur les pts mer)
 
@@ -766,259 +768,427 @@
        DATMAX: c''est la borne max de l''axe temporel. c''est un
        longinteger de la forme yyyymmdd (ou bien yymmdd)
-
- KEYWORD PARAMETERS:
-
-	BOXZOOM:vecteur indiquant la zone geographique (3d) sur laquelle doit
- etre fait l''extraction du champ pour faire le hovmoeller.
- 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, vert1, vert2]
- 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,vert1,vert2 sont les variables globales
- definies lors du dernier domdef!
-
-      CB_TITLE: le titre de la colorbar
-
-      CB_SUBTITLE: le soustitre de la colorbar
-
-      CB_CHARSIZE: The character size of the color bar annotations
-
-        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 reponadnt aux meme caracteristiques
- que l''argument numero 1 de pltt
-
-       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-       verticale en diagonale. les coordonnees des extremites de
-       celle-ci sont alors definies les 4 elements du vecteur
-       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-
-       /EXCHANGE_XY: permet d''intervertir les axes.
+</div>
+	    
+	    <h4 id="_pltt_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pltt_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pltt_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pltt_param_datmin">datmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pltt_param_datmax">datmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_pltt_keyword_BOXZOOM">BOXZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Vector indicating the geographique zone (3d) on which the extraction of the field must 
+ be done to do the hovmoeller.
+  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, vert1, vert2]
+ 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,vert1,vert2 are global variables defined at the last domdef!
+</div>
+	    
+	    <h4 id="_pltt_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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 pltt.
+</div>
+	    
+	    <h4 id="_pltt_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+ of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+ coordinates. 
+</div>
+	    
+	    <h4 id="_pltt_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltt_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Invert the color vector used to color the graph 
+               (without use the black, the white and the used palette)
+ </div>
+	    
+	    <h4 id="_pltt_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltt_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltt_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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
+</div>
+	    
+	    <h4 id="_pltt_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Contour's style to adopt to draw isolines(by default, style=0. see style.pro)
+</div>
+	    
+	    <h4 id="_pltt_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltt_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltt_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Number of contour to draw by default =20. active if
+ LABEL=0 or is not specified.
+</div>
+	    
+	    <h4 id="_pltt_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ When  CONTOUR is activated, it is the numbre of contours
+ traced by a trait for drawing (active if
+ CONTLABEL=0) by default=20.
+
  
-       FILTER: applique une moyenne glissante de largeur FILTER
- 
-	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)
- 
-	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. 
-	
-       COL1d: --OBSOLETE--numero de la couleur qd on fait un trace 1d
-       par defaut, 0. il faut mieux utiliser le mot cle COLOR utilise
-       par plot
-
-       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.
-
-	CONTNLEVEL: nombre de contours a dessiner qd on utilise ajoutcontour
- active par le mot cle CONTOUR.(actif si CONTLABEL=0) par defaut =20.
-
-	/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. Rq: activer ds le cas d''un Postscript de
- plusieurs traces de type 't' pour ne pas faire un Postscript de
- plusieurs pages 
-
-       /OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d.
-
-       OVERPLOT: pour faire un pltt par dessus un autre. Rq:
-       contrairemnet a l''utilisation de CONTOUR,
-       l''utilisation de ce mot clef ne modifie pas la legende ou/et
-       la barre de couleur. dans le cas d''un plot 1d, contrairement
-       a ov1d, on peut changer les axes et les ranges.
-
-	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,</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_pltt_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltt_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltt_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltt_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltt_param_datmin">datmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pltt_param_datmax">datmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_pltt_keyword_BOXZOOM">BOXZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ When  CONTOUR is activated, it is the numbre of contours
+ traced by a trait for drawing (active if
+ CONTLABEL=0) by default=20.
+</div>
+	    
+	    <h4 id="_pltt_keyword_COL1D">COL1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ --OBSOLETE--Color number when we make a trace 1d by default, 0.It is better to use the 
+ keyword COLOR used by plot.
+</div>
+	    
+	    <h4 id="_pltt_keyword_STY1D">STY1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ --OBSOLETE--
+ Number of the style used when we make a 1d drawing. We should better use the 
+ keyword LINESTYLE which is tho one of the plot. Beware, this keyword is still 
+ useful if we want to d bars instead of curves, put sty1d='bar'
+</div>
+	    
+	    <h4 id="_pltt_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltt_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltt_keyword_OV1D">OV1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Allows to overprint a 1d curve over a precedent 1d drawing.
+</div>
+	    
+	    <h4 id="_pltt_keyword_FILTER">FILTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Apply a slippery average of width FILTER
+ </div>
+	    
+	    <h4 id="_pltt_keyword_TREND_TYPE">TREND_TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Modify field by calling trends.pro
+</div>
+	    
+	    <h4 id="_pltt_keyword_REPEAT_C">REPEAT_C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1033,5 +1203,24 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltt_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ allows to specify the type of hovmoller we want to do
+             'xt','yt','zt','t'  
+ with help of a keyword rather than the argument type. If the argument andthe 
+ keyword are specified in the same time, it is the value specified by the 
+ keyword which is retained.
+</div>
+	    
+	    <h4 id="_pltt_keyword_XT">XT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1046,5 +1235,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltt_keyword_YT">YT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1059,5 +1248,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltt_keyword_ZT">ZT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1072,5 +1261,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltt_keyword_TT">TT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1085,5 +1274,54 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltt_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltt_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltt_keyword_EXCHANGE_XY">EXCHANGE_XY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Allows to invert axes.
+ </div>
+	    
+	    <h4 id="_pltt_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1098,335 +1336,27 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltt_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_COL1D">COL1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_STY1D">STY1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_OV1D">OV1D&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_FILTER">FILTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_TREND_TYPE">TREND_TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_REPEAT_C">REPEAT_C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_XT">XT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_YT">YT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_ZT">ZT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_TT">TT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword_EXCHANGE_XY">EXCHANGE_XY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltt_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat"> 
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: L.24 à 36, L.426 à 427, L. 492 à 493</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltz.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltz.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltz.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Trace vertical graphs.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_pltz">
 
-	  <h2><a class="top" href="#container">top</a>pltz </h2>
+	  <h2><a class="top" href="#container">top</a>pltz <span class="categories"> 
+ Graphics
+</span></h2>
 	
 	  <p class="header">
@@ -717,27 +721,30 @@
 	
 	  <div class="comments">
- NAME:
-	PLTZ
-
- PURPOSE:
-	trace des graphes verticaux
-
- CATEGORY:
-       Graphics
-
- CALLING SEQUENCE:
-	pltz, champ [,min[, max]]
-
- INPUTS:
-	champ: le champ dont on veut faire la coupe verticale champ
-	peut etre de 2 types:
-         1) un tableau 2d ou 3d. 
-         Si le champ est 2d undiquer avec le mot cle boxzoom les
-         delimitations geographiques de la boxzoom. Si le chyamp est
-         3d, on extrait la section et on moyenne eventuellement avant
-         de faire le plot
-         2) une structure repondant aux critaire specifies par
-         litchamp.pro. cf. IDL> xhelp,'litchamp'. le tableau contenu
-         ds la structure doit etre 2 ou 3d cf cas 1) si dessus
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_pltz_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ The field whose we want to make a vertical cut can be 2 kind of thing:
+         1) An 2d or 3d array. 
+         If the field is 2d, indicate, with the keyword BOXZOOM, geographic delineations of the boxzoom. 
+         If the field is 3d, we extract the section on we average possibly before to do the plot.
+         2)  a structure respecting all criterions specified by litchamp.pro. 
+          See IDL> xhelp,'litchamp'. The array contin in the structure must be 2 or 3d (See case 1)
 
  ces arguments ne sont pas obligatoires:
@@ -748,164 +755,7 @@
 	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, 200]
- 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!
-
-      CB_TITLE: le titre de la colorbar
-
-      CB_SUBTITLE: le soustitre de la colorbar
-
-      CB_CHARSIZE: The character size of the color bar annotations
-
-	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. 
-
-        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
-
-	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 reponadnt aux meme caracteristiques
- que l''argument numero 1 de pltz
-
-       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-       verticale en diagonale. les coordonnees des extremites de
-       celle-ci sont alors definies les 4 elements du vecteur
-       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-
-	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 utilisee pour colorier le graphe
-             (sans toucher au noir, au blanc et a la palette utilisee)
-
-	ZRATIO: lorsque le dessin presente une partie zoomee, rapport de
- taille entre la partie zommee, hz (hauteur zoom), et le dessin entier, ht
- (hauteur total). Par defaut =2./3
-
-	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 la fenetre a etre en position
-	"allongee"
-
-       LCT: entier designant le numero de la palette de couleur que
-       l''on veut utiliser pour le plot. 
-	
-       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
-
-       /NOTRI: pour forcer a ne pas utiliser de triangulation.
-
-       OVERPLOT: pour faire un plt par dessus un autre. Rq:
-       contrairemnet a l''utilisation de CONTOUR,
-       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,</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_pltz_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+</div>
+	    
+	    <h4 id="_pltz_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -920,5 +770,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltz_param_giventype">giventype&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -933,5 +783,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltz_param_givenmin">givenmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -946,17 +796,4 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_pltz_param_givenmax">givenmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
 
 	  
@@ -977,7 +814,287 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ 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!
+</div>
+	    
+	    <h4 id="_pltz_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+ of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+ coordinates. 
+</div>
+	    
+	    <h4 id="_pltz_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Invert the color vector used to color the graph 
+               (without use the black, the white and the used palette)
+</div>
+	    
+	    <h4 id="_pltz_keyword_ZRATIO">ZRATIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ When the drawing has a zoomed part, it is the size rapport between the zoomed part, 
+ hz (zoom height), and the whole drawing, ht (total height). By default =2./3
+</div>
+	    
+	    <h4 id="_pltz_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltz_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltz_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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
+</div>
+	    
+	    <h4 id="_pltz_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Contour's style to adopt to draw isolines(by default, style=0. see style.pro)
+</div>
+	    
+	    <h4 id="_pltz_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Activate this keyword if we want the x axis to be traced in sinus of the 
+ latitude when we make a drawing f(y)
+</div>
+	    
+	    <h4 id="_pltz_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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. 
+</div>
+	    
+	    <h4 id="_pltz_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Number of contour to draw by default =20. active if
+ LABEL=0 or is not specified.
+ </div>
+	    
+	    <h4 id="_pltz_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ When  CONTOUR is activated, it is the numbre of contours
+ traced by a trait for drawing (active if
+ CONTLABEL=0) by default=20.
+</div>
+	    
+	    <h4 id="_pltz_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -992,5 +1109,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_keyword_FILLXDIR">FILLXDIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1005,5 +1122,118 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_keyword_ZOOM">ZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Depth where i can make our maximum zoom. By default 200m or max depth if it is inferior at 200m
+</div>
+	    
+	    <h4 id="_pltz_keyword_XZ">XZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Force to make a cut following xz
+</div>
+	    
+	    <h4 id="_pltz_keyword_YZ">YZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Force to make a cut following yz
+</div>
+	    
+	    <h4 id="_pltz_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_pltz_keyword_MASKFILL">MASKFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1018,5 +1248,21 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_INV">INV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To specify that the field is at W depth instead of T 
+ depth (automatically activated if vargrid eq 'W')
+</div>
+	    
+	    <h4 id="_pltz_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1031,5 +1277,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_ZRATIO">ZRATIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_pltz_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1044,335 +1290,28 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_pltz_keyword_CONTINTERVALLE">CONTINTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_LABEL">LABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_CONTLABEL">CONTLABEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_STYLE">STYLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_CONTMAX">CONTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_TYPEIN">TYPEIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_CONTMIN">CONTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_NLEVEL">NLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_CONTNLEVEL">CONTNLEVEL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_NOTRI">NOTRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_USETRI">USETRI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_FILLXDIR">FILLXDIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_ZOOM">ZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_XZ">XZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_YZ">YZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_MAXIN">MAXIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_MASKFILL">MASKFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword_REALSECTION">REALSECTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_pltz_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb L.20 à 26, L.215 à 221
+</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/sbar_plot.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/sbar_plot.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/sbar_plot.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Same thing that bar_plot but compatible with the whole environnement (common.pro inclued)
+</div>
 
       
@@ -711,5 +713,8 @@
 	<div class="routine_details" id="_sbar_plot">
 
-	  <h2><a class="top" href="#container">top</a>sbar_plot </h2>
+	  <h2><a class="top" href="#container">top</a>sbar_plot <span class="categories"> graphics
+
+ INPUTS: cd IDL>?bar_plot
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +722,5 @@
 	
 	  <div class="comments">
- NAME:sbar_plot (super bar_plot)
-
- PURPOSE: meme chose que bar_plot mais compatible avec l''ensemble de
- l'environnement (common.pro est inclu)
-
- CATEGORY:dessine
-
- CALLING SEQUENCE: sbar_plot,y
- 
- INPUTS: cd IDL>?bar_plot
-
- KEYWORD PARAMETERS:
-
-  meme que ceux de bar_plot avec en plus:
-      COLORS: un entier donnant la couleur de toutes les barres de
-      couleurs. (contrairement a colors qui est en vecteur donnant le
-      couleur de chaque barre de couleur.
-
-      NOREINITPLT: a actier si on ne veut pas que les variables
-      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-      procedure reinitplt
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
-   Si NOREINITPLT n''est pas ective toutes les variables
-      d''environnemet !p, !x, !y, !z sont reinitialisees par la
-      procedure reinitplt
-
- RESTRICTIONS:
-
- EXAMPLE:
-
-      IDL> sbar_plot, indgen(10),small = [2,2,2],/rempli
-      IDL> sbar_plot, indgen(10),small = [2,2,3],/noerase</div>
+</div>
 
 	  
@@ -793,5 +761,14 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ A vector, the same size as VALUES, containing the color index
+ to be used for each bar.  If not specified, the colors are
+ selected based on spacing the color indices as widely as
+ possible within the available colors (specified by D.N_COLORS).
+
+ 
+ Is an integer giving color of all colorbars. (contrarily to colors 
+ which is a vector giving the color of each colorbar).
+</div>
 	    
 	    <h4 id="_sbar_plot_keyword_NOREINITPLT">NOREINITPLT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -806,5 +783,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ We active it if we do not want environnement variables !p, !x, !y, !z 
+ to be reinitilalizted by the procedure reinitplt
+</div>
 	    
 	    <h4 id="_sbar_plot_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -819,25 +799,38 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ used to pass your keyword
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+      IDL> sbar_plot, indgen(10),small = [2,2,2],/rempli
+      IDL> sbar_plot, indgen(10),small = [2,2,3],/noerase
+      IDL> @ps
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ If NOREINITPLT is not activated, all environnement 
+ variables !p, !x, !y, !z are reinitializtedby the procedure reinitplt
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/scontour.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/scontour.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/scontour.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Same thing that contour but compatible with the whole environnement (common.pro inclued)
+</div>
 
       
@@ -711,5 +713,8 @@
 	<div class="routine_details" id="_scontour">
 
-	  <h2><a class="top" href="#container">top</a>scontour </h2>
+	  <h2><a class="top" href="#container">top</a>scontour <span class="categories"> graphics
+
+ INPUTS:cd IDL>?contour
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +722,5 @@
 	
 	  <div class="comments">
- NAME:scontour (super contour)
-
- PURPOSE: meme chose que contour mais compatible avec l''ensemble de
- l'environnement (common.pro est inclu)
-
- CATEGORY:dessine
-
- CALLING SEQUENCE: scontour, z [, x, y]
- 
- INPUTS:cd IDL>?contour
-
- KEYWORD PARAMETERS:
-
-  meme que ceux de bar_plot avec en plus:
-      NOREINITPLT: a actier si on ne veut pas que les variables
-      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-      procedure reinitplt
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-      IDL> z = dist(100) 
-      IDL> scontour, z, nlevels=10,small=[1,2,1],xstyle=1,ystyle=1</div>
+</div>
 
 	  
@@ -810,5 +787,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ We active it if we do not want environnement variables !p, !x, !y, !z 
+ to be reinitilalizted by the procedure reinitplt
+ </div>
 	    
 	    <h4 id="_scontour_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -823,25 +803,37 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ used to pass your keywords
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+      IDL> z = dist(100) 
+      IDL> scontour, z, nlevels=10,small=[1,2,1],xstyle=1,ystyle=1
+      IDL> @ps
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> Sebastien Masson (smasson@lodyc.jussieu.fr)
+                      10/10/1999
+ </div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/splot.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/splot.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/splot.html	(revision 142)
@@ -711,5 +711,8 @@
 	<div class="routine_details" id="_splot">
 
-	  <h2><a class="top" href="#container">top</a>splot </h2>
+	  <h2><a class="top" href="#container">top</a>splot <span class="categories"> graphics
+ 
+ INPUTS:cd IDL> ?plot
+</span></h2>
 	
 	  <p class="header">
@@ -717,38 +720,8 @@
 	
 	  <div class="comments">
- NAME:splot (super plot)
-
- PURPOSE: meme chose que plot mais compatible avec l''ensemble de
- l'environnement (common.pro est inclu)
-
- CATEGORY:dessine
-
- CALLING SEQUENCE: PLOT, [X,] Y
- 
- INPUTS:cd IDL> ?plot
-
- KEYWORD PARAMETERS:
-  meme que ceux de plot avec en plus:
-
-      NOREINITPLT: a actier si on ne veut pas que les variables
-      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-      procedure reinitplt
-
- OUTPUTS:
-
-   Si NOREINITPLT n''est pas ective toutes les variables
-      d''environnemet !p, !x, !y, !z sont reinitialisees par la
-      procedure reinitplt
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-
-      IDL> splot, indgen(10),ystyle=1,small=[1,2,1],/portrait
-      IDL> splot, -indgen(10),ystyle=1,small=[1,2,2],/noerase</div>
+
+ file_comments 
+ Same thing that plot but compatible with the whole environnement (common.pro inclued)
+</div>
 
 	  
@@ -802,5 +775,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ We active it if we do not want environnement variables !p, !x, !y, !z 
+ to be reinitilalizted by the procedure reinitplt
+ </div>
 	    
 	    <h4 id="_splot_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -815,25 +791,38 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ used to pass your keywords
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+      IDL> splot, indgen(10),ystyle=1,small=[1,2,1],/portrait
+      IDL> splot, -indgen(10),ystyle=1,small=[1,2,2],/noerase
+      IDL> @ps
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ If NOREINITPLT is not activated, all environnement 
+ variables !p, !x, !y, !z are reinitializtedby the procedure reinitplt
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/tvplus.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/tvplus.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/tvplus.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Enhanced version of tvscl
+</div>
 
       
@@ -711,5 +713,8 @@
 	<div class="routine_details" id="_tvplus">
 
-	  <h2><a class="top" href="#container">top</a>tvplus </h2>
+	  <h2><a class="top" href="#container">top</a>tvplus <span class="categories"> quick exploration of 2D arrays 
+
+ INPUTS: 
+</span></h2>
 	
 	  <p class="header">
@@ -717,67 +722,263 @@
 	
 	  <div class="comments">
- NAME: tvplus
-
- PURPOSE: enhanced version of tvscl
-
- CATEGORY: quick exploration of 2D arrays 
-
- CALLING SEQUENCE: tvplus,z2d [,cellsize]
-
- INPUTS: 
-
-    z2d: 2D array to visualize
-
-    cellsize: (optional) this is the size (in pixel) of the square
-    representing 1 array element. By default, this size is computed
-    automatically in order that the size of the plotting window do
-    not exceed the screen size. If the user specify a large value
-    of cellsize that forces tvplus to create a window larger than
-    the screen, a "scrolling window" will be displayed instead of a
-    regular window. Unfortunately the nice fonctionnalities of tvplus
-    are not coded for "scrolling window" case...
-
- KEYWORD PARAMETERS:
-
-       BOTTOM: The lowest color index of the colors to be loaded in
-       the bar. default is 0.
-
-       C_NAN: The color number that should be used for the NaN values.
-       default value is !d.n_colors < 255
-
-       C_MASK: The color number that should be used for the mask values.
-       default value is 0
-
-       OFFSET: 2 elements vector used by tvplus itself when shoing zoom.
-       It is used to shift the ranges of xaxis and yaxis.
-       For example: tvplus,sst[x1:x2,y1:y2],offest=[x1,y1]
-
-       MASK: The mask value. Note that if abs(mask) < 1.e6, then the
-       exact value of the mask is used to find the maskwd point.
-       if abs(mask) > 1.e6, the test to find the masked value is ge
-       abs(mask)/10. This is necessary to avoid the rounding errors
-
-       MIN and MAX: scalars used to specify the min and max values
-       of the color bar. default is from 0 to !d.n_colors < 255
-
-       NCOLORS:  This is the number of colors in the color
-       bar. default is !d.n_colors<255 -1
-
-       NOINTERP: used this keyword if you don't whant that the values
-       are interpolated between 0 (or min) and !d.n_colors < 255 (or max).
-       This can be for example usefull when working on byte type arrays.
-
-       NOUSEINFOS: activite to supress the printed message explaining
-       how to use tvplus
-
-	WINDOW: Number of the window used to display the array values.
-       default is window number 0.
-
- OUTPUTS: no (except the printed finformations, see below)
-
- COMMON BLOCKS: no
-
- SIDE EFFECTS:
-
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_tvplus_param_z2d">z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ 2D array to visualize
+</div>
+	    
+	    <h4 id="_tvplus_param_cellsize">cellsize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ This is the size (in pixel) of the square
+ representing 1 array element. By default, this size is computed
+ automatically in order that the size of the plotting window do
+ not exceed the screen size. If the user specify a large value
+ of cellsize that forces tvplus to create a window larger than
+ the screen, a "scrolling window" will be displayed instead of a
+ regular window. Unfortunately the nice fonctionnalities of tvplus
+ are not coded for "scrolling window" case...
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_tvplus_keyword_BOTTOM">BOTTOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The lowest color index of the colors to be loaded in
+ the bar. default is 0.
+</div>
+	    
+	    <h4 id="_tvplus_keyword_C_MASK">C_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The color number that should be used for the mask values.
+ default value is 0
+</div>
+	    
+	    <h4 id="_tvplus_keyword_C_NAN">C_NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The color number that should be used for the NaN values.
+ default value is !d.n_colors < 255
+</div>
+	    
+	    <h4 id="_tvplus_keyword_WINDOW">WINDOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Number of the window used to display the array values.
+ default is window number 0.
+</div>
+	    
+	    <h4 id="_tvplus_keyword_MIN">MIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Scalar used to specify the min value of the color bar. default is 0
+</div>
+	    
+	    <h4 id="_tvplus_keyword_MAX">MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Scalar used to specify the max value of the color bar. default is !d.n_colors < 255
+</div>
+	    
+	    <h4 id="_tvplus_keyword_MASK">MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ The mask value. Note that if abs(mask) < 1.e6, then the
+ exact value of the mask is used to find the maskwd point.
+ if abs(mask) > 1.e6, the test to find the masked value is ge
+ abs(mask)/10. This is necessary to avoid the rounding errors
+</div>
+	    
+	    <h4 id="_tvplus_keyword_OFFSET">OFFSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 2 elements vector used by tvplus itself when shoing zoom.
+ It is used to shift the ranges of xaxis and yaxis.
+ For example: tvplus,sst[x1:x2,y1:y2],offest=[x1,y1]
+</div>
+	    
+	    <h4 id="_tvplus_keyword_NOUSEINFOS">NOUSEINFOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Activite to supress the printed message explaining how to use tvplus
+</div>
+	    
+	    <h4 id="_tvplus_keyword_NCOLORS">NCOLORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ This is the number of colors in the color bar. default is !d.n_colors<255 -1
+</div>
+	    
+	    <h4 id="_tvplus_keyword_NOINTERP">NOINTERP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used this keyword if you don't whant that the values
+ are interpolated between 0 (or min) and !d.n_colors < 255 (or max).
+ This can be for example usefull when working on byte type arrays.
+</div>
+	    
+	    <h4 id="_tvplus_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ IDL> tvplus, dist(100)
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
  use your mouse to scan the array values...
      left button  : mouse position and associated array value
@@ -785,219 +986,7 @@
      right button : quit
 
- RESTRICTIONS: the nice fonctionnalities of tvplus are not coded
-               for "scrolling window" case...
-
- EXAMPLE:  IDL> tvplus, dist(100)
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_tvplus_param_z2d">z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_param_cellsize">cellsize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_tvplus_keyword_BOTTOM">BOTTOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_C_MASK">C_MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_C_NAN">C_NAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_WINDOW">WINDOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_MIN">MIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_MAX">MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_MASK">MASK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_OFFSET">OFFSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_NOUSEINFOS">NOUSEINFOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_NCOLORS">NCOLORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword_NOINTERP">NOINTERP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_tvplus_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+ the nice fonctionnalities of tvplus are not coded
+ for "scrolling window" case...
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/addaxe.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/addaxe.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/addaxe.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Add an axis when we do an oblique section in pltz, pltt
+ or plt1d
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_addaxe">
 
-	  <h2><a class="top" href="#container">top</a>addaxe </h2>
+	  <h2><a class="top" href="#container">top</a>addaxe <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,30 +722,4 @@
 	
 	  <div class="comments">
- NAME:addaxe
-
- PURPOSE:ajoute un axe qd on fait une section oblique ds pltz, pltt
- ou plt1d
-
- CATEGORY:autour de pltz, pltt et plt1d
-
- CALLING SEQUENCE:addaxe, type, posfenetre
- 
- INPUTS:endpoints:coordonnees des extremites de ;a section
-        type: un string de 2 characteres specifiant qule type de plot
- on fait.
-        posfenetre: ler vecteur !p.posotion correspondant a ;a
-        position du cadre de la partie dessin du plot.
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -752,8 +731,8 @@
 	    
 	    <h4 id="_addaxe_param_endpoints">endpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -762,11 +741,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Coordonnees of extremities of the section
+ </div>
 	    
 	    <h4 id="_addaxe_param_type">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -775,11 +756,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A string of two characters specifying the type of plot we do
+</div>
 	    
 	    <h4 id="_addaxe_param_posfenetre">posfenetre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -788,5 +771,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ The vector !p.position corresponding to the frame position of 
+ the drawing part of the plot.
+</div>
 	    
 
@@ -813,20 +799,24 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/autoscale.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/autoscale.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/autoscale.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ We give a min and a max, and the procedure send back 
+ the good contour interval and labels's value.
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_autoscale">
 
-	  <h2><a class="top" href="#container">top</a>autoscale </h2>
+	  <h2><a class="top" href="#container">top</a>autoscale <span class="categories"> 
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,31 +722,4 @@
 	
 	  <div class="comments">
- NAME: autoscale
-
- PURPOSE: on donne un min et un max et la procedure renvoie le
- contour intevalle qui va bien et la valeur des labels.
-
- CATEGORY: autour de CONTOUR
-
- CALLING SEQUENCE: autoscale, min, max, ci
- 
- INPUTS: min et max: 2 reels specifiants entre quel min et quel max
- on veut tracer un contour
-
- KEYWORD PARAMETERS: none
-
- OUTPUTS: ci et evenuellement levels. ci est un reel qui donne le
- contour intevalle. A utiliser ds CONTOUR avlec le mot clef LEVEL.
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
-  CI est un multiple de l'unite en unite log de 10.
-  force le nombre de contour a etre pair.
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -753,8 +731,8 @@
 	    
 	    <h4 id="_autoscale_param_min">min&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -763,11 +741,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A reel number specifying above what value we want to trace a contour
+</div>
 	    
 	    <h4 id="_autoscale_param_max">max&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -776,9 +756,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A reel number specifying below what value we want to trace a contour
+</div>
 	    
 	    <h4 id="_autoscale_param_ci">ci&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -789,5 +771,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is a reel number giving the contour interval. Use it in CONTOUR with the keyword LEVEL.
+</div>
 	    
 
@@ -797,15 +781,20 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ CI is a multiple of the unity in unity log of 10.
+ It force the number of contour to be even.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/axis4pltz.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/axis4pltz.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/axis4pltz.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ compute the mask and the axis for a vertical section
+</div>
 
       
@@ -717,222 +719,220 @@
 	
 	  <div class="comments">
- NAME:axis4pltz
-
- PURPOSE:compute the mask and the axis for a vertical section
-
- CATEGORY:
-
- CALLING SEQUENCE:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_axis4pltz_param_type">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_axis4pltz_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+  3d mask
+        </div>
+	    
+	    <h4 id="_axis4pltz_param_glam">glam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ 2d longitude 
+ </div>
+	    
+	    <h4 id="_axis4pltz_param_gphi">gphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ 2d latitude
+</div>
+	    
+	    <h4 id="_axis4pltz_param_z">z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ 1d depth
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_axis4pltz_keyword_XXAXIS">XXAXIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ to get the xaxis we need to use in pltbase
+      </div>
+	    
+	    <h4 id="_axis4pltz_keyword_ZZAXIS">ZZAXIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ to get the yaxis we need to use in pltbase
+</div>
+	    
+	    <h4 id="_axis4pltz_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Activate this keyword if we want the x axis to be traced in sinus of the 
+ latitude when we make a drawing f(y)
+</div>
+	    
+	    <h4 id="_axis4pltz_keyword_ZRATIO">ZRATIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ When the drawing has a zoomed part, it is the size rapport between the zoomed part, 
+ hz (zoom height), and the whole drawing, ht (total height). By default =2./3
+</div>
+	    
+	    <h4 id="_axis4pltz_keyword_ZOOM">ZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_axis4pltz_keyword_PROFMAX">PROFMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_axis4pltz_keyword_PROFMIN">PROFMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_axis4pltz_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ used to pass your keywords
  
- INPUTS:mask: 3d mask
-        glam, gphi: 2d longitudes and latitudes
-        z:1d depth
-
- KEYWORD PARAMETERS:
-        XXAXIS to get the xaxis we need to use in pltbase
-        ZZAXIS to get the yaxis we need to use in pltbase
-
-        Others: see pltz 
-
- OUTPUTS:
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_axis4pltz_param_type">type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_param_glam">glam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_param_gphi">gphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_param_z">z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_axis4pltz_keyword_XXAXIS">XXAXIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_ZZAXIS">ZZAXIS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_SIN">SIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_ZRATIO">ZRATIO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_ZOOM">ZOOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_PROFMAX">PROFMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword_PROFMIN">PROFMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_axis4pltz_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+  Others: see pltz 
+
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Overlayeur of colorbar
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_barrecouleur">
 
-	  <h2><a class="top" href="#container">top</a>barrecouleur </h2>
+	  <h2><a class="top" href="#container">top</a>barrecouleur <span class="categories">
+ utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,13 +721,4 @@
 	
 	  <div class="comments">
- NAME:barrecouleur
-
- PURPOSE:surcouche de colorbar
-
- CATEGORY:delestage de l''ecriture de plt, pltz, pltt
-
- CALLING SEQUENCE:barrecouleur
-
- SIDE EFFECTS: passer tous les arguments que l''on veut grace a _extra
 </div>
 
@@ -926,15 +921,18 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: mettre les keyword et les param</div>
+	  <h4>Restrictions</h4><div class="preformat"> pass all argument we want thanks to _extra
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checkfield.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checkfield.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checkfield.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ In input of plt, pltz, pltt and plt1d, it check that the field give 
+ a size compatible with the domain and, if needed, average to give us 
+ a 2d array if we make a plot of the type: 'xy', 'xz', 'xt', 'yz', 'yt'
+ , 'zt' or a 1d array if we make a plot of the type: 'x', 'y', 'z', 't'.
+</div>
 
       
@@ -711,5 +716,5 @@
 	  
 	  <dt><p><a href="#_err_1d"><span class="result">result = </span>err_1d(<span class="result">type, n1, name, n2</span>)</a></p><dt>
-	  <dd>  NAME:checkfield   PURPOSE:en entree de plt, pltz, pltt et plt1d, verifie que le  champ donne a bien une taille compatible avec le domaine et fait au  besoin les moyennes pour ressortir en fin de fonction un tableau 2d  si on fait un plot du type: 'xy', 'xz', 'xt', 'yz', 'yt', 'zt' ou un  tableau 1d si on fait un plot du type 'x', 'y', 'z', 't'.</dd>	
+	  <dd></dd>	
 	  
 	  <dt><p><a href="#_err_2d"><span class="result">result = </span>err_2d(<span class="result">type, sz, nx, ny, nz</span>)</a></p><dt>
@@ -720,5 +725,5 @@
 	  
 	  <dt><p><a href="#_checkfield"><span class="result">result = </span>checkfield(<span class="result">field, procedure</span>, TYPE=<span class="result">TYPE</span>, BOXZOOM=<span class="result">BOXZOOM</span>, DIREC=<span class="result">DIREC</span>, NOQUESTION=<span class="result">NOQUESTION</span>, VECTEUR=<span class="result">VECTEUR</span>, WDEPTH=<span class="result">WDEPTH</span>, _EXTRA=<span class="result">_EXTRA</span>)</a></p><dt>
-	  <dd></dd>	
+	  <dd> </dd>	
 	  	
 	</dl>
@@ -736,36 +741,5 @@
 	    <span class="result">result = </span>err_1d(<span class="result"><a href="#_err_1d_param_type">type</a>, <a href="#_err_1d_param_n1">n1</a>, <a href="#_err_1d_param_name">name</a>, <a href="#_err_1d_param_n2">n2</a></span>)</p>
 	
-	  <div class="comments">
- NAME:checkfield
-
- PURPOSE:en entree de plt, pltz, pltt et plt1d, verifie que le
- champ donne a bien une taille compatible avec le domaine et fait au
- besoin les moyennes pour ressortir en fin de fonction un tableau 2d
- si on fait un plot du type: 'xy', 'xz', 'xt', 'yz', 'yt', 'zt' ou un
- tableau 1d si on fait un plot du type 'x', 'y', 'z', 't'.
-
- CATEGORY:en entree de plt, pltz, pltt et plt1d
-
- CALLING SEQUENCE:res=checkfield(field, procedure)
- 
- INPUTS:
-        filed: un champ recomdant aux criteres de litchamp.pro, cf.
-        IDL>xhelp,'litchamp'
-
- KEYWORD PARAMETERS:
- 
-         /WDEPTH: to specify that the field is at W depth instad of T 
-         depth (automatically activated if vargrid eq 'W')
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
+	  <div class="comments"></div>
 
 	  
@@ -1082,10 +1056,13 @@
 	<div class="routine_details" id="_checkfield">
 
-	  <h2><a class="top" href="#container">top</a>checkfield </h2>
+	  <h2><a class="top" href="#container">top</a>checkfield <span class="categories">
+ graphic
+ </span></h2>
 	
 	  <p class="header">
 	    <span class="result">result = </span>checkfield(<span class="result"><a href="#_checkfield_param_field">field</a>, <a href="#_checkfield_param_procedure">procedure</a></span>, <a href="#_checkfield_keyword_TYPE">TYPE</a>=<span class="result">TYPE</span>, <a href="#_checkfield_keyword_BOXZOOM">BOXZOOM</a>=<span class="result">BOXZOOM</span>, <a href="#_checkfield_keyword_DIREC">DIREC</a>=<span class="result">DIREC</span>, <a href="#_checkfield_keyword_NOQUESTION">NOQUESTION</a>=<span class="result">NOQUESTION</span>, <a href="#_checkfield_keyword_VECTEUR">VECTEUR</a>=<span class="result">VECTEUR</span>, <a href="#_checkfield_keyword_WDEPTH">WDEPTH</a>=<span class="result">WDEPTH</span>, <a href="#_checkfield_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+</div>
 
 	  
@@ -1096,15 +1073,17 @@
 	    
 	    <h4 id="_checkfield_param_field">field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A field respecting litchamp.pro's criterions. See IDL>xhelp,'litchamp'
+</div>
 	    
 	    <h4 id="_checkfield_param_procedure">procedure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1152,7 +1131,44 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ 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!
+</div>
+	    
+	    <h4 id="_checkfield_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">   
+</div>
+	    
+	    <h4 id="_checkfield_keyword_NOQUESTION">NOQUESTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_checkfield_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_checkfield_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1165,7 +1181,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_checkfield_keyword_NOQUESTION">NOQUESTION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <div class="comments"> is also appropriated.
+</div>
+	    
+	    <h4 id="_checkfield_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1178,7 +1195,10 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_checkfield_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <div class="comments">
+ to specify that the field is at W depth instad of T 
+ depth (automatically activated if vargrid eq 'W')
+ </div>
+	    
+	    <h4 id="_checkfield_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -1191,51 +1211,32 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_checkfield_keyword_WDEPTH">WDEPTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_checkfield_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ used to pass your keywords
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: mettre les param 
+</div>
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat"> 
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html	(revision 142)
@@ -996,8 +996,8 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/determineminmax.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/determineminmax.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/determineminmax.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Determine the min and the max of a mask array
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_determineminmax">
 
-	  <h2><a class="top" href="#container">top</a>determineminmax </h2>
+	  <h2><a class="top" href="#container">top</a>determineminmax <span class="categories"> 
+ Lightening of the writting of plt, pltz and pltt
+</span></h2>
 	
 	  <p class="header">
@@ -717,37 +721,4 @@
 	
 	  <div class="comments">
- NAME:determineminmax
-
- PURPOSE:determiner le min et le max d''un tableau masque
-
- CATEGORY: delestage de l''ecriture de plt, pltz, pltt
-
- CALLING SEQUENCE:determineminmax, tab, mask, vraimin, vraimax
-
- INPUTS:
-
-       tab: le tableau dont il faut determiner le min et le max
-       mask: le tableau de masque 
-
- KEYWORD PARAMETERS:
-
-       minin et maxin deux scalaire qui s''il ne sont pas definits
-       prennent la valeur de vraimin et vraimax
-
-       /ZEROMIDDLE: fo force the middle of the colorbar to be equal
-       to 0 (force max=max(abs([min,max])) and min=-max)
-
- OUTPUTS:
-
-       vraimin et vraimax: le min et le max du tableau
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:degarde si le champ est constant sur la mer
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -759,4 +730,64 @@
 	    
 	    <h4 id="_determineminmax_param_tab">tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The array whose we determine the min and the max
+</div>
+	    
+	    <h4 id="_determineminmax_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The mask array 
+</div>
+	    
+	    <h4 id="_determineminmax_param_vraimin">vraimin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The min of the array
+</div>
+	    
+	    <h4 id="_determineminmax_param_vraimax">vraimax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The max of the array
+</div>
+	    
+	    <h4 id="_determineminmax_param_glam">glam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -771,5 +802,5 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_determineminmax_param_mask">mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_determineminmax_param_gphi">gphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -784,56 +815,4 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_determineminmax_param_vraimin">vraimin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_param_vraimax">vraimax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_param_glam">glam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_param_gphi">gphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
 
 	  
@@ -854,7 +833,37 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ It is a scalar which, if it is not defined, take the value of VRAIMAX
+</div>
+	    
+	    <h4 id="_determineminmax_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ It is a scalar which, if it is not defined, take the value of VRAIMIN
+</div>
+	    
+	    <h4 id="_determineminmax_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_determineminmax_keyword_MININ">MININ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_determineminmax_keyword_usetri">usetri&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -867,7 +876,9 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <div class="comments">
+ To force using triangulation.
+ </div>
+	    
+	    <h4 id="_determineminmax_keyword_ZEROMIDDLE">ZEROMIDDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -880,7 +891,10 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_keyword_usetri">usetri&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <div class="comments"> 
+ Force the middle of the colorbar to be equal
+ to 0 (force max=max(abs([min,max])) and min=-max)
+ </div>
+	    
+	    <h4 id="_determineminmax_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -893,51 +907,34 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_keyword_ZEROMIDDLE">ZEROMIDDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_determineminmax_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ used to pass your keywords
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb: manque les param glam et gphi
+</div>
+	  <h4>Restrictions</h4><div class="preformat">
+ Look if the field is constant on the sea
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ Common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/directory-overview.html	(revision 142)
@@ -699,17 +699,17 @@
       
 	<dt><a href="addaxe.html?format=raw">addaxe.pro</a></dt>
-	<dd></dd>
+	<dd>  Add an axis when we do an oblique section in pltz, pltt  or plt1d </dd>
       
 	<dt><a href="autoscale.html?format=raw">autoscale.pro</a></dt>
-	<dd></dd>
+	<dd>   We give a min and a max, and the procedure send back   the good contour interval and labels's value.</dd>
       
 	<dt><a href="axis4pltz.html?format=raw">axis4pltz.pro</a></dt>
-	<dd></dd>
+	<dd>  compute the mask and the axis for a vertical section </dd>
       
 	<dt><a href="barrecouleur.html?format=raw">barrecouleur.pro</a></dt>
-	<dd></dd>
+	<dd>  Overlayeur of colorbar </dd>
       
 	<dt><a href="checkfield.html?format=raw">checkfield.pro</a></dt>
-	<dd></dd>
+	<dd>  In input of plt, pltz, pltt and plt1d, it check that the field give   a size compatible with the domain and, if needed, average to give us   a 2d array if we make a plot of the type: 'xy', 'xz', 'xt', 'yz', 'yt'  , 'zt' or a 1d array if we make a plot of the type: 'x', 'y', 'z', 't'.</dd>
       
 	<dt><a href="checktypeminmax.html?format=raw">checktypeminmax.pro</a></dt>
@@ -717,5 +717,5 @@
       
 	<dt><a href="determineminmax.html?format=raw">determineminmax.pro</a></dt>
-	<dd></dd>
+	<dd>  Determine the min and the max of a mask array </dd>
       
 	<dt><a href="givewindowsize.html?format=raw">givewindowsize.pro</a></dt>
@@ -723,26 +723,26 @@
       
 	<dt><a href="meridienparallele.html?format=raw">meridienparallele.pro</a></dt>
-	<dd></dd>
+	<dd>  Trace some meridians or parallel </dd>
       
 	<dt><a href="placecolor.html?format=raw">placecolor.pro</a></dt>
-	<dd></dd>
+	<dd>  allows to trace the independently from a graph  By default, trace a color bar of the same type tahn the one present in plt  and pltz.</dd>
       
 	<dt><a href="placedessin.html?format=raw">placedessin.pro</a></dt>
-	<dd></dd>
+	<dd>   Putting into place of the drawing/ opening of the window or of the PS </dd>
       
 	<dt><a href="projsegment.html?format=raw">projsegment.pro</a></dt>
-	<dd></dd>
+	<dd>  project linearly a segment, a vector whose boundaries are [a,b] on   a vector whose boundaries are [c,d] </dd>
       
 	<dt><a href="restoreatt.html?format=raw">restoreatt.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to reattribuate global variables associated with a field   when we give a stucture created by saveatt.</dd>
       
 	<dt><a href="rotation.html?format=raw">rotation.pro</a></dt>
-	<dd></dd>
+	<dd>  Rotate two vectors by a specified amount.</dd>
       
 	<dt><a href="saveatt.html?format=raw">saveatt.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to put in a structure attributes which can be associated with a variable.</dd>
       
 	<dt><a href="terminedessin.html?format=raw">terminedessin.pro</a></dt>
-	<dd></dd>
+	<dd>  End the drawing if needed when it is a postscript.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/givewindowsize.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/givewindowsize.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/givewindowsize.html	(revision 142)
@@ -709,12 +709,14 @@
 	
 
-	<div class="routine_details" id="_givewindowsize">
-
-	  <h2><a class="top" href="#container">top</a>givewindowsize </h2>
+	<div class="routine_details" id="_          -1">
+
+	  <h2><a class="top" href="#container">top</a>          -1 <span class="warning">obsolete</span> <span class="warning">abstract</span> <span class="warning">private</span> <span class="categories">          -1</span></h2>
 	
 	  <p class="header">
-	    <span class="result">result = </span>givewindowsize()</p>
+	    <span class="result">result = </span>          -1()</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments preformat">          -1</div>
+
+	  <h3>Return value</h3><div class="preformat">          -1</div>
 
 	  
@@ -722,27 +724,31 @@
 	  
 
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">          -1</div>
+	  <h3>Version history</h3>
+	  <h4>Author</h4><div class="preformat">          -1</div>
+	  <h4>Version</h4><div class="preformat">2.0</div>
+	  <h4>History</h4><div class="preformat">          -1</div>
+	  <h4>Copyright</h4><div class="preformat">          -1</div>
+	  <h4>Customer ID</h4><div class="preformat">          -1</div>
+	  <h3>Known issues</h3>
+	  <h4>Obsolete</h4><div class="preformat">          -1</div>
+	  <h4>Known bugs</h4><div class="preformat">          -1</div>
+	  <h4>Todo items</h4><div class="preformat">          -1</div>
+	  <h4>Restrictions</h4><div class="preformat">          -1</div>
 	
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  <h4>Inherits classes</h4><div class="preformat">          -1</div>
+	  <h4>Requires IDL version</h4><div class="preformat">          -1</div>
+	  <h4>Uses routines</h4><div class="preformat">          -1</div>
+	  <h4>Pre-condition</h4><div class="preformat">          -1</div>
+	  <h4>Post-condition</h4><div class="preformat">          -1</div>
+	  <h4>Common blocks used</h4><div class="preformat">          -1</div>
 	
+	  <h3>Statistics</h3>
+	  <table class="statistics">
+	    <tr><td>McCabe cyclic</td><td>          -1</td></tr>
+	    <tr><td>McCabe essential</td><td>          -1</td></tr>
+	    <tr><td>McCabe modular design</td><td>          -1</td></tr>
+	  </table>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/meridienparallele.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/meridienparallele.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/meridienparallele.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Trace some meridians or parallel
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_meridienparallele">
 
-	  <h2><a class="top" href="#container">top</a>meridienparallele </h2>
+	  <h2><a class="top" href="#container">top</a>meridienparallele <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,16 +721,4 @@
 	
 	  <div class="comments">
- NAME:meridienparallele
-
- PURPOSE:trace certains medidiens ou paralles
-
- CATEGORY:
-
- CALLING SEQUENCE:meridienparallele, coupe
-
- INPUTS:coupe: le type de dessin que l''on traite
-
- COMMON BLOCKS:
-	common.pro
 </div>
 
@@ -748,5 +740,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> The type of drawing we treat
+</div>
 	    
 
@@ -756,20 +749,24 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placecolor.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placecolor.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placecolor.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ allows to trace the independently from a graph
+ By default, trace a color bar of the same type tahn the one present in plt
+ and pltz. If max, min and divisions are not stipulated, then max=sup,min=inf
+ and divisions=div.
+</div>
 
       
@@ -711,5 +716,7 @@
 	<div class="routine_details" id="_placecolor">
 
-	  <h2><a class="top" href="#container">top</a>placecolor </h2>
+	  <h2><a class="top" href="#container">top</a>placecolor <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,33 +724,4 @@
 	
 	  <div class="comments">
- NAME:PLACECOLOR
-
- PURPOSE:permet de tracer la colorbar independammment d'un graphe
-
- CATEGORY:graph
-
- CALLING SEQUENCE:placecolor,pos
-
- INPUTS:
-	pos:vecteur de 4 elements donnant les coordonnees du coin en bas
- a gauche et de celui en haut a droite -en cm- ds lequel on veut faire la
- barre de couleur
-
- KEYWORD PARAMETERS: tous ceux de colorbar.pro.
-
- par defaut trace une barre de couleur du meme type que celle presente ds plt
- et pltz. si max, min et divisions ne sont pas stipulees alors max=sup,min=inf
- et divisions=div
-
- OUTPUTS:
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:utilisable que pour les POSTCRIPT effectues avec plein2dessin
-
- EXAMPLE:
 </div>
 
@@ -765,5 +743,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Vecteur composed by 4 elements giving coordinates of the left bottom 
+ corner and of the right up one -in cm- in which we want to do the color bar
+</div>
 	    
 
@@ -785,25 +766,33 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ used to pass your keywords
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Only usable for POSTCRIPTs effectuated with plein2dessin
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placedessin.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placedessin.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/placedessin.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Putting into place of the drawing/ opening of the window or of the PS
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_placedessin">
 
-	  <h2><a class="top" href="#container">top</a>placedessin </h2>
+	  <h2><a class="top" href="#container">top</a>placedessin <span class="categories"> 
+ Utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,40 +721,4 @@
 	
 	  <div class="comments">
- NAME:placedessin
-
- PURPOSE: mise en place du dessin / ouverture de la fenetre ou du PS
-
- CATEGORY: pour alleger les programmes plt, pltz, pltt.
-
- CALLING SEQUENCE: placedessin, typedessin,posfenetre, posbar
-
- INPUTS:
-   typedessin: une chaine de charactere specifiant quelle procedure
-   appelle placedessin: 'plt', 'pltz', 'pltt'
-
- KEYWORD PARAMETERS: pleins (ce de CALIBRE de WINDOW ...)
-
-       LCT: intier designant le numero de la palette de couleur que
-       l''on veut utiliser pour les plot. 
-	
- OUTPUTS:
-
-       posfenetre: un vecteur de 4 elements contenant la position de
-       cadre contenant les legendes + le graphe en coordonnes
-       normalises. Rq: pour positionner le dessin il faut apres
-       l''appelle de calibre faire !p.position=posfenetre
-
-       posbar: cf posfentre mais pour la barre de couleur. meme
-       remarque pour positionner la barre de couleur, !p.position=posbar
-
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -772,31 +740,41 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is a chain or characteres specifying what procedure is called by PLACEDESSIN: 'plt', 'pltz' or 'pltt'
+</div>
 	    
 	    <h4 id="_placedessin_param_posfenetre">posfenetre&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is a vector composed by 4 elements containing the position of the frame 
+ containing captions and the graph in normalized coorinates. 
+ Comment: To position the drawing; we have to do !p.position=posfenetre 
+ after the call of the caliber
+</div>
 	    
 	    <h4 id="_placedessin_param_posbar">posbar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Like POSFENETRE but for the color bar. 
+ Same comment to position the color bar, !p.position=posbar
+</div>
 	    
 
@@ -831,7 +809,231 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ We active it if we do not want the colorbar.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_NOFILL">NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ We active it if we only want contours in black and white with a white background.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_COLOR_c">COLOR_c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ To draw the contour in color instead of in black
+ with filling in color 
+</div>
+	    
+	    <h4 id="_placedessin_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> is also appropriated.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_PORTRAIT">PORTRAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Force the page or the window to be in standing position.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_LANDSCAPE">LANDSCAPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Force the page or the window on the screen to be in lenthened position.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_SMALL">SMALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Vector composed of 3 or 4 elements, applyed to make a drawing on a 
+ small portion of a page or screen. It delimit the zone where the drawing will be done.
+     If there is 4 elements:
+ then is constituated of coordinates (expressed in cm located from the up and 
+ left corner of the page or the window (in portrait like in lanscape)) of the bottom 
+ and left corner and of the up and right corner of the drawing zone.
+     If there is 3 elements:
+ in this case, we divide the page or the screen in small[0] columns and in small[1] lines 
+ the drawing made in the box numbered small[2]. The numerotation starting up and left by 
+ the number 1 and then, following the writing direction.
+ By default, we make the largest drawing we can do, conserving the aspect rapport 
+ (exept when REMPLI is activated).
+ </div>
+	    
+	    <h4 id="_placedessin_keyword_MARGES">MARGES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_placedessin_keyword_NOFILL">NOFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_placedessin_keyword_MAP">MAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ 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]
+ 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
+ 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]
+	</div>
+	    
+	    <h4 id="_placedessin_keyword_REMPLI">REMPLI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Force the drawing to occupy the whole space defined by small.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_POST">POST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ Make a postscript. Only works if we made one drawing on the page.
+ If we make several drawing, use @ps.
+</div>
+	    
+	    <h4 id="_placedessin_keyword_WINDOW">WINDOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Number of the window on which we want to do the graph (Allow to open several windows). 
+ By default, we open 'IDL0'
+</div>
+	    
+	    <h4 id="_placedessin_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+ of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+ coordinates. 
+</div>
+	    
+	    <h4 id="_placedessin_keyword_TYPE">TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -846,5 +1048,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_placedessin_keyword_COLOR_c">COLOR_c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_placedessin_keyword_BASICMARGES">BASICMARGES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -859,173 +1061,4 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_placedessin_keyword_CONTOUR">CONTOUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_VECTEUR">VECTEUR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_PORTRAIT">PORTRAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_LANDSCAPE">LANDSCAPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_SMALL">SMALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_MARGES">MARGES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_MAP">MAP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_REMPLI">REMPLI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_POST">POST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_WINDOW">WINDOW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_TYPE">TYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_placedessin_keyword_BASICMARGES">BASICMARGES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
 	    <h4 id="_placedessin_keyword_NOERASE">NOERASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
@@ -1039,5 +1072,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ We active it to make a drawing without creating a new frame.
+</div>
 	    
 	    <h4 id="_placedessin_keyword_LCT">LCT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1052,5 +1087,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ Is an integer designating the number of the palette of color we want to use for the plot. 
+	</div>
 	    
 	    <h4 id="_placedessin_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1065,5 +1102,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ 't' 'x' 'y' 'z' 'xys' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
+       'xzt' 'yzt' 'xyzt' Direction on which do averages 
+</div>
 	    
 	    <h4 id="_placedessin_keyword_CB_TITLE">CB_TITLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1078,5 +1118,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ The colorbar's title
+</div>
 	    
 	    <h4 id="_placedessin_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1091,25 +1133,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ Used to pass your keywords.
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/projsegment.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/projsegment.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/projsegment.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ project linearly a segment, a vector whose boundaries are [a,b] on 
+ a vector whose boundaries are [c,d]
+</div>
 
       
@@ -711,12 +714,17 @@
 	<div class="routine_details" id="_projsegment">
 
-	  <h2><a class="top" href="#container">top</a>projsegment </h2>
+	  <h2><a class="top" href="#container">top</a>projsegment <span class="categories">
+ calculation
+</span></h2>
 	
 	  <p class="header">
 	    <span class="result">result = </span>projsegment(<span class="result"><a href="#_projsegment_param_vecteur">vecteur</a>, <a href="#_projsegment_param_bornes">bornes</a></span>, <a href="#_projsegment_keyword_MP">MP</a>=<span class="result">MP</span>)</p>
 	
-	  <div class="comments"></div>
-
-	  
+	  <div class="comments">
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ A vector whose new boudaries are specified by BORNES.
+</div>
 
 	  
@@ -735,5 +743,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ A vector whose the first element must be the smallest one and the last must be the biggest one.
+</div>
 	    
 	    <h4 id="_projsegment_param_bornes">bornes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -748,5 +758,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ New boundaries of the vector.
+</div>
 	    
 
@@ -768,13 +780,30 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Activate this keyword to the function send back this a vector of 2 
+ elements which are the m and p of the linear projection y=mx+p used 
+ to pass from the [a,b] segment to the [c,d] segment.
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+   
+   IDL> a=indgen(9) 
+   IDL> print, a 
+          0       1       2       3       4       5       6       7       8
+   IDL> print, projsegment(a,[0,80]) 
+          0      10      20      30      40      50      60      70      80
+   IDL> print, projsegment(a,[0,-80])  
+          0     -10     -20     -30     -40     -50     -60     -70     -80
+   IDL> print, projsegment(a,[-80,0])   
+        -80     -70     -60     -50     -40     -30     -20     -10      0
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/restoreatt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/restoreatt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/restoreatt.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to reattribuate global variables associated with a field 
+ when we give a stucture created by saveatt.pro by example.
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_restoreatt">
 
-	  <h2><a class="top" href="#container">top</a>restoreatt </h2>
+	  <h2><a class="top" href="#container">top</a>restoreatt <span class="categories"> 
+ Utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,22 +722,4 @@
 	
 	  <div class="comments">
- NAME:restoreatt
-
- PURPOSE:permet de reattribuer les variables globales associees a un
- champ qd on donne une stucture cree par ex par saveatt.pro.
-
- CATEGORY:allegement d''ecriture
-
- CALLING SEQUENCE:restoreatt, structure
-
- INPUTS:une structure comme celle que lit litchamp. 
-        cf. IDL> xhelp,'litchamp'
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS: change la valeur des variables globales attributs
- d''un champ: vargrid, varname, varunit, vardate, varexp , valmask,
- et time
 </div>
 
@@ -744,8 +731,8 @@
 	    
 	    <h4 id="_restoreatt_param_struct">struct&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
 	      
 	      
-	      
-	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -754,5 +741,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ a structure like the one who read litchamp. 
+        See IDL> xhelp,'litchamp'
+</div>
 	    
 
@@ -762,20 +752,27 @@
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Change the value if global variables attribute of a field: vargrid, 
+ varname, varunit, vardate, varexp , valmask and time.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/rotation.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/rotation.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/rotation.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Rotate two vectors by a specified amount.
+	    </div>
 
       
@@ -717,29 +719,5 @@
 	
 	  <div class="comments">
- NAME:
-
-           ROTATION
- 
- PURPOSE:
- 
-	    Rotate two vectors by a specified amount.
-	    
- CALLING SEQUENCE:
- 
-	    ROTATION,X,Y,DEG,NX,NY
-	    
- INPUTS:
-
-           X,Y   :orignal data point pairs
-           
-	    DEG   :degrees to rotate.
-	    
- OUTPUTS:
- 
-	    Nx, Ny = rotated point pairs.
-	    
- MODIFICATION HISTORY:
- 
-	    Jeff Bennett, U of Colorado</div>
+</div>
 
 	  
@@ -750,8 +728,8 @@
 	    
 	    <h4 id="_ROTATION_param_X">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -760,11 +738,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ orignal data point pairs
+</div>
 	    
 	    <h4 id="_ROTATION_param_Y">Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -773,11 +753,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ orignal data point pairs
+           </div>
 	    
 	    <h4 id="_ROTATION_param_DEG">DEG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -786,9 +768,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ degrees to rotate.
+	    </div>
 	    
 	    <h4 id="_ROTATION_param_NX">NX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -799,9 +783,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ rotated point pairs.
+ </div>
 	    
 	    <h4 id="_ROTATION_param_NY">NY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -812,5 +798,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ rotated point pairs.
+	    </div>
 	    
 
@@ -820,8 +808,12 @@
 
 	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ Jeff Bennett, U of Colorado
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/saveatt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/saveatt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/saveatt.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to put in a structure attributes which can be associated with a variable.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_saveatt">
 
-	  <h2><a class="top" href="#container">top</a>saveatt </h2>
+	  <h2><a class="top" href="#container">top</a>saveatt <span class="categories">
+ utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,19 +721,9 @@
 	
 	  <div class="comments">
- NAME:saveatt
-
- PURPOSE:permet de mettre dans une structure les attributs qui peuvent
- etre associes a une variable.
-
- CATEGORY:allegement d''ecriture
-
- CALLING SEQUENCE:res=saveatt()
-
- OUTPUTS:
-    une stucture de la forme:
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ A structure of the form:
          {n:varname,g:vargrid,d:vardate,e:varexp,u:varunit,m:valmask,l:niveau}
-
- COMMON BLOCKS:
-	common.pro
 </div>
 
@@ -739,10 +733,10 @@
 
 	  
-
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
@@ -753,8 +747,10 @@
 	  
 	
-	  
-	  
-	  
-	  
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/terminedessin.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/terminedessin.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/terminedessin.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ End the drawing if needed when it is a postscript.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_terminedessin">
 
-	  <h2><a class="top" href="#container">top</a>terminedessin </h2>
+	  <h2><a class="top" href="#container">top</a>terminedessin <span class="categories">
+ utilities, graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,26 +721,4 @@
 	
 	  <div class="comments">
- NAME:terminedessin
-
- PURPOSE:termnine le dessin si besion est qd c''est un postcsript.
-
- CATEGORY:mise en forme et allegement de l''ecrityre de plt, pltz et pltt
-
- CALLING SEQUENCE:terminedessin
-
- INPUTS:
-
- KEYWORD PARAMETERS:POST et SMALL cf l''aide de plt
-
- OUTPUTS:
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -760,5 +742,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ Make a postscript. Only works if we made one drawing on the page.
+ If we make several drawing, use @ps.
+</div>
 	    
 	    <h4 id="_terminedessin_keyword_SMALL">SMALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -773,5 +758,18 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ Vector composed of 3 or 4 elements, applyed to make a drawing on a 
+ small portion of a page or screen. It delimit the zone where the drawing will be done.
+     If there is 4 elements:
+ then is constituated of coordinates (expressed in cm located from the up and 
+ left corner of the page or the window (in portrait like in lanscape)) of the bottom 
+ and left corner and of the up and right corner of the drawing zone.
+     If there is 3 elements:
+ in this case, we divide the page or the screen in small[0] columns and in small[1] lines 
+ the drawing made in the box numbered small[2]. The numerotation starting up and left by 
+ the number 1 and then, following the writing direction.
+ By default, we make the largest drawing we can do, conserving the aspect rapport 
+ (exept when REMPLI is activated).
+</div>
 	    
 	    <h4 id="_terminedessin_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -786,25 +784,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ Used to pass your keywords
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/directory-overview.html	(revision 142)
@@ -699,8 +699,8 @@
       
 	<dt><a href="label.html?format=raw">label.pro</a></dt>
-	<dd></dd>
+	<dd>  Allows to choose the type of the label we want to use at the time of a contour.</dd>
       
 	<dt><a href="label_date.html?format=raw">label_date.pro</a></dt>
-	<dd></dd>
+	<dd>  This function labels axes with dates and times.</dd>
       
 	<dt><a href="label_gmt.html?format=raw">label_gmt.pro</a></dt>
@@ -708,8 +708,8 @@
       
 	<dt><a href="lataxe.html?format=raw">lataxe.pro</a></dt>
-	<dd></dd>
+	<dd>  function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in latitude.</dd>
       
 	<dt><a href="lonaxe.html?format=raw">lonaxe.pro</a></dt>
-	<dd></dd>
+	<dd>  function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in longitude.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Allows to choose the type of the label we want to use at the time of a contour.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_label">
 
-	  <h2><a class="top" href="#container">top</a>label </h2>
+	  <h2><a class="top" href="#container">top</a>label <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,42 +721,4 @@
 	
 	  <div class="comments">
- NAME:label
-
- PURPOSE:permet de choisir le stype de label que l'on veut utiliser
- lors d'un contour
-
- CATEGORY:graphique
-
- CALLING SEQUENCE:pro label,cas,min,max,ncontour,level_z2d
-
- INPUTS:
-	cas=numero du type de label que l'on veut tracer
-	min et max = valeures min et max entre lesquelles on veut faire
- des contours
-
- KEYWORD PARAMETERS:
-
-	INTERVALLE: valeur d'un intervalle entre deux isolignes. par defaut
- est calcule pour tracer 20 isolighnes. Dans tous les cas ce not cle
- doit etre retourne pour pouvoir avoir une belle legende. Si les
- niveaux ne comportent pas d''intevalle regulier, le mettre a -1
-
-	NLEVEL: nombre de contours a dessiner. par defaut =20. actif si
- LABEL=0 ou nest pas specifie.
-
- OUTPUTS:
-	ncontour=nombre de contour a tracer
-	level_z2d=vecteur contenant les valeurs des contours que l'on trace
-       colnumb: un vecteur contenant le numero des couleurs qui serviront a
-               remplir entre les contours)
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -764,8 +730,8 @@
 	    
 	    <h4 id="_label_param_cas">cas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -774,11 +740,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Number of the type of the label we want to trace
+	</div>
 	    
 	    <h4 id="_label_param_min">min&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -787,11 +755,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ Smallest value for the drawing of the contour.
+</div>
 	    
 	    <h4 id="_label_param_max">max&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -800,9 +770,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Biggest value for the drawing of the contour.
+</div>
 	    
 	    <h4 id="_label_param_ncontour">ncontour&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -813,9 +785,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Number of contour to be drawn.
+ </div>
 	    
 	    <h4 id="_label_param_level_z2d">level_z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -826,9 +800,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Vector containing values of contours we draw.
+</div>
 	    
 	    <h4 id="_label_param_colnumb">colnumb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -839,5 +815,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Vector containing the number of colors which will serve to fill contours.
+</div>
 	    
 
@@ -859,51 +837,61 @@
 	    </h4>
 	
+	    <div class="comments">
+ Number of contour to be drawn. By default =20. Active if LABEL=0 or is not specified.
+</div>
+	    
+	    <h4 id="_label_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Value of an interval betwenn two isolines. By default, it is calculated to 
+ draw 20 isolines. In all cases, this keyword must be returnedt have a nice
+ caption. If levels do not contain regular intervals, put it at -1.
+</div>
+	    
+	    <h4 id="_label_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_label_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_label_keyword_STRICTFILL">STRICTFILL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat"> 
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"> </div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label_date.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label_date.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/label_date.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ This function labels axes with dates and times.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_LABEL_DATE">
 
-	  <h2><a class="top" href="#container">top</a>LABEL_DATE </h2>
+	  <h2><a class="top" href="#container">top</a>LABEL_DATE <span class="categories">
+ Plotting.
+</span></h2>
 	
 	  <p class="header">
@@ -717,77 +721,151 @@
 	
 	  <div class="comments">
- NAME:
-	LABEL_DATE
-
- PURPOSE:
-	This function labels axes with dates and times.
-
- CATEGORY:
-	Plotting.
-
- CALLING SEQUENCE:
-	To set up:
-		dummy = LABEL_DATE(DATE_FORMAT='string')
-	To use:
-		PLOT, x, y, XTICKFORMAT='LABEL_DATE'
-
- INPUTS:
-	No explicit user defined inputs. When called from the plotting
-	routines, the input parameters are (Axis, Index, Value)
-
- KEYWORD PARAMETERS:
-	DATE_FORMAT: a format string which may contain the following:
-		       %M for month (3 character abbr)
-		       %N for month (2 digit abbr)
-		       %D for day of month,
-		       %Y for 4 digit year.
-		       %Z for last two digits of year.
-	     For time:
-		       %H for Hours, 2 digits.
-		       %I for mInutes, 2 digits.
-		       %S for Seconds, 2 digits.
-		       %% is %.
-		     Other characters are passed directly thru.
-		     For example, '%M %D, %Y' prints DEC 11, 1993
-		       '%M %2Y' yields DEC 93
-		       '%D-%M' yields 11-DEC
-		       '%D/%N/%Y' yields 11/12/1993
-		       '%M!C%Y' yields DEC on the top line, 1993 on
-		       the bottom (!C is the new line graphic command).
-
-	MONTHS:      The names of the months, a twelve element string array.
-		     If omitted, use Jan, Feb, ..., Dec.
-
-	OFFSET:	     An optional starting offset of the plot.
-		Unfortunately, single precision floating point is not accurate
-		enough to properly represent Julian times.  This offset, which
-		may be double precision, contains an offset that is added to
-		all x values, before conversion to Julian date and time.
-
- OUTPUTS:
-	The date string to be plotted.
-
- COMMON BLOCKS:
-	LABEL_DATE_COM.
-
- RESTRICTIONS:
-	Only one date axis may be simultaneously active.
-
- PROCEDURE:
-	Straightforward.
-
-       For an alternative way to label a plot axis with dates, refer to
-       the C() format code accepted within format strings (applicable via
-       the [XYZ]TICKFORMAT keywords).  This new format code was 
-       introduced in IDL 5.2.
-
- EXAMPLE:
-	For example, to plot from Jan 1, 1993, to July 12, 1994:
-	  Start_date = julday(1, 1, 1993)
-	  End_date = julday(7, 12, 1994)
-	  Dummy = LABEL_DATE(DATE_FORMAT='%N/%D')  ;Simple mm/dd
-	  x = findgen(end_date+1 - start_date) + start_date ;Time axis
-	  PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
-	  (Plot with X axis style set to exact.)
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_LABEL_DATE_param_axis">axis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+</div>
+	    
+	    <h4 id="_LABEL_DATE_param_index">index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+</div>
+	    
+	    <h4 id="_LABEL_DATE_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_LABEL_DATE_keyword_DATE_FORMAT">DATE_FORMAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ a format string which may contain the following:
+ %M for month (3 character abbr)
+ %N for month (2 digit abbr)
+ %D for day of month,
+ %Y for 4 digit year.
+ %Z for last two digits of year.
+  For time:
+ %H for Hours, 2 digits.
+ %I for mInutes, 2 digits.
+ %S for Seconds, 2 digits.
+ %% is %.
+  Other characters are passed directly thru.
+ For example, '%M %D, %Y' prints DEC 11, 1993
+ '%M %2Y' yields DEC 93
+ '%D-%M' yields 11-DEC
+ '%D/%N/%Y' yields 11/12/1993
+ '%M!C%Y' yields DEC on the top line, 1993 on
+ the bottom (!C is the new line graphic command).
+</div>
+	    
+	    <h4 id="_LABEL_DATE_keyword_MONTHS">MONTHS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The names of the months, a twelve element string array.
+ If omitted, use Jan, Feb, ..., Dec.
+</div>
+	    
+	    <h4 id="_LABEL_DATE_keyword_OFFSET">OFFSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ An optional starting offset of the plot.
+ Unfortunately, single precision floating point is not accurate
+ enough to properly represent Julian times.  This offset, which
+ may be double precision, contains an offset that is added to
+ all x values, before conversion to Julian date and time.
+</div>
+	    
+	    <h4 id="_LABEL_DATE_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
+ For example, to plot from Jan 1, 1993, to July 12, 1994:
+ Start_date = julday(1, 1, 1993)
+ End_date = julday(7, 12, 1994)
+ Dummy = LABEL_DATE(DATE_FORMAT='%N/%D')  ;Simple mm/dd
+ x = findgen(end_date+1 - start_date) + start_date ;Time axis
+ PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
+ (Plot with X axis style set to exact.)
 	
  Example with times:
@@ -803,132 +881,33 @@
 	x = findgen(20) * (End_time - Start_time) / 19 + start_time ;Time axis
 	PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
-
- MODIFICATION HISTORY:
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: label_date.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
 	DMS, RSI.	April, 1993.	Written.
-	DMS, RSI.	March, 1997.	Added Time format.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_LABEL_DATE_param_axis">axis&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_LABEL_DATE_param_index">index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_LABEL_DATE_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_LABEL_DATE_keyword_DATE_FORMAT">DATE_FORMAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_LABEL_DATE_keyword_MONTHS">MONTHS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_LABEL_DATE_keyword_OFFSET">OFFSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_LABEL_DATE_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	DMS, RSI.	March, 1997.	Added Time format.
+
+ Copyright (c) 1993-1998, Research Systems, Inc.  All rights reserved.
+	Unauthorized reproduction prohibited.
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Only one date axis may be simultaneously active.
+</div>
 	
 	  <h3>Other attributes</h3>
 	  
 	  
-	  
+	  <h4>Uses routines</h4><div class="preformat">
+ LABEL_DATE_COM.
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lataxe.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lataxe.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lataxe.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in latitude.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_lataxe">
 
-	  <h2><a class="top" href="#container">top</a>lataxe </h2>
+	  <h2><a class="top" href="#container">top</a>lataxe <span class="categories">
+ graphic
+ </span></h2>
 	
 	  <p class="header">
@@ -717,31 +721,9 @@
 	
 	  <div class="comments">
- NAME:LATAXE
-
- PURPOSE:fonction appelee par [XYZ]TICKFORMAT (cf l'help pour voir
-         comment l'utiliser) pour labeller les axes en latitude.
-
- CATEGORY:graphe
-
- CALLING SEQUENCE:[XYZ]TICKFORMAT='lataxe'
-
- INPUTS:fournis (et imposes) automatiquement par IDL: axis, index, value:
-	Axis is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
-	Index is the tick mark index which starts at 0.
-	Value is the default tick mark value (a floating-point number).
- KEYWORD PARAMETERS:
-
- OUTPUTS:un string, utilise automatiquement pour labeller
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
-	  
+	  <h3>Return value</h3><div class="preformat">
+ A string, used automatically to label
+</div>
 
 	  
@@ -760,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ It is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
+</div>
 	    
 	    <h4 id="_lataxe_param_index">index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -773,5 +757,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is the tick mark index which starts at 0.
+	</div>
 	    
 	    <h4 id="_lataxe_param_value">value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -786,5 +772,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is the default tick mark value (a floating-point number).
+</div>
 	    
 
@@ -794,8 +782,10 @@
 
 	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lonaxe.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lonaxe.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/LABEL/lonaxe.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in longitude.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_lonaxe">
 
-	  <h2><a class="top" href="#container">top</a>lonaxe </h2>
+	  <h2><a class="top" href="#container">top</a>lonaxe <span class="categories">
+ graphic
+ </span></h2>
 	
 	  <p class="header">
@@ -717,31 +721,9 @@
 	
 	  <div class="comments">
- NAME:LONAXE
-
- PURPOSE:fonction appelee par [XYZ]TICKFORMAT (cf l'help pour voir
-         comment l'utiliser) pour labeller les axes en longitude.
-
- CATEGORY:graphe
-
- CALLING SEQUENCE:[XYZ]TICKFORMAT='lonaxe'
-
- INPUTS:fournis (et imposes) automatiquement par IDL: axis, index, value:
-	Axis is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
-	Index is the tick mark index which starts at 0.
-	Value is the default tick mark value (a floating-point number).
- KEYWORD PARAMETERS:
-
- OUTPUTS:un string, utilise automatiquement pour labeller
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
-	  
+	  <h3>Return value</h3><div class="preformat">
+ A string, used automatically to label
+</div>
 
 	  
@@ -760,5 +742,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> 
+ It is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
+</div>
 	    
 	    <h4 id="_lonaxe_param_index">index&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -773,5 +757,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is the tick mark index which starts at 0.
+	</div>
 	    
 	    <h4 id="_lonaxe_param_value">value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -786,5 +772,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is the default tick mark value (a floating-point number).
+</div>
 	    
 
@@ -794,8 +782,10 @@
 
 	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Overprint vectors in a field traced by plt.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_ajoutvect">
 
-	  <h2><a class="top" href="#container">top</a>ajoutvect </h2>
+	  <h2><a class="top" href="#container">top</a>ajoutvect <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,45 +721,4 @@
 	
 	  <div class="comments">
- NAME:ajoutvect
-
- PURPOSE:surimprimme des vecteur sur un champ tarce par plt
-
- CATEGORY:grafique
-
- CALLING SEQUENCE:ajoutvect,vecteur 
-
- INPUTS:
-	vecteur: une structure a 2 elements contenant les 2 matrices U
-	et V des valeurs de la composante zonale et meridienne du
-	champ de vecteurs a tracer.
-       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
-
- KEYWORD PARAMETERS:
-
-	/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]
-
-	VECTMIN=norme minimun des vecteurs a tracer 
-
-	VECTMAX=norme minimun des vecteurs a tracer 
-
- OUTPUTS:
-
- COMMON BLOCKS:
-	common.pro		
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -767,8 +730,8 @@
 	    
 	    <h4 id="_ajoutvect_param_vecteur">vecteur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -777,5 +740,6 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments"> goes well too.
+</div>
 	    
 	    <h4 id="_ajoutvect_param_vectlegende">vectlegende&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -810,11 +774,18 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ It is a scalar n or an array with 2 elements [n1,n2].
+ In the first case, we will trace a vector on n following x and y.
+ In the second case, we will trace a vector on n1 following x and a 
+ vector n2 following n2
+   Comments: To trace all vectors following y and one vector on two 
+ following x, put unvectsur=[2,1]
+</div>
 	    
 	    <h4 id="_ajoutvect_keyword_VECTMIN">VECTMIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
+	      <span class="attr">in</span>
+	      
+	      
+  	      <span class="attr">required</span>
 	      
 	      
@@ -823,11 +794,13 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Minimum norme of vectors to be traced 
+</div>
 	    
 	    <h4 id="_ajoutvect_keyword_VECTMAX">VECTMAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
+	      <span class="attr">in</span>
+	      
+	      
+  	      <span class="attr">required</span>
 	      
 	      
@@ -836,5 +809,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Maximum norme of vectors to be traced 
+</div>
 	    
 	    <h4 id="_ajoutvect_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -849,25 +824,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Used to pass your keywords
+ </div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$ 
+ </div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro		
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/directory-overview.html	(revision 142)
@@ -699,11 +699,11 @@
       
 	<dt><a href="ajoutvect.html?format=raw">ajoutvect.pro</a></dt>
-	<dd></dd>
+	<dd>  Overprint vectors in a field traced by plt.</dd>
       
 	<dt><a href="vecteur.html?format=raw">vecteur.pro</a></dt>
-	<dd></dd>
+	<dd>  Trace vectors (even if they are on a deformed grid) on any projection.</dd>
       
 	<dt><a href="velovect.html?format=raw">velovect.pro</a></dt>
-	<dd></dd>
+	<dd>  Produce a two-dimensional velocity field plot.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/vecteur.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/vecteur.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/vecteur.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Trace vectors (even if they are on a deformed grid) on any projection.
+ In this way, all vectors have a comparable norme on the drawing (to be
+ clear, a vector which measure 1 cm measure it, no matter the projection
+ and is position on the sphere).
+</div>
 
       
@@ -711,5 +716,5 @@
 	  
 	  <dt><p><a href="#_cv_cm2normal"><span class="result">result = </span>cv_cm2normal(<span class="result">angle</span>)</a></p><dt>
-	  <dd>  NAME:vecteur   PURPOSE: trace des vecteurs (meme situees sur une grille tordue) sur  n''importe quelle projection, de telle sorte que tous les vecteurs  aient une norme comparable sur le dessin (en clair, un vecteur qui  doit faire 1cm le fait quelque soit la projection et sa position sur  la sphere)    CATEGORY:trace de vecteur   CALLING SEQUENCE:vecteur, composanteu, composantev, normevecteur, indice2d, reduitindice2d    INPUTS: COMPOSANTEU et COMPOSANTEV: ce sont les composantes des  vecteurs a tracer.</dd>	
+	  <dd></dd>	
 	  
 	  <dt><p><a href="#_normalise">normalise<span class="result">, u, v, w</span></a></p><dt>
@@ -717,5 +722,5 @@
 	  
 	  <dt><p><a href="#_vecteur">vecteur<span class="result">, composanteu, composantev, normevecteur, indice2d, reduitindice2d</span>, CMREF=<span class="result">CMREF</span>, MISSING=<span class="result">MISSING</span>, NORMEREF=<span class="result">NORMEREF</span>, VECTCOLOR=<span class="result">VECTCOLOR</span>, VECTTHICK=<span class="result">VECTTHICK</span>, VECTREFPOS=<span class="result">VECTREFPOS</span>, VECTREFFORMAT=<span class="result">VECTREFFORMAT</span>, NOVECTREF=<span class="result">NOVECTREF</span>, _extra=<span class="result">_extra</span></a></p><dt>
-	  <dd></dd>	
+	  <dd> </dd>	
 	  	
 	</dl>
@@ -733,63 +738,5 @@
 	    <span class="result">result = </span>cv_cm2normal(<span class="result"><a href="#_cv_cm2normal_param_angle">angle</a></span>)</p>
 	
-	  <div class="comments">
- NAME:vecteur
-
- PURPOSE: trace des vecteurs (meme situees sur une grille tordue) sur
- n''importe quelle projection, de telle sorte que tous les vecteurs
- aient une norme comparable sur le dessin (en clair, un vecteur qui
- doit faire 1cm le fait quelque soit la projection et sa position sur
- la sphere) 
-
- CATEGORY:trace de vecteur
-
- CALLING SEQUENCE:vecteur, composanteu, composantev, normevecteur, indice2d, reduitindice2d
- 
- INPUTS: COMPOSANTEU et COMPOSANTEV: ce sont les composantes des
- vecteurs a tracer. Ces tableaux 2d ont la meme dimension que
- reduitindice2d (cf apres).
-       INDICE2D: indice permettant de passer d''un tableau jpi,jpj au
-       zoom surlequel on fait le dessin.
-       REDUITINDICE2D: indice permettant de passer d''un tableau
-       definit par indice2d au tableau pourlequel on a reelement des
-       vecteurs a tracer (en clair: c''est par ex qd on ne trace par exemple
-       que un vecteur sur 2)
-
- KEYWORD PARAMETERS:
-
-      CMREF: la longeur en cm sur le papier que diot faire la fleche
-      de norme normeref. par defaut ajuste au dessin et compris entre
-      .5 et 1.5 cm
-
-      MISSING: la valeur d''une missing value. ne pas utilisder ce
-      mot cle. fixe a 1e5 par ajoutvect.pro
-      
-      NORMEREF: la norme de la fleche de reference. par defaut on
-      essaie de faire qqch qui colle pas trop mal!
-
-      VECTCOLOR: la couleur de la fleche. Par defaut noir (couleur 0)
-
-      VECTTHICK; l''epaissuer de la fleche. par defaut 1.
-
-      VECTREFPOS: vecteur de 2 elements specifiant la position en
-      coordonnees DATA du debut du vecteur de reference. Par defaut
-      en bas a droite du dessin.
-
-      VECTREFFORMAT: format a utiliser pour specifier la norme du
-      vecteur de reference.
-
-      /NOVECTREF: pour supprimer l'affichage du vecteur de reference.
-
- OUTPUTS:
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-
- MODIFICATION HISTORY:</div>
+	  <div class="comments"></div>
 
 	  
@@ -930,81 +877,97 @@
 	<div class="routine_details" id="_vecteur">
 
-	  <h2><a class="top" href="#container">top</a>vecteur </h2>
+	  <h2><a class="top" href="#container">top</a>vecteur <span class="categories"> 
+ graphic
+ </span></h2>
 	
 	  <p class="header">
 	    vecteur<span class="result">, <a href="#_vecteur_param_composanteu">composanteu</a>, <a href="#_vecteur_param_composantev">composantev</a>, <a href="#_vecteur_param_normevecteur">normevecteur</a>, <a href="#_vecteur_param_indice2d">indice2d</a>, <a href="#_vecteur_param_reduitindice2d">reduitindice2d</a></span>, <a href="#_vecteur_keyword_CMREF">CMREF</a>=<span class="result">CMREF</span>, <a href="#_vecteur_keyword_MISSING">MISSING</a>=<span class="result">MISSING</span>, <a href="#_vecteur_keyword_NORMEREF">NORMEREF</a>=<span class="result">NORMEREF</span>, <a href="#_vecteur_keyword_VECTCOLOR">VECTCOLOR</a>=<span class="result">VECTCOLOR</span>, <a href="#_vecteur_keyword_VECTTHICK">VECTTHICK</a>=<span class="result">VECTTHICK</span>, <a href="#_vecteur_keyword_VECTREFPOS">VECTREFPOS</a>=<span class="result">VECTREFPOS</span>, <a href="#_vecteur_keyword_VECTREFFORMAT">VECTREFFORMAT</a>=<span class="result">VECTREFFORMAT</span>, <a href="#_vecteur_keyword_NOVECTREF">NOVECTREF</a>=<span class="result">NOVECTREF</span>, <a href="#_vecteur_keyword__extra">_extra</a>=<span class="result">_extra</span></p>
 	
+	  <div class="comments">
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_vecteur_param_composanteu">composanteu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is the u component of the vector to be traced. This 2d array has the 
+ same dimension that reduitindice2d (see further)
+ </div>
+	    
+	    <h4 id="_vecteur_param_composantev">composantev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is the v component of the vector to be traced. This 2d array has the 
+ same dimension that reduitindice2d (see further)
+ </div>
+	    
+	    <h4 id="_vecteur_param_normevecteur">normevecteur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	  <div class="comments"></div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_vecteur_param_composanteu">composanteu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_vecteur_param_composantev">composantev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_vecteur_param_normevecteur">normevecteur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
 	    
 	    <h4 id="_vecteur_param_indice2d">indice2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It in an index allowing to to pass from an jpi or jpj array to the zoom 
+ on which we do the drawing
+ </div>
 	    
 	    <h4 id="_vecteur_param_reduitindice2d">reduitindice2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ It is an index allowing to pass from an array defined by indice2d to the 
+ array for which we really have vectors to be traced (to be clear, it is 
+ for example when we trace only one vector on two).
+</div>
 	    
 
@@ -1026,5 +989,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ The lenth in cm that must measure the arrow normed normeref. By default, 
+ it is ajusted t othe drawing and included between .5 and 1.5 cm.
+</div>
 	    
 	    <h4 id="_vecteur_keyword_MISSING">MISSING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1039,5 +1005,8 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ The value of a missing value. Do not use this keyword. Fixed at 1e5 by 
+ ajoutvect.pro
+      </div>
 	    
 	    <h4 id="_vecteur_keyword_NORMEREF">NORMEREF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1052,5 +1021,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ The norme of the reference arrow.
+</div>
 	    
 	    <h4 id="_vecteur_keyword_VECTCOLOR">VECTCOLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1065,5 +1036,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ The color of the arrow. Black by default (color 0)
+ </div>
 	    
 	    <h4 id="_vecteur_keyword_VECTTHICK">VECTTHICK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1078,5 +1051,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ The thick of the arrow. 1 by default 
+</div>
 	    
 	    <h4 id="_vecteur_keyword_VECTREFPOS">VECTREFPOS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1091,5 +1066,9 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Vector composed of 2 elements specifing the position on DATA coordinates 
+ from de begining of the reference vector. By default at the right bottom 
+ of the drawing.
+</div>
 	    
 	    <h4 id="_vecteur_keyword_VECTREFFORMAT">VECTREFFORMAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1104,5 +1083,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ The format to be used to specify the norme of the reference vector.
+</div>
 	    
 	    <h4 id="_vecteur_keyword_NOVECTREF">NOVECTREF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1117,5 +1098,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ To delete the display of the reference vector.
+ </div>
 	    
 	    <h4 id="_vecteur_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -1130,25 +1113,31 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ Used to pass your keywords 
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$ 
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat"> 
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Produce a two-dimensional velocity field plot.
+
+ A directed arrow is drawn at each point showing the direction and 
+ magnitude of the field.
+               </div>
 
       
@@ -711,85 +716,232 @@
 	<div class="routine_details" id="_VELOVECT">
 
-	  <h2><a class="top" href="#container">top</a>VELOVECT </h2>
+	  <h2><a class="top" href="#container">top</a>VELOVECT <span class="categories">
+ Plotting, two-dimensional.
+
+</span></h2>
 	
 	  <p class="header">
-	    VELOVECT<span class="result">, <a href="#_VELOVECT_param_U">U</a>, <a href="#_VELOVECT_param_V">V</a>, <a href="#_VELOVECT_param_X">X</a>, <a href="#_VELOVECT_param_Y">Y</a></span>, <a href="#_VELOVECT_keyword_Missing">Missing</a>=<span class="result">Missing</span>, <a href="#_VELOVECT_keyword_Length">Length</a>=<span class="result">Length</span>, <a href="#_VELOVECT_keyword_Dots">Dots</a>=<span class="result">Dots</span>, <a href="#_VELOVECT_keyword_Color">Color</a>=<span class="result">Color</span>, <a href="#_VELOVECT_keyword_CLIP">CLIP</a>=<span class="result">CLIP</span>, <a href="#_VELOVECT_keyword_NOCLIP">NOCLIP</a>=<span class="result">NOCLIP</span>, <a href="#_VELOVECT_keyword_OVERPLOT">OVERPLOT</a>=<span class="result">OVERPLOT</span>, <a href="#_VELOVECT_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
+	    VELOVECT<span class="result">, <a href="#_VELOVECT_param_U">U</a>, <a href="#_VELOVECT_param_V">V</a>[, <a href="#_VELOVECT_param_X">X</a>][, <a href="#_VELOVECT_param_Y">Y</a>]</span>, <a href="#_VELOVECT_keyword_Missing">Missing</a>=<span class="result">Missing</span>, <a href="#_VELOVECT_keyword_Length">Length</a>=<span class="result">Length</span>, <a href="#_VELOVECT_keyword_Dots">Dots</a>=<span class="result">Dots</span>, <a href="#_VELOVECT_keyword_Color">Color</a>=<span class="result">Color</span>, <a href="#_VELOVECT_keyword_CLIP">CLIP</a>=<span class="result">CLIP</span>, <a href="#_VELOVECT_keyword_NOCLIP">NOCLIP</a>=<span class="result">NOCLIP</span>, <a href="#_VELOVECT_keyword_OVERPLOT">OVERPLOT</a>=<span class="result">OVERPLOT</span>, <a href="#_VELOVECT_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>
 	
 	  <div class="comments"> 
- NAME:
-	VELOVECT
-
- PURPOSE:
-	Produce a two-dimensional velocity field plot.
-
-	A directed arrow is drawn at each point showing the direction and 
-	magnitude of the field.
-               
- CATEGORY:
-	Plotting, two-dimensional.
-
- CALLING SEQUENCE:
-	VELOVECT, U, V [, X, Y]
-
- INPUTS:
-	U:	The X component of the two-dimensional field.  
-		U must be a two-dimensional array.
-
-	V:	The Y component of the two dimensional field.  Y must have
-		the same dimensions as X.  The vector at point [i,j] has a 
-		magnitude of:
-
-			(U[i,j]^2 + V[i,j]^2)^0.5
-
-		and a direction of:
-
-			ATAN2(V[i,j],U[i,j]).
-
- OPTIONAL INPUT PARAMETERS:
- 	X:	Optional abcissae values.  X must be a vector with a length 
-		equal to the first dimension of U and V.
-
-	Y:	Optional ordinate values.  Y must be a vector with a length
-		equal to the first dimension of U and V.
-
- KEYWORD INPUT PARAMETERS:
-	COLOR:	The color index used for the plot.
-
-	DOTS:	Set this keyword to 1 to place a dot at each missing point. 
-		Set this keyword to 0 or omit it to draw nothing for missing
-		points.  Has effect only if MISSING is specified.
-
-	LENGTH:	Length factor.  The default of 1.0 makes the longest (U,V)
-		vector the length of a cell.
-
-       MISSING: Missing data value.  Vectors with a LENGTH greater
-		than MISSING are ignored.
-
-       OVERPLOT: Set this keyword to make VELOVECT "overplot".  That is, the
-               current graphics screen is not erased, no axes are drawn, and
-               the previously established scaling remains in effect.
-
-
-	Note:   All other keywords are passed directly to the PLOT procedure
-		and may be used to set option such as TITLE, POSITION, 
-		NOERASE, etc.
- OUTPUTS:
-	None.
-
- COMMON BLOCKS:
-	None.
-
- SIDE EFFECTS:
-	Plotting on the selected device is performed.  System
-	variables concerning plotting are changed.
-
- RESTRICTIONS:
-	None.
-
- PROCEDURE:
-	Straightforward.  Unrecognized keywords are passed to the PLOT
-	procedure.  
-
- MODIFICATION HISTORY:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_VELOVECT_param_U">U&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The X component of the two-dimensional field.  
+ U must be a two-dimensional array.
+</div>
+	    
+	    <h4 id="_VELOVECT_param_V">V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The Y component of the two dimensional field.  Y must have
+ the same dimensions as X.  The vector at point [i,j] has a 
+ magnitude of:
+
+	(U[i,j]^2 + V[i,j]^2)^0.5
+
+ and a direction of:
+
+	ATAN2(V[i,j],U[i,j]).
+</div>
+	    
+	    <h4 id="_VELOVECT_param_X">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Optional abcissae values.  X must be a vector with a length 
+ equal to the first dimension of U and V.
+</div>
+	    
+	    <h4 id="_VELOVECT_param_Y">Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Optional ordinate values.  Y must be a vector with a length
+ equal to the first dimension of U and V.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_VELOVECT_keyword_Missing">Missing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+  Missing data value.  Vectors with a LENGTH greater
+ than MISSING are ignored.
+</div>
+	    
+	    <h4 id="_VELOVECT_keyword_Length">Length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Length factor.  The default of 1.0 makes the longest (U,V)
+ vector the length of a cell.
+</div>
+	    
+	    <h4 id="_VELOVECT_keyword_Dots">Dots&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Set this keyword to 1 to place a dot at each missing point. 
+ Set this keyword to 0 or omit it to draw nothing for missing
+ points.  Has effect only if MISSING is specified.
+</div>
+	    
+	    <h4 id="_VELOVECT_keyword_Color">Color&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The color index used for the plot.
+</div>
+	    
+	    <h4 id="_VELOVECT_keyword_CLIP">CLIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ </div>
+	    
+	    <h4 id="_VELOVECT_keyword_NOCLIP">NOCLIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	    <h4 id="_VELOVECT_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Set this keyword to make VELOVECT "overplot".  That is, the
+ current graphics screen is not erased, no axes are drawn, and
+ the previously established scaling remains in effect.
+ </div>
+	    
+	    <h4 id="_VELOVECT_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used to pass your keywords.
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: velovect.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
 	DMS, RSI, Oct., 1983.
 	For Sun, DMS, RSI, April, 1989.
@@ -806,189 +958,22 @@
        September, 1996, GGS. Changed denominator of x_step and y_step vars. 
        February, 1998, DLD.  Add support for CLIP and NO_CLIP keywords.
-       June, 1998, DLD.  Add support for OVERPLOT keyword.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_VELOVECT_param_U">U&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_param_V">V&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_param_X">X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_param_Y">Y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_VELOVECT_keyword_Missing">Missing&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_Length">Length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_Dots">Dots&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_Color">Color&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_CLIP">CLIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_NOCLIP">NOCLIP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword_OVERPLOT">OVERPLOT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_VELOVECT_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+       June, 1998, DLD.  Add support for OVERPLOT keyword.
+
+ Copyright (c) 1983-1998, Research Systems, Inc.  All rights reserved.
+	Unauthorized reproduction prohibited.
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Plotting on the selected device is performed.  System
+ variables concerning plotting are changed.
+ Note:   All other keywords are passed directly to the PLOT procedure
+	and may be used to set option such as TITLE, POSITION, 
+	NOERASE, etc.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/axe.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/axe.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/axe.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Manage axes for the different drawings created by plt,
+ pltz and pltt
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_axe">
 
-	  <h2><a class="top" href="#container">top</a>axe </h2>
+	  <h2><a class="top" href="#container">top</a>axe <span class="categories"> 
+ Graphic environment
+</span></h2>
 	
 	  <p class="header">
@@ -717,41 +722,4 @@
 	
 	  <div class="comments">
- NAME:axe
-
- PURPOSE:gerre les axes pour les differents dessins crees par plt,
- pltz et pltt
-
- CATEGORY:environnement graphique
-
- CALLING SEQUENCE:axe,coupe[,tempsmin,tempsmax]
-
- INPUTS:
-        coupe: un string qui designe le type de coupe auquel doit de
-        raporter les axes que l''on cree. par ex: 'xy','xt'...
-
-        tempsmin et tempsmax: ds le cas ou l''on fait une coupe
-        contenant la dimension temps, il faut specifier le debut et
-        la fin de l''axe des temps en jours julien.
-
- KEYWORD PARAMETERS: /SIN active qd on trace en sinus de la latitude
-
-        SEPDATE: string separant les differents constituants de la
-        date. Par defaut c''est un retour a la ligne qd on fait un
-        'yt', 'zt' ou 't' dans les autres cas c''est un blanc. 
-
-        DIGITSYEAR=2 to use %Z format (2 digits) to code years
-        instead of %Y format. See help of label_date for more
-        informations on %Z and %Y.
-
- OUTPUTS:les variables globales d''environnement graphique: !x. et !y.
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS:modifie !x. et !y.
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -773,11 +741,14 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ It is a string designating the type of cut to which the axes we create 
+ must report. For example: 'xy','xt'...
+</div>
 	    
 	    <h4 id="_axe_param_tempsmin">tempsmin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -786,11 +757,14 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ In the case where we do cut containing the time dimension, we have 
+ to specify the beginning of the time's axis in julian days.
+</div>
 	    
 	    <h4 id="_axe_param_tempsmax">tempsmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -799,5 +773,8 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ In the case where we do cut containing the time dimension, we have 
+ to specify the end of the time's axis in julian days.
+</div>
 	    
 
@@ -845,5 +822,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> 
+ activated when we trace in sinus of the latitude
+</div>
 	    
 	    <h4 id="_axe_keyword_SEPDATE">SEPDATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -858,5 +837,9 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ string separating the différent constituents of the date. By default, 
+ it is a return to the linewhen we do a 'yt', 'zt' or a 't'. 
+ In the other cases, it is a blank. 
+</div>
 	    
 	    <h4 id="_axe_keyword_DIGITSYEAR">DIGITSYEAR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -871,5 +854,9 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ =2 to use %Z format (2 digits) to code years
+ instead of %Y format. See help of label_date for more
+ informations on %Z and %Y.
+</div>
 	    
 	    <h4 id="_axe_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -884,25 +871,33 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments"> 
+ used to pass your keywords
+ </div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ It modify !x. and !y.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/directory-overview.html	(revision 142)
@@ -699,20 +699,20 @@
       
 	<dt><a href="axe.html?format=raw">axe.pro</a></dt>
-	<dd></dd>
+	<dd>  Manage axes for the different drawings created by plt,  pltz and pltt </dd>
       
 	<dt><a href="legende.html?format=raw">legende.pro</a></dt>
-	<dd></dd>
+	<dd>  Provide caption </dd>
       
 	<dt><a href="plotsym.html?format=raw">plotsym.pro</a></dt>
-	<dd></dd>
+	<dd>  function to make plotting symbols much easier.</dd>
       
 	<dt><a href="reinitplt.html?format=raw">reinitplt.pro</a></dt>
-	<dd></dd>
+	<dd>  This procedure will reinitialise all or a selection   ofthe system plot variables </dd>
       
 	<dt><a href="style.html?format=raw">style.pro</a></dt>
-	<dd></dd>
+	<dd>   Choose the way to trace isolines.</dd>
       
 	<dt><a href="symbols.html?format=raw">symbols.pro</a></dt>
-	<dd></dd>
+	<dd>  Create custom plotting symbols  </dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/legende.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/legende.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/legende.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Provide caption
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_legende">
 
-	  <h2><a class="top" href="#container">top</a>legende </h2>
+	  <h2><a class="top" href="#container">top</a>legende <span class="categories">
+ graphic, annex
+</span></h2>
 	
 	  <p class="header">
@@ -717,35 +721,4 @@
 	
 	  <div class="comments">
- NAME:legende.pro
-
- PURPOSE:fournit les legendes
-
- CATEGORY:graph annexe
-
- CALLING SEQUENCE:legende, mi,ma,coupe,title,subtitle,xtitle,ytitle
-
- INPUTS:mi et ma: le max et le min du dessin (cf plt.pro et pltz.pro)
-	 coupe=caractere de 2 lettres donnant le type de coupe (par ex:'xz')
-
- KEYWORD PARAMETERS:
-
-	TITRE: chaine de caracteres qui doit etre le titre du dessin. Par
- defaut le titre est le nom vairmer du champ
-
-       ENDPOINTS:utilise qd on fait des coupes veticales en diagonale
-
- OUTPUTS:le titre, sous-titre,titre de x et titre de y
-
- COMMON BLOCKS:
-	common.pro
-
- SIDE EFFECTS: l''utilisation de la variable globale langage permet
- de changer de langue ou de facon de legender facilement. On peut
- facilement personnaliser la chose en rajoutant un cas au case sur la
- valeur de langage.
-
- RESTRICTIONS:
-
- EXAMPLE:
 </div>
 
@@ -757,28 +730,32 @@
 	    
 	    <h4 id="_legende_param_mi">mi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The min of the drawing
+ </div>
 	    
 	    <h4 id="_legende_param_ma">ma&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ The max of the plot
+</div>
 	    
 	    <h4 id="_legende_param_coupe">coupe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -793,5 +770,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Charactere containing two letters giving the type of the cut  (for example: 'xz').
+</div>
 	    
 
@@ -813,7 +792,39 @@
 	    </h4>
 	
+	    <div class="comments"> 
+ 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.
+</div>
+	    
+	    <h4 id="_legende_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Used when we do vertical cuts in diagonal.
+</div>
+	    
+	    <h4 id="_legende_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_ENDPOINTS">ENDPOINTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword_VECTLEGENDE">VECTLEGENDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -828,5 +839,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_DIREC">DIREC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -841,5 +852,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_VECTLEGENDE">VECTLEGENDE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword_TYPE_YZ">TYPE_YZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -854,5 +865,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_INTERVALLE">INTERVALLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword_VARNAME2">VARNAME2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -867,5 +878,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_TYPE_YZ">TYPE_YZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword_NPTS">NPTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -880,5 +891,5 @@
 	    <div class="comments"></div>
 	    
-	    <h4 id="_legende_keyword_VARNAME2">VARNAME2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_legende_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -891,51 +902,33 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_legende_keyword_NPTS">NPTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_legende_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	    <div class="comments">
+ used to pass your keywords
+ </div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ The use of the global variable langage allows to change the language and the caption easily.
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/plotsym.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/plotsym.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/plotsym.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ function to make plotting symbols much easier.
+ </div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_plotsym">
 
-	  <h2><a class="top" href="#container">top</a>plotsym </h2>
+	  <h2><a class="top" href="#container">top</a>plotsym <span class="categories">
+ Graphic.
+</span></h2>
 	
 	  <p class="header">
@@ -717,24 +721,143 @@
 	
 	  <div class="comments">
- NAME:
-  plotsym
- PURPOSE:
-  function to make plotting symbols much easier.
- Usage:
-   plot,x,y,psym=plotsym(/circle,scale=2,/fill)
-
- CATEGORY:
-   Graphics.
-
- Keywords:
-  circle =  circle symbol
-  triangle = triangle symbol
-  diamond = diamond symbold
-  box = box symbol
-  line = line symbol
-  scale = scales the symbol
-  angle = angle the symbol should be rotated
-  _extra = extra keywords for usersym.  These are thick, color and fill
-
+</div>
+
+	  
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_plotsym_keyword_circle">circle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ circle symbol
+ </div>
+	    
+	    <h4 id="_plotsym_keyword_triangle">triangle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ triangle symbol
+ </div>
+	    
+	    <h4 id="_plotsym_keyword_diamond">diamond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ diamond symbold
+ </div>
+	    
+	    <h4 id="_plotsym_keyword_angle">angle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ angle the symbol should be rotated
+ </div>
+	    
+	    <h4 id="_plotsym_keyword_box">box&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ box symbol
+ </div>
+	    
+	    <h4 id="_plotsym_keyword_line">line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ line symbol
+</div>
+	    
+	    <h4 id="_plotsym_keyword_scale">scale&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ scales the symbol
+ </div>
+	    
+	    <h4 id="_plotsym_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ extra keywords for usersym.  These are thick, color and fill
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+ </div>
+	  <h4>History</h4><div class="preformat">
  Written by:
  Ronn Kling
@@ -742,124 +865,4 @@
  7038 Westmoreland Dr.
  Warrenton, VA 20187</div>
-
-	  
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_plotsym_keyword_circle">circle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_triangle">triangle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_diamond">diamond&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_angle">angle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_box">box&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_line">line&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword_scale">scale&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_plotsym_keyword__extra">_extra&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/reinitplt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/reinitplt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/reinitplt.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ This procedure will reinitialise all or a selection 
+ ofthe system plot variables
+</div>
 
       
@@ -711,5 +714,8 @@
 	<div class="routine_details" id="_reinitplt">
 
-	  <h2><a class="top" href="#container">top</a>reinitplt </h2>
+	  <h2><a class="top" href="#container">top</a>reinitplt <span class="categories">
+ plot Utility
+
+ </span></h2>
 	
 	  <p class="header">
@@ -717,35 +723,4 @@
 	
 	  <div class="comments">
- NAME:			REINITPLT
-
- PURPOSE:		This procedure will reinitialise all or a selection 
-			ofthe system plot variables
-
- CATEGORY:		Plot Utility
-
- CALLING SEQUENCE:	clearplt,/all		;clear the !p, !x, !y, !z 
-			clearplt,/x,/z		;clear the !x and !z variables 
-			clearplt,/x		;only clear the !x variable
-			clearplt,/x,/invert	;clear all except the !x 
-
- INPUTS:		
-	KEYWORDS:
-		x,y,z,p	= clear the appropriate variable
-		all	= clear all, this is equivalent to /x,/y,/z,/p
-		invert	= invert the logic. Clear all unselected variables.
-			  Therefore "clearplt,/all,/invert" does nothing.
-
- OUTPUTS:	none
-
- COMMON BLOCKS:
-	common.pro
- SIDE EFFECTS:
-		The sytem plot variables are changed.
-	
- MODIFICATION HISTORY:
-	Written by: Trevor Harris, Physics Dept., University of Adelaide,
-		July, 1990.
-
-       Sebastien Masson 7/5/98
 </div>
 
@@ -769,5 +744,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">	
+ Clear all, this is equivalent to /x,/y,/z,/p
+		</div>
 	    
 	    <h4 id="_reinitplt_keyword_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -782,5 +759,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ clear the appropriate variable
+</div>
 	    
 	    <h4 id="_reinitplt_keyword_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -795,5 +774,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ clear the appropriate variable
+ 	</div>
 	    
 	    <h4 id="_reinitplt_keyword_z">z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -808,5 +789,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">	
+ clear the appropriate variable
+ </div>
 	    
 	    <h4 id="_reinitplt_keyword_p">p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -821,5 +804,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ clear the appropriate variable
+		</div>
 	    
 	    <h4 id="_reinitplt_keyword_invert">invert&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -834,25 +819,39 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ Invert the logic. Clear all unselected variables.
+ Therefore "clearplt,/all,/invert" does nothing.
+</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ Written by: Trevor Harris, Physics Dept., University of Adelaide,
+		July, 1990.
+
+ Sebastien Masson 7/5/98
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ The sytem plot variables are changed.
+	</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat">
+ common.pro
+ </div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/style.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/style.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/style.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ Choose the way to trace isolines.
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_style">
 
-	  <h2><a class="top" href="#container">top</a>style </h2>
+	  <h2><a class="top" href="#container">top</a>style <span class="categories">
+ graphic
+</span></h2>
 	
 	  <p class="header">
@@ -717,21 +721,56 @@
 	
 	  <div class="comments">
- NAME:style
-
- PURPOSE:choisit la facon de tracer les isolignes
-
- CATEGORY:graphique
-
- CALLING SEQUENCE:style,labstyle,level_z2d,linestyle,thick
-
- INPUTS:labstyle: nombre auquel se refaire le styel de trace choisit
-	 level_z2d:vecteur contenant les valeures des isolignes a tracer
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:
-	linestyle:vecteur utilise pour definir le style des
-	isocontours
-       rq: pour memoire:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_style_param_labstyle">labstyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Number to which the style of drawing choosen refer to.
+	</div>
+	    
+	    <h4 id="_style_param_level_z2d">level_z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Vector containing values of isolignes to be traced.
+</div>
+	    
+	    <h4 id="_style_param_linestyle">linestyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Vector used to define the isocontour's style
+       Comment: remenber:
 		Index	Linestyle	
 		0	Solid	
@@ -741,63 +780,9 @@
 		4	Dash Dot Dot Dot	
 		5	Long Dashes	
-	thick:vecteur definissant l'epaisseur de l'isoligne 
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
-</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_style_param_labstyle">labstyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_style_param_level_z2d">level_z2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_style_param_linestyle">linestyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+ </div>
 	    
 	    <h4 id="_style_param_thick">thick&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
-	      
+	      <span class="attr">out</span>
 	      
 	      
@@ -808,5 +793,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ Vector defining the thick of the isoline.
+</div>
 	    
 
@@ -816,8 +803,10 @@
 
 	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/symbols.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/symbols.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/symbols.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Create custom plotting symbols
+ </div>
 
       
@@ -717,18 +719,24 @@
 	
 	  <div class="comments">
- NAME:
-
-         SYMBOLS
-         
- PURPOSE:
-
-         Create custom plotting symbols
-         
- CALLING SEQUENCE:
- 
-	  SYMBOLS,SYMBOL_NUMBER,SCALE
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
 	    
- INPUTS:
-	 SYMBOL_NUMBER:
+	    <h4 id="_symbols_param_nsym">nsym&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
 	 
                 1 = open circle
@@ -750,44 +758,11 @@
 		 31 = filled diamond
 		 32 = filled triangle
-		 
-	 SCALE - size of symbols.
-	 
- KEYWORD PARAMETERS:
- 
-		COLOR - color of symbols
-		
- SIDE EFFECTS:
- 
-           The desired symbol is stored in the user buffer and 
-	    will be plotted if !P.PSYM = 8.
-
- MODIFICATION HISTORY:
- 
-		Jeff Bennett, U of Colorado, 198?</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_symbols_param_nsym">nsym&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
+		 </div>
 	    
 	    <h4 id="_symbols_param_scale">scale&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -796,5 +771,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ size of symbols.
+	 </div>
 	    
 
@@ -816,20 +793,29 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ color of symbols
+		</div>
 	    
 	  
 
 	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
+ Jeff Bennett, U of Colorado, 198?
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ The desired symbol is stored in the user buffer and 
+ will be plotted if !P.PSYM = 8.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/chkeywd.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/chkeywd.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/chkeywd.html	(revision 142)
@@ -696,5 +696,10 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ In a string containing an order to executewith EXECUTE by example. 
+ We change the value of one of keywords.
+ More generally, in a string, we look for the caracter chain: ', keywdname= ...,
+ and we change the value of...
+</div>
 
       
@@ -711,5 +716,8 @@
 	<div class="routine_details" id="_chkeywd">
 
-	  <h2><a class="top" href="#container">top</a>chkeywd </h2>
+	  <h2><a class="top" href="#container">top</a>chkeywd <span class="categories">
+ string, keywords
+
+ </span></h2>
 	
 	  <p class="header">
@@ -717,51 +725,109 @@
 	
 	  <div class="comments">
- NAME: chkeywd (change keyword)
-
- PURPOSE: ds un string qui contient une commande a executer avec
- EXECUTE par ex. On change la valeur d''un des mot cle.
- Plus generalement, ds un string, on cherche la chaine de
- chacarteres: ', keywdname= ..., et on change la valeur de ...
-
- CATEGORY: pour bidouiller des commandes passees par execute
-
- CALLING SEQUENCE: stringout=chkeywd(stringin, keywdname, keywdvalue)
- 
- INPUTS:
-      stringin: un string
-      keywdname: un string designant le nom du mot clef a chercher.
-      keywdvalue: nouvelle valeur du mot clef a considerer ds stringin
-
- KEYWORD PARAMETERS:
-      pour chercher le mot cle, on cherche le premier signe = qui
-      suit la position de keywdname. on substitue
-      pardefaut tout le bout de string qui suit jusqu''a la prochaine
-      virgule. avec les mots cles SEPARATOR et AFTER on peut modifier
-      cette decoupe du string:
-      SEPARATOR donne un chatactere avant (ou apres si AFTER est
-      active) lequel il faut chercher la virgule qui delimite le mot
-      cle ds le string. cf. les exemples
-
- OUTPUTS:stringout=stringin modifie si keywdname a ete trouve ds
- stringin
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-   
-   Si keywdvalue est un tableau, il sera convertit en vecteur.
-
- RESTRICTIONS:
-
-   attention cette fonction comporte des boucles, des if et des cases
-   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-   mots clefs de grosse taille (avec bcp d''elements et avec des
-   elements etant de gros tableaux).
-   le mot clef en entree ne doit pas contenir de Complex floating, de
-   structure, de Double-precision complex, de Pointer, de Object
-   reference, de Unsigned Integer, de Unsigned Longword Integer, de
-   64-bit Integer, de Unsigned 64-bit Integer	
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ stringout=stringin modified if keywdname has been found in stringin
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_chkeywd_param_stringin">stringin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ it is a string
+</div>
+	    
+	    <h4 id="_chkeywd_param_keywdname">keywdname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ it is a string designating the name of keyword to look for.
+</div>
+	    
+	    <h4 id="_chkeywd_param_keywdvalue">keywdvalue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 
+ The new value of the keyword to considerate in STRINGIN
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_chkeywd_keyword_SEPARATOR">SEPARATOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To look for the keyword, we look for the first sign = which follow 
+ the position of keywdname. By default, we substitute the string 
+ before the comma. With the keyword SEPARATOR,we can modify the cut 
+ of the string. SEPARATOR give a caractere before the one we have to 
+ look for the comma which delimit the keyword in the string.
+ (see examples)
+</div>
+	    
+	    <h4 id="_chkeywd_keyword_AFTER">AFTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ To look for the keyword, we look for the first sign = which follow 
+ the position of keywdname. By default, we substitute the string 
+ before the comma. With the keyword AFTER,we can modify the cut 
+ of the string. AFTER give a caractere after the one we have to 
+ look for the comma which delimit the keyword in the string.
+ (see examples)
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
 
    IDL> b='ok=111, year=[1997,1998,1999], age_capitaine=35'
@@ -778,102 +844,34 @@
    ok=111, year='c''est bon', /age_capitaine
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_chkeywd_param_stringin">stringin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_chkeywd_param_keywdname">keywdname&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_chkeywd_param_keywdvalue">keywdvalue&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_chkeywd_keyword_SEPARATOR">SEPARATOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_chkeywd_keyword_AFTER">AFTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ If keywdvalue is an array, it will be convert in a vector.
+
+
+ Beware, this function has loops, ifs ad cases everywhere. So it can 
+ not be used by big keywords (with a lot of elements which are big 
+ arrays). The input keyword must not contain Complex floatings, structure, 
+ Double-precision complex, Pointer, Object reference, Unsigned Integer, 
+ Unsigned Longword Integer, 64-bit Integer or Unsigned 64-bit Integer.
+ 
+</div>
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="preformat"> 
+ common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/delchr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/delchr.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/delchr.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Delete all occurrences of a character from a text string.
+ </div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_DELCHR">
 
-	  <h2><a class="top" href="#container">top</a>DELCHR </h2>
+	  <h2><a class="top" href="#container">top</a>DELCHR <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,20 +720,74 @@
 	
 	  <div class="comments">
- NAME:
-       DELCHR
- PURPOSE:
-       Delete all occurrences of a character from a text string.
- CATEGORY:
- CALLING SEQUENCE:
-       new = delchr(old, char)
- INPUTS:
-       old = original text string.     in
-       char = character to delete.     in
- KEYWORD PARAMETERS:
- OUTPUTS:
-       new = resulting string.         out
- COMMON BLOCKS:
- NOTES:
- MODIFICATION HISTORY:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ new = resulting string.
+ </div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_DELCHR_param_OLD">OLD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ original text string.
+ </div>
+	    
+	    <h4 id="_DELCHR_param_C">C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ character to delete.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_DELCHR_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        R. Sterner.  5 Jul, 1988.
        Johns Hopkins Applied Physics Lab.
@@ -742,65 +799,6 @@
  sold and this copyright notice is reproduced on each copy made.  This
  routine is provided as is without any express or implied warranties
- whatsoever.  Other limitations apply as described in the file disclaimer.txt.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_DELCHR_param_OLD">OLD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_DELCHR_param_C">C&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_DELCHR_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+ whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/directory-overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/directory-overview.html	(revision 142)
@@ -699,17 +699,17 @@
       
 	<dt><a href="chkeywd.html?format=raw">chkeywd.pro</a></dt>
-	<dd></dd>
+	<dd>  In a string containing an order to executewith EXECUTE by example.</dd>
       
 	<dt><a href="delchr.html?format=raw">delchr.pro</a></dt>
-	<dd></dd>
+	<dd>  Delete all occurrences of a character from a text string.</dd>
       
 	<dt><a href="getfile.html?format=raw">getfile.pro</a></dt>
-	<dd></dd>
+	<dd>  Read a text file into a string array.</dd>
       
 	<dt><a href="getwrd.html?format=raw">getwrd.pro</a></dt>
-	<dd></dd>
+	<dd>  Return the n'th word from a text string.</dd>
       
 	<dt><a href="isnumber.html?format=raw">isnumber.pro</a></dt>
-	<dd></dd>
+	<dd>  Determine if a text string is a valid number.</dd>
       
 	<dt><a href="lenstr.html?format=raw">lenstr.pro</a></dt>
@@ -717,35 +717,35 @@
       
 	<dt><a href="nwrds.html?format=raw">nwrds.pro</a></dt>
-	<dd></dd>
+	<dd>  Return the number of words in the given text string.</dd>
       
 	<dt><a href="putfile.html?format=raw">putfile.pro</a></dt>
-	<dd></dd>
+	<dd>  Write a text file from a string array.</dd>
       
 	<dt><a href="str_size.html?format=raw">str_size.pro</a></dt>
-	<dd></dd>
+	<dd>  The purpose of this function is to return the proper  character size to make a specified string a specifed  width in a window.</dd>
       
 	<dt><a href="string2struct.html?format=raw">string2struct.pro</a></dt>
-	<dd></dd>
+	<dd>  Takes an input string set up as keywords and returns an anonymous structure.</dd>
       
 	<dt><a href="strkeywd.html?format=raw">strkeywd.pro</a></dt>
-	<dd></dd>
+	<dd>  Translate a sturcture in a string able to be used to specify keywords   in the calling of a function when we use EXECUTE (see example) </dd>
       
 	<dt><a href="strrepl.html?format=raw">strrepl.pro</a></dt>
-	<dd></dd>
+	<dd>   replace one (or more) character(s)/string(s) in a string </dd>
       
 	<dt><a href="strright.html?format=raw">strright.pro</a></dt>
-	<dd></dd>
+	<dd>  return right subportion from a string </dd>
       
 	<dt><a href="strsci.html?format=raw">strsci.pro</a></dt>
-	<dd></dd>
+	<dd>  Given a number, returns a string of that          B  number in scientific notation format ( e.</dd>
       
 	<dt><a href="strtok.html?format=raw">strtok.pro</a></dt>
-	<dd></dd>
+	<dd>  Retrieve portion of string up to token.</dd>
       
 	<dt><a href="strwhere.html?format=raw">strwhere.pro</a></dt>
-	<dd></dd>
+	<dd>  return position *array* for occurence of a character in a string </dd>
       
 	<dt><a href="tostr.html?format=raw">tostr.pro</a></dt>
-	<dd></dd>
+	<dd>  Convert an input in a string.</dd>
       
       </dl>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getfile.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getfile.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getfile.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Read a text file into a string array.
+</div>
 
       
@@ -717,28 +719,122 @@
 	
 	  <div class="comments">
- NAME:
-       GETFILE
- PURPOSE:
-       Read a text file into a string array.
- CATEGORY:
- CALLING SEQUENCE:
-       s = getfile(f)
- INPUTS:
-       f = text file name.      in
- KEYWORD PARAMETERS:
-       Keywords:
-         ERROR=err  error flag: 0=ok, 1=file not opened,
-           2=no lines in file.
-         /QUIET means give no error message.
-         LINES=n  Number of lines to read (def=all).
-           Much faster if number of lines is known.
-           Automatic for IDL 5.6 or later.
-         /FIND search te file in the all !path directories (use
-         find.pro)
- OUTPUTS:
-       s = string array.        out
- COMMON BLOCKS:
- NOTES:
- MODIFICATION HISTORY:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ </div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_getfile_param_filein">filein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ text file name.
+ </div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_getfile_keyword_error">error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ =err  error flag: 0=ok, 1=file not opened,
+ 2=no lines in file.
+         </div>
+	    
+	    <h4 id="_getfile_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ </div>
+	    
+	    <h4 id="_getfile_keyword_quiet">quiet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ means give no error message.
+         </div>
+	    
+	    <h4 id="_getfile_keyword_lines">lines&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ =n  Number of lines to read (def=all).
+ Much faster if number of lines is known.
+ Automatic for IDL 5.6 or later.
+         </div>
+	    
+	    <h4 id="_getfile_keyword_find">find&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ search te file in the all !path directories (use
+ find.pro)
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        R. Sterner, 20 Mar, 1990
        R. Sterner, 1999 Apr 14 --- Added LINES=n keyword.
@@ -749,103 +845,4 @@
        R. Sterner, 2004 Jan 27 --- Fixed to work in IDL as old as vers 4.
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_getfile_param_filein">filein&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_getfile_keyword_error">error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_getfile_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_getfile_keyword_quiet">quiet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_getfile_keyword_lines">lines&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_getfile_keyword_find">find&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getwrd.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getwrd.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getwrd.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Return the n'th word from a text string.
+ </div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_GETWRD">
 
-	  <h2><a class="top" href="#container">top</a>GETWRD </h2>
+	  <h2><a class="top" href="#container">top</a>GETWRD <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,38 +720,165 @@
 	
 	  <div class="comments">
- NAME:
-       GETWRD
- PURPOSE:
-       Return the n'th word from a text string.
- CATEGORY:
- CALLING SEQUENCE:
-       wrd = getwrd(txt, n, [m])
- INPUTS:
-       txt = text string to extract from.         in
-         The first element is used if txt is an array.
-       n = word number to get (first = 0 = def).  in
-       m = optional last word number to get.      in
- KEYWORD PARAMETERS:
-       Keywords:
-         LOCATION = l.  Return word n string location.
-         DELIMITER = d. Set word delimiter (def = space & tab).
-         /LAST means n is offset from last word.  So n=0 gives
-           last word, n=-1 gives next to last, ...
-           If n=-2 and m=0 then last 3 words are returned.
-         /NOTRIM suppresses whitespace trimming on ends.
-         NWORDS=n.  Returns number of words in string.
- OUTPUTS:
-       wrd = returned word or words.              out
- COMMON BLOCKS:
-       getwrd_com
- NOTES:
-       Note: If a NULL string is given (txt="") then the last string
-             given is used.  This saves finding the words again.
-             If m > n wrd will be a string of words from word n to
-             word m.  If no m is given wrd will be a single word.
-             n<0 returns text starting at word abs(n) to string end
-             If n is out of range then a null string is returned.
-             See also nwrds.
- MODIFICATION HISTORY:
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> wrd = returned word or words.
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_GETWRD_param_TXTSTR">TXTSTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ text string to extract from.
+ The first element is used if txt is an array.
+</div>
+	    
+	    <h4 id="_GETWRD_param_NTH">NTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ word number to get (first = 0 = def)
+</div>
+	    
+	    <h4 id="_GETWRD_param_MTH">MTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ optional last word number to get.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_GETWRD_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_GETWRD_keyword_location">location&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ = l.  Return word n string location.
+         </div>
+	    
+	    <h4 id="_GETWRD_keyword_delimiter">delimiter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ = d. Set word delimiter (def = space & tab).
+         </div>
+	    
+	    <h4 id="_GETWRD_keyword_notrim">notrim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ suppresses whitespace trimming on ends.
+ </div>
+	    
+	    <h4 id="_GETWRD_keyword_last">last&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ means n is offset from last word.  So n=0 gives
+ last word, n=-1 gives next to last, ...
+ If n=-2 and m=0 then last 3 words are returned.
+</div>
+	    
+	    <h4 id="_GETWRD_keyword_nwords">nwords&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ = n. Returns number of words in string.
+ </div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        Ray Sterner,  6 Jan, 1985.
        R. Sterner, Fall 1989 --- converted to SUN.
@@ -766,155 +896,28 @@
  sold and this copyright notice is reproduced on each copy made.  This
  routine is provided as is without any express or implied warranties
- whatsoever.  Other limitations apply as described in the file disclaimer.txt.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_GETWRD_param_TXTSTR">TXTSTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_param_NTH">NTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_param_MTH">MTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_GETWRD_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_keyword_location">location&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_keyword_delimiter">delimiter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_keyword_notrim">notrim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_keyword_last">last&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_GETWRD_keyword_nwords">nwords&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+ whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ If a NULL string is given (txt="") then the last string
+ given is used.  This saves finding the words again.
+ If m > n wrd will be a string of words from word n to
+ word m.  If no m is given wrd will be a single word.
+ n<0 returns text starting at word abs(n) to string end
+ If n is out of range then a null string is returned.
+ See also nwrds.
+</div>
 	
 	  <h3>Other attributes</h3>
 	  
 	  
-	  
+	  <h4>Uses routines</h4><div class="preformat">
+ getwrd_com
+ </div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/isnumber.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/isnumber.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/isnumber.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Determine if a text string is a valid number.
+</div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_isnumber">
 
-	  <h2><a class="top" href="#container">top</a>isnumber </h2>
+	  <h2><a class="top" href="#container">top</a>isnumber <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,17 +720,9 @@
 	
 	  <div class="comments">
- NAME:
-       ISNUMBER
- PURPOSE:
-       Determine if a text string is a valid number.
- CATEGORY:
- CALLING SEQUENCE:
-       i = isnumber(txt, [x])
- INPUTS:
-       txt = text string to test.                      in
- KEYWORD PARAMETERS:
- OUTPUTS:
-       x = optionaly returned numeric value if valid.  out
-       i = test flag:                                  out
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+       x = optionaly returned numeric value if valid.  
+       i = test flag:                                  
            0: not a number.
            1: txt is a long integer.
@@ -735,7 +730,69 @@
            -1: first word of txt is a long integer.
            -2: first word of txt is a float.
- COMMON BLOCKS:
- NOTES:
- MODIFICATION HISTORY:
+ </div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_isnumber_param_txt0">txt0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ text string to test.
+</div>
+	    
+	    <h4 id="_isnumber_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_isnumber_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        R. Sterner.  15 Oct, 1986.
        Johns Hopkins Applied Physics Lab.
@@ -748,65 +805,6 @@
  sold and this copyright notice is reproduced on each copy made.  This
  routine is provided as is without any express or implied warranties
- whatsoever.  Other limitations apply as described in the file disclaimer.txt.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_isnumber_param_txt0">txt0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_isnumber_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_isnumber_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+ whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/lenstr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/lenstr.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/lenstr.html	(revision 142)
@@ -740,5 +740,6 @@
   author:  Paul Ricchiazzi                            7apr93
            Institute for Computational Earth System Science
-           University of California, Santa Barbara</div>
+           University of California, Santa Barbara
+</div>
 
 	  
@@ -773,8 +774,11 @@
 	  
 	  
-	  
-	  
-	  
-	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  <h4>Todo items</h4><div class="preformat"> seb 
+
+;-
+</div>
 	  
 	
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/nwrds.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/nwrds.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/nwrds.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Return the number of words in the given text string.
+ </div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_nwrds">
 
-	  <h2><a class="top" href="#container">top</a>nwrds </h2>
+	  <h2><a class="top" href="#container">top</a>nwrds <span class="categories">
+</span></h2>
 	
 	  <p class="header">
@@ -717,22 +720,74 @@
 	
 	  <div class="comments">
- NAME:
-       NWRDS
- PURPOSE:
-       Return the number of words in the given text string.
- CATEGORY:
- CALLING SEQUENCE:
-       n = nwrds(txt)
- INPUTS:
-       txt = text string to examine.             in
- KEYWORD PARAMETERS:
-       Keywords:
-         DELIMITER = d.  Set delimiter character (def = space).
- OUTPUTS:
-       n = number of words found.                out
- COMMON BLOCKS:
- NOTES:
-       Notes: See also getwrd.
- MODIFICATION HISTORY:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ n = number of words found.
+ </div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_nwrds_param_txtstr">txtstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ = text string to examine.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_nwrds_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+</div>
+	    
+	    <h4 id="_nwrds_keyword_delimiter">delimiter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ = d.  Set delimiter character (def = space).
+ </div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        R. Sterner,  7 Feb, 1985.
        Johns Hopkins University Applied Physics Laboratory.
@@ -743,72 +798,15 @@
  sold and this copyright notice is reproduced on each copy made.  This
  routine is provided as is without any express or implied warranties
- whatsoever.  Other limitations apply as described in the file disclaimer.txt.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_nwrds_param_txtstr">txtstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_nwrds_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_nwrds_keyword_delimiter">delimiter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+ whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ See also getwrd.
+ </div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/putfile.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/putfile.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/putfile.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Write a text file from a string array.
+ </div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_putfile">
 
-	  <h2><a class="top" href="#container">top</a>putfile </h2>
+	  <h2><a class="top" href="#container">top</a>putfile <span class="categories">
+
+ INPUTS:</span></h2>
 	
 	  <p class="header">
@@ -717,21 +721,86 @@
 	
 	  <div class="comments">
- NAME:
-       PUTFILE
- PURPOSE:
-       Write a text file from a string array.
- CATEGORY:
- CALLING SEQUENCE:
-       putfile, f, s
- INPUTS:
-       f = text file name.      in
-       s = string array.        in
- KEYWORD PARAMETERS:
-       Keywords:
-         ERROR=err  error flag: 0=ok, 1=invalid string array.
- OUTPUTS:
- COMMON BLOCKS:
- NOTES:
- MODIFICATION HISTORY:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_putfile_param_file">file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ = text file name.
+</div>
+	    
+	    <h4 id="_putfile_param_s">s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ = string array.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_putfile_keyword_error">error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ =err  error flag: 0=ok, 1=invalid string array.
+ </div>
+	    
+	    <h4 id="_putfile_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        R. Sterner, 20 Mar, 1990
        R. Sterner,  4 Nov, 1992 --- allowed scalar strings.
@@ -741,78 +810,6 @@
  sold and this copyright notice is reproduced on each copy made.  This
  routine is provided as is without any express or implied warranties
- whatsoever.  Other limitations apply as described in the file disclaimer.txt.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_putfile_param_file">file&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_putfile_param_s">s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_putfile_keyword_error">error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_putfile_keyword_help">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+ whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/str_size.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/str_size.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/str_size.html	(revision 142)
@@ -696,5 +696,11 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ The purpose of this function is to return the proper
+ character size to make a specified string a specifed
+ width in a window. The width is specified in normalized
+ coordinates. The function is extremely useful for sizing
+ strings and labels in resizeable graphics windows.
+</div>
 
       
@@ -711,72 +717,20 @@
 	<div class="routine_details" id="_STR_SIZE">
 
-	  <h2><a class="top" href="#container">top</a>STR_SIZE </h2>
+	  <h2><a class="top" href="#container">top</a>STR_SIZE <span class="categories">
+ Graphics Programs, Widgets.
+</span></h2>
 	
 	  <p class="header">
-	    <span class="result">result = </span>STR_SIZE(<span class="result"><a href="#_STR_SIZE_param_string">string</a>, <a href="#_STR_SIZE_param_targetWidth">targetWidth</a></span>, <a href="#_STR_SIZE_keyword_INITSIZE">INITSIZE</a>=<span class="result">INITSIZE</span>, <a href="#_STR_SIZE_keyword_STEP">STEP</a>=<span class="result">STEP</span>)</p>
+	    <span class="result">result = </span>STR_SIZE(<span class="result"><a href="#_STR_SIZE_param_string">string</a>[, <a href="#_STR_SIZE_param_targetWidth">targetWidth</a>]</span>, <a href="#_STR_SIZE_keyword_INITSIZE">INITSIZE</a>=<span class="result">INITSIZE</span>, <a href="#_STR_SIZE_keyword_STEP">STEP</a>=<span class="result">STEP</span>)</p>
 	
 	  <div class="comments">
- NAME:
-  STR_SIZE
-
- PURPOSE:
-
-  The purpose of this function is to return the proper
-  character size to make a specified string a specifed
-  width in a window. The width is specified in normalized
-  coordinates. The function is extremely useful for sizing
-  strings and labels in resizeable graphics windows.
-
- CATEGORY:
-
-  Graphics Programs, Widgets.
-
- CALLING SEQUENCE:
-
-  thisCharSize = STR_SIZE(thisSting, targetWidth)
-
- INPUTS:
-
-  thisString:  This is the string that you want to make a specifed
-     target size or width.
-
- OPTIONAL INPUTS:
-
-  targetWidth:  This is the target width of the string in normalized
-     coordinates in the current graphics window. The character
-     size of the string (returned as thisCharSize) will be
-     calculated to get the string width as close as possible to
-     the target width. The default is 0.25.
-
- KEYWORD PARAMETERS:
-
-  INITSIZE:  This is the initial size of the string. Default is 1.0.
-
-  STEP:   This is the amount the string size will change in each step
-     of the interative process of calculating the string size.
-     The default value is 0.05.
-
- OUTPUTS:
-
-  thisCharSize:  This is the size the specified string should be set
-     to if you want to produce output of the specified target
-     width. The value is in standard character size units where
-     1.0 is the standard character size.
-
- EXAMPLE:
-
-  To make the string "Happy Holidays" take up 30% of the width of
-  the current graphics window, type this:
-
-               XYOUTS, 0.5, 0.5, ALIGN=0.5, "Happy Holidays", $
-        CHARSIZE=STR_SIZE("Happy Holidays", 0.3)
-
- MODIFICATION HISTORY:
-
-  Written by: David Fanning, 17 DEC 96.
-  Added a scaling factor to take into account the aspect ratio
-     of the window in determing the character size. 28 Oct 97. DWF</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ thisCharSize. This is the size the specified string should be set
+ to if you want to produce output of the specified target
+ width. The value is in standard character size units where
+ 1.0 is the standard character size.
+</div>
 
 	  
@@ -785,8 +739,8 @@
 	    
 	    <h4 id="_STR_SIZE_param_string">string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -795,10 +749,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ This is the string that you want to make a specifed
+ target size or width.
+</div>
 	    
 	    <h4 id="_STR_SIZE_param_targetWidth">targetWidth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      <span class="attr">optional</span>
 	      
 	      
@@ -808,5 +765,11 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ This is the target width of the string in normalized
+ coordinates in the current graphics window. The character
+ size of the string (returned as thisCharSize) will be
+ calculated to get the string width as close as possible to
+ the target width. The default is 0.25.
+</div>
 	    
 
@@ -828,5 +791,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">  
+ This is the initial size of the string. Default is 1.0.
+</div>
 	    
 	    <h4 id="_STR_SIZE_keyword_STEP">STEP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -841,13 +806,29 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments">
+ This is the amount the string size will change in each step
+ of the interative process of calculating the string size.
+ The default value is 0.05.
+</div>
 	    
 	  
 
-	  
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+ To make the string "Happy Holidays" take up 30% of the width of
+ the current graphics window, type this:
+
+   XYOUTS, 0.5, 0.5, ALIGN=0.5, "Happy Holidays", $
+   CHARSIZE=STR_SIZE("Happy Holidays", 0.3)
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: str_size.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
+ Written by: David Fanning, 17 DEC 96.
+ Added a scaling factor to take into account the aspect ratio
+ of the window in determing the character size. 28 Oct 97. DWF
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strcnt.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strcnt.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strcnt.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/string2struct.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/string2struct.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/string2struct.html	(revision 142)
@@ -696,5 +696,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Takes an input string set up as keywords and returns an anonymous structure.
+ This is particularly useful for taking keywords entered by a user in a text
+ field and passing then to other routines.
+</div>
 
       
@@ -714,5 +718,5 @@
 	  
 	  <dt><p><a href="#_string2struct"><span class="result">result = </span>string2struct(<span class="result">strVal</span>)</a></p><dt>
-	  <dd>  NAME:        stringToStructure   PURPOSE:        Takes an input string set up as keywords and returns an anonymous structure.</dd>	
+	  <dd> </dd>	
 	  	
 	</dl>
@@ -783,5 +787,7 @@
 	<div class="routine_details" id="_string2struct">
 
-	  <h2><a class="top" href="#container">top</a>string2struct </h2>
+	  <h2><a class="top" href="#container">top</a>string2struct <span class="categories">
+ Utility
+</span></h2>
 	
 	  <p class="header">
@@ -789,35 +795,37 @@
 	
 	  <div class="comments">
- NAME:
-       stringToStructure
-
- PURPOSE:
-       Takes an input string set up as keywords and returns an anonymous structure.
-               This is particularly useful for taking keywords entered by a user in a text
-               field and passing then to other routines.
-
- CATEGORY:
-       Utility
-
- CALLING SEQUENCE:
-       extra=stringToStructure('xrange=[0,10],linestyle=2')
-       plot,findgen(100),_extra=extra
-
- INPUTS:
-       String set up as keywords. Keywords require a little special treatment. Such as
-       plot,findgen(100),_extra=stringToStructure('title="testing"')
-
- KEYWORD PARAMETERS:
-
-       None
-
- OUTPUTS:
-       This function returns the string as an anonymous structure. If an
-       error was found then this function returns a structure with a null field.
-
- COMMON BLOCKS:
-       None.
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> 
+ This function returns the string as an anonymous structure. If an
+ error was found then this function returns a structure with a null field.
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_string2struct_param_strVal">strVal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ String set up as keywords. Keywords require a little special treatment. Such as
+ plot,findgen(100),_extra=stringToStructure('title="testing"')
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
        The code below creates a widget that uses this routine.
        pro tPlot,event
@@ -839,38 +847,13 @@
        return
        end
-
- MODIFICATION HISTORY:
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat">
        Written by:
        RLK, Ronn Kling Consulting.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_string2struct_param_strVal">strVal&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strkeywd.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strkeywd.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strkeywd.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Translate a sturcture in a string able to be used to specify keywords 
+ in the calling of a function when we use EXECUTE (see example)
+</div>
 
       
@@ -711,5 +714,6 @@
 	<div class="routine_details" id="_strkeywd">
 
-	  <h2><a class="top" href="#container">top</a>strkeywd </h2>
+	  <h2><a class="top" href="#container">top</a>strkeywd <span class="categories"> 
+ </span></h2>
 	
 	  <p class="header">
@@ -717,67 +721,11 @@
 	
 	  <div class="comments">
- NAME: strkeywd (string keywords)
-
- PURPOSE: traduit une sturcture en un string pouvant etre utilise
- pour specifier des keywords ds l''appelle d''une fonction qd on
- utilise execute (cf l''exemple)
-
- CATEGORY: pour passer des mots cles avec execute !
-
- CALLING SEQUENCE:res=strkeywd(struct)
- 
- INPUTS:struct: une structure
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:un string compose de la facon suivante:
-         pour chaque element de la structure, on ecrit une partie du
-         string sous la forme: 
-         'nom_de_l''element=contennu de l''element'
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
-   Si un element de la structure contient un tableau, il sera
-   convertit en vecteur.
-
- RESTRICTIONS:
-
-   attention cette fonction comporte des boucles, des if et des cases
-   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-   structure de grosse taille (avec bcp d''elements et avec des
-   elements etant de gros tableaux).
-   la structure en entree ne doit pas contenir de Complex floating, de
-   structure, de Double-precision complex, de Pointer, de Object
-   reference, de Unsigned Integer, de Unsigned Longword Integer, de
-   64-bit Integer, de Unsigned 64-bit Integer	
-
-
-
- EXAMPLE:
-
- on cree une structure
-       IDL> b=get_extra(ok=111, year=[1997,1998,1999], age_capitaine=35)
-       IDL> help, b,/struct
-       ** Structure <817f4bc>, 3 tags, length=10, refs=1:
-          AGE_CAPITAINE   INT             35
-          OK              INT            111
-          YEAR            INT       Array[3]
- on met cette structure sous forme de string
-       IDL> a=strkeywd(b)
-       IDL> print, a
-       AGE_CAPITAINE=35, OK=111, YEAR=[1997,1998,1999]
- maintenant on peut utiliser le string a pour passer des mots cles ds
- une fonction a l''aide de execute!!
-       IDL> test=execute('c=get_extra('+a+')')
-       IDL> help, c,/struct
-       ** Structure <817f2dc>, 3 tags, length=10, refs=1:
-          AGE_CAPITAINE   INT             35
-          OK              INT            111
-          YEAR            INT       Array[3]
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ a string composed like following:
+ For each element of the structure, we write a part of the string as: 
+         'name_of_the_element=content_of_the_element'
+</div>
 
 	  
@@ -796,5 +744,7 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ a structure
+</div>
 	    
 
@@ -803,16 +753,46 @@
 	  
 
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+ We create a structure
+       IDL> b=get_extra(ok=111, year=[1997,1998,1999], age_capitaine=35)
+       IDL> help, b,/struct
+       ** Structure <817f4bc>, 3 tags, length=10, refs=1:
+          AGE_CAPITAINE   INT             35
+          OK              INT            111
+          YEAR            INT       Array[3]
+ We put this structure as a string
+       IDL> a=strkeywd(b)
+       IDL> print, a
+       AGE_CAPITAINE=35, OK=111, YEAR=[1997,1998,1999]
+ Now we can use the string a to pass keywords in a function thanks to execute!!
+       IDL> test=execute('c=get_extra('+a+')')
+       IDL> help, c,/struct
+       ** Structure <817f2dc>, 3 tags, length=10, refs=1:
+          AGE_CAPITAINE   INT             35
+          OK              INT            111
+          YEAR            INT       Array[3]
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ If an element of the structure contain an array, it will be convert in a vector.
+
+
+ Beware, this function has loops, ifs ad cases everywhere. So it can 
+ not be used by big keywords (with a lot of elements which are big 
+ arrays). The input keyword must not contain Complex floatings, structure, 
+ Double-precision complex, Pointer, Object reference, Unsigned Integer, 
+ Unsigned Longword Integer, 64-bit Integer or Unsigned 64-bit Integer.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strrepl.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strrepl.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strrepl.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> 
+ replace one (or more) character(s)/string(s) in a string
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_strrepl">
 
-	  <h2><a class="top" href="#container">top</a>strrepl </h2>
+	  <h2><a class="top" href="#container">top</a>strrepl <span class="categories">
+ string routines
+</span></h2>
 	
 	  <p class="header">
@@ -717,39 +721,63 @@
 	
 	  <div class="comments">
- NAME:
-        STRREPL (function)
-
- PURPOSE:
-        replace one (or more) character(s)/string(s) in a string
-
- CATEGORY:
-        string routines
-
- CALLING SEQUENCE:
-        Result = STRREPL(str, index, rchar)
-
- INPUTS:
-        STR -> the string to be changed
-
-        INDEX -> position of the character(s) to be replaced or a
-        string to be changed in STR.
-
-        RCHAR -> replacement character/string
-
- KEYWORD PARAMETERS: none
-
-
- OUTPUTS:
-        another string
-
- SUBROUTINES:
-
- REQUIREMENTS:
-
- NOTES:
-        Known shortcoming: if index is an array, it must contain all
-        valid elements (only the first entry is checked).
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ another string
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_strrepl_param_str">str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ the string to be changed
+</div>
+	    
+	    <h4 id="_strrepl_param_agument1">agument1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_strrepl_param_rchar">rchar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ replacement character/string
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
         ; Convert one letter into upper case
 
@@ -772,70 +800,22 @@
        IDL> print, strrepl(a,'toto','0000')
        abcabcabc
-
- MODIFICATION HISTORY:
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: strrepl.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
         mgs, 02 Jun 1998: VERSION 1.00</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_strrepl_param_str">str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_strrepl_param_agument1">agument1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_strrepl_param_rchar">rchar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat"> 
+ Known shortcoming: if index is an array, it must contain all
+ valid elements (only the first entry is checked).
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strright.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strright.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strright.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ return right subportion from a string
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_strright">
 
-	  <h2><a class="top" href="#container">top</a>strright </h2>
+	  <h2><a class="top" href="#container">top</a>strright <span class="categories">
+ string handling 
+ </span></h2>
 	
 	  <p class="header">
@@ -717,42 +721,9 @@
 	
 	  <div class="comments">
- NAME:
-        STRRIGHT
-
- PURPOSE:
-        return right subportion from a string
-
- CATEGORY:
-        string handling 
-
- CALLING SEQUENCE:
-        res = STRRIGHT(string [,nlast])
-
- INPUTS:
-        STRING --> the string to be searched
-
-        NLAST --> the number of characters to be returned. Default
-           is 1. If NLAST is ge strlen(STRING), the complete string
-           is returned.
-
- KEYWORD PARAMETERS:
-
- OUTPUTS:
-        The portion of NLAST characters of STRING counted from the back.
-
- SUBROUTINES:
-
- REQUIREMENTS:
-
- NOTES:
-
- EXAMPLE:
-        if (strright(path) ne '/') then path = path + '/'
-
- MODIFICATION HISTORY:
-        mgs, 19 Nov 1997: VERSION 1.00
-</div>
-
-	  
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ The portion of LASTN characters of S counted from the back.
+</div>
 
 	  
@@ -761,8 +732,8 @@
 	    
 	    <h4 id="_strright_param_s">s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -771,11 +742,13 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ the string to be searched
+</div>
 	    
 	    <h4 id="_strright_param_lastn">lastn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
 	      
 	      
@@ -784,5 +757,9 @@
 	    </h4>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ the number of characters to be returned. Default
+ is 1. If NLAST is ge strlen(STRING), the complete string
+ is returned.
+</div>
 	    
 
@@ -791,9 +768,15 @@
 	  
 
-	  
-	  
-	  
-	  
-	  
+	  <h3>Examples</h3><div class="preformat">
+ if (strright(path) ne '/') then path = path + '/'
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: strright.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
+        mgs, 19 Nov 1997: VERSION 1.00
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strsci.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strsci.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strsci.html	(revision 142)
@@ -696,5 +696,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Given a number, returns a string of that          B
+ number in scientific notation format ( e.g. A x 10  )
+</div>
 
       
@@ -711,5 +714,7 @@
 	<div class="routine_details" id="_StrSci">
 
-	  <h2><a class="top" href="#container">top</a>StrSci </h2>
+	  <h2><a class="top" href="#container">top</a>StrSci <span class="categories">
+ String Utilities
+</span></h2>
 	
 	  <p class="header">
@@ -717,53 +722,117 @@
 	
 	  <div class="comments">
- NAME:
-        STRSCI (function)
-
- PURPOSE:                                                 
-        Given a number, returns a string of that          B
-        number in scientific notation format ( e.g. A x 10  )
-
- CATEGORY:
-        String Utilities
-
- CALLING SEQUENCE:
-        Result = STRSCI( DATA [,keywords] )
-
- INPUTS:
-        DATA      -> A floating point or integer number to be
-                     converted into a power of 10.
-
- KEYWORD PARAMETERS:
-        FORMAT    -> The format specification used in the string
-                     conversion for the mantissa (i.e. the
-                     "A" of "A x 10^B").  Default is '(f12.2)'.  
-
-        /POT_ONLY -> Will return only the "power of 10" part of the
-                     string (i.e. the "10^B").  Default is to return
-                     the entire string (e.g. "A x 10^B" )
-
-        /MANTISSA_ONLY -> return only mantissa of the string
-
-        /SHORT -> return 10^0 as '1' and 10^1 as '10'
-
-        /TRIM -> don't insert blanks (i.e. return Ax10^B)
-
- OUTPUTS:
-        None
-
- SUBROUTINES:
-        None
-
- REQUIREMENTS:
-        None
-
- NOTES:
-        This function does not "evaluate" the format statement thoroughly
-        which can result in somewhat quirky strings. Example:
-        print,strsci(-9.999) results in -10.0x10^0 instead of -1.0x10^1.
-
-        Need a better symbol than the 'x' for the multiplier...
-
- EXAMPLE:
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_StrSci_param_Data">Data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ A floating point or integer number to be
+ converted into a power of 10.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_StrSci_keyword_Format">Format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ The format specification used in the string
+ conversion for the mantissa (i.e. the
+ "A" of "A x 10^B").  Default is '(f12.2)'.  
+</div>
+	    
+	    <h4 id="_StrSci_keyword_POT_Only">POT_Only&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ Will return only the "power of 10" part of the
+ string (i.e. the "10^B").  Default is to return
+ the entire string (e.g. "A x 10^B" )
+</div>
+	    
+	    <h4 id="_StrSci_keyword_MANTISSA_ONLY">MANTISSA_ONLY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ return only mantissa of the string
+</div>
+	    
+	    <h4 id="_StrSci_keyword_SHORT">SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ return 10^0 as '1' and 10^1 as '10'
+</div>
+	    
+	    <h4 id="_StrSci_keyword_TRIM">TRIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ don't insert blanks (i.e. return Ax10^B)
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
         Result = STRSCI( 2000000, format='(i1)' )
         print, result                
@@ -781,6 +850,11 @@
         ;     prints, 0.00000000
  
-
- MODIFICATION HISTORY:
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: strsci.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
         bmy, 28 May 1998: VERSION 1.00            B
            - now returns string of the form A x 10
@@ -805,110 +879,17 @@
            - and doesn't choke on arrays
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_StrSci_param_Data">Data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_StrSci_keyword_Format">Format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_StrSci_keyword_POT_Only">POT_Only&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_StrSci_keyword_MANTISSA_ONLY">MANTISSA_ONLY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_StrSci_keyword_SHORT">SHORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_StrSci_keyword_TRIM">TRIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ This function does not "evaluate" the format statement thoroughly
+ which can result in somewhat quirky strings. Example:
+ print,strsci(-9.999) results in -10.0x10^0 instead of -1.0x10^1.
+
+ Need a better symbol than the 'x' for the multiplier...
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtok.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtok.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtok.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Retrieve portion of string up to token.
+ </div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_Strtok">
 
-	  <h2><a class="top" href="#container">top</a>Strtok </h2>
+	  <h2><a class="top" href="#container">top</a>Strtok <span class="categories">
+ text/strings
+</span></h2>
 	
 	  <p class="header">
@@ -717,30 +721,87 @@
 	
 	  <div class="comments">
- NAME:
-       STRTOK
- PURPOSE:
-       Retrieve portion of string up to token.
- CATEGORY:
-       text/strings
- CALLING SEQUENCE:
-       new = strtok( old, token )
- INPUTS:
-       old   -- String to be split.  Contains text after    in, out
-                token on output.
-       token -- Token to use in splitting old.              in
- KEYWORD PARAMETERS:
-       /TRIM -- set to remove leading blanks from old 
-                before returning.
-       /HELP -- print useful message and exit.
- OUTPUTS:
-       new   -- portion of string up to token.              out
-       old   -- portion of old after token.                 out, in
- COMMON BLOCKS:
- SIDE EFFECTS:
-       Input parameter old is modified.
- NOTES:
-       Token may be one or more characters.
-       If token is not found, returns old and sets old to ''.
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ new   -- portion of string up to token.              out
+ old   -- portion of old after token.                 out, in
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_Strtok_param_string">string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ String to be split.  Contains text after    in, out
+ token on output.
+ </div>
+	    
+	    <h4 id="_Strtok_param_token">token&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ Token to use in splitting old.       
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_Strtok_keyword_TRIM">TRIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> 
+ set to remove leading blanks from old 
+ before returning.
+</div>
+	    
+	    <h4 id="_Strtok_keyword_HELP">HELP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">
+ print useful message and exit.
+ </div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="preformat">
        If old is 'foo44 bar', then strtok( old, '44' ) would return
        'foo', and upon return, old will be left with ' bar'.  If /TRIM
@@ -749,9 +810,11 @@
        If old='xyz', then new=strtok(old,'a') would return with
        new='xyz' and old=''.
- THANKS:
-       To D. Linder who wrote GETTOK, part of the goddard library,
-       upon which this is based.
- MODIFICATION HISTORY:
-       $Id: strtok.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: strtok.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
        $Log: strtok.pro,v $
        Revision 1.3  1996/06/14 20:00:27  mcraig
@@ -764,92 +827,28 @@
        Initial revision
 
- RELEASE:
+ Thanks:
+       To D. Linder who wrote GETTOK, part of the goddard library,
+       upon which this is based.
+
+ Release:
        $Name: Rel_1_2 $
 
- COPYRIGHT:
+ Copyright:
   Copyright (C) 1996 The Regents of the University of California, All
   Rights Reserved.  Written by Matthew W. Craig.
   See the file COPYRIGHT for restrictions on distrubting this code.
-  This code comes with absolutely NO warranty; see DISCLAIMER for details.</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_Strtok_param_string">string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_Strtok_param_token">token&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_Strtok_keyword_TRIM">TRIM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_Strtok_keyword_HELP">HELP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+  This code comes with absolutely NO warranty; see DISCLAIMER for details.
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ Input parameter old is modified.
+ Token may be one or more characters.
+ If token is not found, returns old and sets old to ''.
+ </div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtrans.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtrans.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtrans.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strwhere.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strwhere.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strwhere.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ return position *array* for occurence of a character in a string
+</div>
 
       
@@ -711,5 +713,7 @@
 	<div class="routine_details" id="_strwhere">
 
-	  <h2><a class="top" href="#container">top</a>strwhere </h2>
+	  <h2><a class="top" href="#container">top</a>strwhere <span class="categories">
+ string tools
+</span></h2>
 	
 	  <p class="header">
@@ -717,43 +721,76 @@
 	
 	  <div class="comments">
- NAME:
-        STRWHERE  (function)
-
- PURPOSE:
-        return position *array* for occurence of a character in
-        a string
-
- CATEGORY:
-        string tools
-
- CALLING SEQUENCE:
-        pos = STRWHERE(str, schar [,Count] )
-
- INPUTS:
-        STR -> the string
-
-        SCHAR -> the character to look for
-
- KEYWORD PARAMETERS:
-        none.
-
- OUTPUTS:
-        COUNT -> (optional) The number of matches that were found 
-
-        The function returns an index array similar to the 
-        result of the where function
-
- SUBROUTINES:
-
- REQUIREMENTS:
-
- NOTES:
-
- EXAMPLE:
+</div>
+
+	  <h3>Return value</h3><div class="preformat"> COUNT {out}{optional}
+ The number of matches that were found 
+
+  The function returns an index array similar to the 
+  result of the where function
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_strwhere_param_str">str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ the string
+</div>
+	    
+	    <h4 id="_strwhere_param_schar">schar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ the character to look for
+</div>
+	    
+	    <h4 id="_strwhere_param_Count">Count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
         ind = strwhere('abcabcabc','a')
 
         ; returns [ 0, 3, 6 ]
-
- MODIFICATION HISTORY:
+</div>
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id: strwhere.pro 134 2006-07-07 10:19:08Z navarro $
+</div>
+	  <h4>History</h4><div class="preformat">
         mgs, 02 Jun 1998: VERSION 1.00
         bmy, 30 Jun 1998: - now returns COUNT, the number 
@@ -761,60 +798,4 @@
                             analogous to the WHERE command)
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_strwhere_param_str">str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_strwhere_param_schar">schar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_strwhere_param_Count">Count&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/tostr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/tostr.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/tostr.html	(revision 142)
@@ -696,5 +696,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ Convert an input in a string.
+</div>
 
       
@@ -711,5 +713,6 @@
 	<div class="routine_details" id="_tostr">
 
-	  <h2><a class="top" href="#container">top</a>tostr </h2>
+	  <h2><a class="top" href="#container">top</a>tostr <span class="categories"> 
+</span></h2>
 	
 	  <p class="header">
@@ -717,36 +720,39 @@
 	
 	  <div class="comments">
- NAME: tostr (to string)
-
- PURPOSE: convertit un input en un string.
-
- CATEGORY: 
-
- CALLING SEQUENCE: res=tostr(input)
- 
- INPUTS: input ne peut pas contenir ou etre de type:
+</div>
+
+	  <h3>Return value</h3><div class="preformat">
+ a string
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_tostr_param_input">input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">
+ input can not contain or be of the type of:
 
    Complex floating, structure, Double-precision complex, Pointer, Object
    reference, Unsigned Integer, Unsigned Longword Integer, 64-bit
    Integer, Unsigned 64-bit Integer	
-
- KEYWORD PARAMETERS: none
-
- OUTPUTS: un string
-
- COMMON BLOCKS:
-
- SIDE EFFECTS:
-
-   Si un element de input contient un tableau, il sera
-   convertit en vecteur.
-
- RESTRICTIONS:
-
-   attention cette fonction comporte des boucles, des if et des cases
-   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-   inputs de grosse taille (avec bcp d''elements et avec des
-   elements etant de gros tableaux).
- EXAMPLE:
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="preformat">
     IDL> help, tostr(1),tostr('a'),tostr(indgen(4)),tostr(['a','jkfjo'])
     <Expression>    STRING    = '1'
@@ -757,41 +763,24 @@
     ['c''est bon','c''est bon']
 </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_tostr_param_input">input&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+	  <h3>Version history</h3>
+	  
+	  <h4>Version</h4><div class="preformat">
+ $Id$
+</div>
+	  <h4>History</h4><div class="preformat"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="preformat">
+ If keywdvalue is an array, it will be convert in a vector.
+
+
+ Beware, this function has loops, ifs ad cases everywhere. So it can 
+ not be used by big keywords (with a lot of elements which are big 
+ arrays).
+ </div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/fitintobox.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/fitintobox.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/fitintobox.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/linearequation.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/linearequation.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/linearequation.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/lineintersection.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/lineintersection.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/lineintersection.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/pwd.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/pwd.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/pwd.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/report.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/report.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/report.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/routine_name.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/routine_name.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/routine_name.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/test.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/test.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/test.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/testvar.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/testvar.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/testvar.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/text_box.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/text_box.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/text_box.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/undefine.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/undefine.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/undefine.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xfile.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xfile.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xfile.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xhelp.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xhelp.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xhelp.html	(revision 142)
@@ -328,5 +328,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html	(revision 142)
@@ -717,5 +717,17 @@
       <p>The following categories were found in the library.</p>
       <ul id="tree">
-              <li id="idldoc-">Animated drawings. <span class="result">(1 routine)</span>
+              <li id="idldoc-"> <span class="result">(4 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/INIT/initncdf.html?format=raw#_initncdf">initncdf</a></li>
+            
+            <li><a href="./ToBeReviewed/STRING/strkeywd.html?format=raw#_strkeywd">strkeywd</a></li>
+            
+            <li><a href="./ToBeReviewed/STRING/tostr.html?format=raw#_tostr">tostr</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">tracegrille</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">Animated drawings. <span class="result">(1 routine)</span>
           <ul>
             
@@ -735,4 +747,12 @@
             
           </ul>
+        </li>        <li id="idldoc-Calculation_on_matrixes">Calculation on matrixes <span class="result">(2 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/curl.html?format=raw#_curl">curl</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/div.html?format=raw#_div">div</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-Calendar">Calendar <span class="result">(2 routines)</span>
           <ul>
@@ -755,5 +775,17 @@
             
           </ul>
-        </li>        <li id="idldoc-Graphics">Graphics <span class="result">(5 routines)</span>
+        </li>        <li id="idldoc-Graphic_environment">Graphic environment <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/axe.html?format=raw#_axe">axe</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">Graphic. <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/plotsym.html?format=raw#_plotsym">plotsym</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Graphics">Graphics <span class="result">(9 routines)</span>
           <ul>
             
@@ -764,8 +796,40 @@
             <li><a href="./Colors/getcolor.html?format=raw#_GETCOLOR">GETCOLOR</a></li>
             
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html?format=raw#_bar_plot">bar_plot</a></li>
+            
             <li><a href="./Obsolete/lec.html?format=raw#_lec">lec</a></li>
             
             <li><a href="./Obsolete/lect.html?format=raw#_lect">lect</a></li>
             
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">plt1d</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">pltt</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">pltz</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Graphics_Programs">Graphics Programs <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/str_size.html?format=raw#_STR_SIZE">STR_SIZE</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Grille">Grille <span class="result">(4 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/GRILLE/f2v.html?format=raw#_f2v">f2v</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/t2v.html?format=raw#_t2v">t2v</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/u2t.html?format=raw#_u2t">u2t</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw#_v2t">v2t</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">INPUTS: <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/putfile.html?format=raw#_putfile">putfile</a></li>
+            
           </ul>
         </li>        <li id="idldoc-Image_display">Image display <span class="result">(1 routine)</span>
@@ -783,4 +847,10 @@
             
           </ul>
+        </li>        <li id="idldoc-Lightening_of_the_writting_of_plt">Lightening of the writting of plt <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">determineminmax</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-Mapping">Mapping <span class="result">(1 routine)</span>
           <ul>
@@ -797,4 +867,62 @@
             
           </ul>
+        </li>        <li id="idldoc-Plotting">Plotting <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">VELOVECT</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">Plotting. <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html?format=raw#_LABEL_DATE">LABEL_DATE</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Post_traitment_calculation">Post traitment calculation <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/norme.html?format=raw#_norme">norme</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">Post-traiment calculation <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/hdyn.html?format=raw#_hdyn">hdyn</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Reading">Reading <span class="result">(2 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">ncdf_lec</a></li>
+            
+            <li><a href="./ToBeReviewed/HOPE/read_hope.html?format=raw#_read_hope">read_hope</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-String_Utilities">String Utilities <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/strsci.html?format=raw#_StrSci">StrSci</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Utilities">Utilities <span class="result">(5 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/GRILLE/fmask.html?format=raw#_fmask">fmask</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">placedessin</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/restoreatt.html?format=raw#_restoreatt">restoreatt</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/umask.html?format=raw#_umask">umask</a></li>
+            
+            <li><a href="./ToBeReviewed/GRILLE/vmask.html?format=raw#_vmask">vmask</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Utility">Utility <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_string2struct">string2struct</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-Visualization">Visualization <span class="result">(1 routine)</span>
           <ul>
@@ -811,12 +939,42 @@
             
           </ul>
-        </li>        <li id="idldoc-">Widgets. <span class="result">(2 routines)</span>
+        </li>        <li id="idldoc-">Widgets. <span class="result">(3 routines)</span>
           <ul>
             
             <li><a href="./Colors/colorbar.html?format=raw#_COLORBAR">COLORBAR</a></li>
             
+            <li><a href="./ToBeReviewed/STRING/str_size.html?format=raw#_STR_SIZE">STR_SIZE</a></li>
+            
             <li><a href="./Utilities/xhelp.html?format=raw#_xhelp">xhelp</a></li>
             
           </ul>
+        </li>        <li id="idldoc-Without_loop">Without loop <span class="result">(6 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">depth2level</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">depth2mask</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">determ2</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/determ3.html?format=raw#_determ3">determ3</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw#_floatlevel2depth">floatlevel2depth</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">level2depth</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">Without loop. <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">depth2floatlevel</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-annex">annex <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">legende</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-array">array <span class="result">(1 routine)</span>
           <ul>
@@ -833,4 +991,10 @@
             
           </ul>
+        </li>        <li id="idldoc-calculation">calculation <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/projsegment.html?format=raw#_projsegment">projsegment</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-calculation_of_matrixes">calculation of matrixes <span class="result">(2 routines)</span>
           <ul>
@@ -941,4 +1105,40 @@
             
           </ul>
+        </li>        <li id="idldoc-graphic">graphic <span class="result">(16 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">addaxe</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html?format=raw#_ajoutvect">ajoutvect</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html?format=raw#_autoscale">autoscale</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">checkfield</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">label</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/LABEL/lataxe.html?format=raw#_lataxe">lataxe</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">legende</a></li>
+            
+            <li><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw#_litchamp">litchamp</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/LABEL/lonaxe.html?format=raw#_lonaxe">lonaxe</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html?format=raw#_meridienparallele">meridienparallele</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">placecolor</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">plt</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">pltbase</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/style.html?format=raw#_style">style</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">terminedessin</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/VECTEUR/vecteur.html?format=raw#_vecteur">vecteur</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-graphics">graphics <span class="result">(1 routine)</span>
           <ul>
@@ -947,4 +1147,22 @@
             
           </ul>
+        </li>        <li id="idldoc-">graphics  INPUTS:cd IDL> ?plot <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">splot</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">graphics INPUTS: cd IDL>?bar_plot <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html?format=raw#_sbar_plot">sbar_plot</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">graphics INPUTS:cd IDL>?contour <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">scontour</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-grid">grid <span class="result">(6 routines)</span>
           <ul>
@@ -979,4 +1197,10 @@
             
           </ul>
+        </li>        <li id="idldoc-grille">grille <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw#_computehopegrid">computehopegrid</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-image">image <span class="result">(2 routines)</span>
           <ul>
@@ -1011,4 +1235,10 @@
             
           </ul>
+        </li>        <li id="idldoc-keywords">keywords <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/chkeywd.html?format=raw#_chkeywd">chkeywd</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-know_what_is_inside">know what is inside <span class="result">(1 routine)</span>
           <ul>
@@ -1057,4 +1287,22 @@
             
           </ul>
+        </li>        <li id="idldoc-plot_Utility">plot Utility <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw#_reinitplt">reinitplt</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-pltz_and_pltt">pltz and pltt <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">determineminmax</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">quick exploration of 2D arrays  INPUTS: <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">tvplus</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-reading">reading <span class="result">(1 routine)</span>
           <ul>
@@ -1075,6 +1323,8 @@
             
           </ul>
-        </li>        <li id="idldoc-string">string <span class="result">(2 routines)</span>
-          <ul>
+        </li>        <li id="idldoc-string">string <span class="result">(3 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/chkeywd.html?format=raw#_chkeywd">chkeywd</a></li>
             
             <li><a href="./Calendar/date2string.html?format=raw#_date2string">date2string</a></li>
@@ -1083,4 +1333,34 @@
             
           </ul>
+        </li>        <li id="idldoc-string_handling">string handling <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/strright.html?format=raw#_strright">strright</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-string_routines">string routines <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/strrepl.html?format=raw#_strrepl">strrepl</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-string_tools">string tools <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/strwhere.html?format=raw#_strwhere">strwhere</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">text/strings <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">Strtok</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">two-dimensional. <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">VELOVECT</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-">use the wonderfull value_locate function! <span class="result">(1 routine)</span>
           <ul>
@@ -1089,13 +1369,17 @@
             
           </ul>
-        </li>        <li id="idldoc-utilities">utilities <span class="result">(12 routines)</span>
+        </li>        <li id="idldoc-utilities">utilities <span class="result">(16 routines)</span>
           <ul>
             
             <li><a href="./Utilities/undefine.html?format=raw#_UNDEFINE">UNDEFINE</a></li>
             
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">barrecouleur</a></li>
+            
             <li><a href="./ToBeReviewed/MATRICE/colle.html?format=raw#_colle">colle</a></li>
             
             <li><a href="./Matrix/congridseb.html?format=raw#_congridseb">congridseb</a></li>
             
+            <li><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">decoupeterre</a></li>
+            
             <li><a href="./Utilities/def_myuniquetmpdir.html?format=raw#_def_myuniquetmpdir">def_myuniquetmpdir</a></li>
             
@@ -1114,4 +1398,8 @@
             <li><a href="./Utilities/routine_name.html?format=raw#_routine_name">routine_name</a></li>
             
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/saveatt.html?format=raw#_saveatt">saveatt</a></li>
+            
+            <li><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">terminedessin</a></li>
+            
             <li><a href="./Utilities/xfile.html?format=raw#_xfile">xfile</a></li>
             
@@ -1127,4 +1415,14 @@
             
             <li><a href="./Colors/xpal.html?format=raw#_XPAL">XPAL</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-without_loop">without loop <span class="result">(3 routines)</span>
+          <ul>
+            
+            <li><a href="./ToBeReviewed/CALCULS/level2index.html?format=raw#_level2index">level2index</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/level2mask.html?format=raw#_level2mask">level2mask</a></li>
+            
+            <li><a href="./ToBeReviewed/CALCULS/projectondepth.html?format=raw#_projectondepth">projectondepth</a></li>
             
           </ul>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-B.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-B.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-B.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-C.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-C.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-C.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-D.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-D.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-D.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-E.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-E.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-E.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-F.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-F.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-F.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-G.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-G.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-G.html	(revision 142)
@@ -362,5 +362,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
@@ -790,10 +790,10 @@
 	<dd>a function from the file getcolor.pro</dd>
 	
+	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">GETDIMENSIONS</a></dt>
+	<dd>a keyword from the routine ncdf_meshread</dd>
+	
 	<dt><a href="./Obsolete/meshlec.html?format=raw#_meshlec">GETDIMENSIONS</a></dt>
 	<dd>a keyword from the routine meshlec</dd>
 	
-	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">GETDIMENSIONS</a></dt>
-	<dd>a keyword from the routine ncdf_meshread</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/getwrd.html?format=raw#_GETWRD">GETWRD</a></dt>
 	<dd>a function from the file getwrd.pro</dd>
@@ -808,15 +808,21 @@
 	<dd>a keyword from the routine meshlec</dd>
 	
+	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">GLAMBOUNDARY</a></dt>
+	<dd>a keyword from the routine ncdf_meshread</dd>
+	
 	<dt><a href="./Grid/computegrid.html?format=raw#_computegrid">GLAMBOUNDARY</a></dt>
 	<dd>a keyword from the routine computegrid</dd>
 	
-	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">GLAMBOUNDARY</a></dt>
-	<dd>a keyword from the routine ncdf_meshread</dd>
+	<dt><a href="./Calendar/date2jul.html?format=raw#_date2jul">GRADS</a></dt>
+	<dd>a keyword from the routine date2jul</dd>
 	
 	<dt><a href="./Obsolete/vraidate.html?format=raw#_vraidate">GRADS</a></dt>
 	<dd>a keyword from the routine vraidate</dd>
 	
-	<dt><a href="./Calendar/date2jul.html?format=raw#_date2jul">GRADS</a></dt>
-	<dd>a keyword from the routine date2jul</dd>
+	<dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">GRID</a></dt>
+	<dd>a keyword from the routine read_ncdf</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html?format=raw#_scanfile">GRID</a></dt>
+	<dd>a keyword from the routine scanfile</dd>
 	
 	<dt><a href="./Obsolete/lec.html?format=raw#_lec">GRID</a></dt>
@@ -826,10 +832,4 @@
 	<dd>a keyword from the routine litchamp</dd>
 	
-	<dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">GRID</a></dt>
-	<dd>a keyword from the routine read_ncdf</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html?format=raw#_scanfile">GRID</a></dt>
-	<dd>a keyword from the routine scanfile</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">GRIDTYPE</a></dt>
 	<dd>a keyword from the routine plt</dd>
@@ -838,28 +838,28 @@
 	<dd>a keyword from the routine domdef</dd>
 	
+	<dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">GRILLE</a></dt>
+	<dd>a keyword from the routine nlecsaison</dd>
+	
+	<dt><a href="./Obsolete/nlec.html?format=raw#_nlec">GRILLE</a></dt>
+	<dd>a keyword from the routine nlec</dd>
+	
+	<dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">GRILLE</a></dt>
+	<dd>a keyword from the routine nlec5j</dd>
+	
+	<dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">GRILLE</a></dt>
+	<dd>a keyword from the routine nlecan</dd>
+	
+	<dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">GRILLE</a></dt>
+	<dd>a keyword from the routine nlecmois</dd>
+	
 	<dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">GRILLE</a></dt>
 	<dd>a keyword from the routine nlecserie</dd>
 	
-	<dt><a href="./Obsolete/nlec.html?format=raw#_nlec">GRILLE</a></dt>
-	<dd>a keyword from the routine nlec</dd>
-	
-	<dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">GRILLE</a></dt>
-	<dd>a keyword from the routine nlec5j</dd>
-	
-	<dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">GRILLE</a></dt>
-	<dd>a keyword from the routine nlecan</dd>
-	
-	<dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">GRILLE</a></dt>
-	<dd>a keyword from the routine nlecmois</dd>
-	
-	<dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">GRILLE</a></dt>
-	<dd>a keyword from the routine nlecsaison</dd>
+	<dt><a href="./Colors/xlct.html?format=raw#_XLct">GROUP</a></dt>
+	<dd>a keyword from the routine XLct</dd>
 	
 	<dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">GROUP</a></dt>
 	<dd>a keyword from the routine xncdf_lec</dd>
 	
-	<dt><a href="./Colors/xlct.html?format=raw#_XLct">GROUP</a></dt>
-	<dd>a keyword from the routine XLct</dd>
-	
 	<dt><a href="./Colors/xpal.html?format=raw#_XPAL">GROUP</a></dt>
 	<dd>a keyword from the routine XPAL</dd>
@@ -883,10 +883,10 @@
 	<dd>a keyword from the routine readoldoparestart</dd>
 	
+	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">gdep</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd>
+	
 	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">gdep</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd>
 	
-	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">gdep</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd>
-	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_get_cal_value">get_cal_value</a></dt>
 	<dd>a function from the file cw_calendar.pro</dd>
@@ -919,31 +919,16 @@
 	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">givenmax</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">givenmax</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd>
 	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">givenmax</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">givenmax</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">givenmax</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd>
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">givenmin</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd>
 	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">givenmin</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">givenmin</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">givenmin</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">givenmin</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">giventype</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">giventype</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd>
@@ -952,7 +937,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">giventype</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html?format=raw#_givewindowsize">givewindowsize</a></dt>
 	<dd>a function from the file givewindowsize.pro</dd>
@@ -964,16 +946,16 @@
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd>
 	
+	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">glam</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/ciseauxtri.html?format=raw#_ciseauxtri">glam</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/ciseauxtri</dd>
 	
-	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">glam</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd>
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">glam</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd>
 	
 	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">glam</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">glam</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd>
-	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">glamaxe</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/section</dd>
@@ -982,16 +964,16 @@
 	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/tracegrille</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">gphi</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd>
+	
+	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">gphi</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd>
+	
 	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">gphi</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd>
 	
-	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">gphi</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">gphi</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">gphi</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd>
-	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/ciseauxtri.html?format=raw#_ciseauxtri">gphi</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/ciseauxtri</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-H.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-H.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-H.html	(revision 142)
@@ -362,5 +362,5 @@
 table.variables td.image { width: 64px; }
 
-div#file_comments { white-space: pre; 
+div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; 
   margin: 2em;
   font-size: 80%;
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-I.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-I.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-I.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-JK.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-JK.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-JK.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-L.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-L.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-L.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-M.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-M.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-M.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-N.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-N.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-N.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-P.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-P.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-P.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
@@ -829,28 +829,28 @@
 	<dd>a keyword from the routine openps</dd>
 	
+	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">POSITION</a></dt>
+	<dd>a keyword from the routine IMDISP</dd>
+	
+	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_GETPOS">POSITION</a></dt>
+	<dd>a keyword from the routine IMDISP_GETPOS</dd>
+	
+	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSIZE">POSITION</a></dt>
+	<dd>a keyword from the routine IMDISP_IMSIZE</dd>
+	
+	<dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">POSITION</a></dt>
+	<dd>a keyword from the routine COLORBAR</dd>
+	
 	<dt><a href="./Textoidl/nexttok.html?format=raw#_nexttok">POSITION</a></dt>
 	<dd>a keyword from the routine nexttok</dd>
 	
-	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_GETPOS">POSITION</a></dt>
-	<dd>a keyword from the routine IMDISP_GETPOS</dd>
-	
-	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSIZE">POSITION</a></dt>
-	<dd>a keyword from the routine IMDISP_IMSIZE</dd>
-	
-	<dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">POSITION</a></dt>
-	<dd>a keyword from the routine IMDISP</dd>
-	
-	<dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">POSITION</a></dt>
-	<dd>a keyword from the routine COLORBAR</dd>
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">POST</a></dt>
+	<dd>a keyword from the routine placedessin</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">POST</a></dt>
+	<dd>a keyword from the routine barrecouleur</dd>
 	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">POST</a></dt>
 	<dd>a keyword from the routine terminedessin</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">POST</a></dt>
-	<dd>a keyword from the routine placedessin</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">POST</a></dt>
-	<dd>a keyword from the routine barrecouleur</dd>
-	
 	<dt><a href="./Textoidl/textable.html?format=raw#_textable">POSTSCRIPT</a></dt>
 	<dd>a keyword from the routine textable</dd>
@@ -895,4 +895,25 @@
 	<dd>a procedure from the file buildinit.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">param2</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">param2</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">param3</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">param3</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">param4</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">param4</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd>
+	
+	<dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read2fromopa">params</a></dt>
+	<dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd>
+	
 	<dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read3fromopa">params</a></dt>
 	<dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd>
@@ -901,40 +922,37 @@
 	<dd>a parameter from the routine ./ReadWrite/readoldopadistcoast</dd>
 	
-	<dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read2fromopa">params</a></dt>
-	<dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd>
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd>
+	
+	<dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html?format=raw#_xcreateanim">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout</dd>
+	
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">parent</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd>
 	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html?format=raw#_cw_specifie">parent</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd>
 	
-	<dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html?format=raw#_xcreateanim">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd>
-	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">parent</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd>
-	
 	<dt><a href="./ToBeReviewed/LECTURE/GRIB/read_gribtable.html?format=raw#_read_gribtable">parmtabl</a></dt>
 	<dd>a keyword from the routine read_gribtable</dd>
@@ -1021,10 +1039,10 @@
 	<dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd>
 	
+	<dt><a href="./Utilities/text_box.html?format=raw#_text_box">pos</a></dt>
+	<dd>a keyword from the routine text_box</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">pos</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placecolor</dd>
 	
-	<dt><a href="./Utilities/text_box.html?format=raw#_text_box">pos</a></dt>
-	<dd>a keyword from the routine text_box</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">posbar</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd>
@@ -1033,13 +1051,13 @@
 	<dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">posfenetre</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">posfenetre</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd>
+	
 	<dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">posfenetre</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">posfenetre</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">posfenetre</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd>
-	
 	<dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">pour_etre_compatible</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ncdf</dd>
@@ -1048,10 +1066,10 @@
 	<dd>a parameter from the routine ./Interpolation/angle</dd>
 	
+	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickread/ncdf_quickread_helper.html?format=raw#_ncdf_quickread_helper">prefix</a></dt>
+	<dd>a keyword from the routine ncdf_quickread_helper</dd>
+	
 	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html?format=raw#_cutcmd">prefix</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd</dd>
 	
-	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickread/ncdf_quickread_helper.html?format=raw#_ncdf_quickread_helper">prefix</a></dt>
-	<dd>a keyword from the routine ncdf_quickread_helper</dd>
-	
 	<dt><a href="./buildinit.html?format=raw#_printerdef_event">printerdef_event</a></dt>
 	<dd>a procedure from the file buildinit.pro</dd>
@@ -1069,10 +1087,10 @@
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">procedure</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checktypeminmax</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">procedure</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">procedure</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checktypeminmax</dd>
-	
 	<dt><a href="./ToBeReviewed/CALCULS/projectondepth.html?format=raw#_projectondepth">projectondepth</a></dt>
 	<dd>a function from the file projectondepth.pro</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Q.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Q.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Q.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-R.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-R.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-R.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-T.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-T.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-T.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-U.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-U.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-U.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-V.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-V.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-V.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Z.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Z.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Z.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-_.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-_.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-_.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html	(revision 142)
@@ -737,7 +737,7 @@
       <a href="idldoc-index-F.html?format=raw#_F">F</a>
       
-      <a href="idldoc-index-G.html?format=raw#_G">G</a>
-      
-      <a href="idldoc-index-H.html?format=raw#_H">H</a>
+      <a href="idldoc-index-GH.html?format=raw#_G">G</a>
+      
+      <a href="idldoc-index-GH.html?format=raw#_H">H</a>
       
       <a href="idldoc-index-I.html?format=raw#_I">I</a>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html	(revision 142)
@@ -759,4 +759,33 @@
 <dd></dd>
 
+</dl><h3><a href="./ToBeReviewed/CALCULS/fsfzpt.html?format=raw">./ToBeReviewed/CALCULS/fsfzpt.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/CALCULS/fsfzpt.html?format=raw#_fsfzpt">fsfzpt</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/CALCULS/grad.html?format=raw">./ToBeReviewed/CALCULS/grad.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/CALCULS/grad.html?format=raw#_grad">grad</a></dt>
+<dd> seb: remplir les truc!
+
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw">./ToBeReviewed/CALCULS/remplit.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">remplit</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/CALCULS/rhon.html?format=raw">./ToBeReviewed/CALCULS/rhon.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/CALCULS/rhon.html?format=raw#_rhon">rhon</a></dt>
+<dd> seb
+</dd>
+
 </dl><h3><a href="./ToBeReviewed/CALENDRIER/def_month.html?format=raw">./ToBeReviewed/CALENDRIER/def_month.pro</a></h3>
 <dl>
@@ -770,4 +799,195 @@
 <dt><a href="./ToBeReviewed/COULEURS/palit.html?format=raw#_palit">palit</a></dt>
 <dd> Seb: compléter param red/green/blue</dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/changegrid.html?format=raw">./ToBeReviewed/GRILLE/changegrid.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/changegrid.html?format=raw#_changegrid">changegrid</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/cmpgrid.html?format=raw">./ToBeReviewed/GRILLE/cmpgrid.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/cmpgrid.html?format=raw#_cmpgrid">cmpgrid</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw">./ToBeReviewed/GRILLE/decoupeterre.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">decoupeterre</a></dt>
+<dd> seb : manque tous les param et plein de keywords.
+
+
+
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw">./ToBeReviewed/GRILLE/domdef.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">domdef</a></dt>
+<dd> seb: output pas clair/ pas d'input required?</dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/grille.html?format=raw">./ToBeReviewed/GRILLE/grille.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">grille</a></dt>
+<dd> Comment ecrire la remarque sur les inputs?
+ </dd>
+
+</dl><h3><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw">./ToBeReviewed/GRILLE/v2t.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw#_v2t">v2t</a></dt>
+<dd> seb: nom du input?
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/completetype.html?format=raw">./ToBeReviewed/HOPE/completetype.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/completetype.html?format=raw#_completetype">completetype</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw">./ToBeReviewed/HOPE/computehopegrid.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw#_computehopegrid">computehopegrid</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/createhopestruct.html?format=raw">./ToBeReviewed/HOPE/createhopestruct.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/createhopestruct.html?format=raw#_createhopestruct">createhopestruct</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw">./ToBeReviewed/HOPE/cw_selectinterval.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval_get_value">cw_selectinterval_get_value</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/domainpart.html?format=raw">./ToBeReviewed/HOPE/domainpart.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/domainpart.html?format=raw#_domainpart">domainpart</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/findlineandpointtype.html?format=raw">./ToBeReviewed/HOPE/findlineandpointtype.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/findlineandpointtype.html?format=raw#_findlineandpointtype">findlineandpointtype</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/rh_alldomains.html?format=raw">./ToBeReviewed/HOPE/rh_alldomains.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/rh_alldomains.html?format=raw#_rh_alldomains">rh_alldomains</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/sortdim.html?format=raw">./ToBeReviewed/HOPE/sortdim.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/sortdim.html?format=raw#_sortdim">sortdim</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/HOPE/xrh.html?format=raw">./ToBeReviewed/HOPE/xrh.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/HOPE/xrh.html?format=raw#_xrh">xrh</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/LECTURE/changeread.html?format=raw">./ToBeReviewed/LECTURE/changeread.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/LECTURE/changeread.html?format=raw#_changeread">changeread</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw">./ToBeReviewed/LECTURE/read_ftp.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_read_ftp">read_ftp</a></dt>
+<dd> seb: que fait-on de "syntax" au debut du header?
+ </dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/plt.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">plt</a></dt>
+<dd> seb 
+ Changer param "tab1",keyword "REMPLI", "UNLABSUR", "UNSUR2",
+ "UNVECTSUR"+ quelques trucs dans la routine.</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltbase.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">pltbase</a></dt>
+<dd> seb L.172 à 173
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltsc.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">pltsc</a></dt>
+<dd> seb
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltt.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">pltt</a></dt>
+<dd> seb: L.24 à 36, L.426 à 427, L. 492 à 493</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltz.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">pltz</a></dt>
+<dd> seb L.20 à 26, L.215 à 221
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/barrecouleur.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">barrecouleur</a></dt>
+<dd> seb: mettre les keyword et les param</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/checkfield.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">checkfield</a></dt>
+<dd> seb: mettre les param 
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">checktypeminmax</a></dt>
+<dd> seb</dd>
+
+</dl><h3><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/determineminmax.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">determineminmax</a></dt>
+<dd> seb: manque les param glam et gphi
+</dd>
+
+</dl><h3><a href="./ToBeReviewed/STRING/lenstr.html?format=raw">./ToBeReviewed/STRING/lenstr.pro</a></h3>
+<dl>
+
+<dt><a href="./ToBeReviewed/STRING/lenstr.html?format=raw#_lenstr">lenstr</a></dt>
+<dd> seb 
+
+;-
+</dd>
 
 </dl><h3><a href="./ToBeReviewed/UTILITAIRE/get_extra.html?format=raw">./ToBeReviewed/UTILITAIRE/get_extra.pro</a></h3>
@@ -1210,20 +1430,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/CALCULS/curl.html?format=raw">./ToBeReviewed/CALCULS/curl.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/curl.html?format=raw#_curl">curl</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw">./ToBeReviewed/CALCULS/depth2floatlevel.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">depth2floatlevel</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw">./ToBeReviewed/CALCULS/depth2level.pro</a>
 <table>
@@ -1234,44 +1438,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw">./ToBeReviewed/CALCULS/depth2mask.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">depth2mask</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw">./ToBeReviewed/CALCULS/determ2.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">determ2</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/determ3.html?format=raw">./ToBeReviewed/CALCULS/determ3.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/determ3.html?format=raw#_determ3">determ3</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/div.html?format=raw">./ToBeReviewed/CALCULS/div.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/div.html?format=raw#_div">div</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw">./ToBeReviewed/CALCULS/floatlevel2depth.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw#_floatlevel2depth">floatlevel2depth</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/CALCULS/fsfzpt.html?format=raw">./ToBeReviewed/CALCULS/fsfzpt.pro</a>
 <table>
@@ -1298,36 +1462,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/CALCULS/hdyn.html?format=raw">./ToBeReviewed/CALCULS/hdyn.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/hdyn.html?format=raw#_hdyn">hdyn</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw">./ToBeReviewed/CALCULS/level2depth.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">level2depth</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/level2index.html?format=raw">./ToBeReviewed/CALCULS/level2index.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/level2index.html?format=raw#_level2index">level2index</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/CALCULS/level2mask.html?format=raw">./ToBeReviewed/CALCULS/level2mask.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/level2mask.html?format=raw#_level2mask">level2mask</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw">./ToBeReviewed/CALCULS/moyenne.pro</a>
 <table>
@@ -1346,12 +1478,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/CALCULS/projectondepth.html?format=raw">./ToBeReviewed/CALCULS/projectondepth.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/CALCULS/projectondepth.html?format=raw#_projectondepth">projectondepth</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw">./ToBeReviewed/CALCULS/remplit.pro</a>
 <table>
@@ -1383,5 +1507,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/GRILLE/changegrid.html?format=raw#_changegrid">changegrid</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1391,5 +1515,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/GRILLE/cmpgrid.html?format=raw#_cmpgrid">cmpgrid</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1410,20 +1534,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/GRILLE/f2v.html?format=raw">./ToBeReviewed/GRILLE/f2v.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/f2v.html?format=raw#_f2v">f2v</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/fmask.html?format=raw">./ToBeReviewed/GRILLE/fmask.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/fmask.html?format=raw#_fmask">fmask</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/GRILLE/grille.html?format=raw">./ToBeReviewed/GRILLE/grille.pro</a>
 <table>
@@ -1434,52 +1542,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/GRILLE/t2v.html?format=raw">./ToBeReviewed/GRILLE/t2v.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/t2v.html?format=raw#_t2v">t2v</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw">./ToBeReviewed/GRILLE/tracegrille.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">tracegrille</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/u2t.html?format=raw">./ToBeReviewed/GRILLE/u2t.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/u2t.html?format=raw#_u2t">u2t</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/umask.html?format=raw">./ToBeReviewed/GRILLE/umask.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/umask.html?format=raw#_umask">umask</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw">./ToBeReviewed/GRILLE/v2t.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw#_v2t">v2t</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/GRILLE/vmask.html?format=raw">./ToBeReviewed/GRILLE/vmask.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/GRILLE/vmask.html?format=raw#_vmask">vmask</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/HOPE/completetype.html?format=raw">./ToBeReviewed/HOPE/completetype.pro</a>
 <table>
@@ -1487,12 +1547,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/completetype.html?format=raw#_completetype">completetype</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw">./ToBeReviewed/HOPE/computehopegrid.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw#_computehopegrid">computehopegrid</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -1503,5 +1555,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/createhopestruct.html?format=raw#_createhopestruct">createhopestruct</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1511,5 +1563,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval_get_value">cw_selectinterval_get_value</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1529,5 +1581,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/domainpart.html?format=raw#_domainpart">domainpart</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1537,5 +1589,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/findlineandpointtype.html?format=raw#_findlineandpointtype">findlineandpointtype</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1545,9 +1597,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/read_hope.html?format=raw#_read_hope_event">read_hope_event</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/HOPE/read_hope.html?format=raw#_read_hope">read_hope</a></td>
 <td class="docstat notdoc">not documented</td>
 </tr>
@@ -1558,5 +1605,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/rh_alldomains.html?format=raw#_rh_alldomains">rh_alldomains</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1566,5 +1613,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/sortdim.html?format=raw#_sortdim">sortdim</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1574,20 +1621,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/HOPE/xrh.html?format=raw#_xrh">xrh</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/IMAGE/animgif.html?format=raw">./ToBeReviewed/IMAGE/animgif.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/IMAGE/animgif.html?format=raw#_animgif">animgif</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/INIT/initncdf.html?format=raw">./ToBeReviewed/INIT/initncdf.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/INIT/initncdf.html?format=raw#_initncdf">initncdf</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -1697,12 +1728,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/LECTURE/binary.html?format=raw">./ToBeReviewed/LECTURE/binary.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/LECTURE/binary.html?format=raw#_binary">binary</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/LECTURE/changeread.html?format=raw">./ToBeReviewed/LECTURE/changeread.pro</a>
 <table>
@@ -1710,28 +1733,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/LECTURE/changeread.html?format=raw#_changeread">changeread</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/LECTURE/inverse_binary.html?format=raw">./ToBeReviewed/LECTURE/inverse_binary.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/LECTURE/inverse_binary.html?format=raw#_inverse_binary">inverse_binary</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw">./ToBeReviewed/LECTURE/litchamp.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw#_litchamp">litchamp</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw">./ToBeReviewed/LECTURE/ncdf_lec.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">ncdf_lec</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -1742,5 +1741,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_ftp_post">ftp_post</a></td>
-<td class="docstat partialdoc">partially documented</td>
+<td class="docstat notdoc">not documented</td>
 </tr>
 
@@ -1752,5 +1751,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_read_ftp">read_ftp</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1794,12 +1793,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/plt.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">plt</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/plt1d.pro</a>
 <table>
@@ -1823,5 +1814,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">pltsc</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1882,12 +1873,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/autoscale.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html?format=raw#_autoscale">autoscale</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/axis4pltz.pro</a>
 <table>
@@ -1911,5 +1894,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">err_1d</a></td>
-<td class="docstat partialdoc">partially documented</td>
+<td class="docstat notdoc">not documented</td>
 </tr>
 
@@ -1926,5 +1909,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">checkfield</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -1945,28 +1928,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/givewindowsize.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html?format=raw#_givewindowsize">givewindowsize</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/meridienparallele.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html?format=raw#_meridienparallele">meridienparallele</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/placecolor.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">placecolor</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/placedessin.pro</a>
 <table>
@@ -1977,44 +1936,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/projsegment.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/projsegment.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/projsegment.html?format=raw#_projsegment">projsegment</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/restoreatt.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/restoreatt.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/restoreatt.html?format=raw#_restoreatt">restoreatt</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/rotation.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">ROTATION</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/saveatt.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/saveatt.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/saveatt.html?format=raw#_saveatt">saveatt</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw">./ToBeReviewed/PLOTS/DIVERS/terminedessin.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">terminedessin</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw">./ToBeReviewed/PLOTS/LABEL/label.pro</a>
 <table>
@@ -2041,20 +1960,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/LABEL/lataxe.html?format=raw">./ToBeReviewed/PLOTS/LABEL/lataxe.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/LABEL/lataxe.html?format=raw#_lataxe">lataxe</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/LABEL/lonaxe.html?format=raw">./ToBeReviewed/PLOTS/LABEL/lonaxe.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/LABEL/lonaxe.html?format=raw#_lonaxe">lonaxe</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html?format=raw">./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.pro</a>
 <table>
@@ -2070,5 +1973,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/VECTEUR/vecteur.html?format=raw#_cv_cm2normal">cv_cm2normal</a></td>
-<td class="docstat partialdoc">partially documented</td>
+<td class="docstat notdoc">not documented</td>
 </tr>
 
@@ -2080,12 +1983,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/VECTEUR/vecteur.html?format=raw#_vecteur">vecteur</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw">./ToBeReviewed/PLOTS/VECTEUR/velovect.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">VELOVECT</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -2115,28 +2010,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw">./ToBeReviewed/PLOTS/reinitplt.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw#_reinitplt">reinitplt</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/style.html?format=raw">./ToBeReviewed/PLOTS/style.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/style.html?format=raw#_style">style</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/PLOTS/symbols.html?format=raw">./ToBeReviewed/PLOTS/symbols.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/PLOTS/symbols.html?format=raw#_symbols">symbols</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw">./ToBeReviewed/POSTSCRIPT/calibre.pro</a>
 <table>
@@ -2204,28 +2075,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/chkeywd.html?format=raw">./ToBeReviewed/STRING/chkeywd.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/chkeywd.html?format=raw#_chkeywd">chkeywd</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/STRING/delchr.html?format=raw">./ToBeReviewed/STRING/delchr.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/delchr.html?format=raw#_DELCHR">DELCHR</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/STRING/getfile.html?format=raw">./ToBeReviewed/STRING/getfile.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/getfile.html?format=raw#_getfile">getfile</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/getwrd.html?format=raw">./ToBeReviewed/STRING/getwrd.pro</a>
 <table>
@@ -2236,12 +2083,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/isnumber.html?format=raw">./ToBeReviewed/STRING/isnumber.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/isnumber.html?format=raw#_isnumber">isnumber</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/lenstr.html?format=raw">./ToBeReviewed/STRING/lenstr.pro</a>
 <table>
@@ -2252,12 +2091,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/nwrds.html?format=raw">./ToBeReviewed/STRING/nwrds.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/nwrds.html?format=raw#_nwrds">nwrds</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/putfile.html?format=raw">./ToBeReviewed/STRING/putfile.pro</a>
 <table>
@@ -2268,12 +2099,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/str_size.html?format=raw">./ToBeReviewed/STRING/str_size.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/str_size.html?format=raw#_STR_SIZE">STR_SIZE</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/string2struct.html?format=raw">./ToBeReviewed/STRING/string2struct.pro</a>
 <table>
@@ -2284,17 +2107,4 @@
 </tr>
 
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_string2struct">string2struct</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/STRING/strkeywd.html?format=raw">./ToBeReviewed/STRING/strkeywd.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/strkeywd.html?format=raw#_strkeywd">strkeywd</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/strrepl.html?format=raw">./ToBeReviewed/STRING/strrepl.pro</a>
 <table>
@@ -2305,12 +2115,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/strright.html?format=raw">./ToBeReviewed/STRING/strright.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/strright.html?format=raw#_strright">strright</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/strsci.html?format=raw">./ToBeReviewed/STRING/strsci.pro</a>
 <table>
@@ -2321,12 +2123,4 @@
 </tr>
 
-</table><a href="./ToBeReviewed/STRING/strtok.html?format=raw">./ToBeReviewed/STRING/strtok.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">Strtok</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./ToBeReviewed/STRING/strwhere.html?format=raw">./ToBeReviewed/STRING/strwhere.pro</a>
 <table>
@@ -2334,12 +2128,4 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/STRING/strwhere.html?format=raw#_strwhere">strwhere</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
-</table><a href="./ToBeReviewed/STRING/tostr.html?format=raw">./ToBeReviewed/STRING/tostr.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./ToBeReviewed/STRING/tostr.html?format=raw#_tostr">tostr</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
Index: /trunk/SRC/Documentation/idldoc_html_output/overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/overview.html	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/overview.html	(revision 142)
@@ -980,9 +980,9 @@
 	<tr>
 	  <td>Routines/methods</td>
-	  <td class="value">         731</td>
+	  <td class="value">         730</td>
 	</tr>
 	<tr>
 	  <td>Lines of code</td>
-	  <td class="value">       57629</td>
+	  <td class="value">       57595</td>
 	</tr>
       </table>
Index: /trunk/SRC/Documentation/idldoc_html_output/search.js
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/search.js	(revision 141)
+++ /trunk/SRC/Documentation/idldoc_html_output/search.js	(revision 142)
@@ -173,51 +173,51 @@
 a[171] = new Array("./Textoidl/textoidl.html", "textoidl.pro", "", "      NAME:         TEXTOIDL   PURPOSE:         Convert a valid TeX string to a valid IDL string for plot labels    CATEGORY:         text strings   CALLING SEQUENCE:         new   textoidl old    INPUTS:         old              TeX string to be converted   Will not be     in                           modified   old may be a string array    KEYWORD PARAMETERS:         FONT             Set to 0 to use hardware font   1 to use                            vector   Note that the only hardware font                            supported is PostScript           TEX_SEQUENCES   return the available TeX sequences          HELP            print out info on use of the function                           and exit    OUTPUTS:         new              IDL string corresponding to old              out   COMMON BLOCKS:   SIDE EFFECTS:   NOTES:           Use the procedure SHOWTEX to get a list of the available TeX           control sequences              The only hardware font for which translation is available is           PostScript             The only device for which hardware font            translation is available is PostScript            The FONT keyword overrides the font selected            by  p font    EXAMPLE:         out   TeXtoIDL Gamma 2   5N_ ed          The string out may be used in XYOUTS or other IDL text         display routines   It will be an uppercase Gamma  with an         exponent of 2  then a plus sign  then an N with the subscript         ed    MODIFICATION HISTORY:          Id: textoidl pro 134 2006 07 07 10:19:08Z navarro            Log: textoidl pro v           Revision 1 7  2004 06 15 17:25:54  mcraig         Fixed bug in regular expression  changed array notation to square brackets           Revision 1 6  2004 01 11 01:49:00  mcraig         Changed format of one array to newer   style to avoidf conflict with function name in astro library            Revision 1 5  2001 11 23 21:10:55  mcraig         Added backslash   to tex sequences in translation table to protect them during regexp search in strsplit            Revision 1 4  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 3  1996 05 09 00:22:17  mcraig         Added error handling  cleaned up documentation            Revision 1 2  1996 02 08 18:52:50  mcraig         Added ability to use hardware fonts for PostScript device            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     RELEASE:          Name: Rel_2_1_2       COPYRIGHT:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details      FUNCTION Textoidl  InputString                       FONT fnt                       HELP hlp                       TEX_SEQUENCES tex_seq     compile_opt idl2  strictarrsubs       Return to caller if there is an error      On_error  2    We begin by deciding on the font   PostScript   0 means use vector      PostScript   0     IF n_elements fnt  EQ 0 THEN BEGIN       get font from  p font         IF  p font NE  1 THEN BEGIN          User wants hardware font              PostScript 1         ENDIF     ENDIF ELSE BEGIN                         get font from FONT keyword         IF fnt NE  1 THEN PostScript   1     ENDELSE     Bomb out if user wants non PostScript hardware font      IF  PostScript EQ 1  AND  d name NE  PS  THEN BEGIN                                                    Device isn t postscript                                                  and user wants hardware                                                 font   Not good          print Warning: No translation for device:  d name         return InputString                    ENDIF           IF keyword_set  tex_seq  THEN BEGIN         table textable          return table 0      ENDIF       IF keyword_set hlp  OR  n_params  EQ 0  THEN BEGIN         print      Convert a TeX string to an IDL string          print      new   TeXtoIDL old          print        old   TeX string to translate                  in          print        new   resulting IDL string                     out          print      Keywords:          print         FONT       set to  1 to translate for vector fonts           print                     DEFAULT     Set to 0 to translate for          print                    hardware font          print          TEX_SEQUENCES   return the available TeX sequences          print          HELP      print this message and exit          print      NOTES:            print           Use SHOWTEX to obtain a list of the available          print           TeX control sequences          print           old may be a string array   If so  new is too          print           The only device for which hardware font          print           translation is available is PostScript          print           The FONT keyword overrides the font selected          print           by  p font          return   1     ENDIF        PostScript has been set to 1 if PostScript fonts are desired      strn   InputString     table   textable POSTSCRIPT PostScript           Greek sub superscripts need to be protected by putting braces     around them if they are unbraced   This will have the result the     it will be difficult to use   as a sub superscript   Get over it       V2 11 Must include the   in from of translation table TeX     sequences to ensure that strsplit properly treats the   in the     TeX sequence  Since strsplit is doing a regexp replace  and   is     special in regexps  need to escape it      strn    strtrans strn   table 0     table 0        strn    strtrans strn   _ table 0     _ table 0        First we translate Greek letters and the like   This makes guessing    alignment of sub superscripts easier  as all special characters will then    be one character long       V2 11 Must include the   in from of translation table TeX     sequences to ensure that strsplit properly treats the   in the     TeX sequence  Since strsplit is doing a regexp replace  and   is     special in regexps  need to escape it      strn   strtrans strn   table 0    table 1          FOR i   0L  n_elements strn 1 DO BEGIN          strn i    translate_sub_super strn i    Take care of sub superscripts     ENDFOR       return strn END ");
 a[172] = new Array("./Textoidl/translate_sub_super.html", "translate_sub_super.pro", "", "   NOTE to future maintainers:     Make sure sub_sup_idl stays before translate_sub_super   At least     for now  when IDL encounters a function and automatically compiles     it  it only compiles the functions in the file up to the named     function   So even if sub_sup_idl was declared with     FORWARD_FUNCTION in translate_sub_super  it would not properly     compile         SPECIAL NOTE:          The file translate_sub_super pro contains two functions          translate_sub_super  and sub_sup_idl   The former is the         generic routine for processing TeX sub superscripts  the         latter is used only by translate_sub_super and has no general         utility   Hence it lives here   You will see documentation for         translate_sub_super second if you use DOC_LIBRARY            NAME:         SUB_SUP_IDL   PURPOSE:         Return the proper IDL font positioning command for TeX         sub superscripts     CATEGORY:         TeXtoIDL   CALLING SEQUENCE:         fnt   sub_sup_idl  strn     INPUTS:         strn        Either   or  _  the TeX super subscript       in                      characters   KEYWORD PARAMETERS:          FORCE_UD   Set this to use  U D instead of  E I for                      sub superscripts            HELP       Set to print useful message and exit    OUTPUTS:         fnt         Either  U  or  E  for superscripts              out                      or  D  or  I  for subscripts    COMMON BLOCKS:   SIDE EFFECTS:   NOTES:         Used only by translate_sub_super   Should be kept in same         file     EXAMPLE:   MODIFICATION HISTORY:          Id: translate_sub_super pro 134 2006 07 07 10:19:08Z navarro            Log: translate_sub_super pro v           Revision 1 5  2000 06 14 19:09:22  mcraig         Changed name of strtok str_token to avoid conflict in IDL 5 3            Revision 1 4  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 3  1996 05 09 00:22:17  mcraig         Changed some function calls to reflect changes in those functions  moved         some code out of the main loop that didn t need to be there  added         documentation            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     RELEASE:          Name: Rel_2_1_2     COPYRIGHT:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details    FUNCTION Sub_sup_idl  token   FORCE_UD   force_ud     compile_opt idl2  strictarrsubs      provide help if needed      IF  n_params  NE 1  OR keyword_set Help  THEN BEGIN         offset                 print  offset Return the proper IDL font positioning command for TeX          print  offset sub superscripts            print  offset fnt   sub_sup_idl  strn           print  offset Inputs:          print  offset offset strn        Either   or  _  the TeX super subscript       in          print  offset offset              characters          print  offset Keywords:          print  offset offset FORCE_UD   Set this to use  U D instead of  E I for          print  offset offset              sub superscripts           print  offset offset HELP       Set to print useful message and exit          print  offset Outputs:          print  offset offset fnt         Either  U  or  E  for superscripts              out          print  offset offset              or  D  or  I  for subscripts          return   1     ENDIF       IF keyword_set force_ud  THEN BEGIN          IF  token EQ   THEN return   U           IF  token EQ  _  THEN return   D          return        ENDIF ELSE BEGIN         IF  token EQ   THEN return   E           IF  token EQ  _  THEN return   I          return        ENDELSE      END        NAME:         TRANSLATE_SUB_SUPER   PURPOSE:         Translate TeX sub superscripts to IDL sub superscripts    CATEGORY:         text strings   CALLING SEQUENCE:         new   translate_sub_super  old     INPUTS:         old         string to be translated from TeX to IDL    in   KEYWORD PARAMETERS:          RECURSED   set if this function is being called                       recursively                             HELP       Set to print useful message and exit    OUTPUTS:         new         string old converted from TeX to IDL       out   COMMON BLOCKS:   SIDE EFFECTS:   NOTES:           For best results  when both a sub and superscript are used            place the shorter of the two first  e g   N a _ bbbb  is           better than  N_ bbbb a            Single character sub super scripts do not need to be           protected by braces            Sub superscripts may be nested  e g   N N_1 N    EXAMPLE:         out   translate_sub_super   N 2_ big            Then out N U2 N Dbig N  which looks like it should on the         display     LIBRARY FUNCTIONS CALLED:         str_token        Text string  mcraig          sub_sup_idl   contained in this file   MODIFICATION HISTORY:          Id: translate_sub_super pro 134 2006 07 07 10:19:08Z navarro            Log: translate_sub_super pro v           Revision 1 5  2000 06 14 19:09:22  mcraig         Changed name of strtok str_token to avoid conflict in IDL 5 3            Revision 1 4  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 3  1996 05 09 00:22:17  mcraig         Changed some function calls to reflect changes in those functions  moved         some code out of the main loop that didn t need to be there  added         documentation            Revision 1 2  1996 02 08 18:54:20  mcraig         Changed default sub superscript size to be  D U rather than  I E to         improve readability of plat annotations            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     RELEASE:          Name: Rel_2_1_2       COPYRIGHT:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details    FUNCTION Translate_sub_super  InputString                                  RECURSED recursed                                  HELP Help     compile_opt idl2  strictarrsubs      Return to caller if error      On_error  2    Offer help if needed and or desired     IF  n_params  NE 1  OR keyword_set help  THEN BEGIN         offset                 print  offset Translate TeX sub superscripts to IDL sub superscripts          print  offset new   translate_sub_super  old           print  offset Inputs:          print  offset offset old         string to be translated from TeX to IDL    in          print  offset Keywords:          print  offset offset RECURSED   set if this function is being called           print  offset offset              recursively                             print  offset offset HELP       Set to print useful message and exit          print  offset Outputs:          print  offset offset new         string old converted from TeX to IDL       out          print  offset Notes:          print  offset offset  For best results  when both a sub and superscript are used          print  offset offset   place the shorter of the two first  e g   N a _ bbbb  is          print  offset offset   better than  N_ bbbb a          print  offset offset  Single character sub super scripts do not need to be          print  offset offset   protected by braces          print  offset offset  Sub superscripts may be nested  e g   N N_1 N          return   1     ENDIF      To allow for nested scripts  use  E I instead of  U D for scripts    when called recursively      IF  NOT keyword_set recursed  THEN         ud   1       ELSE         ud   0     Return to the normal level after making sub superscript unless we    are recursed  which indicates we are processing a nested script      IF keyword_set recursed  THEN fontRestore     ELSE fontRestore    N      Initialize vars for processing scripts      SpcByte    byte   0      We need the BYTE value for a space below      strn   InputString     pos   0     StorePos         RecallPos         OldToken          LenLastScript   0    Grab next sub superscript   Token will be either   or  _    RETURN if no scripts      Token   nexttok strn    _  pos   pos      if pos EQ  1 then return  InputString  nothing to process       FntChange    sub_sup_idl Token     Our approach will be to grab the input string up to the next   or    _  then process the script we ve found      NewString str_token strn Token       WHILE  strlen strn  GT  0 DO  BEGIN    Grab first char of sub superscript          Script   strmid strn  0  1          EndOfScript   0          Position of end of this script          IF  Script EQ   THEN BEGIN     Scripts of more than 1 char              EndOfScript   matchdelim strn                    Script   translate_sub_super strmid strn  1  EndOfScript 1                                              recursed           ENDIF        Grab rest of string _after_ the end of the script                  strn   strmid strn  EndOfScript 1                          strlen strn EndOfScript 1         Find the next script and prepare for processing it          FntChange   sub_sup_idl Token  FORCE_UD   ud          OldToken   Token         Token   nexttok strn   _  POS   pos         If the input is  n 2_j  we want the  2  to be directly above       the  j  rather than having the  j  below and to the right of       the 2   In other words  we want the first below  not the second                 2               2               N               N                J                J       To accomplish this  we need to save the position at which we       begin writing the 2 with a  S  and restore that position with a        R after writing the 2   The first section in the IF block below       handles the  J  above  the thing after the first script   We       don t care if there is another script following   We also padd       the second script with spaces if it is shorter than the first to       make sure that whatever comes out after the scripts starts in       the proper place   The worry is that without the spaces  the       input  N looong _ s    1  will end up with the   starting right       the  s  ends          IF  StorePos EQ  S  THEN BEGIN             StorePos                 RecallPos           calculate the difference in length between this script and the        previous stacked one  removing font change commands  crudely by       guessing that the number of characters this takes is twice the       number of exclamation points   The    1 below is a kludge   I       don t know why  but I need one extra space              NumSpaces   LenLastScript    strlen script    2 strcnt Script              NumSpaces    NumSpaces   1    0             IF NumSpaces GT 0 THEN                 Script   Script   string  replicate SpcByte  NumSpaces            ENDIF ELSE BEGIN             IF  Token NE OldToken  AND  pos EQ 0  THEN BEGIN               The next script immediately folows this one   Arrange to               save the position of the current script so that both begin               with the same horizontal position                  StorePos    S                  RecallPos    R                  LenLastScript   strlen Script    2 strcnt Script              ENDIF         ENDELSE       Continue building the IDL string  adding on our just processed script          NewString   NewString   StorePos   FntChange   Script   RecallPos               FontRestore          IF   pos NE  1   THEN BEGIN       more left to process                  NewString   NewString                   str_token strn  Token             ENDIF ELSE BEGIN                  we are done             NewString   NewString   strn             strn             ENDELSE     ENDWHILE           return  NewString END    ");
-a[173] = new Array("./ToBeReviewed/CALCULS/curl.html", "curl.pro", "", "          NAME:curl     PURPOSE:calcule la composante verticale du rotationnel d un champ   de vecteur horizontaux     CATEGORY:calcule sur les matrices     CALLING SEQUENCE:res curl u v      INPUTS:         u et v deux matrices representant les coordonnes d un         champ de vecteur     KEYWORD PARAMETERS:     OUTPUTS:res: une matrice 2d     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:   les matrices u et v peuvent de 2 a 4 dimensions    attention pour distinger les differents configurations de u et v    xy  xyz  xyt  xyzt  on regarde la variable du common            time qui contient le calendrier en jour julien d IDL auquel          se rapportent u et v ansi que la variable            jpt qui est le nombre de pas de temps a considerer ds time    les tableaux u et v sont decoupes sur le meme domaine   geographique  A cause du decalage des grilles T  U  V et F il est   possiible que ces 2 tableaux n aient pas la meme taille et se   repportent a des indices differents  Si tel est le cas les tableaux   sont redecoupes sur les indices qu ils ont en commun et le dommaine   est redefinit pour qu il colle a ces indices communs    pour eviter ces redecoupes utiliser le mot cles  memeindice ds   domdef pro       les points sur le bord du dessin sont mis a  values f_nan      EXAMPLE:     MODIFICATION HISTORY:Guillaume Roullet  grlod ipsl jussieu fr                            Sebastien Masson  smasson lodyc jussieu fr                         adaptation pour marcher avec un domaine reduit                          21 5 1999: valeurs manquantes a  values f_nan  periodicite          FUNCTION curl  uu  vv     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of curl is based on Arakawa C grid                            U and V grids must therefore be defined       u   litchamp uu     v   litchamp vv      date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1     if  size u 0  NE  size v 0  then return    1      on trouve les points que u et v ont en communs      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey     case 1 of      xyz          size u 0  EQ 3 AND date1 EQ date2 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient            case 1 of              size u 0  NE 3 OR  size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              case 1 of                nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                     nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                   nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                   ELSE :             endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return    1          endcase     calcul du rotationnel            coefu    e1u indice2d replicate 1  nzt           coefu   reform coefu  nx  ny  nzt   over           coefu   coefu umask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan                    coefv    e2v indice2d replicate 1  nzt           coefv   reform coefv  nx  ny  nzt   over           coefv   coefv vmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan           tabf    fmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           div    e1f indice2d e2f indice2d replicate 1  nzt           div   reform div  nx  ny  nzt   over           tabf   tabf div            zu   u temporary coefu           zv   v temporary coefv            psi     shift zv   1  0  0 zv     zu shift zu  0   1  0           psi   tabf psi     mise a  values f_nan de la bordure            if NOT keyword_set key_periodic   OR nx NE jpi then begin             psi 0         values f_nan             psi nx 1         values f_nan          endif          psi  0       values f_nan          psi  ny 1       values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask     pour le trace graphique            domdef   glagmt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   moyenne psi direc nan           END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                      IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                    IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:BEGIN                 print   problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 return   1             end          endcase     calcul du rotationnel            coefu   e1u indice2d umask indice2d jpi jpj firstzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan          coefu   temporary coefu replicate 1  jpt           coefu   reform coefu  nx  ny  jpt   over             coefv   e2v indice2d vmask indice2d jpi jpj firstzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan          coefv   temporary coefv replicate 1  jpt           coefv   reform coefv  nx  ny  jpt   over             tabf    fmask indice2d jpi jpj firstzt e1f indice2d e2f indice2d           tabf   temporary tabf replicate 1  jpt           tabf   reform tabf  nx  ny  jpt   over      calcul du rotationnel            zu   u temporary coefu           zv   v temporary coefv             psi     shift zv   1  0  0 zv     zu shift zu  0   1  0           psi   tabf psi     mise a  values f_nan de la bordure            if NOT keyword_set key_periodic  OR nx NE jpi then begin             psi 0         values f_nan             psi nx 1         values f_nan          endif          psi  0       values f_nan          psi  ny 1       values f_nan          if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask            domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   grossemoyenne psi direc nan          END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           return  report non code        END      xy           ELSE:BEGIN                 xy          indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient            case 1 of              size u 0  NE 2 OR  size v 0  NE 2: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                    IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                   IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                  IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny              END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return    1          endcase     calcul du rotationnel            coefu   e1u indice2d umask indice2d jpi jpj firstzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan          coefv   e2v indice2d vmask indice2d jpi jpj firstzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan          tabf    fmask indice2d jpi jpj firstzt e1f indice2d e2f indice2d             zu   u temporary coefu           zv   v temporary coefv            psi     shift zv   1  0 zv     zu shift zu  0   1           psi   tabf psi      mise a  values f_nan de la bordure            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             psi 0       values f_nan             psi nx 1       values f_nan          endif          psi  0     values f_nan          psi  ny 1     values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask     pour le trace graphique            domdef   glamt indice2d 0  0   glamf indice2d nx 1  0 gphit indice2d 0  0   gphif indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   moyenne psi direc nan         END      endcase      if keyword_set key_performance  THEN print   temps curl  systime 1 tempsun       vargrid    F     varname    vorticity     return  psi end");
-a[174] = new Array("./ToBeReviewed/CALCULS/depth2floatlevel.html", "depth2floatlevel.pro", "", "          NAME:depth2floatlevel     PURPOSE: assez comparable a depth2level mais ici le niveau calcule   est en float  Par ex le niveau 5 4 correspond a une profondeur egale   a gdep 5 4 gdep 6 gdep 5      CATEGORY: SANS BOUCLE     CALLING SEQUENCE:res depth2floatlevel depth2d       INPUTS: depth2d tableau 2d de profondeur  ou une structure repondant   aux criteres de litchamp      KEYWORD PARAMETERS:           NOMASK: pour ne pas masquer les points terres     OUTPUTS: un tableau 2d de float contenant les valeurs des niveaux      COMMON BLOCKS:common pro     SIDE EFFECTS:accepte les vcaleurs a  values f_nan et masque les   points terres a valmask      RESTRICTIONS:     EXAMPLE:        IDL  a jpk 1 1 jpi jpj findgen jpi jpj       IDL  plt  1e6 a floatlevel2depth depth2floatlevel a nocontour       champ nul a 1e 6 pres     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         15 06 2000         FUNCTION depth2floatlevel  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common      depthin   litchamp tab       levelup   depth2level depthin   UPPER   nomask     depthup   level2depth levelup   nomask       levellow   depth2level depthin   lower   nomask     depthlow   level2depth levellow   nomask    calcule de la distance depthlow depthup et gestion du cas ou cette   distance est nulle ou egale a  values f_nan    divi   depthlow depthup    nan   where finite divi  EQ 0     if nan 0  NE  1 then divi nan    0    nan   where divi EQ 0     if nan 0  NE  1 then divi nan     values f_nan   calcule du resultat    res   levelup depthin depthup divi   on masque les points terre a valmask    if NOT keyword_set nomask  then begin       grille mask       if n_elements valmask  EQ 0 then valmask   1e20       terre   where temporary mask    0  EQ 0        if terre 0  NE  1 then res terre    valmask    endif      if keyword_set key_performance  THEN print   temps depth2floatlevel  systime 1 tempsun       return  res end");
-a[175] = new Array("./ToBeReviewed/CALCULS/depth2level.html", "depth2level.pro", "", "          NAME: depth2level     PURPOSE: permet de passer d un tableau 2d de profondeur au tableau   2d correspondant de niveaux      CATEGORY: SANS BOUCLE     CALLING SEQUENCE: res depth2level depth2d      INPUTS: depth2d tableau 2d de profondeur  ou une structure repondant   aux criteres de litchamp      KEYWORD PARAMETERS:           UPPER:  active par defaut  on selectionne le niveau        directement au dessus de la profondeur           LOWER: on selectionne le niveau directement au dessous de la        profondeur            CLOSER: on selectionne le niveau le plus proche de la        profondeur            NOMASK: pour ne pas masquer les points terres     OUTPUTS: un tableau 2d contenant les valeurs des niveaux      COMMON BLOCKS:common pro     SIDE EFFECTS:pour les profondeurs hors des valeurs de gdep  la   valeur  values f_nan est retournee    Si la profondeur est superieur a celle du fond  on retourne   jpk 1dans le cas upper  et  values f_nan ds le cas lower      RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999                         15 6 2000 accepte  values f_nan         FUNCTION depth2level  tab  LOWER   lower  UPPER   upper  CLOSER   closer                           NOMASK   nomask  _extra   ex     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common      upper   1    if keyword_set lower  THEN upper   0     lecture du champ d entree et recuperation de la taille du sous   domaine utilise      in   litchamp tab     grille mask 1 1 gdep nx ny nz firstx firsty firstz lastx lasty lastz     verification de la coherence entre la taille du tableau et le domaine definit par domdef      IF ny EQ 1 THEN in   reform in  nx  ny   over     taille   size in     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:in in firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase         vire les points a  values f_nan    notanumber   where finite in   nan  EQ 1     if notanumber 0  NE  1 then in notanumber    0     on transforme le tableau 2d de profondeur en tableau 2d de niveaux   correspondant aux profondeurs     on passe en tableaux qui ont la taille des tableaux 3d    prof replicate 1 nx ny gdep firstz:lastz      in   in replicate 1  nz       mask01    prof  LT in     mask01   reform mask01  nx  ny  nz     levels   total mask01  3     notvalid   where levels EQ nz     if keyword_set upper  then begin       levels   levels 1       notvalid   where levels EQ  1     ENDIF ELSE notvalid   where levels EQ nz     IF notvalid 0  NE  1 THEN levels notvalid     values f_nan    si closer est active    if keyword_set closer  then begin       test      litchamp tab level2depth levels                      level2depth   levels 1 jpk 1   litchamp tab          test   test    0 test    1        changer   where test GE 0        if changer 0  NE  1 then levels changer     levels changer 1     jpk 1     endif     on replace les points a  values f_nan    if notanumber 0  NE  1 then levels notanumber     values f_nan   on masque les points terres a valmask    if NOT keyword_set nomask  then begin       if n_elements valmask  EQ 0 then valmask   1e20       terre   where mask    0  EQ 0        if terre 0  NE  1 then levels terre    valmask    endif          if keyword_set key_performance  THEN print   temps depth2level  systime 1 tempsun     return  levels end");
-a[176] = new Array("./ToBeReviewed/CALCULS/depth2mask.html", "depth2mask.pro", "", "          NAME: depth2mask     PURPOSE: permet de passer d un tableau 2d de profondeur seuil au   tableau 3d de mask avec des 1 ds les niveaux au dessus de la   profondeur seuil et des 0 en dessous      CATEGORY: SANS BOUCLE     CALLING SEQUENCE: res depth2mask depht2d      INPUTS: depht2d tableau 2d de profondeur seuil  ou une structure repondant   aux criteres de litchamp      KEYWORD PARAMETERS:           UPPER:  active par defaut  on selectionne le niveau        directement au dessus de la profondeur           LOWER: on selectionne le niveau directement au dessous de la        profondeur            CLOSER: on selectionne le niveau le plus proche de la        profondeur      OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de   profondeurs seuil     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999         FUNCTION depth2mask  tab  _extra   ex       compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common     on transforme le tableau 2d de profondeur en tableau 2d de niveaux   correspondant aux profondeurs      niveaux   depth2level tab  _extra   ex     IF niveaux 0  EQ  1 THEN return    1     on transforme le tableau 2d de niveaux en tableau 3d de mask      mask   level2mask niveaux       if keyword_set key_performance  NE 0 THEN print   temps depth2mask  systime 1 tempsun     return  mask end");
-a[177] = new Array("./ToBeReviewed/CALCULS/determ2.html", "determ2.pro", "", "    NAME:determ2     PURPOSE: computes the determinant of n 2 by 2 arrays     CATEGORY: no DO loops and better accuracy     CALLING SEQUENCE: 2 cases:       res   determ2 z2ds        res   determ2 z1d00 z1d01 z1d10 z1d11      INPUTS:       z2ds: an 2 2 n array       or       z1d00 z1d01 z1d10 z1d11: the four n elements arrays       defined as:                z2ds 0  0      z1d00                z2ds 0  1      z1d01                z2ds 1  0      z1d10                z2ds 1  1      z1d11     OUTPUTS: n elements array  the determinent of each 2 2 arrrays     EXAMPLE:     a findgen 2 2 5    print  determ2 a    FOR i 0 4 DO print  determ a i    IDL solution     MODIFICATION HISTORY:             S  Masson  smasson lodyc jussieu fr              July 11th  2002   FUNCTION determ2  a  b  c  d     compile_opt idl2  strictarrsubs     CASE n_params  OF     1:res   a 0  0   a 1  1   a 0  1   a 1  0        4:res   a d c b      ELSE:stop   ENDCASE    RETURN  res END");
-a[178] = new Array("./ToBeReviewed/CALCULS/determ3.html", "determ3.pro", "", "    NAME:determ3     PURPOSE: computes the determinant of n 3 by 3 arrays     CATEGORY: no DO loops and better accuracy     CALLING SEQUENCE:2 cases:       res   determ2 z2ds        res   determ2 in00  in01  in02  in10  in11  in12  in20  in21  in22      INPUTS:       z2ds: an 3 3 n array       or       in00  in01  in02  in10  in11  in12  in20  in21  in22: the nine n       elements arrays defined as:             in00   z2ds 0  0                in01   z2ds 0  1                in02   z2ds 0  2                in10   z2ds 1  0                in11   z2ds 1  1                in12   z2ds 1  2                in20   z2ds 2  0                in21   z2ds 2  1                in22   z2ds 2  2        OUTPUTS: n elements array  the determinent of each 3 3 arrrays     EXAMPLE:     a findgen 3 3 5    print  determ3 a 2    FOR i 0 4 DO print  determ a i 2    IDL solution     MODIFICATION HISTORY:             S  Masson  smasson lodyc jussieu fr              July 11th  2002   FUNCTION determ3  in00  in01  in02  in10  in11  in12  in20  in21  in22     compile_opt idl2  strictarrsubs     IF n_params  EQ 1 THEN BEGIN     in00save   temporary in00      in00   in00save 0  0        in01   in00save 0  1        in02   in00save 0  2        in10   in00save 1  0        in11   in00save 1  1        in12   in00save 1  2        in20   in00save 2  0        in21   in00save 2  1        in22   in00save 2  2      ENDIF    a01    determ2 in10  in20                       in12  in22     a11   determ2 in00  in20                      in02  in22     a21    determ2 in00  in10                       in02  in12     res   in01 a01 in11 a11 in21 a21    IF n_params  EQ 1 THEN in00   temporary in00save     RETURN  res END");
-a[179] = new Array("./ToBeReviewed/CALCULS/div.html", "div.pro", "", "          NAME:div     PURPOSE:calcule la divergence d un champ 2D     CATEGORY:calcule sur les matrices     CALLING SEQUENCE:res div u v      INPUTS:         u et v deux matrices representant les coordonnes d un         champ de vecteur     KEYWORD PARAMETERS:     OUTPUTS:res: une matrice 2d     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:   les matrices u et v peuvent de 2 a 4 dimensions    attention pour distinger les differents configurations de u et v    xy  xyz  xyt  xyzt  on regarde la variable du common            time qui contient le calendrier en jour julien d IDL auquel          se rapportent u et v ansi que la variable            jpt qui est le nombre de pas de temps a considerer ds time    les tableaux u et v sont decoupes sur le meme domaine   geographique  A cause du decalage des grilles T  U  V et F il est   possiible que ces 2 tableaux n aient pas la meme taille et se   repportent a des indices differents  Si tel est le cas les tableaux   sont redecoupes sur les indices qu ils ont en commun et le dommaine   est redefinit pour qu il colle a ces indices communs    pour eviter ces redecoupes utiliser le mot cles  memeindice ds   domdef pro     les points sur le bord du dessin sont mis a  values f_nan     EXAMPLE:     MODIFICATION HISTORY:Guillaume Roullet  grlod ipsl jussieu fr                         Creation : printemps 1998                        Sebastien Masson  smasson lodyc jussieu fr                         adaptation pour marcher avec un domaine reduit                        12 1 2000         FUNCTION div  uu  vv     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of div is based on Arakawa C grid                            U and V grids must therefore be defined       u   litchamp uu     v   litchamp vv       date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1     if  size u 0  NE  size v 0  then return    1      on trouve les points que u et v ont en communs      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey     indice2d   lindgen jpi  jpj     indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1     case 1 of      xyz          size u 0  EQ 3 AND date1 EQ date2 :BEGIN      extraction de u et v sur le domaine qui convient            case 1 of              size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                        nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                        nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                      nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                      ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:BEGIN                 zdiv    1                GOTO  sortie             end                       endcase     calcul de la divergence            zu    e2u indice2d replicate 1  nzt           zu   reform zu  nx  ny  nzt   over           zu   temporary u temporary zu               umask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan            zv    e1v indice2d replicate 1  nzt           zv   reform zv  nx  ny  nzt   over           zv   temporary v temporary zv               vmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan            zdiv   1e6 e1t indice2d e2t indice2d           zdiv    zdiv replicate 1  nzt           zdiv   reform zdiv  nx  ny  nzt   over           zdiv   temporary zdiv zu shift zu  1  0  0 zv shift zv  0  1  0               tmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt      mise a  values f_nan de la bordure            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0         values f_nan             zdiv nx 1         values f_nan          endif          zdiv  0       values f_nan          zdiv  ny 1       values f_nan            zdiv   temporary zdiv             if n_elements valmask  EQ 0 THEN valmask   1e20          terre    where tmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt  EQ 0           if terre 0  NE  1 then zdiv temporary terre    valmask     pour le trace graphique            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   moyenne zdiv direc nan        END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN      extraction de u et v sur le domaine qui convient            case 1 of              size u 0  NE 3 OR  size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                        nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                        nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                      nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                      ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return    1          endcase     calcul de la divergence            zu   e2u indice2d umask indice2d jpi jpj firstzt           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan          zu    zu replicate 1  jpt           zu   reform zu  nx  ny  jpt   over           zu   temporary u temporary zu             zv   e1v indice2d vmask indice2d jpi jpj firstzt           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan          zv    zv replicate 1  jpt           zv   reform zv  nx  ny  jpt   over           zv   temporary v temporary zv             zdiv   1e6 tmask indice2d jpi jpj firstzt e1t indice2d e2t indice2d           zdiv    zdiv replicate 1  jpt           zdiv   reform zdiv  nx  ny  jpt   over           terre    where zdiv EQ 0           zdiv   temporary zdiv zu shift zu  1  0  0 zv shift zv  0  1  0      mise a  values f_nan de la bordure            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0         values f_nan             zdiv nx 1         values f_nan          endif          zdiv  0       values f_nan          zdiv  ny 1       values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          if terre 0  NE  1 then zdiv temporary terre    valmask     pour le trace graphique            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   grossemoyenne zdiv direc nan        END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           return  report non code        END      xy           ELSE:BEGIN                 xy          indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt      extraction de u et v sur le domaine qui convient            case 1 of              size u 0  NE 2 OR  size v 0  NE 2: BEGIN                 zdiv    1                GOTO  sortie             end              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                      nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                      nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                    nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny                    ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return    1          endcase     calcul de la divergence            zu   temporary u e2u indice2d umask indice3d           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan          zv   temporary v e1v indice2d vmask indice3d           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan          zdiv   zu shift zu  1  0 zv shift zv  0  1           zdiv   temporary zdiv tmask indice3d e1t indice2d e2t indice2d      mise a  values f_nan de la bordure            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0       values f_nan             zdiv nx 1       values f_nan          endif          zdiv  0     values f_nan          zdiv  ny 1     values f_nan            zdiv   temporary zdiv 1e6            if n_elements valmask  EQ 0 THEN valmask   1e20          terre    where tmask indice3d  EQ 0           if terre 0  NE  1 then zdiv temporary terre    valmask     pour le trace graphique            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   moyenne zdiv direc nan         END    endcase       sortie:    if keyword_set key_performance  THEN print   temps div  systime 1 tempsun         return  zdiv end");
-a[180] = new Array("./ToBeReviewed/CALCULS/floatlevel2depth.html", "floatlevel2depth.pro", "", "          NAME:floatlevel2depth     PURPOSE: assez comparable a level2depth  C est la fonction inverse   de depth2floatlevel     CATEGORY:SANS BOUCLE     CALLING SEQUENCE:res floatlevel2depth niveau       INPUTS: tableau 2d de niveaux seuil  ou une structure repondant aux   criteres de litchamp      KEYWORD PARAMETERS:          NOMASK: pour ne pas masquer les points terres     OUTPUTS: un tableau 2d contenant des profondeurs     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:        IDL  a gdept jpk 1 1 jpi jpj findgen jpi jpj       IDL  plt  1e6 a floatlevel2depth depth2floatlevel a nocontour       champ nul a 1e 6 pres     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         15 6 2000         FUNCTION floatlevel2depth  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common      flevelin   litchamp tab    on vire les points a  values f_nan    notanumber   where finite flevelin   nan  EQ 1     if notanumber 0  NE  1 then flevelin notanumber    0   on seuil  vire les points terres a valmask par ex     flevelin   0   flevelin    jpk 1    on calcule la profondeur     depthup   level2depth floor flevelin   nomask     depthlow  level2depth ceil flevelin   nomask     weight   flevelin floor flevelin     res   depthup weight depthlow depthup    on replace les points a  values f_nan    if notanumber 0  NE  1 then res notanumber     values f_nan   on masque les points terres a valmask    if NOT keyword_set nomask  then begin       grille mask       if n_elements valmask  EQ 0 then valmask   1e20       terre   where temporary mask    0  EQ 0        if terre 0  NE  1 then res terre    valmask    endif      if keyword_set key_performance  THEN print   temps floatlevel2depth  systime 1 tempsun       return  res end");
-a[181] = new Array("./ToBeReviewed/CALCULS/fsfzpt.html", "fsfzpt.pro", "", "     Ice freezing point        fsfzpt: freezing point of seawater in degrees celsius         units : salinity        pfs        ipss 78                  pressure        pfp      decibars                 temperature     fszfpt   degrees celsius                 freezing pt  reference : unesco tech  papers in the marine science no 28 1978                 eigth report jpots                 annex 6 freezing point of seawater F J Millero pp 29 35  checkvalue: fsfzpt 2 588567 deg c for s 40 0 p 500 decibars   FUNCTION fsfzpt  pfs  pfp     compile_opt idl2  strictarrsubs     RETURN     0 0575   1 710523e 3   sqrt pfs    2 154996e 4   pfs      pfs   7 53e 4   pfp END");
-a[182] = new Array("./ToBeReviewed/CALCULS/grad.html", "grad.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr            FUNCTION grad  field  direc     compile_opt idl2  strictarrsubs    common        IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of grad is based on Arakawa C grid                            U and V grids must therefore be defined       res   litchamp field     taille size res     grille  mask  glam  gphi  gdep  nx  ny nz firstx firsty firstz lastx  lasty  lastz         if n_elements valmask  EQ 0 then valmask   1e20    case strupcase vargrid  of        T :BEGIN          case direc of              x :BEGIN                 divi   e1u firstx:lastx  firsty:lasty                 newmask    umask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    U                 domdef  glamt firstx  0  glamu lastx  0                      gphit 0  firsty  gphiu 0  lasty  gridtype    T U              END              y :BEGIN                divi   e2v firstx:lastx  firsty:lasty                 newmask    vmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    V                 domdef  glamt firstx  0  glamv lastx  0                      gphit 0  firsty  gphiv 0  lasty  gridtype    T V              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           ENDCASE       END        W :BEGIN          case direc of              x :divi   e1u firstx:lastx  firsty:lasty               y :divi   e2v firstx:lastx  firsty:lasty               z :BEGIN                divi   e3t firstz:lastz                 newmask   mask                vargrid    T              END             ELSE:return  report Bad definition of direction argument           endcase       END        U :BEGIN          case direc of              x :BEGIN                divi    shift e1t   1  0 firstx:lastx  firsty:lasty                 newmask   tmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    T                 domdef  glamt firstx  0  glamu lastx                      gphit 0  firsty  gphiu 0  lasty  gridtype    T U              END              y :BEGIN                divi   e2f firstx:lastx  firsty:lasty                 newmask    fmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    F                 domdef  glamu firstx  0  glamf lastx  0                      gphiu 0  firsty  gphif 0  lasty  gridtype    U F              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           endcase       END        V :BEGIN          case direc of              x :BEGIN                divi   e1f firstx:lastx  firsty:lasty                 newmask    fmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    F                 domdef  glamv firstx  0  glamf lastx  0                      gphiv 0  firsty  gphif 0  lasty  gridtype    V F              END              y :BEGIN                divi    shift e2t  0   1 firstx:lastx  firsty:lasty                 newmask   tmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    T                 domdef  glamt firstx  0  glamv lastx  0                      gphit 0  firsty  gphiv 0  lasty  gridtype    T V              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           endcase       END          F :BEGIN            case direc of                x :divi    shift e1v   1  0 firstx:lastx  firsty:lasty                 y :divi    shift e2u  0   1 firstx:lastx  firsty:lasty                 z :divi   e3w firstz:lastz                ELSE:return  report Bad definition of direction argument             endcase         END       ELSE:return  report Bad definition of vargrid     ENDCASE    res   fitintobox res     case 1 of    xy         taille 0  EQ 2:BEGIN          earth   where mask    firstz  EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc of              x :BEGIN                 res    shift res   1  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0              END              y :BEGIN                 res    shift res  0   1 res divi                res  ny 1     values f_nan                if vargrid EQ  T  OR vargrid EQ  U  then res     shift res  0  1                         END             ELSE:return   report Bad definition of direction argument for the type of array           ENDCASE          earth   where newmask    firstz  EQ 0           if earth 0  NE  1 then res earth    valmask       END    xyt         taille 0  EQ 3 AND jpt NE 1:BEGIN          earth   where mask    firstz  EQ 0           if earth 0  NE  1 then BEGIN             earth   earth replicate 1  jpt replicate 1  n_elements earth nx ny lindgen jpt              res earth     values f_nan          ENDIF          divi   divi replicate 1  jpt           case direc of              x :BEGIN                 res    shift res   1  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  V   then res   shift res  1  0  0              END              y :BEGIN                 res    shift res  0   1  0 res divi                res  ny 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0                      END             ELSE:return   report Bad definition of direction argument for the type of array           ENDCASE          earth   where newmask    firstz  EQ 0           if earth 0  NE  1 THEN res earth    valmask       END    xyz         taille 0  EQ 3 AND jpt EQ 1:BEGIN          earth   where mask EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc OF              x :BEGIN                 divi   divi replicate 1  nz                 res    shift res   1  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0  0              END              y :BEGIN                 divi   divi replicate 1  nz                 res    shift res  0   1  0 res divi                res  ny 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0                      END              z :BEGIN                divi   reform replicate 1  nx ny divi  nx  ny  nz                 if nx EQ 1 OR ny EQ 1 then res   reform res  nx  ny  nz                 if vargrid EQ  W  THEN BEGIN                    res    shift res  0  0  1 res divi                   res    0     values f_nan                ENDIF ELSE BEGIN                   res    res shift res  0  0   1 divi                   res    nz 1     values f_nan                ENDELSE                if earth 0  NE  1 then res earth    valmask             END          ENDCASE       END      xyzt         taille 0  EQ 4:BEGIN          earth   where mask replicate 1  jpt  EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc OF              x :BEGIN                 divi   divi replicate 1  nz jpt                 res    shift res   1  0  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1           values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0  0  0              END              y :BEGIN                 divi   divi replicate 1  nz jpt                 res    shift res  0   1  0  0 res divi                res  ny 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0  0                      END              z :BEGIN                divi   replicate 1  nx ny divi                divi   reform divi replicate 1  jpt  nx  ny  nz  jpt   over                 if nx EQ 1 OR ny EQ 1 then res   reform res  nx  ny  nz  jpt                 if vargrid EQ  W  THEN BEGIN                    res    shift res  0  0  1  0 res divi                   res    0       values f_nan                ENDIF ELSE BEGIN                   res    res shift res  0  0   1  0 divi                   res    nz 1       values f_nan                ENDELSE             END          ENDCASE          if earth 0  NE  1 then res earth    valmask       END        endcase    varname    grad of  varname    varunit   varunit m         return  res end      ");
-a[183] = new Array("./ToBeReviewed/CALCULS/grossemoyenne.html", "grossemoyenne.pro", "", "          NAME: grossemoyenne     PURPOSE:  averages a 3  or 4 d time serie field over a selected             geographical area or along the time axis  For one ore more      selected axes  x  y  z  t      CATEGORY:     CALLING SEQUENCE: result   grossemoyenne tab direc BOXZOOM boxzoom      INPUTS: tab   3 or 4d field  direc  x   y   z   t   xy   xz   yz   xyz   xt   yt   zt   xyt   xzt   yzt  or  xyzt       KEYWORD PARAMETERS:    boxzoom    xmin xmax ymin ymax  zmin zmax  pour plus  de detail cf domdef                 boxzoom peut prendre 5 formes:                   vert2   vert1  vert2 lon1  lon2  lat1  lat2                     lon1  lon2  lat1  lat2  vert2 lon1  lon2  lat1  lat2  vert1 vert2                                 NAN: not a number  a activer si l on peut faire veut                 faire une moyenne sans tenir compte de certaines                 valeurs masques de tab                  si les valeurs masques de tab sont la valeur consacree                 par IDL  values f_nan  il suffit de mettre  NAN                  si les valeurs masques de tab on pour valeur a  a doit                 etre differente de 1  correspond a nan                    values f_nan  et de 0  qui desactive nan                  Il faut mettre NAN a                   Rq: en sorties les points de result qui sont NAN                 auront pour valeur a ou  values f_nan                                NODOMDEF: activer si l on ne veut pas passer ds                 domdef bien que le mot cle boxzoom soit present  comme                 c est le cas qd grossemoyenne est appelee via                 checkfield                    INTEGRATION: pour faire une integrale plutot qu une                 moyenne                    SPATIALFIRST  when performing at the same time                 spatial and temporal mean  grossemoyenne is assuming                 that the mask is not changing with the time  In                 consequence  grossemoyenne performs temporal mean                 first and then call moyenne  Activate  SPATIALFIRST if                 you want to perform the spatial mean before the                 temporal mean  Note that if NAN is activated  then                 SPATIALFIRST is activated automatically                     TEMPORALFIRST: to force to perform first temporal                 mean even if nan is activated  see SPATIALFIRST                 explanations                  WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W                  OUTPUTS:      COMMON BLOCKS:   result:un tableau   common    domdef     SIDE EFFECTS: met les valeurs correspondants a la terre a 1e20     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Jerome Vialard  jv lodyc jussieu fr   2 7 98                         Sebastien Masson  smasson lodyc jussieu fr    adaptation pour les tableaux comportants une dimension temporelle                         14 8 98                         15 1 98                         12 3 99 adaptation pour NAN et utilisation de TEMPORARY           PLAN DU PROGRAMME:      I  preliminaires     I 1  determination des directions de moyennes d apres direc     I 2  verification de la taille du tableau d entree     I 3  obtention des facteurs d echelles et du masque sur le sous     domaine concerne par la moyenne   II  moyennes pour les tableaux 3d  x y t      II 1  verification de la coherence de la taille du tableau a     moyenner      II 2  renvoie sur moyenne qd une moyenne sur t est demandee     II 3  differents types de moyennes possibles  III  moyennes pour les tableaux 4d  x y z t      III 1  verification de la coherence de la taille du tableau a     moyenner      III 2  differents types de moyennes possibles  IV   finitions     IV 1  on masque les terres par une valeur a 1e 20     IV 2  on remplace  quand nan ne 1   values f_nan par nan     IV 3  on revient au sous domaine initial        function grossemoyenne  tab  direc  BOXZOOM   boxzoom  INTEGRATION   integration                             NAN   nan  NODOMDEF   nodomdef  WDEPTH   wdepth                             SPATIALFIRST   spatialfirst  TEMPORALFIRST   temporalfirst                             _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance    I  preliminaires     dirt   0   dirx   0   diry   0   dirz   0   dim     aa      I 1  direction s  suivants lesquelles on integre     if   strpos direc   t  ge 0   then dirt   1   if   strpos direc   x  ge 0   then dirx   1   if   strpos direc   y  ge 0   then diry   1   if   strpos direc   z  ge 0   then dirz   1   IF keyword_set NAN  AND  dirx EQ 1 OR diry EQ 1 OR dirz EQ 1        THEN spatialfirst   1   IF keyword_set temporalfirst  THEN spatialfirst   0     I 2  verification de la taille du tableau d entree     taille   size tab    case 1 of     taille 0  eq 1 :return   report Le tableau n a qu une dimension  cas non traite      taille 0  eq 2 :return   report Le tableau n a qu deux dimension  cas non traite      taille 0  eq 3 :BEGIN        dim    3d        if dirx eq 0 and diry eq 0 and dirt eq 0 then return  tab     END     taille 0  eq 4 :BEGIN        dim    4d        if dirx eq 0 and diry eq 0 and dirz eq 0 and dirt eq 0 then return  tab     END     else : return  report Le tableau d entree doit etre a 3 ou 4 dimensions s il ne contient pas de dim temporelle utiliser moyenne    endcase       I 4  obtention des facteurs d echelles et du masque sur le sous     domaine concerne par la moyenne    redefinition du domaine ajuste a boxzoom  a 6 elements    ceci va nous permetre de faire les calcules que sur le sous domaine   comcerne par la moyenne  domdef  suivit de grille nous donne tous   les tableaux de la grille sur le sous domaine      if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1: bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2: bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4: bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5: bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6: bte   Boxzoom       Else: return  report Wrong Definition of Boxzoom      endcase     if NOT keyword_set nodomdef  then BEGIN        savedbox   1b       saveboxparam   boxparam4grmoyenne dat        domdef  bte  GRIDTYPE   vargrid  _extra   ex     ENDIF    ENDIF      attribution du mask et des tableaux de longitude et latitude      grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  WDEPTH   wdepth     I 3  si dirt eq 1 on fait la moyenne temporelle et on envoie ds moyenne     if dirt EQ 1 AND NOT keyword_set spatialfirst  then begin     if dim EQ 3d then BEGIN        case 1 of         taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpt:             res   tab firstx:firstx nx 1                         firsty:firsty ny 1            taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpt:res   tab         else:BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat            return  report Probleme d adequation entre les tailles du domaine nx ny jpt  strtrim nx  1 strtrim ny  1 strtrim jpt  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1          END       ENDCASE       if keyword_set integration  then begin         res   total res  3  nan   nan        ENDIF ELSE BEGIN         if keyword_set nan  then BEGIN           divi   finite res            divi   total temporary divi  3            notanum   where divi EQ 0            res   total res  3  nan   keyword_set nan   1   divi            if notanum 0  NE  1 then res temporary notanum     values f_nan         ENDIF ELSE res   total res  3 1 taille 3         ENDELSE     ENDIF ELSE BEGIN       case 1 of         taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk and taille 4  eq jpt:             res   tab firstx:lastx  firsty:lasty  firstz:lastz            taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz and taille 4  eq jpt:             res   tab firstx:lastx  firsty:lasty              taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz and taille 4  eq jpt:res   tab         taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk and taille 4  eq jpt:             res   tab    firstz:lastz            else:BEGIN             if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat            return  report Probleme d adequation entre les tailles du domaine nx ny nz jpt                               strtrim nx  1 strtrim ny  1 strtrim nz  1                              strtrim jpt  1  et du tableau  strtrim taille 1  1                              strtrim taille 2  1 strtrim taille 3  1                              strtrim taille 4  1          END         endcase       if keyword_set integration  then begin         res   total res  4  nan   nan        ENDIF ELSE BEGIN         if keyword_set nan  then begin           divi   finite res            divi   total temporary divi  4            notanum   where divi EQ 0            res   total res  4   nan 1   divi            if notanum 0  NE  1 then res temporary notanum     values f_nan         ENDIF ELSE res   total res  4 1 taille 4        ENDELSE     ENDELSE     if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return   moyenne temporary res  direc  BOXZOOM   boxzoom  NAN   nan  INTEGRATION   integration  NODOMDEF   nodomdef  WDEPTH   wdepth  _extra   ex    ENDIF ELSE res   tab   IF jpt EQ 1 THEN BEGIN     if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  moyenne reform res   over  direc  BOXZOOM   boxzoom  NAN   nan  INTEGRATION   integration  NODOMDEF   nodomdef  WDEPTH   wdepth  _extra   ex    END       II  Cas serie tableaux 2d  tab3d        if  dim eq  3d  then begin       II 1  verification de la coherence de la taille du tableau a     moyenner    verification de la coherence entre la taille du tableau et le   domaine definit par domdef   le tableau en entree doit avoir soit la taille du domaine total    jpi jpj jpt  soit celle du domaine reduit  nx ny jpt        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpt:           res   tab firstx:firstx nx 1                       firsty:firsty ny 1          taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpt:res   tab       else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny jpt  strtrim nx  1 strtrim ny  1 strtrim jpt  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1        enD     endcase     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      si nan n est pas  values f_nan    on le met a  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER   1  ET   S ASSURER QU ELLE EXISTE BIEN  D OU LES reform nx ny  QUI   PEUVENT SEMBLER INUTILE AU DEPART       if nx EQ 1 OR ny EQ 1 then BEGIN        res   reform res  nx  ny  jpt   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      II 3  differents types de moyennes       if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     mask   mask    0      case 1 of        dirx eq 1  and  diry eq 0  : begin         e   temporary e1 temporary mask          echelle    temporary e replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total echelle msknan  1              ELSE divi   total echelle  1          ENDELSE         res   total temporary res echelle  1  nan   nan divi   1          if msknan 0  NE  1 then BEGIN           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  1                 total temporary echelle  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  : begin         e   temporary e2 temporary mask          if nx EQ 1 OR ny EQ 1 then e   reform e  nx  ny   over          echelle    temporary e replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total echelle msknan  2              ELSE divi   total echelle  2          ENDELSE          res   total temporary res echelle  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  2                 total temporary echelle  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  : begin         echelle    temporary e1 temporary e2 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  1              ELSE divi   total total echelle  1  1          ENDELSE         res   total temporary total temporary res echelle  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  1                 total total temporary echelle  1  1  EQ 0          endif       end     endcase   endif       III  Cas serie tableaux 3d  tab4d      if  dim eq  4d  then begin     III 1  verification de la coherence de la taille du tableau a   moyenner    verification de la coherence entre la taille du tableau et le   domaine definit par domdef    le tableau en entree doit avoir soit la taille du domaine total    jpi jpj jpk jpt  soit celle du domaine reduit  nx ny ny jpt        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk and taille 4  eq jpt:           res   tab firstx:lastx  firsty:lasty  firstz:lastz          taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz and taille 4  eq jpt:           res   tab firstx:lastx  firsty:lasty            taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz and taille 4  eq jpt:res   tab       taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk and taille 4  eq jpt:           res   tab    firstz:lastz          else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny nz jpt                             strtrim nx  1 strtrim ny  1 strtrim nz  1                            strtrim jpt  1  et du tableau  strtrim taille 1  1                            strtrim taille 2  1 strtrim taille 3  1                            strtrim taille 4  1        END     endcase     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 OR jpt EQ 1 then res   reform res  nx  ny  nz  jpt   over      if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      si nan n est pas  values f_nan    on le met a  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER   1  ET   S ASSURER QU ELLE EXISTE BIEN  D OU LES reform nx ny  QUI   PEUVENT SEMBLER INUTILE AU DEPART       if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN        res   reform res  nx  ny  nz  jpt   over        mask    reform mask  nx  ny  nz   over      ENDIF     IF keyword_set key_partialstep  THEN BEGIN   the top of the ocean floor is       IF vargrid EQ  T  OR vargrid EQ  W  THEN bottom   total mask  3          ELSE bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3     we suppress columns with only ocean or land        good   where bottom NE 0 AND bottom NE nz    the bottom of the ocean in 3D index is:       bottom   lindgen nx ny temporary bottom 1L nx ny       IF good 0  NE  1 THEN bottom   bottom good          ELSE bottom    1     ENDIF ELSE bottom    1     III 2  differents types de moyennes       IF keyword_set nan  NE 0 THEN msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  and  dirz eq 0  : BEGIN         e13    temporary e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          echelle    temporary e13 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz  jpt              nan   1           ENDIF           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  1              ELSE divi   total echelle  1          endelse         res   temporary res echelle         res   total temporary res  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  1                 total temporary echelle  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 0  : begin         e23   temporary e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          echelle    temporary e23 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  2              ELSE divi   total echelle  2          endelse         res   total temporary res echelle  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  2                 total temporary echelle  2  EQ 0          endif       end        dirx eq 0  and  diry eq 0  and  dirz eq 1  : begin         e33   replicate 1  1 nx ny e3         e33   reform e33  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e33 bottom     e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e33 bottom     e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e33 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  3              ELSE divi   total echelle  3          endelse         res   total temporary res echelle  3  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  3                 total temporary echelle  3  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 0  : begin         e13   e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          e23   e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          echelle    temporary e13 temporary e23 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  1              ELSE divi   total total echelle  1  1          endelse         res   total total temporary res echelle  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  1                 total total temporary echelle  1  1  EQ 0          endif       end        dirx eq 1  and  diry eq 0  and  dirz eq 1  : begin         e133   e1 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e133 bottom     e1 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e133 bottom     e1 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e133 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  2              ELSE divi   total total echelle  1  2          endelse         res   total total temporary res echelle  1  nan   nan  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  2                 total total temporary echelle  1  2  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 1  : begin         e233   e2 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e233 bottom     e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e233 bottom     e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e233 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  2  2              ELSE divi   total total echelle  2  2          endelse         res   total total temporary res echelle  2  nan   nan  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  2  2                 total total temporary echelle  2  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 1  : begin         e1233    e1 e2 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e1233 bottom     e1 e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e1233 bottom     e1 e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e1233 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total total echelle msknan  1  1  1              ELSE divi   total total total echelle  1  1  1          endelse         res   total total total temporary res echelle  1  nan   nan  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total total temporary testnan  1  1  1                 total total total temporary echelle  1  1  1  EQ 0          endif       end     endcase   endif     if dirt EQ 1 AND keyword_set spatialfirst  then BEGIN     IF  reverse size res   dimension 0  NE jpt THEN BEGIN       print   the last dimension of res is not equal to jpt:  strtrim jpt  2        if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat        return   1     ENDIF     tdim   size res   n_dimensions      if keyword_set integration  then res   total res  tdim  nan   nan        ELSE BEGIN        if keyword_set nan  then BEGIN          testnan   testnan  divi      ENDELSE    ENDIF      IV   finitions       IV 1  on masque les terres par une valeur a 1e 20     valmask   1e 20   terre   where divi EQ 0    IF terre 0  NE  1 THEN BEGIN      res temporary terre    1e 20   ENDIF      IV 2  on remplace  quand nan ne 1   values f_nan par nan     if keyword_set nan  NE 0 then BEGIN      puttonan   where temporary testnan  EQ 0      if puttonan 0  NE  1 then res temporary puttonan     values f_nan     if nan NE 1 then BEGIN        notanumber   where finite res  eq 0        if notanumber 0  NE  1 then res temporary notanumber    nan     ENDIF   ENDIF     IV 3  on se remplace ds le sous domaine qui etait definit a l entree de   moyenne      if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat      if keyword_set key_performance  THEN print   temps grossemoyenne  systime 1 tempsun    return  res     end");
-a[184] = new Array("./ToBeReviewed/CALCULS/hdyn.html", "hdyn.pro", "", "          NAME:hdyn     PURPOSE:calcule la hauteur dynamique par rapport a un etat de   reference pour une profondeur de reference  Cf les mots cles pour   les differentes possibilites     Par defaut l etat de reference est   rho 1020 et la profondeur de reference est gdepw ka  avec ka le   premier niveau W directement au dessus de 1000 m       CATEGORY: calculs de post traitement     CALLING SEQUENCE:res hdyn sn tn      INPUTS:sn et tn sont des tableaux de meme taille representant la   salinite et la temperature      KEYWORD PARAMETERS:            GILL: activer cette cle si on veut faire le calcul de la          hauteur dynamique comme ds le GILL page 215 cad par rapport a          un etat de reference qui varie en profondeur et qui est          determine par une temperature de reference tref a 0 degre et          une salinite de reference sref a 35psu            LEVEL: C est le niveau de reference a prendre  Ce niveau est          definit tel que gdepw level  est la profondeur de reference            SREF: donner une valeur a ce mot cle pour changer la salinite          de reference utiliser ds le calcul lorsque GILL est active                TREF: donner une valeur a ce mot cle pour changer la temperature          de reference utiliser ds le calcul lorsque GILL est active             PROFREF: donner a ce mot cle une profondeur qui sera prise comme          la profondeur de reference  ds ce cas LEVEL n  a aucun          effet  le calcul sera alors effectue jusqu a cette          profondeur en effectuant une interpolation entre le dernier          niveau W au dessus de PROFREF et PROFREF             SURFACE_LEVEL: C est le niveau auquel on veut calculer la          hauteur dynamique  Par defaut c est le niveau 0      OUTPUTS:un tableau de la meme taille que sn et tn representant la   hauteur dynamique calculee a partir d une profondeur de reference   et par rapport a un etat de reference      COMMON BLOCKS:  common pro     SIDE EFFECTS:   les points pour lesquels on nje peut calcule la hauteur dynamique    dont la batymetrie est moins profonde que la profondeur de   reference  sont mis a la valeur  values f_nan     RESTRICTIONS:approximation: la pression en decibars est egale a la   profondeur en metres  la pression augmente de 1bar tous les 10m      EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr            FUNCTION hdyn   tabsn  tabtn  TREF   tref   SREF   sref  PROFREF   profref  LEVEL   level  GILL   gill  SURFACE_LEVEL   surface_level     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common     if NOT keyword_set surface_level  then surface_level   0   utile si GILL est active    if NOT keyword_set tref  then tref   0     if NOT keyword_set sref  then sref   35    on determine si besoin est la profondeur de reference et le niveau   W situe directement au dessus     if keyword_set profref  then begin       rien   where gdepw LE profref  level        level   level 1       za   gdepw level     ENDIF ELSE BEGIN        if NOT keyword_set level  then BEGIN           rien   where gdepw LE 1000  level           level   level 1       ENDIF       profref   gdepw level        za   profref    ENDELSE     tailles   size tabsn     taillet   size tabtn     if total tailles 0:tailles 0  NE taillet 0:taillet 0  NE 0 then       return   report Les tableaux sn et tn doivent avoir la meme taille     if tailles 3  NE jpk then return  report La dim verticale des tableaux sn et tn doit etre egalre a jpk     nx   nxt    ny   nyt    case  size tabsn 0  OF       3:BEGIN           case 1 of             tailles 1  eq jpi and tailles 2  eq jpj: BEGIN                sn   tabsn firstxt:lastxt  firstyt:lastyt                   tn   tabtn firstxt:lastxt  firstyt:lastyt                end             tailles 1  eq  nx and tailles 2  eq  ny:BEGIN                 sn   tabsn                tn   tabtn             end             else:return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if keyword_set gill  then             rhonref   rhon replicate sref nx  ny  jpk replicate tref nx  ny  jpk   insitu             ELSE rhonref   1020           vol rhonref rhon sn tn   insitu rhonref          e33d   replicate 1  nx ny e3t          e33d   reform e33d  nx  ny  jpk   over           terre   where tmask firstxt:lastxt  firstyt:lastyt    EQ 0           if terre 0  NE  1 then vol terre     values f_nan          case level of             0:hdyn  100 profref gdepw 0 vol    0              1:hdyn  100 vol e33d    0 profref gdepw 1 vol    1              ELSE:hdyn  100 total   vol e33d    surface_level: level 1  3                  profref gdepw level vol    level           endcase       END       4:BEGIN           case 1 of             tailles 1  eq jpi and tailles 2  eq jpj AND tailles 4  EQ jpt: BEGIN                sn   tabsn firstxt:lastxt  firstyt:lastyt                     tn   tabtn firstxt:lastxt  firstyt:lastyt                  end             tailles 1  eq  nx and tailles 2  eq  ny AND tailles 4  EQ jpt:BEGIN                 sn   tabsn                tn   tabtn             end             else:return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          if keyword_set gill  then             rhonref   rhon replicate sref nx  ny  jpk  jpt replicate tref nx  ny  jpk  jpt   insitu             ELSE rhonref   1020           vol rhonref rhon sn tn   insitu rhonref          e33d   replicate 1  nx ny e3t          e33d   e33d replicate 1  jpt           e33d   reform e33d  nx  ny  jpk  jpt   over           mask   tmask firstxt:lastxt  firstyt:lastyt             mask   mask replicate 1  jpt           terre   where mask EQ 0           if terre 0  NE  1 then vol terre     values f_nan          case level of             0:hdyn  100 profref gdepw 0 vol    0                1:hdyn  100 vol e33d    0   profref gdepw 1 vol    1                ELSE:hdyn  100 total   vol e33d    surface_level: level 1    3                  profref gdepw level vol    level             endcase       END       ELSE: return   report cas non code     ENDCASE    varunit    cm     varname    Dynamic Height  href strtrim round profref  1 m     IF keyword_set key_performance  THEN print   temps hdyn  systime 1 tempsun      return  hdyn end");
-a[185] = new Array("./ToBeReviewed/CALCULS/level2depth.html", "level2depth.pro", "", "            NAME:level2depht     PURPOSE: permet de passer d un tableau 2d de niveau au   tableau 2d de profondeur correspondant a ces niveaux     CATEGORY: SANS BOUCLE     CALLING SEQUENCE: res level2depth niveau      INPUTS: niveau tableau 2d de niveaux seuil  ou une structure repondant   aux criteres de litchamp      KEYWORD PARAMETERS:          NOMASK: pour ne pas masquer les points terres     OUTPUTS: un tableau 2d contenant des profondeurs     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999                         14 6 2000 accepte  values f_nan         FUNCTION level2depth  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common     lecture du champ d entree et recuperation de la taille du sous   domaine utilise      niveaux   litchamp tab     grille mask   1   1 gdep nx ny nz firstx firsty firstz lastx lasty lastz     verification de la coherence entre la taille du tableau et le domaine definit par domdef      taille   size niveaux     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:niveaux niveaux firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase       wherenan   where finite niveaux   nan  EQ 1     if wherenan 0  NE  1 then niveaux wherenan    0    niveaux   0   niveaux    jpk 1       gdep   replicate 1  nx ny gdep    niveaux   lindgen nx ny nx ny niveaux    gdep   reform gdep niveaux  nx  ny       if wherenan 0  NE  1 then gdep wherenan     values f_nan    if NOT keyword_set nomask  then begin       if n_elements valmask  EQ 0 then valmask   1e20       terre   where mask    0  EQ 0        if terre 0  NE  1 then gdep terre    valmask    endif      if keyword_set key_performance  THEN print   temps level2depth  systime 1 tempsun     return  gdep end");
-a[186] = new Array("./ToBeReviewed/CALCULS/level2index.html", "level2index.pro", "", "          NAME:level2index     PURPOSE: on veut ds une matrice 3d extraire un tableau 2d  x y  dont   chacun des elements a ete extrait a un niveau specifie par le   tableau 2d level  typiquement  on veut obtenir la salinite le long   d une isopycne que l on a reperee par son niveau    level2index est une fonction qui donne en fonction de level un   tableau 2d d indice qui permettra d extraire le tableau 2d du   tableau 3d      CATEGORY: SANS BOUCLE     CALLING SEQUENCE: index level2index level       INPUTS:level: un tableau 2d de niveaux     KEYWORD PARAMETERS:     OUTPUTS: untableau 2d d indices     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         24 11 1999         FUNCTION level2index  level   un elements de tableau 3d  dont les 2 premieres dimensions sont nx et   ny  dont les coordonnes sont i  j et k a pour indice ds le meme   tableau 3d  i   j nx   k nx ny    level etant donne  pour chaque points de level on connait i  j et k    on peut donc calculer l indice      compile_opt idl2  strictarrsubs      taille   size level     nx   taille 1     ny   taille 2    tableau k nx ny     tabknxny    nx ny long level         return  lindgen nx  ny tabknxny end");
-a[187] = new Array("./ToBeReviewed/CALCULS/level2mask.html", "level2mask.pro", "", "          NAME:level2mask     PURPOSE: permet de passer d un tableau 2d de niveau seuil au   tableau 3d de mask avec des 1 ds les niveaux au dessus du   niveau seuil et des 0 en dessous  et sur      CATEGORY: SANS BOUCLE     CALLING SEQUENCE: res level2mask niveau      INPUTS: niveau tableau 2d de niveaux seuil  ou une structure repondant   aux criteres de litchamp      KEYWORD PARAMETERS:     OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de   niveaux seuil     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999   Setp 2004: boundary level have 0 values and not 1  as it was   explained before in the header  see:   print  array_equal niveau  total level2mask niveau 3            FUNCTION level2mask  tab       compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common     lecture du champ d entree et recuperation de la taille du sous   domaine utilise      niveaux   litchamp tab     grille maskterre   1   1   1 nx ny nz firstx firsty firstz lastx lasty lastz     verification de la coherence entre la taille du tableau et le domaine definit par domdef      IF ny EQ 1 THEN niveaux   reform niveaux  nx  ny   over     taille   size niveaux     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:niveaux niveaux firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase       on transforme le tableau 2d de niveaux en tableau 3d de mask      mask   reform  niveaux 1 indgen nz 1  nx  ny  nz      mask   floor temporary mask    1    mask   temporary mask temporary maskterre           if keyword_set key_performance  THEN print   temps level2mask  systime 1 tempsun     return  mask end");
-a[188] = new Array("./ToBeReviewed/CALCULS/moyenne.html", "moyenne.pro", "", "          NAME: moyenne     PURPOSE:  averages a 2  or 3 d field over a selected             geographical area and along one ore more      selected axes  x  y or z      CATEGORY:     CALLING SEQUENCE: result   moyenne tab direc BOXZOOM boxzoom      INPUTS: tab   2 or 3d field  direc    x   y   z   xy   xz   yz  or  xyz      KEYWORD PARAMETERS:    BOXZOOM    xmin xmax ymin ymax  zmin zmax  pour plus  de detail cf domdef                  boxzoom peut prendre 5 formes:                   vert2   vert1  vert2 lon1  lon2  lat1  lat2                     lon1  lon2  lat1  lat2  vert2 lon1  lon2  lat1                  lat2  vert1 vert2                    NAN: not a number  a activer si l on peut faire veut                 faire une moyenne sans tenir compte de certaines                 valeurs masques de tab                  si les valeurs masques de tab sont la valeur consacree                 par IDL  values f_nan  il suffit de mettre  NAN                  si les valeurs masques de tab on pour valeur a  a doit                 etre differente de 1  correspond a nan                    values f_nan  et de 0  qui desactive nan                  il faut mettre NAN a                   Rq: en sorties les points de result qui sont NAN                 auront pour valeur a ou  values f_nan                    NODOMDEF: activer si l on ne veut pas passer ds                 domdef bien que le mot cle boxzoom soit present  comme                 c est le cas qd moyenne est appelee via checkfield                                 INTEGRATION: pour faire une integrale plutot qu une moyenne               WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W                  OUTPUTS:  result:un tableau      COMMON BLOCKS:  common   domdef     SIDE EFFECTS:met les valeurs correspondants a la terre a 1e20     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Jerome Vialard  jv lodyc jussieu fr   2 7 98                         Sebastien Masson  smasson lodyc jussieu fr                          mise au propre de certains truc  les terres                          14 8 98                         15 1 98                         11 3 99 adaptation pour NAN                         28 7 99 moyennes tableaux 1d         PLAN DU PROGRAMME:      I  preliminaires     I 1  determination des directions de moyennes d apres direc     I 2  verification de la taille du tableau d entree     I 3  obtention des facteurs d echelles et du masque sur le sous     domaine concerne par la moyenne       moyennes pour les tableaux 1d  x y   II  moyennes pour les tableaux 2d  x y      II 1  verification de la coherence de la taille du tableau a     moyenner      II 2  differents types de moyennes possibles  III  moyennes pour les tableaux 3d  x y z      III 1  verification de la coherence de la taille du tableau a     moyenner      III 2  differents types de moyennes possibles  IV   finitions     IV 1  on masque les terres par une valeur a 1e 20     IV 2  on remplace  quand nan ne 1   values f_nan par nan     IV 3  on revient au sous domaine initial      function moyenne  tab  direc  BOXZOOM   boxzoom  INTEGRATION   integration                       NAN   nan  NODOMDEF   nodomdef  WDEPTH   wdepth                       _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance    I  preliminaires     dirt   0   dirx   0   diry   0   dirz   0     I 1  direction s  suivants lesquelles on integre     if   strpos direc   t  ge 0   then dirt   1   if   strpos direc   x  ge 0   then dirx   1   if   strpos direc   y  ge 0   then diry   1   if   strpos direc   z  ge 0   then dirz   1   if  dirx eq 0 and diry eq 0 and dirz eq 0  then return  tab     I 2  verification de la taille du tableau d entree     taille   size tab    case 1 of     taille 0  eq 1 :dim    1d      taille 0  eq 2 :BEGIN       dim    2d        if dirx eq 0 and diry eq 0 then return  tab     END     taille 0  eq 3 :BEGIN       dim    3d        if dirx eq 0 and diry eq 0 and dirz eq 0 then return  tab     END     else : return  report Le tableau d entree doit etre a 2 ou 3 dimensions s il contient une dim temporelle utiliser grossemoyenne    endcase       I 3  obtention des facteurs d echelles et du masque sur le sous     domaine concerne par la moyenne    redefinition du domaine ajuste a boxzoom  a 6 elements    ceci va nous permetre de faire les calcules que sur le sous domaine   comcerne par la moyenne  domdef  suivit de grille nous donne tous   les tableaux de la grille sur le sous domaine      if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6:bte   Boxzoom       Else: return  report Mauvaise Definition de Boxzoom      endcase     if NOT keyword_set nodomdef  then BEGIN        savedbox   1b       saveboxparam   boxparam4moyenne dat        domdef  bte  GRIDTYPE   vargrid  _extra   ex     ENDIF    ENDIF      attribution du mask et des tableaux de longitude et latitude      IF vargrid EQ  W  THEN wdepth   1   grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  WDEPTH   wdepth       II  Cas du tableau 1d       if dim EQ  1d  then BEGIN     if n_elements tab  NE nx ny AND n_elements tab  NE nx ny nz then BEGIN       if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat        return  report Probleme d adequation entre les tailles du domaine et de la boxzoom      ENDIF     case 1 of       nx EQ 1 AND ny EQ 1:BEGIN  vecteur suivant z         case n_elements tab  of           jpk:res   tab firstz:lastz            nz:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if dirz EQ 1 then BEGIN            dim    3d             taille   size reform res  nx  ny  nz          ENDIF ELSE BEGIN           if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE        END       ny EQ 1:BEGIN              vecteur suivant x         case n_elements tab  of           jpi:res   tab firstx:lastx            nx:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if dirx EQ 1 then BEGIN            dim    2d             taille   size reform res  nx  ny          ENDIF ELSE BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE       END       nx EQ 1:BEGIN              vecteur suivant y         case n_elements tab  of           jpj:res   tab firsty:lasty            ny:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if diry EQ 1 then BEGIN           dim    2d            taille   size reform res  nx  ny          ENDIF ELSE BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE        END     endcase   endif       II  Cas du tableau 2d       if  dim eq  2d  then begin       II 1  verification de la coherence de la taille du tableau a     moyenner    verification de la coherence entre la taille du tableau et le   domaine definit par domdef   le tableau en entree doit avoir soit la taille du domaine total    jpi jpj  soit celle du domaine reduit  nx ny        case 1 of       taille 1  eq jpi and taille 2  eq jpj:           res   tab firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:res   tab       else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny  strtrim nx  1 strtrim ny  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1        END     ENDCASE     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      si nan n est pas  values f_nan    on le met a  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER   1  ET   S ASSURER QU ELLE EXISTE BIEN  D OU LES reform nx ny  QUI   PEUVENT SEMBLER INUTILE AU DEPART       if nx EQ 1 OR ny EQ 1 then BEGIN        res   reform res  nx  ny   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      II 3  differents types de moyennes       mask   mask    0      if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  : begin         e   e1 mask         if keyword_set integration  then divi   1           else begin            divi   e           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if ny EQ 1 then divi   reform divi  nx  ny   over            divi   total divi  1          endelse         res   res e         if ny EQ 1 then res   reform res  nx  ny   over          res   total res  1  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           if ny EQ 1 then testnan   reform testnan  nx  ny   over            testnan   total testnan  1 total mask  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  : begin         e   e2 mask         if keyword_set integration  then divi   1           else begin            divi   e           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if ny EQ 1 then divi   reform divi  nx  ny   over            divi   total divi  2          endelse         res   res e         if ny EQ 1 then res   reform res  nx  ny   over          res   total res  2  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           if ny EQ 1 then testnan    reform testnan  nx  ny   over            testnan   total testnan  2 total mask  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  : begin         if keyword_set integration  then divi   1 else BEGIN            IF msknan 0  NE  1 THEN divi   total e1 e2 mask msknan              ELSE divi   total e1 e2 mask          ENDELSE          res   total res e1 e2 mask  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           testnan   total testnan total mask  EQ 0          endif       end     endcase   endif       III  Cas du tableau 3d       if  dim eq  3d  then begin     III 1  verification de la coherence de la taille du tableau a   moyenner    verification de la coherence entre la taille du tableau et le   domaine definit par domdef    le tableau en entree doit avoir soit la taille du domaine total    jpi jpj jpk  soit celle du domaine reduit  nx ny ny        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk:           res   tab firstx:lastx  firsty:lasty  firstz:lastz        taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz:           res   tab firstx:lastx  firsty:lasty          taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz :res   tab       taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk :           res   tab    firstz:lastz        else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny nz  strtrim nx  1 strtrim ny  1 strtrim nz  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1        END     endcase     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      si nan n est pas  values f_nan    on le met a  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER   1  ET   S ASSURER QU ELLE EXISTE BIEN  D OU LES reform nx ny  QUI   PEUVENT SEMBLER INUTILE AU DEPART       if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN        res   reform res  nx  ny  nz   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      IF keyword_set key_partialstep  THEN BEGIN   the top of the ocean floor is       IF vargrid EQ  T  OR vargrid EQ  W  THEN bottom   total mask  3          ELSE bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3     we suppress columns with only ocean or land        good   where bottom NE 0 AND bottom NE nz    the bottom of the ocean in 3D index is:       bottom   lindgen nx ny temporary bottom 1L nx ny       IF good 0  NE  1 THEN bottom   bottom good          ELSE bottom    1     ENDIF ELSE bottom    1     III 2  differents types de moyennes       if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  and  dirz eq 0  : begin         e13   e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else begin           divi   e13 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  1          ENDELSE         res   res e13 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  1  nan   nan divi   1          e13   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total testnan  1 total mask  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 0  : begin         e23   e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else begin           divi   e23 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  2          ENDELSE         res   res e23 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  2  nan   nan divi   1          e23   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan   reform testnan  nx  ny  nz   over            testnan   total testnan  2 total mask  2  EQ 0          endif       end        dirx eq 0  and  diry eq 0  and  dirz eq 1  : begin         e33   replicate 1  1 nx ny e3         e33   reform e33  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e33 bottom     e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e33 bottom     e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else begin           divi   e33 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  3          ENDELSE         res   res e33 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  3  nan   nan divi   1          e33   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total testnan  3 total mask  3  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 0  : begin         e123    e1 e2 replicate 1  nz          e123   reform e123  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e123 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  1  1          ENDELSE         res   res e123 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  1  nan   nan  1  nan   nan     divi   1          e123   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  1  1 total total mask  1  1  EQ 0          endif       end        dirx eq 1  and  diry eq 0  and  dirz eq 1  : begin         e133   e1 e3         e133   reform e133  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e133 bottom     e1 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e133 bottom     e1 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e133 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  1  2          ENDELSE         res   res e133 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  1  nan   nan  2  nan   nan     divi   1          e133   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  1  2 total total mask  1  2  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 1  : begin         e233   e2 e3         e233   reform e233  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e233 bottom     e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e233 bottom     e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e233 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  2  2          ENDELSE         res   res e233 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  2  nan   nan  2  nan   nan     divi   1          e233   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  2  2 total total mask  2  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 1  : begin         e1233    e1 e2 e3         e1233   reform e1233  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e1233 bottom     e1 e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e1233 bottom     e1 e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            if msknan 0  NE  1 then divi   total e1233 mask msknan              ELSE divi   total e1233 mask          ENDELSE         res   total res e1233 mask  nan   nan     divi   1          e1233   1         if msknan 0  NE  1 then begin           testnan    msknan mask           testnan   total testnan total mask  EQ 0          endif       end     endcase   endif      IV   finitions       IV 1  on masque les terres par une valeur a 1e 20     valmask   1e 20   terre   where divi EQ 0    IF terre 0  NE  1 THEN BEGIN     res terre    1e 20   ENDIF       IV 2  on remplace  quand nan ne 1   values f_nan par nan     if keyword_set nan  NE 0 then BEGIN      puttonan   where testnan EQ 0      if puttonan 0  NE  1 then res puttonan     values f_nan     if nan NE 1 then BEGIN        notanumber   where finite res  eq 0        if notanumber 0  NE  1 then res notanumber    nan     ENDIF   ENDIF     IV 3  on se remplace ds le sous domaine qui etait definit a l entree de   moyenne      if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat      if keyword_set key_performance  THEN print   temps moyenne  systime 1 tempsun    return  res     end");
-a[189] = new Array("./ToBeReviewed/CALCULS/norme.html", "norme.pro", "", "          NAME:norme     PURPOSE: calcule la norme d un champ de vecteurs  puis fait une   moyenne eventuelle             Rq1: le champ de vecteur peut etre  2d:xy  3d: xyz ou xyt             4d: xyzt            Rq2: le calcul de la norme est fait avant l eventuelle            moyenne spatiale ou temporelle car la moyenne de la norme            n est pas egale a la norme des moyennes      CATEGORY: calcul de post traitement     CALLING SEQUENCE:res norme champ_de_vecteurs      INPUTS:un tableau 2d  3d ou 4d     KEYWORD PARAMETERS:           BOXZOOM: boxzoom sur laquelle moyenner  par defaut le domaine         selectionner par le dernier domdef effectue            DIREC: t   x   y   z   xy   xz   yz   xyz   xt   yt   zt   xyt           xzt   yzt   xyzt  directions selon lesquelles effectuer les         moyennes      OUTPUTS:tableau a tracer avec plt  pltz ou pltt      COMMON BLOCKS:  common pro     SIDE EFFECTS:          La norme est calculee aux points T  Pour faire ce calcul  on        moyenne les champs U et V aux points T avant de calculer la norme         Au bord des cotes et du domaine  on ne peut pas calculer les        champs U et V aux points T  ces points sont donc a la valeur         values f_nan             lorsqu on fait le calcul sur un domaine geographique reduit         les champs U et V ne comprennent pas forcement le meme nombre        de points  Dans ce cas on redecoupe U et V pour ne garder que        les points en commun  Au passage on refait un domdef qui        redefinit un domaine geographique sur lequel les champs U et V        sont extraits sur les meme points      RESTRICTIONS:          pour savoir a quel type de tableau on a a faire  on teste la        taille de celui ci et les dates donnees par time 0  et        time jpt 1  pour savoir si il y a une dimension        temporelle  Avant de lancer norme s assurer que time et jpt        sont bien definis comme il faut       EXAMPLE:         pour calculer la moyenne de la norme des courants sur tout le       dommaine entre 0 et 50:        IDL  res norme un vn boxzoom 0 50 dir xyz      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          9 6 1999         FUNCTION norme  composanteu  composantev  BOXZOOM   boxzoom  DIREC   direc  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            pour key_performance      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of norme is based on Arakawa C grid                            U and V grids must therefore be defined        if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6:bte   Boxzoom       Else: return  report Mauvaise Definition de Boxzoom      ENDCASE     domdef  boxzoom   ENDIF       if NOT keyword_set direc  then direc   0   construction de u et v aux pts T    u   litchamp composanteu     v   litchamp composantev     date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1      if  size u 0  NE  size v 0  then return    1     vargrid T     varname    norme      valmask   1e20      grilleu   litchamp composanteu   grid     if grilleu EQ   then grilleu    U     grillev   litchamp composantev   grid     if grillev EQ   then grillev    V     IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ  T  AND grillev EQ  T  THEN BEGIN        interpolle    0        return  report cas non code mais facile a faire     ENDIF ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif       on trouve les points que u et v ont en communs      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey       case 1 of      xyz            size u 0  EQ 3 AND date1 EQ date2 :BEGIN             indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1           indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt      extraction de u et v sur le domaine qui convient            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case  size u 3  OF                   nzt:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1  ELSE u   u 1: nx                          IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1  ELSE v   v 1: nx                         IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u 0:ny 1  ELSE u   u  1: ny                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v 0:ny 1  ELSE v   v  1: ny                    end                   jpk:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1   firstzt:lastzt  ELSE u   u 1: nx   firstzt:lastzt                        IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1   firstzt:lastzt  ELSE v   v 1: nx   firstzt:lastzt                       IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u  0:ny 1 firstzt:lastzt  ELSE u   u  1: ny firstzt:lastzt                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v  0:ny 1 firstzt:lastzt  ELSE v   v  1: ny firstzt:lastzt                    end                   ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND  size u 3  EQ jpk AND                 size v 1  EQ jpi AND  size v 2  EQ jpj AND  size u 3  EQ jpk :BEGIN                 u   u indice3d                 v   v indice3d              END             ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     on reform u et v pour s assurer qu aucune dimension n a ete ecrasee            if nzt EQ 1 then begin             u   reform u  nx  ny  nzt   over              v   reform v  nx  ny  nzt   over           endif     construction de u et v aux pts T            a u 0           u u shift u 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution du mask et des tableau de longitude et latitude            mask   tmask indice3d           if nzt EQ 1 then mask   reform mask  nx  ny  nzt   over             if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0   values f_nan          res 0   values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN res mask    valmask   moyennes en tous genres          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   moyenne res direc nan  boxzoom   boxzoom   nodomdef          END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                      IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                    IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     construction de u et v aux pts T            a u 0           u u shift u 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution du mask et des tableau de longitude et latitude   on recupere la grille complette pour etablir un grand mask etendu ds les 4   directions pour couvrir les points pour lesquels un pt terre a ete pris en   compte  faire un petit dessin             mask   tmask indice2d jpi jpj firstzt           if ny EQ 1 then mask   reform mask  nx  ny   over      construction de terre qui contient tous les point a masquer            if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0   values f_nan          res 0   values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN BEGIN              coeftps   lindgen jpt nx ny             coeftps   replicate 1  n_elements mask coeftps             mask    temporary mask replicate 1  jpt              mask  temporary mask    temporary coeftps              res temporary mask    valmask          ENDIF   moyennes en tous genres          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   grossemoyenne res direc nan  boxzoom   boxzoom   nodomdef        END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1           indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt      extraction de u et v sur le domaine qui convient            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case  size u 3  OF                   nzt:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1  ELSE u   u 1: nx                          IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1  ELSE v   v 1: nx                         IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u 0:ny 1  ELSE u   u  1: ny                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v 0:ny 1  ELSE v   v  1: ny                    end                   jpk:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1   firstzt:lastzt  ELSE u   u 1: nx   firstzt:lastzt                        IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1   firstzt:lastzt  ELSE v   v 1: nx   firstzt:lastzt                       IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u  0:ny 1 firstzt:lastzt  ELSE u   u  1: ny firstzt:lastzt                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v  0:ny 1 firstzt:lastzt  ELSE v   v  1: ny firstzt:lastzt                    end                   ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND  size u 3  EQ jpk AND                 size v 1  EQ jpi AND  size v 2  EQ jpj AND  size u 3  EQ jpk :BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt                END             ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     construction de u et v aux pts T            a u 0           u u shift u 1 0 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution du mask et des tableau de longitude et latitude            mask   tmask indice3d           if nzt EQ 1 then mask   reform mask  nx  ny  nzt   over             if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0     values f_nan          res 0     values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN BEGIN              coeftps   lindgen jpt nx ny nzt             coeftps   replicate 1  n_elements mask coeftps             mask    temporary mask replicate 1  jpt              mask  temporary mask    temporary coeftps              res temporary mask    valmask          ENDIF   moyennes en tous genres          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   grossemoyenne res direc nan  boxzoom   boxzoom   nodomdef        END      xy           ELSE:BEGIN                 xy          indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                    IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                   IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                  IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny              END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     on reform u et v pour s assurer qu aucune dimension n a ete ecrasee            if ny EQ 1 then begin             u   reform u  nx  ny   over              v   reform v  nx  ny   over           endif     construction de u et v aux pts T            a u 0           u u shift u 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution du mask et des tableau de longitude et latitude   on recupere la grille complette pour etablir un grand mask etendu ds les 4   directions pour couvrir les points pour lesquels un pt terre a ete pris en   compte  faire un petit dessin             mask   tmask indice2d jpi jpj firstzt           if nyt EQ 1 THEN mask   reform mask  nx  ny   over      construction de terre qui contient tous les point a masquer            if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0 values f_nan          res 0 values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN res mask    valmask   moyennes en tous genres          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   moyenne res direc nan  boxzoom   boxzoom   nodomdef        END      endcase      if keyword_set key_performance  THEN print   temps norme  systime 1 tempsun     return  res end");
-a[190] = new Array("./ToBeReviewed/CALCULS/projectondepth.html", "projectondepth.pro", "", "          NAME:projectondepth     PURPOSE: routine permettant de projeter un champ 3d suivant un   tableau de profondeurs      CATEGORY: sans boucles     CALLING SEQUENCE:res projectondepth arrayin  depthin       INPUTS:         arrayin: un tableau 3d dont la 3eme dimension doit etre egale         a jpk         depthin: un tableau 2d indiquant n chaque point a quel         profondeur projeter            KEYWORD PARAMETERS:none     OUTPUTS:res: un tableau 2d projection du tableau 3d suivant les   profondeurs indiquees par depthin     COMMON BLOCKS:common pro     SIDE EFFECTS: points a  values f_nan qd calcul impossible  points   terres masques a Valmask      RESTRICTIONS:     EXAMPLE:     on contruit un tableau de profondeurs possibles     IDL  a gdept jpk 1 1 jpi jpj findgen jpi jpj    on contruit un tableau a projeter sur ces profondeurs  pour le test   on construit un tableau 3d dont chaque vecteur suivant z est la   profondeur       IDL  arraytest replicate 1 jpi jpj gdept     IDL  arraytest reform arraytest jpi jpj jpk   over    on test la projection du tabeau profondeur sur la profondeur      IDL  plt  1e6 a projectondepth arraytest a nocontour      champ nul a 1e 6 pres       verifcation en projettant la temperature sur la profondeur de la 20    degres par exemple      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         15 6 2000         FUNCTION projectondepth  arrayin  depthin     compile_opt idl2  strictarrsubs      tempsun   systime 1            pour key_performance  common      depth   litchamp depthin     array   litchamp arrayin    petites verifications    tailledepth   size depth     taillearray   size array     if tailledepth 0  NE 2 THEN return  report Depth array must have 2 dimensions     if taillearray 0  NE 3 THEN return  report Array in must have 3 dimensions    verification de la coherence entre la taille du tableau et le   domaine     grille  mask   1   1   1 nx ny nz firstx firsty firstz lastx lasty lastz    case 1 of       tailledepth 1  eq jpi and tailledepth 2  eq jpj:depth depth firstx:lastx  firsty:lasty        tailledepth 1  eq  nx and tailledepth 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du tableau de profondeur     endcase    case 1 OF       taillearray 3  NE jpk:return  report Le tableau 3d doit avoir sa 3eme dimension egale a jpk        taillearray 1  eq jpi and taillearray 2  eq jpj:array array firstx:lastx  firsty:lasty          taillearray 1  eq  nx and taillearray 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du tableau de profondeur     endcase     c est parti      flevel   depth2floatlevel depth    on vire les points a  values f_nan    notanumber   where finite flevel   nan  EQ 1     if notanumber 0  NE  1 then flevel notanumber    0   on seuil  vire les points terres a valmask par ex     flevel   0   flevel    jpk 1       indexup   level2index floor flevel     indexlow   nx ny indexup    out   where indexlow GE nx ny jpk 1     if out 0  NE  1 then indexlow out    indexlow out nx ny      weight   flevel floor flevel     res   array indexup     res   res weight array indexlow res      on replace les points a  values f_nan    if notanumber 0  NE  1 then res notanumber     values f_nan    if out 0  NE  1 then res out     values f_nan   on masque les points terres a valmask    if n_elements valmask  EQ 0 then valmask   1e20    terre   where temporary mask    0  EQ 0     if terre 0  NE  1 then res terre    valmask      if keyword_set key_performance  THEN print   temps projectondepth  systime 1 tempsun     return  res end");
-a[191] = new Array("./ToBeReviewed/CALCULS/remplit.html", "remplit.pro", "", "          Extrapole zinout jpi jpj  sur les continents en utilisant les 4     plus proches voisins masques oceaniquement et construit un nouveau     masque     contenant l ancien masque oceanique PLUSles points extrapoles      Reitere le processus niter fois      C est pas clair  essayez                   Nan: to fill the point which have the value       values f_nan  Whitout this keyword  these point are not filling      and stays at  values f_nan        FUNCTION remplit  zinput  NAN   nan  NITER   niter  BASIQUE   basique  mask   mask  FILLXDIR   fillxdir  FILLYDIR   fillydir  FILLVAL   fillval  _extra   ex     compile_opt idl2  strictarrsubs    common   tempsun   systime 1             pour key_performance   les points non remplis sont masques a valmask   IF n_elements niter  EQ 0 THEN niter   1   IF niter EQ 0 THEN return  zinput   z   zinput   if n_elements key_gridtype  EQ 0 then key_gridtype    c    if keyword_set basique  then begin     oldkey_gridtype   key_gridtype     key_gridtype    c      nx    size zinput 1      ny    size zinput 2      if NOT keyword_set mask  then mmmask   basique ELSE mmmask   mask     if  key_gridtype eq  e  then begin       case vargrid of          T :glam   glamt firstxt:lastxt  firstyt:lastyt           U :glam   glamu firstxu:lastxu  firstyu:lastyu        endcase     endif   ENDIF ELSE grille  mmmask  glam  gphi  gdep  nx  ny  nz  _extra   ex   if keyword_set mask  then mmmask   mask     if  size mmmask 0  EQ 3 THEN mmmask   mmmask    0      if n_elements mmmask  EQ 1 then mmmask   replicate 1b  nx  ny    if keyword_set nan  then begin     nanpoint   where finite z  EQ 0      if nanpoint 0  NE  1 then begin       mmmask nanpoint    0b       z nanpoint    0     endif   ENDIF   mmmask   byte mmmask      on ajoute un cadre de zero a z  mask  e1  e2   comme ca apres on peut faire des shifts ds tous les sens sans se   soucier des bords du domaine      tempdeux   systime 1            pour key_performance  2   nx2   nx 2   case key_gridtype of      c :BEGIN       ztmp   bytarr nx 2  ny 2        ztmp 1:nx  1:ny    mmmask       mmmask   temporary ztmp        ztmp   fltarr nx 2  ny 2        ztmp 1:nx  1:ny    z       if keyword_set key_periodic  AND nx EQ jpi then begin         ztmp 0  1:ny    z jpi 1            ztmp nx 1  1:ny    z 0          endif       z   temporary ztmp      END      e :BEGIN       ztmp   bytarr nx 2  ny 4        ztmp 1:nx  2:ny 1    mmmask       mmmask   temporary ztmp        ztmp   fltarr nx 2  ny 4        ztmp 1:nx  2:ny 1    z       if keyword_set key_periodic  AND nx EQ jpi then begin         ztmp 0  2:ny 1    z jpi 1            ztmp nx 1  2:ny 1    z 0          endif       z   temporary ztmp      END   endcase   IF testvar var   key_performance  EQ 2 THEN       print   temps remplit: on ajoute un cadre de zero   systime 1 tempdeux       iteration        FOR n   1  niter DO BEGIN    on trouve les points coast     tempdeux   systime 1          pour key_performance  2   les points du bord du cadre ne doivent pas etre selectionnes comme   la coast     case key_gridtype of        c :BEGIN         mmmask 0      1b         mmmask nx 1      1b         mmmask  0    1b         mmmask  ny 1    1b       END        e :BEGIN         mmmask 0      1b         mmmask nx 1      1b         mmmask  0:1    1b         mmmask  ny 2:ny 3    1b       END     endcase   liste des points terre restant     IF keyword_set fillxdir  THEN BEGIN   we stop if all the lines  that contains data  have been filled       test   total mmmask 1:nx    1        IF total test EQ 0 test EQ nx  EQ ny 2 THEN GOTO  fini     ENDIF     IF keyword_set fillydir  THEN BEGIN   we stop if all the columns  that contains data  have been filled       test   total mmmask  1:ny  2        IF total test EQ 0 test EQ ny  EQ nx 2 THEN GOTO  fini     ENDIF     land   where mmmask EQ 0      if land 0  EQ  1 then GOTO  fini   les points du bord du cadre doivent maintenant etre dans la terre     case key_gridtype of        c :BEGIN         mmmask 0      0b         mmmask nx 1      0b         mmmask  0    0b         mmmask  ny 1    0b       END        e :BEGIN         mmmask 0      0b         mmmask nx 1      0b         mmmask  0:1    0b         mmmask  ny 2:ny 3    0b       END     endcase     if keyword_set key_periodic  AND nx EQ jpi then begin       mmmask 0      mmmask nx          mmmask nx 1      mmmask 1        endif   liste des voisins mer     case key_gridtype of        c :BEGIN         CASE 1 OF           keyword_set fillxdir :weight   mmmask 1 land mmmask 1 land            keyword_set fillydir :weight   mmmask nx2 land mmmask nx2 land            ELSE:weight   mmmask 1 land mmmask 1 land mmmask nx2 land mmmask nx2 land                 1 sqrt 2 mmmask nx2 1 land mmmask nx2 1 land                              mmmask nx2 1 land mmmask nx2 1 land          ENDCASE       END        e :BEGIN         shifted   glam 0  0  LT glam 0  1          oddeven    land nx2 1 shifted  MOD 2         weight   mmmask 1 land mmmask 1 land               mmmask 2 nx2 land mmmask 2 nx2 land               sqrt 2 mmmask nx2 oddeven land mmmask nx2 1 oddeven land                         mmmask nx2 oddeven land mmmask nx2 1 oddeven land        END     endcase      ok   where weight GT 0      weight   weight ok      coast   land temporary ok        IF testvar var   key_performance  EQ 2 THEN         print   temps remplit: trouver la coast   systime 1 tempdeux     remplissage des points coast       tempdeux   systime 1          pour key_performance  2   on masque z     z   temporary z mmmask       case key_gridtype of        c :BEGIN         CASE 1 OF           keyword_set fillxdir :zcoast   z 1 coast z 1 coast            keyword_set fillydir :zcoast   z nx2 coast z nx2 coast            ELSE:zcoast   z 1 coast z 1 coast z nx2 coast z nx2 coast                 1 sqrt 2 z nx2 1 coast z nx2 1 coast                              z nx2 1 coast z nx2 1 coast          ENDCASE       END        e :BEGIN         oddeven    coast nx2 1 shifted  MOD 2         zcoast   z 1 coast z 1 coast z 2 nx2 coast z 2 nx2 coast               sqrt 2 z nx2 oddeven coast z nx2 1 oddeven coast                         z nx2 oddeven coast z nx2 1 oddeven coast        END     endcase           z coast     temporary zcoast  temporary weight    we update the the boundary conditions of z     if keyword_set key_periodic  AND nx EQ jpi then begin       z 0      z nx          z nx 1      z 1        endif     IV  on reduit le masque       mmmask  temporary coast    1       IF testvar var   key_performance  EQ 2 THEN         print   temps remplit: une iteration   systime 1 tempdeux   ENDFOR  fini:     on masque les valeurs sur les lands restantes     IF n_elements valmask  EQ 0 then valmask   1e20   IF n_elements fillval  EQ 0 THEN fillval   valmask   z   temporary z mmmask   fillval 1b mmmask      on redecoupe le tableau pour retirer le cadre      case key_gridtype of      c :BEGIN       z   z 1:nx  1:ny      END      e :BEGIN       z   z 1:nx  2:ny 1      END   endcase     if keyword_set basique  then key_gridtype   oldkey_gridtype     if keyword_set key_performance  THEN print   temps remplit  systime 1 tempsun    return  z END  ");
-a[192] = new Array("./ToBeReviewed/CALCULS/rhon.html", "rhon.pro", "", "            Calcul de la fonction d etat  issue de eos F            Creation : 1997   G  Roullet      adaptation pour les tableaux z zt xyz xyzt      par seb         FUNCTION rhon  sn  tn  INSITU   insitu  SIGMA_N   sigma_n     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance       sn    1e5   double sn   double tn    1e5         IF keyword_set sigma_n  then insitu   1     taille   size sn     case taille 0  of       0:BEGIN                    z          zrhop 0d          jkmax   1       END        1:BEGIN                    z          zrhop dblarr taille 1           jkmax   taille 1        END        2:BEGIN                    xy  jpt 1  ou zt          zrhop dblarr taille 1 taille 2           if jpt EQ 1 then jkmax   1 ELSE jkmax   taille 1        END        3:BEGIN                    xyz  jpt 1  ou xyt          zrhop dblarr taille 1 taille 2 taille 3           if jpt EQ 1 then jkmax   taille 3  ELSE jkmax   1       END        4:BEGIN                    xyzt          zrhop dblarr taille 1 taille 2 taille 3 taille 4             jkmax   taille 3        END     endcase          FOR jk   0  jkmax 1 DO BEGIN        case taille 0  of          0:BEGIN                 z             ztt   tn             zs   sn          END           1:BEGIN                 z             ztt   tn jk              zs   sn jk            END           2:BEGIN                 xy  jpt 1  ou zt             if jpt EQ 1 then begin                ztt   tn                zs   sn             ENDIF ELSE BEGIN                ztt   tn jk                   zs   sn jk                 ENDELSE          END           3:BEGIN                 xyz  jpt 1  ou xyt             if jpt EQ 1 then begin                ztt   tn    jk                 zs   sn   jk               endif ELSE BEGIN                ztt   tn                zs   sn             ENDELSE          END           4:BEGIN                 xyzt             ztt   tn    jk                zs   sn   jk              END        endcase       if n_elements sigma_n  NE 0 then zh   1000 sigma_n ELSE zh   gdept jk        square root salinity       zsr  sqrt abs zs        compute density pure water at atm pressure       zr1 6 536332e 9 ztt 1 120083e 6 ztt 1 001685e 4 ztt 9 095290e 3 ztt 6 793952e 2 ztt 999 842594       seawater density atm pressure       zr2   5 3875e 9 ztt 8 2467e 7 ztt 7 6438e 5 ztt 4 0899e 3 ztt 0 824493       zr3   1 6546e 6 ztt 1 0227e 4 ztt 5 72466e 3       zr4  4 8314e 4         potential density  reference to the surface        case taille 0  of          0: zrhop       zr4 zs   zr3 zsr   zr2 zs   zr1          1: zrhop jk   zr4 zs   zr3 zsr   zr2 zs   zr1          2:BEGIN              if jpt EQ 1 then zrhop    zr4 zs   zr3 zsr   zr2 zs   zr1               ELSE zrhop jk     zr4 zs   zr3 zsr   zr2 zs   zr1          END          3:BEGIN              if jpt EQ 1 then zrhop   jk   zr4 zs   zr3 zsr   zr2 zs   zr1                ELSE zrhop    zr4 zs   zr3 zsr   zr2 zs   zr1          END          4: zrhop   jk     zr4 zs   zr3 zsr   zr2 zs   zr1       endcase        IF n_elements insitu  EQ 1 THEN BEGIN        add the compression terms          ze    3 508914e 8 ztt 1 248266e 8 ztt 2 595994e 6          zbw    1 296821e 6 ztt 5 782165e 9 ztt 1 045941e 4          zb   zbw   ze   zs            zd    2 042967e 2          zc    7 267926e 5 ztt 2 598241e 3 ztt 0 1571896          zaw    5 939910e 6 ztt 2 512549e 3 ztt 0 1028859 ztt  4 721788          za     zd zsr   zc zs   zaw            zb1   0 1909078 ztt 7 390729 ztt 55 87545          za1   2 326469e 3 ztt 1 553190 ztt 65 00517 ztt 1044 077          zkw   1 361629e 4 ztt 1 852732e 2 ztt 30 41638 ztt 2098 925 ztt 190925 6          zk0   zb1 zsr   za1 zs   zkw         masked in situ density          case taille 0  of             0: zrhop   zrhop    1 0 zh zk0 zh za zh zb              1: zrhop jk    zrhop jk     1 0 zh zk0 zh za zh zb              2:BEGIN                 if jpt EQ 1 then zrhop   zrhop    1 0 zh zk0 zh za zh zb                   ELSE zrhop jk      zrhop jk       1 0 zh zk0 zh za zh zb              END             3:BEGIN                 if jpt EQ 1 then zrhop   jk    zrhop   jk     1 0 zh zk0 zh za zh zb                   ELSE zrhop   zrhop    1 0 zh zk0 zh za zh zb              END             4: zrhop   jk      zrhop   jk       1 0 zh zk0 zh za zh zb           endcase                 ENDIF     ENDFOR         terre   where tn GE 1e6     if terre 0  NE  1 then zrhop terre    valmask     if keyword_set key_performance  THEN print   temps rhon  systime 1 tempsun          return  zrhop END   ");
+a[173] = new Array("./ToBeReviewed/CALCULS/curl.html", "curl.pro", "", "             file_comments   Calculate the vertical component of the curl of a field of horizontal vectors      categories   Calculation on matrixes       param UU   Matrix representing coordinates of a field of vectors      param VV    Matrix representing coordinates of a field of vectors      returns RES   A 2d matrix      uses   common pro      restrictions   U and V matrixes can be 2 or 4d    Beware  to discern differents configuration of U and V  xy  xyz  xyt  xyzt     we look at the variable of the common            time which contain the calendar in IDL julian days to which U and    V refered to  in the same way as the variable            jpt which is the number of time s step to consider in time    U and V arrays ae cut in the same geographic domain  Because of the gap of    T  U  V and F grids  it is possible that these two arrays hase not the same    size and refered to different indexes  In this case  arrays are recut on    common indexesand the domain is redifined to match with these common    indexes  To avoid these recuts  use the keyword  memeindice in domdef pro       Points on the drawing edge are at  values f_nan       history    Guillaume Roullet  grlod ipsl jussieu fr                            Sebastien Masson  smasson lodyc jussieu fr                         adaptation pour marcher avec un domaine reduit                          21 5 1999: valeurs manquantes a  values f_nan  periodicite        version    Id            FUNCTION curl  uu  vv     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            To key_performance      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of curl is based on Arakawa C grid                            U and V grids must therefore be defined       u   litchamp uu     v   litchamp vv      date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1     if  size u 0  NE  size v 0  then return    1      We find common points between U and V      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey     case 1 of      xyz          size u 0  EQ 3 AND date1 EQ date2 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of U and V on the appropriated domain            case 1 of              size u 0  NE 3 OR  size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              case 1 of                nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                     nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                   nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                   ELSE :             endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return    1          endcase     calculation of the curl            coefu    e1u indice2d replicate 1  nzt           coefu   reform coefu  nx  ny  nzt   over           coefu   coefu umask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan                    coefv    e2v indice2d replicate 1  nzt           coefv   reform coefv  nx  ny  nzt   over           coefv   coefv vmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan           tabf    fmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           div    e1f indice2d e2f indice2d replicate 1  nzt           div   reform div  nx  ny  nzt   over           tabf   tabf div            zu   u temporary coefu           zv   v temporary coefv            psi     shift zv   1  0  0 zv     zu shift zu  0   1  0           psi   tabf psi     Edging put at  values f_nan            if NOT keyword_set key_periodic   OR nx NE jpi then begin             psi 0         values f_nan             psi nx 1         values f_nan          endif          psi  0       values f_nan          psi  ny 1       values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask     For the graphic drawing            domdef   glagmt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   moyenne psi direc nan           END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of U and V on the appropriated domain            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                      IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                    IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:BEGIN                 print   problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 return   1             end          endcase     Calculation of the curl            coefu   e1u indice2d umask indice2d jpi jpj firstzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan          coefu   temporary coefu replicate 1  jpt           coefu   reform coefu  nx  ny  jpt   over             coefv   e2v indice2d vmask indice2d jpi jpj firstzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan          coefv   temporary coefv replicate 1  jpt           coefv   reform coefv  nx  ny  jpt   over             tabf    fmask indice2d jpi jpj firstzt e1f indice2d e2f indice2d           tabf   temporary tabf replicate 1  jpt           tabf   reform tabf  nx  ny  jpt   over      Calculation of the curl            zu   u temporary coefu           zv   v temporary coefv             psi     shift zv   1  0  0 zv     zu shift zu  0   1  0           psi   tabf psi     extraction of U and V on the appropriated domain            if NOT keyword_set key_periodic  OR nx NE jpi then begin             psi 0         values f_nan             psi nx 1         values f_nan          endif          psi  0       values f_nan          psi  ny 1       values f_nan          if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask            domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   grossemoyenne psi direc nan          END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           return  report non code        END      xy           ELSE:BEGIN                 xy          indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1               case 1 of              size u 0  NE 2 OR  size v 0  NE 2: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                    IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                   IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                  IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny              END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return    1          endcase     Calculation of the curl            coefu   e1u indice2d umask indice2d jpi jpj firstzt           terreu   where coefu EQ 0           if terreu 0  NE  1 then coefu temporary terreu     values f_nan          coefv   e2v indice2d vmask indice2d jpi jpj firstzt           terrev   where coefv EQ 0           if terrev 0  NE  1 then coefv temporary terrev     values f_nan          tabf    fmask indice2d jpi jpj firstzt e1f indice2d e2f indice2d             zu   u temporary coefu           zv   v temporary coefv            psi     shift zv   1  0 zv     zu shift zu  0   1           psi   tabf psi      Edging put at  values f_nan            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             psi 0       values f_nan             psi nx 1       values f_nan          endif          psi  0     values f_nan          psi  ny 1     values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          terref    where tabf EQ 0           if terref 0  NE  1 then psi temporary terref    valmask     for the graphic drawing            domdef   glamt indice2d 0  0   glamf indice2d nx 1  0 gphit indice2d 0  0   gphif indice2d 0  ny 1  vert1  vert2  gridtype    t   f           if keyword_set direc  then psi   moyenne psi direc nan         END      endcase      if keyword_set key_performance  THEN print   temps curl  systime 1 tempsun       vargrid    F     varname    vorticity     return  psi end");
+a[174] = new Array("./ToBeReviewed/CALCULS/depth2floatlevel.html", "depth2floatlevel.pro", "", "           file_comments   Rather comparable to depth2level but here  the calculated level is in float     For example  the level 5 4 correspond to a depth equal    to gdep 5 4 gdep 6 gdep 5       categories    Without loop       param TAB  in required    2d depth array  or a structure respecting litchamp criterions       keyword NOMASK   To do not mask land points      returns   An 2d array of float containing levels s values       uses   common pro      restrictions   Accept values at  values f_nan and mask land points at valmask       examples      IDL  a jpk 1 1 jpi jpj findgen jpi jpj       IDL  plt  1e6 a floatlevel2depth depth2floatlevel a nocontour       champ nul a 1e 6 pres      history    Sebastien Masson  smasson lodyc jussieu fr                         15 06 2000       version    Id            FUNCTION depth2floatlevel  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            for key_performance  common      depthin   litchamp tab       levelup   depth2level depthin   UPPER   nomask     depthup   level2depth levelup   nomask       levellow   depth2level depthin   lower   nomask     depthlow   level2depth levellow   nomask    calculate the distance depthlow depthup and management of the case    of this distance is null or eqal to  values f_nan    divi   depthlow depthup    nan   where finite divi  EQ 0     if nan 0  NE  1 then divi nan    0    nan   where divi EQ 0     if nan 0  NE  1 then divi nan     values f_nan   calculation of the result    res   levelup depthin depthup divi   We mask land point at valmask    if NOT keyword_set nomask  then begin       grille mask       if n_elements valmask  EQ 0 then valmask   1e20       terre   where temporary mask    0  EQ 0        if terre 0  NE  1 then res terre    valmask    endif      if keyword_set key_performance  THEN print   temps depth2floatlevel  systime 1 tempsun       return  res end");
+a[175] = new Array("./ToBeReviewed/CALCULS/depth2level.html", "depth2level.pro", "", "             file_comments    Allows to pass from a 2d depth array to a corresponding 2d level array       categories   Without loop      param TAB    2d depth array  or a structure respecting litchamp critrions       keyword UPPER    activated by default  We select the level just above the depth      keyword LOWER   We select the level just below the depth       keyword CLOSER    We select the depth s closer level       keyword NOMASK    To do not mask land points      returns    It is a 2d array containing level s values       uses   common pro      restrictions    For depthes out of gdep s values  the value  values f_nan is sent back    if the depth is superior to this one of the bottom  we send back jpk 1 in    the upper case  and  values f_nan in the lower case       history   Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999                         15 6 2000 accepte  values f_nan      version    Id          FUNCTION depth2level  tab  LOWER   lower  UPPER   upper  CLOSER   closer                           NOMASK   nomask  _extra   ex     compile_opt idl2  strictarrsubs      tempsun   systime 1            for key_performance  common      upper   1    if keyword_set lower  THEN upper   0     Reading of the input field and recuperation of the used subdomain s size      in   litchamp tab     grille mask 1 1 gdep nx ny nz firstx firsty firstz lastx lasty lastz     Verification of the coherence between array s size and the defined by domdef domain      IF ny EQ 1 THEN in   reform in  nx  ny   over     taille   size in     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:in in firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase         delete points at  values f_nan    notanumber   where finite in   nan  EQ 1     if notanumber 0  NE  1 then in notanumber    0     We transform the 2d deth value in a 2d array of levels corresponding to depthes     We go on array who have the size of 3d arrays    prof replicate 1 nx ny gdep firstz:lastz      in   in replicate 1  nz       mask01    prof  LT in     mask01   reform mask01  nx  ny  nz     levels   total mask01  3     notvalid   where levels EQ nz     if keyword_set upper  then begin       levels   levels 1       notvalid   where levels EQ  1     ENDIF ELSE notvalid   where levels EQ nz     IF notvalid 0  NE  1 THEN levels notvalid     values f_nan    If closer is activated    if keyword_set closer  then begin       test      litchamp tab level2depth levels                      level2depth   levels 1 jpk 1   litchamp tab          test   test    0 test    1        changer   where test GE 0        if changer 0  NE  1 then levels changer     levels changer 1     jpk 1     endif     We put back points at  values f_nan    if notanumber 0  NE  1 then levels notanumber     values f_nan   We mask land points at valmask    if NOT keyword_set nomask  then begin       if n_elements valmask  EQ 0 then valmask   1e20       terre   where mask    0  EQ 0        if terre 0  NE  1 then levels terre    valmask    endif          if keyword_set key_performance  THEN print   temps depth2level  systime 1 tempsun     return  levels end");
+a[176] = new Array("./ToBeReviewed/CALCULS/depth2mask.html", "depth2mask.pro", "", "             file_comments    Allows to pass from a 2d depth sill array to a 3d array of mask    with one of levels above the sill depth and 0s below       categories   Without loop      param TAB    2d sill depth array  or a structure respecting litchamp critrions       keyword _EXTRA   used to pass your keywords       returns   It is a 3d array containing the mas associated to the 2d sill depth array   profondeurs seuil      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999      version    Id            FUNCTION depth2mask  tab  _extra   ex       compile_opt idl2  strictarrsubs      tempsun   systime 1            For key_performance  common     We transform the 2d deth value in a 2d array of levels corresponding to depthes      niveaux   depth2level tab  _extra   ex     IF niveaux 0  EQ  1 THEN return    1     We transform the 2d array in a 3d array of mask      mask   level2mask niveaux       if keyword_set key_performance  NE 0 THEN print   temps depth2mask  systime 1 tempsun     return  mask end");
+a[177] = new Array("./ToBeReviewed/CALCULS/determ2.html", "determ2.pro", "", "      file_comments   computes the determinant of n 2 by 2 arrays   Z2DS is an 2 2 n array      categories    Without loop       param A  in required    n element array   Defined as z2ds 0  0      z1d00      param B  in required    n element array   Defined as z2ds 0  1      z1d01      param C  in required    n element array   Defined as z2ds 1  0      z1d10      param D  in required    n element array   Defined as z2ds 1  1      z1d11      returns    n elements array  the determinent of each 2 2 arrrays      examples   a findgen 2 2 5    print  determ2 a    FOR i 0 4 DO print  determ a i    IDL solution      history             S  Masson  smasson lodyc jussieu fr              July 11th  2002      version    Id      FUNCTION determ2  a  b  c  d     compile_opt idl2  strictarrsubs     CASE n_params  OF     1:res   a 0  0   a 1  1   a 0  1   a 1  0        4:res   a d c b      ELSE:stop   ENDCASE    RETURN  res END");
+a[178] = new Array("./ToBeReviewed/CALCULS/determ3.html", "determ3.pro", "", "       file_comments   computes the determinant of n 3 by 3 arrays    Z2DS is an 3 3 n array      categories   Without loop      param IN00  in required    It is an n element array   defined by in00   z2ds 0  0         param IN01  in required    It is an n element array   defined by in01   z2ds 0  1         param IN02  in required    It is an n element array   defined by in02   z2ds 0  2         param IN10  in required    It is an n element array   defined by in10   z2ds 1  0           param IN11  in required    It is an n element array   defined by in11   z2ds 1  1           param IN12  in required    It is an n element array   defined by in12   z2ds 1  2           param IN20  in required    It is an n element array   defined by in20   z2ds 2  0           param IN21  in required    It is an n element array   defined by in21   z2ds 2  1           param IN22  in required    It is an n element array   defined by in22   z2ds 2  2         returns    n elements array  the determinent of each 3 3 arrrays      examples   a findgen 3 3 5    print  determ3 a 2    FOR i 0 4 DO print  determ a i 2    IDL solution      history             S  Masson  smasson lodyc jussieu fr              July 11th  2002      version    Id      FUNCTION determ3  in00  in01  in02  in10  in11  in12  in20  in21  in22     compile_opt idl2  strictarrsubs     IF n_params  EQ 1 THEN BEGIN     in00save   temporary in00      in00   in00save 0  0        in01   in00save 0  1        in02   in00save 0  2        in10   in00save 1  0        in11   in00save 1  1        in12   in00save 1  2        in20   in00save 2  0        in21   in00save 2  1        in22   in00save 2  2      ENDIF    a01    determ2 in10  in20                       in12  in22     a11   determ2 in00  in20                      in02  in22     a21    determ2 in00  in10                       in02  in12     res   in01 a01 in11 a11 in21 a21    IF n_params  EQ 1 THEN in00   temporary in00save     RETURN  res END");
+a[179] = new Array("./ToBeReviewed/CALCULS/div.html", "div.pro", "", "             file_comments   calculation of the divergence of a 2d field      categories   Calculation on matrixes      param UU    Matrix representing coordinates of a field of vectors      param VV    Matrix representing coordinates of a field of vectors      returns RES   A 2d matrix      uses   common pro      restrictions   U and V matrixes can be 2 or 4d    Beware  to discern differents configuration of U and V  xy  xyz  xyt  xyzt     we look at the variable of the common            time which contain the calendar in IDL julian days to which U and    V refered to  in the same way as the variable            jpt which is the number of time s step to consider in time    U and V arrays ae cut in the same geographic domain  Because of the gap of    T  U  V and F grids  it is possible that these two arrays hase not the same    size and refered to different indexes  In this case  arrays are recut on    common indexesand the domain is redifined to match with these common    indexes  To avoid these recuts  use the keyword  memeindice in domdef pro       Points on the drawing edge are at  values f_nan         history   Guillaume Roullet  grlod ipsl jussieu fr                         Creation : printemps 1998                        Sebastien Masson  smasson lodyc jussieu fr                         adaptation pour marcher avec un domaine reduit                        12 1 2000       version    Id            FUNCTION div  uu  vv     compile_opt idl2  strictarrsubs      tempsun   systime 1            For key_performance  common      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of div is based on Arakawa C grid                            U and V grids must therefore be defined       u   litchamp uu     v   litchamp vv       date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1     if  size u 0  NE  size v 0  then return    1      We find common points between U and V      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey     indice2d   lindgen jpi  jpj     indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1     case 1 of      xyz          size u 0  EQ 3 AND date1 EQ date2 :BEGIN      extraction of U and V on the appropriated domain            case 1 of              size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                        nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                        nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                      nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                      ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:BEGIN                 zdiv    1                GOTO  sortie             end                       endcase     calcul de la divergence            zu    e2u indice2d replicate 1  nzt           zu   reform zu  nx  ny  nzt   over           zu   temporary u temporary zu               umask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan            zv    e1v indice2d replicate 1  nzt           zv   reform zv  nx  ny  nzt   over           zv   temporary v temporary zv               vmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan            zdiv   1e6 e1t indice2d e2t indice2d           zdiv    zdiv replicate 1  nzt           zdiv   reform zdiv  nx  ny  nzt   over           zdiv   temporary zdiv zu shift zu  1  0  0 zv shift zv  0  1  0               tmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt      Edging put at  values f_nan            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0         values f_nan             zdiv nx 1         values f_nan          endif          zdiv  0       values f_nan          zdiv  ny 1       values f_nan            zdiv   temporary zdiv             if n_elements valmask  EQ 0 THEN valmask   1e20          terre    where tmask indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt:lastzt  EQ 0           if terre 0  NE  1 then zdiv temporary terre    valmask     For the graphic drawing            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   moyenne zdiv direc nan        END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN      extraction of U and V on the appropriated domain            case 1 of              size u 0  NE 3 OR  size v 0  NE 3: return    1              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                        nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                        nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                      nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                      ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return    1          endcase     Calculation of the divergence            zu   e2u indice2d umask indice2d jpi jpj firstzt           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan          zu    zu replicate 1  jpt           zu   reform zu  nx  ny  jpt   over           zu   temporary u temporary zu             zv   e1v indice2d vmask indice2d jpi jpj firstzt           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan          zv    zv replicate 1  jpt           zv   reform zv  nx  ny  jpt   over           zv   temporary v temporary zv             zdiv   1e6 tmask indice2d jpi jpj firstzt e1t indice2d e2t indice2d           zdiv    zdiv replicate 1  jpt           zdiv   reform zdiv  nx  ny  jpt   over           terre    where zdiv EQ 0           zdiv   temporary zdiv zu shift zu  1  0  0 zv shift zv  0  1  0      Edging put at  values f_nan            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0         values f_nan             zdiv nx 1         values f_nan          endif          zdiv  0       values f_nan          zdiv  ny 1       values f_nan            if n_elements valmask  EQ 0 THEN valmask   1e20          if terre 0  NE  1 then zdiv temporary terre    valmask     for the graphic drawing            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   grossemoyenne zdiv direc nan        END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           return  report non code        END      xy           ELSE:BEGIN                 xy          indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1  firstzt      extraction of U and V on the appropriated domain            case 1 of              size u 0  NE 2 OR  size v 0  NE 2: BEGIN                 zdiv    1                GOTO  sortie             end              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case 1 of                   nxu NE nx:if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                      nxv NE nx:if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                      nyu NE ny:if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                    nyv NE ny:if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny                    ELSE :                endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return    1          endcase     Calculation of the divergence            zu   temporary u e2u indice2d umask indice3d           terreu   where zu EQ 0           if terreu 0  NE  1 then zu temporary terreu     values f_nan          zv   temporary v e1v indice2d vmask indice3d           terrev   where zv EQ 0           if terrev 0  NE  1 then zv temporary terrev     values f_nan          zdiv   zu shift zu  1  0 zv shift zv  0  1           zdiv   temporary zdiv tmask indice3d e1t indice2d e2t indice2d      Edging put at  values f_nan            if  NOT keyword_set key_periodic  OR nx NE jpi then begin             zdiv 0       values f_nan             zdiv nx 1       values f_nan          endif          zdiv  0     values f_nan          zdiv  ny 1     values f_nan            zdiv   temporary zdiv 1e6            if n_elements valmask  EQ 0 THEN valmask   1e20          terre    where tmask indice3d  EQ 0           if terre 0  NE  1 then zdiv temporary terre    valmask     for the graphic drawing            vargrid    T           varname    div           varunits    1e6 s 1           domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2  gridtype    t           if keyword_set direc  then  zdiv   moyenne zdiv direc nan         END    endcase       sortie:    if keyword_set key_performance  THEN print   temps div  systime 1 tempsun         return  zdiv end");
+a[180] = new Array("./ToBeReviewed/CALCULS/floatlevel2depth.html", "floatlevel2depth.pro", "", "             file_comments    Rather comparable to level2depth  It is the invert funcion of depth2floatlevel      categories   Without loop      param TAB   2d array of sill levels  or a structure respecting litchamp criterions       keyword NOMASK   To do not mask land points      returns   2d array containing depthes      uses   common pro      examples      IDL  a gdept jpk 1 1 jpi jpj findgen jpi jpj       IDL  plt  1e6 a floatlevel2depth depth2floatlevel a nocontour       null field at 1e 6 pres      history   Sebastien Masson  smasson lodyc jussieu fr                         15 6 2000      version    Id            FUNCTION floatlevel2depth  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            To key_performance  common      flevelin   litchamp tab    We delete points at  values f_nan    notanumber   where finite flevelin   nan  EQ 1     if notanumber 0  NE  1 then flevelin notanumber    0   We sill  delete land points at valmask for example     flevelin   0   flevelin    jpk 1    We caculate the depth     depthup   level2depth floor flevelin   nomask     depthlow  level2depth ceil flevelin   nomask     weight   flevelin floor flevelin     res   depthup weight depthlow depthup    We put back points at  values f_nan    if notanumber 0  NE  1 then res notanumber     values f_nan   We mask land points at valmask    if NOT keyword_set nomask  then begin       grille mask       if n_elements valmask  EQ 0 then valmask   1e20       terre   where temporary mask    0  EQ 0        if terre 0  NE  1 then res terre    valmask    endif      if keyword_set key_performance  THEN print   temps floatlevel2depth  systime 1 tempsun       return  res end");
+a[181] = new Array("./ToBeReviewed/CALCULS/fsfzpt.html", "fsfzpt.pro", "", "     Ice freezing point        fsfzpt: freezing point of seawater in degrees celsius         units : salinity        pfs        ipss 78                  pressure        pfp      decibars                 temperature     fszfpt   degrees celsius                 freezing pt  reference : unesco tech  papers in the marine science no 28 1978                 eigth report jpots                 annex 6 freezing point of seawater F J Millero pp 29 35  checkvalue: fsfzpt 2 588567 deg c for s 40 0 p 500 decibars      todo seb     FUNCTION fsfzpt  pfs  pfp     compile_opt idl2  strictarrsubs     RETURN     0 0575   1 710523e 3   sqrt pfs    2 154996e 4   pfs      pfs   7 53e 4   pfp END");
+a[182] = new Array("./ToBeReviewed/CALCULS/grad.html", "grad.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr       todo seb: remplir les truc              FUNCTION grad  field  direc     compile_opt idl2  strictarrsubs    common        IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of grad is based on Arakawa C grid                            U and V grids must therefore be defined       res   litchamp field     taille size res     grille  mask  glam  gphi  gdep  nx  ny nz firstx firsty firstz lastx  lasty  lastz         if n_elements valmask  EQ 0 then valmask   1e20    case strupcase vargrid  of        T :BEGIN          case direc of              x :BEGIN                 divi   e1u firstx:lastx  firsty:lasty                 newmask    umask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    U                 domdef  glamt firstx  0  glamu lastx  0                      gphit 0  firsty  gphiu 0  lasty  gridtype    T U              END              y :BEGIN                divi   e2v firstx:lastx  firsty:lasty                 newmask    vmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    V                 domdef  glamt firstx  0  glamv lastx  0                      gphit 0  firsty  gphiv 0  lasty  gridtype    T V              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           ENDCASE       END        W :BEGIN          case direc of              x :divi   e1u firstx:lastx  firsty:lasty               y :divi   e2v firstx:lastx  firsty:lasty               z :BEGIN                divi   e3t firstz:lastz                 newmask   mask                vargrid    T              END             ELSE:return  report Bad definition of direction argument           endcase       END        U :BEGIN          case direc of              x :BEGIN                divi    shift e1t   1  0 firstx:lastx  firsty:lasty                 newmask   tmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    T                 domdef  glamt firstx  0  glamu lastx                      gphit 0  firsty  gphiu 0  lasty  gridtype    T U              END              y :BEGIN                divi   e2f firstx:lastx  firsty:lasty                 newmask    fmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    F                 domdef  glamu firstx  0  glamf lastx  0                      gphiu 0  firsty  gphif 0  lasty  gridtype    U F              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           endcase       END        V :BEGIN          case direc of              x :BEGIN                divi   e1f firstx:lastx  firsty:lasty                 newmask    fmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    F                 domdef  glamv firstx  0  glamf lastx  0                      gphiv 0  firsty  gphif 0  lasty  gridtype    V F              END              y :BEGIN                divi    shift e2t  0   1 firstx:lastx  firsty:lasty                 newmask   tmask firstx:lastx  firsty:lasty  firstz:lastz                 vargrid    T                 domdef  glamt firstx  0  glamv lastx  0                      gphit 0  firsty  gphiv 0  lasty  gridtype    T V              END              z :BEGIN                divi   e3w firstz:lastz                 newmask   mask                vargrid    W              END             ELSE:return  report Bad definition of direction argument           endcase       END          F :BEGIN            case direc of                x :divi    shift e1v   1  0 firstx:lastx  firsty:lasty                 y :divi    shift e2u  0   1 firstx:lastx  firsty:lasty                 z :divi   e3w firstz:lastz                ELSE:return  report Bad definition of direction argument             endcase         END       ELSE:return  report Bad definition of vargrid     ENDCASE    res   fitintobox res     case 1 of    xy         taille 0  EQ 2:BEGIN          earth   where mask    firstz  EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc of              x :BEGIN                 res    shift res   1  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0              END              y :BEGIN                 res    shift res  0   1 res divi                res  ny 1     values f_nan                if vargrid EQ  T  OR vargrid EQ  U  then res     shift res  0  1                         END             ELSE:return   report Bad definition of direction argument for the type of array           ENDCASE          earth   where newmask    firstz  EQ 0           if earth 0  NE  1 then res earth    valmask       END    xyt         taille 0  EQ 3 AND jpt NE 1:BEGIN          earth   where mask    firstz  EQ 0           if earth 0  NE  1 then BEGIN             earth   earth replicate 1  jpt replicate 1  n_elements earth nx ny lindgen jpt              res earth     values f_nan          ENDIF          divi   divi replicate 1  jpt           case direc of              x :BEGIN                 res    shift res   1  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  V   then res   shift res  1  0  0              END              y :BEGIN                 res    shift res  0   1  0 res divi                res  ny 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0                      END             ELSE:return   report Bad definition of direction argument for the type of array           ENDCASE          earth   where newmask    firstz  EQ 0           if earth 0  NE  1 THEN res earth    valmask       END    xyz         taille 0  EQ 3 AND jpt EQ 1:BEGIN          earth   where mask EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc OF              x :BEGIN                 divi   divi replicate 1  nz                 res    shift res   1  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0  0              END              y :BEGIN                 divi   divi replicate 1  nz                 res    shift res  0   1  0 res divi                res  ny 1       values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0                      END              z :BEGIN                divi   reform replicate 1  nx ny divi  nx  ny  nz                 if nx EQ 1 OR ny EQ 1 then res   reform res  nx  ny  nz                 if vargrid EQ  W  THEN BEGIN                    res    shift res  0  0  1 res divi                   res    0     values f_nan                ENDIF ELSE BEGIN                   res    res shift res  0  0   1 divi                   res    nz 1     values f_nan                ENDELSE                if earth 0  NE  1 then res earth    valmask             END          ENDCASE       END      xyzt         taille 0  EQ 4:BEGIN          earth   where mask replicate 1  jpt  EQ 0           if earth 0  NE  1 then res earth     values f_nan          case direc OF              x :BEGIN                 divi   divi replicate 1  nz jpt                 res    shift res   1  0  0  0 res divi                if key_periodic EQ 0 OR nx NE jpi THEN res nx 1           values f_nan                if vargrid EQ  T  OR vargrid EQ  V  then res   shift res  1  0  0  0              END              y :BEGIN                 divi   divi replicate 1  nz jpt                 res    shift res  0   1  0  0 res divi                res  ny 1         values f_nan                if vargrid EQ  T  OR vargrid EQ  U   then res   shift res  0  1  0  0                      END              z :BEGIN                divi   replicate 1  nx ny divi                divi   reform divi replicate 1  jpt  nx  ny  nz  jpt   over                 if nx EQ 1 OR ny EQ 1 then res   reform res  nx  ny  nz  jpt                 if vargrid EQ  W  THEN BEGIN                    res    shift res  0  0  1  0 res divi                   res    0       values f_nan                ENDIF ELSE BEGIN                   res    res shift res  0  0   1  0 divi                   res    nz 1       values f_nan                ENDELSE             END          ENDCASE          if earth 0  NE  1 then res earth    valmask       END        endcase    varname    grad of  varname    varunit   varunit m         return  res end      ");
+a[183] = new Array("./ToBeReviewed/CALCULS/grossemoyenne.html", "grossemoyenne.pro", "", "             file_comments     averages a 3  or 4 d time serie field over a selected   geographical area or along the time axis  For one ore more   selected axes  x  y  z  t       categories      param TAB  in required    3 or 4d field      param DIREC  in required     x   y   z   t   xy   xz   yz   xyz   xt   yt   zt     xyt   xzt   yzt  or  xyzt        keyword BOXZOOM      xmin xmax ymin ymax  zmin zmax  to more details  see domdef   boxzoom can have 5 forms:     vert2   vert1  vert2 lon1  lon2  lat1  lat2       lon1  lon2  lat1  lat2  vert2 lon1  lon2  lat1  lat2  vert1 vert2                    keyword NAN    not a number  we activate it if we want to average without considerate some masked values of TAB    If masked values of TAB are values consecrated by IDL values f_nan  wr just have to put NAN    If masked values of TAB are valued a  a must be different of 1  corresponding to nan      values f_nan and of 0  which desactivate nan  We have to put NAN a     Comment: In output  rsult points which are NAN will be valued a or  values f_nan                   keyword NODOMDEF   We activate it if we do not want to pass in domdef even if the keyword boxzoom    is present  like when grossemoyenne is called via checkfield       keyword INTEGRATION    To make an integral rather than an average      keyword SPATIALFIRST    when performing at the same time   spatial and temporal mean  grossemoyenne is assuming   that the mask is not changing with the time  In   consequence  grossemoyenne performs temporal mean   first and then call moyenne  Activate  SPATIALFIRST if   you want to perform the spatial mean before the   temporal mean  Note that if NAN is activated  then   SPATIALFIRST is activated automatically       keyword TEMPORALFIRST    to force to perform first temporal   mean even if nan is activated  see SPATIALFIRST   explanations          keyword WDEPTH    to specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W        uses   result:un tableau    common   domdef      restrictions Put values corresponding to land at 1 e20      history    Jerome Vialard  jv lodyc jussieu fr   2 7 98                         Sebastien Masson  smasson lodyc jussieu fr    adaptation array containing a temporal dimension                          14 8 98                         15 1 98                         12 3 99 adaptation for NAN and utilisation of TEMPORARY      version    Id     function grossemoyenne  tab  direc  BOXZOOM   boxzoom  INTEGRATION   integration                             NAN   nan  NODOMDEF   nodomdef  WDEPTH   wdepth                             SPATIALFIRST   spatialfirst  TEMPORALFIRST   temporalfirst                             _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             For key_performance    I  preliminaries     dirt   0   dirx   0   diry   0   dirz   0   dim     aa      I 1  Directions s  we follow to integrate     if   strpos direc   t  ge 0   then dirt   1   if   strpos direc   x  ge 0   then dirx   1   if   strpos direc   y  ge 0   then diry   1   if   strpos direc   z  ge 0   then dirz   1   IF keyword_set NAN  AND  dirx EQ 1 OR diry EQ 1 OR dirz EQ 1        THEN spatialfirst   1   IF keyword_set temporalfirst  THEN spatialfirst   0     I 2  verification of the input array s size     taille   size tab    case 1 of     taille 0  eq 1 :return   report Le tableau n a qu une dimension  cas non traite      taille 0  eq 2 :return   report Le tableau n a qu deux dimension  cas non traite      taille 0  eq 3 :BEGIN        dim    3d        if dirx eq 0 and diry eq 0 and dirt eq 0 then return  tab     END     taille 0  eq 4 :BEGIN        dim    4d        if dirx eq 0 and diry eq 0 and dirz eq 0 and dirt eq 0 then return  tab     END     else : return  report Le tableau d entree doit etre a 3 ou 4 dimensions s il ne contient pas de dim temporelle utiliser moyenne    endcase       I 3  Obtainment of scale s factors and of the mask on the subdomain concernedby the average    Redefinition of the domain ajusted at boxzoom  at 6 elements    This will allowed us to calculate only in the domain concerned by the average    Domdef  followed by grid give us all arrays of the grid on the subdomain      if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1: bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2: bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4: bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5: bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6: bte   Boxzoom       Else: return  report Wrong Definition of Boxzoom      endcase     if NOT keyword_set nodomdef  then BEGIN        savedbox   1b       saveboxparam   boxparam4grmoyenne dat        domdef  bte  GRIDTYPE   vargrid  _extra   ex     ENDIF    ENDIF      attribution of the mask and of longitude and latitude arrays      grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  WDEPTH   wdepth     I 4  if dirt equal 1  we make the temporal average and we send it in moyenne     if dirt EQ 1 AND NOT keyword_set spatialfirst  then begin     if dim EQ 3d then BEGIN        case 1 of         taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpt:             res   tab firstx:firstx nx 1                         firsty:firsty ny 1            taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpt:res   tab         else:BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat            return  report Probleme d adequation entre les tailles du domaine nx ny jpt  strtrim nx  1 strtrim ny  1 strtrim jpt  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1          END       ENDCASE       if keyword_set integration  then begin         res   total res  3  nan   nan        ENDIF ELSE BEGIN         if keyword_set nan  then BEGIN           divi   finite res            divi   total temporary divi  3            notanum   where divi EQ 0            res   total res  3  nan   keyword_set nan   1   divi            if notanum 0  NE  1 then res temporary notanum     values f_nan         ENDIF ELSE res   total res  3 1 taille 3         ENDELSE     ENDIF ELSE BEGIN       case 1 of         taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk and taille 4  eq jpt:             res   tab firstx:lastx  firsty:lasty  firstz:lastz            taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz and taille 4  eq jpt:             res   tab firstx:lastx  firsty:lasty              taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz and taille 4  eq jpt:res   tab         taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk and taille 4  eq jpt:             res   tab    firstz:lastz            else:BEGIN             if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat            return  report Probleme d adequation entre les tailles du domaine nx ny nz jpt                               strtrim nx  1 strtrim ny  1 strtrim nz  1                              strtrim jpt  1  et du tableau  strtrim taille 1  1                              strtrim taille 2  1 strtrim taille 3  1                              strtrim taille 4  1          END         endcase       if keyword_set integration  then begin         res   total res  4  nan   nan        ENDIF ELSE BEGIN         if keyword_set nan  then begin           divi   finite res            divi   total temporary divi  4            notanum   where divi EQ 0            res   total res  4   nan 1   divi            if notanum 0  NE  1 then res temporary notanum     values f_nan         ENDIF ELSE res   total res  4 1 taille 4        ENDELSE     ENDELSE     if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return   moyenne temporary res  direc  BOXZOOM   boxzoom  NAN   nan  INTEGRATION   integration  NODOMDEF   nodomdef  WDEPTH   wdepth  _extra   ex    ENDIF ELSE res   tab   IF jpt EQ 1 THEN BEGIN     if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  moyenne reform res   over  direc  BOXZOOM   boxzoom  NAN   nan  INTEGRATION   integration  NODOMDEF   nodomdef  WDEPTH   wdepth  _extra   ex    END       II  Case 2d arrays series  tab3d        if  dim eq  3d  then begin       II 1  verification of the coherence of the array s size to average   Verification of the coherence between the array s size and the domain defined by domdef   The input array must have either the total domain s size  jpi jpj jpt  or this    one of the reduced domain  nx ny jpt        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpt:           res   tab firstx:firstx nx 1                       firsty:firsty ny 1          taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpt:res   tab       else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny jpt  strtrim nx  1 strtrim ny  1 strtrim jpt  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1        enD     endcase     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      If nan is not  values f_nan    we put it at  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE   1     AND MAKE SURE THAT IT EXIST  THAT IS WHY WE USE reform nx ny  WHICH CAN    LOOK USELESS AT THE BEGINNING       if nx EQ 1 OR ny EQ 1 then BEGIN        res   reform res  nx  ny  jpt   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      II 3  Different types of average       if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     mask   mask    0      case 1 of        dirx eq 1  and  diry eq 0  : begin         e   temporary e1 temporary mask          echelle    temporary e replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total echelle msknan  1              ELSE divi   total echelle  1          ENDELSE         res   total temporary res echelle  1  nan   nan divi   1          if msknan 0  NE  1 then BEGIN           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  1                 total temporary echelle  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  : begin         e   temporary e2 temporary mask          if nx EQ 1 OR ny EQ 1 then e   reform e  nx  ny   over          echelle    temporary e replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total echelle msknan  2              ELSE divi   total echelle  2          ENDELSE          res   total temporary res echelle  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  2                 total temporary echelle  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  : begin         echelle    temporary e1 temporary e2 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  jpt   over          if keyword_set integration  then divi   1 ELSE BEGIN            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  1              ELSE divi   total total echelle  1  1          ENDELSE         res   total temporary total temporary res echelle  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  1                 total total temporary echelle  1  1  EQ 0          endif       end     endcase   endif       III  Case 3d arrays series  tab4d      if  dim eq  4d  then begin     III 1  Verification of the coherence of the array to average size    Verification of the coherence between the array s size and the domain    defind by domdef    The input array must have either the total domain size  jpi jpj jpk jpt     or this one of the reduced domain  nx ny ny jpt        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk and taille 4  eq jpt:           res   tab firstx:lastx  firsty:lasty  firstz:lastz          taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz and taille 4  eq jpt:           res   tab firstx:lastx  firsty:lasty            taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz and taille 4  eq jpt:res   tab       taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk and taille 4  eq jpt:           res   tab    firstz:lastz          else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny nz jpt                             strtrim nx  1 strtrim ny  1 strtrim nz  1                            strtrim jpt  1  et du tableau  strtrim taille 1  1                            strtrim taille 2  1 strtrim taille 3  1                            strtrim taille 4  1        END     endcase     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 OR jpt EQ 1 then res   reform res  nx  ny  nz  jpt   over      if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      if nan is not  values f_nan    we put it at  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE   1     AND MAKE SURE THAT IT EXIST  THAT IS WHY WE USE reform nx ny  WHICH CAN    LOOK USELESS AT THE BEGINNING       if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN        res   reform res  nx  ny  nz  jpt   over        mask    reform mask  nx  ny  nz   over      ENDIF     IF keyword_set key_partialstep  THEN BEGIN   the top of the ocean floor is       IF vargrid EQ  T  OR vargrid EQ  W  THEN bottom   total mask  3          ELSE bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3     we suppress columns with only ocean or land        good   where bottom NE 0 AND bottom NE nz    the bottom of the ocean in 3D index is:       bottom   lindgen nx ny temporary bottom 1L nx ny       IF good 0  NE  1 THEN bottom   bottom good          ELSE bottom    1     ENDIF ELSE bottom    1     III 2  different average types       IF keyword_set nan  NE 0 THEN msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  and  dirz eq 0  : BEGIN         e13    temporary e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          echelle    temporary e13 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz  jpt              nan   1           ENDIF           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  1              ELSE divi   total echelle  1          endelse         res   temporary res echelle         res   total temporary res  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  1                 total temporary echelle  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 0  : begin         e23   temporary e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          echelle    temporary e23 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  2              ELSE divi   total echelle  2          endelse         res   total temporary res echelle  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  2                 total temporary echelle  2  EQ 0          endif       end        dirx eq 0  and  diry eq 0  and  dirz eq 1  : begin         e33   replicate 1  1 nx ny e3         e33   reform e33  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e33 bottom     e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e33 bottom     e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e33 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total echelle msknan  3              ELSE divi   total echelle  3          endelse         res   total temporary res echelle  3  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total temporary testnan  3                 total temporary echelle  3  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 0  : begin         e13   e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          e23   e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          echelle    temporary e13 temporary e23 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           bottom   bottom replicate 1  jpt      4D bottom                replicate 1  n_elements bottom nx ny nz lindgen jpt            msknan bottom    0           res temporary bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  1              ELSE divi   total total echelle  1  1          endelse         res   total total temporary res echelle  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  1                 total total temporary echelle  1  1  EQ 0          endif       end        dirx eq 1  and  diry eq 0  and  dirz eq 1  : begin         e133   e1 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e133 bottom     e1 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e133 bottom     e1 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e133 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  1  2              ELSE divi   total total echelle  1  2          endelse         res   total total temporary res echelle  1  nan   nan  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  1  2                 total total temporary echelle  1  2  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 1  : begin         e233   e2 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e233 bottom     e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e233 bottom     e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e233 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total echelle msknan  2  2              ELSE divi   total total echelle  2  2          endelse         res   total total temporary res echelle  2  nan   nan  2  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total temporary testnan  2  2                 total total temporary echelle  2  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 1  : begin         e1233    e1 e2 e3         IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e1233 bottom     e1 e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e1233 bottom     e1 e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         echelle    temporary e1233 temporary mask replicate 1  jpt          echelle   reform echelle  nx  ny  nz  jpt   over          if keyword_set integration  then divi   1 ELSE begin            IF msknan 0  NE  1 THEN divi   total total total echelle msknan  1  1  1              ELSE divi   total total total echelle  1  1  1          endelse         res   total total total temporary res echelle  1  nan   nan  1  nan   nan  1  nan   nan divi   1          if msknan 0  NE  1 then begin           echelle   temporary echelle  NE 0           testnan   temporary msknan echelle           testnan   total total total temporary testnan  1  1  1                 total total total temporary echelle  1  1  1  EQ 0          endif       end     endcase   endif     if dirt EQ 1 AND keyword_set spatialfirst  then BEGIN     IF  reverse size res   dimension 0  NE jpt THEN BEGIN       print   the last dimension of res is not equal to jpt:  strtrim jpt  2        if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat        return   1     ENDIF     tdim   size res   n_dimensions      if keyword_set integration  then res   total res  tdim  nan   nan        ELSE BEGIN        if keyword_set nan  then BEGIN          testnan   testnan  divi      ENDELSE    ENDIF      IV   finishing       IV 1  We mask land by a value equal to 1 e 20     valmask   1e 20   terre   where divi EQ 0    IF terre 0  NE  1 THEN BEGIN      res temporary terre    1e 20   ENDIF      IV 2  We replace  when nan equal 1   values f_nan by nan     if keyword_set nan  NE 0 then BEGIN      puttonan   where temporary testnan  EQ 0      if puttonan 0  NE  1 then res temporary puttonan     values f_nan     if nan NE 1 then BEGIN        notanumber   where finite res  eq 0        if notanumber 0  NE  1 then res temporary notanumber    nan     ENDIF   ENDIF     IV 3  We replace in the domain whch was defined at the entry of average     if keyword_set savedbox  THEN restoreboxparam   boxparam4grmoyenne dat      if keyword_set key_performance  THEN print   temps grossemoyenne  systime 1 tempsun    return  res     end");
+a[184] = new Array("./ToBeReviewed/CALCULS/hdyn.html", "hdyn.pro", "", "             file_comments   Calculate the height by rapport to a reference state for a depth reference     See keywords for different possibilities  By default  the state reference    is rho 1020 and the depth reference is gdepw ka  with ka the first W level    directly above 1000 m        categories   Post traiment calculation      param TABSN  in required    array representing the salinity      param TABTN  in required    array representing the temperature Has the same size than SN      keyword GILL We activate this key if we want to calculate the dinamic height    like in the GILL page 215  which means by rapport to a reference state which    vary in depth and which is determinated by a reference temperature tref at 0 C    and a reference salinity sref at 35psu      keyword LEVEL   It is the same reference level to take  This level is defined like    that gdepw level  is the reference depth       keyword SREF    Give a value to this keyword to change the reference salinity used in the    calculation when GILL  is activated           keyword TREF   Give a value to this keyword to change the reference temperature used in the    calculation when GILL  is activated        keyword PROFREF   Give a depth to this keyword which will be considerated as the refeence depth     in this case  LEVEL has not any effect  the calculation will be effectuated    until this depth effecting an interpolation between the the last W level above    PROFREF and PROFREF       keyword SURFACE_LEVEL    It is the level where we wan to calculate the dynamic height  By default  it is    the level 0       returns   An array of the same size of sn and tn representing the dynamic height calculated    from a reference depth nd by rapport to a reference state       uses    common pro      restrictions   Points for which we can not calculate the dynamic height  whose the batymetry    is less deep than the reference depth  are put at the value  values f_nan      restrictions   approximation: The pressure in decibars is equal to the depth in meters  the pressure increase of 1bar all 10m       history   Sebastien Masson  smasson lodyc jussieu fr       version    Id            FUNCTION hdyn   tabsn  tabtn  TREF   tref   SREF   sref  PROFREF   profref  LEVEL   level  GILL   gill  SURFACE_LEVEL   surface_level     compile_opt idl2  strictarrsubs      tempsun   systime 1            for key_performance  common     if NOT keyword_set surface_level  then surface_level   0   useful if GILL is activated    if NOT keyword_set tref  then tref   0     if NOT keyword_set sref  then sref   35    If needed  we determinate the reference depth and the W level situated directly above     if keyword_set profref  then begin       rien   where gdepw LE profref  level        level   level 1       za   gdepw level     ENDIF ELSE BEGIN        if NOT keyword_set level  then BEGIN           rien   where gdepw LE 1000  level           level   level 1       ENDIF       profref   gdepw level        za   profref    ENDELSE     tailles   size tabsn     taillet   size tabtn     if total tailles 0:tailles 0  NE taillet 0:taillet 0  NE 0 then       return   report Les tableaux sn et tn doivent avoir la meme taille     if tailles 3  NE jpk then return  report La dim verticale des tableaux sn et tn doit etre egalre a jpk     nx   nxt    ny   nyt    case  size tabsn 0  OF       3:BEGIN           case 1 of             tailles 1  eq jpi and tailles 2  eq jpj: BEGIN                sn   tabsn firstxt:lastxt  firstyt:lastyt                   tn   tabtn firstxt:lastxt  firstyt:lastyt                end             tailles 1  eq  nx and tailles 2  eq  ny:BEGIN                 sn   tabsn                tn   tabtn             end             else:return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if keyword_set gill  then             rhonref   rhon replicate sref nx  ny  jpk replicate tref nx  ny  jpk   insitu             ELSE rhonref   1020           vol rhonref rhon sn tn   insitu rhonref          e33d   replicate 1  nx ny e3t          e33d   reform e33d  nx  ny  jpk   over           terre   where tmask firstxt:lastxt  firstyt:lastyt    EQ 0           if terre 0  NE  1 then vol terre     values f_nan          case level of             0:hdyn  100 profref gdepw 0 vol    0              1:hdyn  100 vol e33d    0 profref gdepw 1 vol    1              ELSE:hdyn  100 total   vol e33d    surface_level: level 1  3                  profref gdepw level vol    level           endcase       END       4:BEGIN           case 1 of             tailles 1  eq jpi and tailles 2  eq jpj AND tailles 4  EQ jpt: BEGIN                sn   tabsn firstxt:lastxt  firstyt:lastyt                     tn   tabtn firstxt:lastxt  firstyt:lastyt                  end             tailles 1  eq  nx and tailles 2  eq  ny AND tailles 4  EQ jpt:BEGIN                 sn   tabsn                tn   tabtn             end             else:return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          if keyword_set gill  then             rhonref   rhon replicate sref nx  ny  jpk  jpt replicate tref nx  ny  jpk  jpt   insitu             ELSE rhonref   1020           vol rhonref rhon sn tn   insitu rhonref          e33d   replicate 1  nx ny e3t          e33d   e33d replicate 1  jpt           e33d   reform e33d  nx  ny  jpk  jpt   over           mask   tmask firstxt:lastxt  firstyt:lastyt             mask   mask replicate 1  jpt           terre   where mask EQ 0           if terre 0  NE  1 then vol terre     values f_nan          case level of             0:hdyn  100 profref gdepw 0 vol    0                1:hdyn  100 vol e33d    0   profref gdepw 1 vol    1                ELSE:hdyn  100 total   vol e33d    surface_level: level 1    3                  profref gdepw level vol    level             endcase       END       ELSE: return   report cas non code     ENDCASE    varunit    cm     varname    Dynamic Height  href strtrim round profref  1 m     IF keyword_set key_performance  THEN print   temps hdyn  systime 1 tempsun      return  hdyn end");
+a[185] = new Array("./ToBeReviewed/CALCULS/level2depth.html", "level2depth.pro", "", "               file_comments   Allows to pass from a 2d level array to a 2d depth array corresponding o these levels      categories   Without loop      param TAB  in required    2d level array of sill levels  or a structure respecting litchamp criterions       keyword NOMASK   To do not mask land points       returns    2d array containing depthes      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999                         14 6 2000 accepte  values f_nan      version    Id            FUNCTION level2depth  tab  NOMASK   nomask     compile_opt idl2  strictarrsubs      tempsun   systime 1            To key_performance  common     Reading of the input field  and recovery of the used subdomain s size      niveaux   litchamp tab     grille mask   1   1 gdep nx ny nz firstx firsty firstz lastx lasty lastz     verification of the coherence between array s size and the domain definied by domdef      taille   size niveaux     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:niveaux niveaux firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase       wherenan   where finite niveaux   nan  EQ 1     if wherenan 0  NE  1 then niveaux wherenan    0    niveaux   0   niveaux    jpk 1       gdep   replicate 1  nx ny gdep    niveaux   lindgen nx ny nx ny niveaux    gdep   reform gdep niveaux  nx  ny       if wherenan 0  NE  1 then gdep wherenan     values f_nan    if NOT keyword_set nomask  then begin       if n_elements valmask  EQ 0 then valmask   1e20       terre   where mask    0  EQ 0        if terre 0  NE  1 then gdep terre    valmask    endif      if keyword_set key_performance  THEN print   temps level2depth  systime 1 tempsun     return  gdep end");
+a[186] = new Array("./ToBeReviewed/CALCULS/level2index.html", "level2index.pro", "", "             file_comments    We want  from a 3d matrix  to extract a 2d  x y  array whose each element    has been extract from a level specified by the 2d level array  typically     we want to obtain the salinity along an isopycn we have repered by its level    level2index is a function who give  in function of level  a 2d indexes array    which will allow to extract the 2d array from the 3d array       categories   without loop      param LEVEL  in required    A 2d level array      returns   a 2d indexes array      history   Sebastien Masson  smasson lodyc jussieu fr                         24 11 1999      version    Id            FUNCTION level2index  level   An element of 3d array  whose the two first dimensions are nx and ny  whose    coordinates are i  j and k have for index in the same 3d array i   j nx   k nx ny    level given  for  each point of level  we know i  j et k    so we can calculate the index     compile_opt idl2  strictarrsubs      taille   size level     nx   taille 1     ny   taille 2    array k nx ny     tabknxny    nx ny long level         return  lindgen nx  ny tabknxny end");
+a[187] = new Array("./ToBeReviewed/CALCULS/level2mask.html", "level2mask.pro", "", "             file_comments   Allow to pass from a 2d sill level array to the 3d mask array with 1s in    levels above the sill level and 0s below  and on it       categories    without loop      param TAB  in required    2d level array of sill level  or a structure respecting litchamp criterions       returns   It is a 3d array containing the mask associated to the 2d sill level array      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          17 6 1999   Setp 2004: boundary level have 0 values and not 1  as it was   explained before in the header  see:   print  array_equal niveau  total level2mask niveau 3         version    Id            FUNCTION level2mask  tab       compile_opt idl2  strictarrsubs      tempsun   systime 1            To key_performance  common     Reading of the input field and recovery of the size of the used subdomain      niveaux   litchamp tab     grille maskterre   1   1   1 nx ny nz firstx firsty firstz lastx lasty lastz     verification of the coherence between the array s size and the defined by domdef domain      IF ny EQ 1 THEN niveaux   reform niveaux  nx  ny   over     taille   size niveaux     if taille 0  NE 2 then return  report le champ en entree doit contenir un tableau 2d     case 1 of       taille 1  eq jpi and taille 2  eq jpj:niveaux niveaux firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du champ     endcase       We transform the 2d leval array in 3d mask array      mask   reform  niveaux 1 indgen nz 1  nx  ny  nz      mask   floor temporary mask    1    mask   temporary mask temporary maskterre           if keyword_set key_performance  THEN print   temps level2mask  systime 1 tempsun     return  mask end");
+a[188] = new Array("./ToBeReviewed/CALCULS/moyenne.html", "moyenne.pro", "", "             file_comments     averages a 2  or 3 d field over a selected             geographical area and along one ore more      selected axes  x  y or z       categories      param TAB  in required    2 or 3d field      param DIREC  in required     x   y   z   xy   xz   yz  or  xyz       keyword BOXZOOM      xmin xmax ymin ymax  zmin zmax  to more details  see domdef   boxzoom can have 5 forms:     vert2   vert1  vert2 lon1  lon2  lat1  lat2       lon1  lon2  lat1  lat2  vert2 lon1  lon2  lat1  lat2  vert1 vert2       keyword NAN    not a number  we activate it if we want to average without considerate some masked values of TAB    If masked values of TAB are values consecrated by IDL values f_nan  wr just have to put NAN    If masked values of TAB are valued a  a must be different of 1  corresponding to nan      values f_nan and of 0  which desactivate nan  We have to put NAN a     Comment: In output  rsult points which are NAN will be valued a or  values f_nan                   keyword NODOMDEF   We activate it if we do not want to pass in domdef even if the keyword boxzoom    is present  like when grossemoyenne is called via checkfield       keyword INTEGRATION    To make an integral rather than an average       keyword WDEPTH    to specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W                    returns   An array       uses   common   domdef      restrictions Put values corresponding to land at 1 e20      history    Jerome Vialard  jv lodyc jussieu fr   2 7 98                         Sebastien Masson  smasson lodyc jussieu fr                          14 8 98                         15 1 98                         11 3 99 adaptation for NAN                         28 7 99 Averages 1d arrays      version    Id       function moyenne  tab  direc  BOXZOOM   boxzoom  INTEGRATION   integration                       NAN   nan  NODOMDEF   nodomdef  WDEPTH   wdepth                       _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             To key_performance    I  preliminaries     dirt   0   dirx   0   diry   0   dirz   0     I 1  Directions s  we follow to integrate     if   strpos direc   t  ge 0   then dirt   1   if   strpos direc   x  ge 0   then dirx   1   if   strpos direc   y  ge 0   then diry   1   if   strpos direc   z  ge 0   then dirz   1   if  dirx eq 0 and diry eq 0 and dirz eq 0  then return  tab     I 2  verification of the input array s size     taille   size tab    case 1 of     taille 0  eq 1 :dim    1d      taille 0  eq 2 :BEGIN       dim    2d        if dirx eq 0 and diry eq 0 then return  tab     END     taille 0  eq 3 :BEGIN       dim    3d        if dirx eq 0 and diry eq 0 and dirz eq 0 then return  tab     END     else : return  report Le tableau d entree doit etre a 2 ou 3 dimensions s il contient une dim temporelle utiliser grossemoyenne    endcase       I 3  Obtainment of scale s factors and of the mask on the subdomain concernedby the average    Redefinition of the domain ajusted at boxzoom  at 6 elements    This will allowed us to calculate only in the domain concerned by the average    Domdef  followed by grid give us all arrays of the grid on the subdomain      if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6:bte   Boxzoom       Else: return  report Mauvaise Definition de Boxzoom      endcase     if NOT keyword_set nodomdef  then BEGIN        savedbox   1b       saveboxparam   boxparam4moyenne dat        domdef  bte  GRIDTYPE   vargrid  _extra   ex     ENDIF    ENDIF      attribution of the mask and of longitude and latitude arrays      IF vargrid EQ  W  THEN wdepth   1   grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  WDEPTH   wdepth       II  Case of the 1d array       if dim EQ  1d  then BEGIN     if n_elements tab  NE nx ny AND n_elements tab  NE nx ny nz then BEGIN       if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat        return  report Probleme d adequation entre les tailles du domaine et de la boxzoom      ENDIF     case 1 of       nx EQ 1 AND ny EQ 1:BEGIN  vector following z         case n_elements tab  of           jpk:res   tab firstz:lastz            nz:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if dirz EQ 1 then BEGIN            dim    3d             taille   size reform res  nx  ny  nz          ENDIF ELSE BEGIN           if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE        END       ny EQ 1:BEGIN              vector following x         case n_elements tab  of           jpi:res   tab firstx:lastx            nx:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if dirx EQ 1 then BEGIN            dim    2d             taille   size reform res  nx  ny          ENDIF ELSE BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE       END       nx EQ 1:BEGIN              vector following y         case n_elements tab  of           jpj:res   tab firsty:lasty            ny:res   tab           ELSE:BEGIN              if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat              return  report Probleme d adequation entre les tailles du domaine et de la boxzoom            END         ENDCASE         if diry EQ 1 then BEGIN           dim    2d            taille   size reform res  nx  ny          ENDIF ELSE BEGIN            if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat            return  res         ENDELSE        END     endcase   endif       II  Case of the 2d array       if  dim eq  2d  then begin       II 1  verification of the coherence of the array s size to average   Verification of the coherence between the array s size and the domain defined by domdef   The input array must have either the total domain s size  jpi jpj  or this    one of the reduced domain  nx ny        case 1 of       taille 1  eq jpi and taille 2  eq jpj:           res   tab firstx:lastx  firsty:lasty        taille 1  eq  nx and taille 2  eq  ny:res   tab       else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny  strtrim nx  1 strtrim ny  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1        END     ENDCASE     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      If nan is not  values f_nan    we put it at  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE   1     AND MAKE SURE THAT IT EXIST  THAT IS WHY WE USE reform nx ny  WHICH CAN    LOOK USELESS AT THE BEGINNING       if nx EQ 1 OR ny EQ 1 then BEGIN        res   reform res  nx  ny   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      II 3  Different types of average       mask   mask    0      if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  : begin         e   e1 mask         if keyword_set integration  then divi   1           else begin            divi   e           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if ny EQ 1 then divi   reform divi  nx  ny   over            divi   total divi  1          endelse         res   res e         if ny EQ 1 then res   reform res  nx  ny   over          res   total res  1  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           if ny EQ 1 then testnan   reform testnan  nx  ny   over            testnan   total testnan  1 total mask  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  : begin         e   e2 mask         if keyword_set integration  then divi   1           else begin            divi   e           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if ny EQ 1 then divi   reform divi  nx  ny   over            divi   total divi  2          endelse         res   res e         if ny EQ 1 then res   reform res  nx  ny   over          res   total res  2  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           if ny EQ 1 then testnan    reform testnan  nx  ny   over            testnan   total testnan  2 total mask  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  : begin         if keyword_set integration  then divi   1 else BEGIN            IF msknan 0  NE  1 THEN divi   total e1 e2 mask msknan              ELSE divi   total e1 e2 mask          ENDELSE          res   total res e1 e2 mask  nan   nan divi   1          if msknan 0  NE  1 then begin           testnan    msknan mask           testnan   total testnan total mask  EQ 0          endif       end     endcase   endif       III  Case 3d arrays series  tab4d        if  dim eq  3d  then begin     III 1  Verification of the coherence of the array to average size    Verification of the coherence between the array s size and the domain    defind by domdef    The input array must have either the total domain size  jpi jpj jpk     or this one of the reduced domain  nx ny ny        case 1 of       taille 1  eq jpi and taille 2  eq jpj and taille 3  eq jpk:           res   tab firstx:lastx  firsty:lasty  firstz:lastz        taille 1  eq jpi and taille 2  eq jpj and taille 3  eq nz:           res   tab firstx:lastx  firsty:lasty          taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq nz :res   tab       taille 1  EQ  nx and taille 2  eq  ny and taille 3  eq jpk :           res   tab    firstz:lastz        else:BEGIN          if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat          return  report Probleme d adequation entre les tailles du domaine nx ny nz  strtrim nx  1 strtrim ny  1 strtrim nz  1  et du tableau  strtrim taille 1  1 strtrim taille 2  1 strtrim taille 3  1        END     endcase     if keyword_set nan  NE 0 then BEGIN        if nan NE 1 then BEGIN      if nan is not  values f_nan    we put it at  values f_nan         if abs nan  LT 1e6 then notanumber   where res EQ nan            ELSE notanumber   where abs res  GT abs nan 10          if notanumber 0  NE  1 then res temporary notanumber     values f_nan       ENDIF     ENDIF     Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE   1     AND MAKE SURE THAT IT EXIST  THAT IS WHY WE USE reform nx ny  WHICH CAN    LOOK USELESS AT THE BEGINNING       if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN        res   reform res  nx  ny  nz   over        e1    reform e1  nx  ny   over        e2    reform e2  nx  ny   over      endif     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN         mask    reform mask  nx  ny  nz   over      IF keyword_set key_partialstep  THEN BEGIN   the top of the ocean floor is       IF vargrid EQ  T  OR vargrid EQ  W  THEN bottom   total mask  3          ELSE bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3     we suppress columns with only ocean or land        good   where bottom NE 0 AND bottom NE nz    the bottom of the ocean in 3D index is:       bottom   lindgen nx ny temporary bottom 1L nx ny       IF good 0  NE  1 THEN bottom   bottom good          ELSE bottom    1     ENDIF ELSE bottom    1     III 2  different average types       if keyword_set nan  NE 0 then msknan   finite res  ELSE msknan    1     case 1 of        dirx eq 1  and  diry eq 0  and  dirz eq 0  : begin         e13   e1 replicate 1  nz          e13   reform e13  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else begin           divi   e13 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  1          ENDELSE         res   res e13 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  1  nan   nan divi   1          e13   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total testnan  1 total mask  1  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 0  : begin         e23   e2 replicate 1  nz          e23   reform e23  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else begin           divi   e23 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  2          ENDELSE         res   res e23 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  2  nan   nan divi   1          e23   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan   reform testnan  nx  ny  nz   over            testnan   total testnan  2 total mask  2  EQ 0          endif       end        dirx eq 0  and  diry eq 0  and  dirz eq 1  : begin         e33   replicate 1  1 nx ny e3         e33   reform e33  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e33 bottom     e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e33 bottom     e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else begin           divi   e33 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total divi  3          ENDELSE         res   res e33 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total res  3  nan   nan divi   1          e33   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total testnan  3 total mask  3  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 0  : begin         e123    e1 e2 replicate 1  nz          e123   reform e123  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1             AND nx ny NE 1 THEN BEGIN           IF msknan 0  EQ  1 THEN BEGIN              msknan   replicate 1b  nx  ny  nz              nan   1           endif           msknan bottom    0           res bottom     values f_nan         ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e123 mask           IF msknan 0  NE  1 THEN divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  1  1          ENDELSE         res   res e123 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  1  nan   nan  1  nan   nan     divi   1          e123   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  1  1 total total mask  1  1  EQ 0          endif       end        dirx eq 1  and  diry eq 0  and  dirz eq 1  : begin         e133   e1 e3         e133   reform e133  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e133 bottom     e1 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e133 bottom     e1 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e133 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  1  2          ENDELSE         res   res e133 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  1  nan   nan  2  nan   nan     divi   1          e133   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  1  2 total total mask  1  2  EQ 0          endif       end        dirx eq 0  and  diry eq 1  and  dirz eq 1  : begin         e233   e2 e3         e233   reform e233  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e233 bottom     e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e233 bottom     e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            divi   e233 mask           if msknan 0  NE  1 then divi   temporary divi msknan           if nz EQ 1 then divi   reform divi  nx  ny  nz   over            divi   total total divi  2  2          ENDELSE         res   res e233 mask         if nz EQ 1 then res   reform res  nx  ny  nz   over          res   total total res  2  nan   nan  2  nan   nan     divi   1          e233   1         if msknan 0  NE  1 then begin           testnan    msknan mask           if nz EQ 1 then testnan    reform testnan  nx  ny  nz   over            testnan   total total testnan  2  2 total total mask  2  2  EQ 0          endif       end        dirx eq 1  and  diry eq 1  and  dirz eq 1  : begin         e1233    e1 e2 e3         e1233   reform e1233  nx  ny  nz   over          IF keyword_set key_partialstep  AND bottom 0  NE  1 THEN BEGIN           IF keyword_set wdepth  THEN               e1233 bottom     e1 e2 e3w_ps firstx:lastx  firsty:lasty temporary good              ELSE e1233 bottom     e1 e2 e3t_ps firstx:lastx  firsty:lasty temporary good          ENDIF         if keyword_set integration  then divi   1 else BEGIN            if msknan 0  NE  1 then divi   total e1233 mask msknan              ELSE divi   total e1233 mask          ENDELSE         res   total res e1233 mask  nan   nan     divi   1          e1233   1         if msknan 0  NE  1 then begin           testnan    msknan mask           testnan   total testnan total mask  EQ 0          endif       end     endcase   endif      IV   finishing       IV 1  We mask land by a value equal to 1 e 20     valmask   1e 20   terre   where divi EQ 0    IF terre 0  NE  1 THEN BEGIN     res terre    1e 20   ENDIF       IV 2  We replace  when nan equal 1   values f_nan by nan     if keyword_set nan  NE 0 then BEGIN      puttonan   where testnan EQ 0      if puttonan 0  NE  1 then res puttonan     values f_nan     if nan NE 1 then BEGIN        notanumber   where finite res  eq 0        if notanumber 0  NE  1 then res notanumber    nan     ENDIF   ENDIF     IV 3  We replace in the domain whch was defined at the entry of average     if keyword_set savedbox  THEN restoreboxparam   boxparam4moyenne dat      if keyword_set key_performance  THEN print   temps moyenne  systime 1 tempsun    return  res     end");
+a[189] = new Array("./ToBeReviewed/CALCULS/norme.html", "norme.pro", "", "             file_comments    calculate the norme of a field of vectors  then make a possible average      Comment 1: The field of vector can be  2d:xy  3d: xyz or xyt    4d: xyzt     Comment 2:   The calculation of the norme is made before the possible spatial or    temporal average because the average of the norme is not equal to the    norme of averages       categories   Post traitment calculation      param COMPOSANTEU  in required    an 2d  3d or 4d array      param COMPOSANTEV  in required    an 2d  3d or 4d array      keyword BOXZOOM   boxzoom on which do the average  by default the domain selected    by the last domdef done       keyword DIREC    t   x   y   z   xys   xz   yz   xyz   xt   yt   zt   xyt           xzt   yzt   xyzt  Direction on which do averages       returns   Array to trace with plt  pltz or pltt       uses   common pro      restrictions    The norme is calculated on points TTo do this calculation  we average    field U and Von points T before calculate the norme  At the edge of    coast and of domain  we can not calculate fields U and V at points T     that is why these points are at value  values f_nan        When we calculate on a reduce geographic domain  field U and V have not    necessarily the same number of point  In this case  we recut U and V to    keep only common points  We profit of this to redo a domdef which redefine    a geographic domain on which fields U and V are extracted on same points      restrictions   To know what type of array we work with  we  test its size and dates    gave by time 0  and time jpt 1  to know if thee is a temporal dimension     Before to start norme  make sure that time and jpt are defined how    they have to        examples   To calculate the average of the norme of streams on all the domain    between 0 et 50:        IDL  res norme un vn boxzoom 0 50 dir xyz       history   Sebastien Masson  smasson lodyc jussieu fr                          9 6 1999      version    Id            FUNCTION norme  composanteu  composantev  BOXZOOM   boxzoom  DIREC   direc  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            To key_performance      IF finite glamu 0 finite gphiu 0 finite glamv 0 finite gphiv 0  EQ 0 THEN        return  report This version of norme is based on Arakawa C grid                            U and V grids must therefore be defined        if keyword_set boxzoom  then BEGIN      Case 1 Of       N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0        N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1        N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2        N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4        N_Elements Boxzoom  Eq 6:bte   Boxzoom       Else: return  report Mauvaise Definition de Boxzoom      ENDCASE     domdef  boxzoom   ENDIF       if NOT keyword_set direc  then direc   0   construction of u and v at points T    u   litchamp composanteu     v   litchamp composantev     date1   time 0     if n_elements jpt  EQ 0 then date2   date1 ELSE date2   time jpt 1      if  size u 0  NE  size v 0  then return    1     vargrid T     varname    norme      valmask   1e20      grilleu   litchamp composanteu   grid     if grilleu EQ   then grilleu    U     grillev   litchamp composantev   grid     if grillev EQ   then grillev    V     IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ  T  AND grillev EQ  T  THEN BEGIN        interpolle    0        return  report cas non code mais facile a faire     ENDIF ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif       We find common points between u and v      indicexu    lindgen jpi firstxu:firstxu nxu 1     indicexv    lindgen jpi firstxv:firstxv nxv 1     indicex   inter indicexu  indicexv     indiceyu    lindgen jpj firstyu:firstyu nyu 1     indiceyv    lindgen jpj firstyv:firstyv nyv 1     indicey   inter indiceyu  indiceyv     nx   n_elements indicex      ny   n_elements indicey       case 1 of      xyz            size u 0  EQ 3 AND date1 EQ date2 :BEGIN             indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1           indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt      extraction of u and v on the appropriated domain            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case  size u 3  OF                   nzt:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1  ELSE u   u 1: nx                          IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1  ELSE v   v 1: nx                         IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u 0:ny 1  ELSE u   u  1: ny                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v 0:ny 1  ELSE v   v  1: ny                    end                   jpk:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1   firstzt:lastzt  ELSE u   u 1: nx   firstzt:lastzt                        IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1   firstzt:lastzt  ELSE v   v 1: nx   firstzt:lastzt                       IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u  0:ny 1 firstzt:lastzt  ELSE u   u  1: ny firstzt:lastzt                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v  0:ny 1 firstzt:lastzt  ELSE v   v  1: ny firstzt:lastzt                    end                   ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND  size u 3  EQ jpk AND                 size v 1  EQ jpi AND  size v 2  EQ jpj AND  size u 3  EQ jpk :BEGIN                 u   u indice3d                 v   v indice3d              END             ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     We reshape u and v to make sure that no dimension has been erased            if nzt EQ 1 then begin             u   reform u  nx  ny  nzt   over              v   reform v  nx  ny  nzt   over           endif     construction of u and v at points T            a u 0           u u shift u 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of logitude and latitude arrays            mask   tmask indice3d           if nzt EQ 1 then mask   reform mask  nx  ny  nzt   over             if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0   values f_nan          res 0   values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN res mask    valmask   All kind of average          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   moyenne res direc nan  boxzoom   boxzoom   nodomdef          END      xyt           date1 NE date2 AND  size u 0  EQ 3 :BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of u and v on the appropriated domain            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1      ELSE u   u 1: nx                      IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1      ELSE v   v 1: nx                     IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1    ELSE u   u  1: ny                    IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1    ELSE v   v  1: ny                END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1                END             ELSE:return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     construction of u and v at points T            a u 0           u u shift u 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of longitude and latitude arrays    We recover the complete grid to establish a big mask extent in the four    direction to cover pointsfor which a land point has been    considerated  make a small drawing             mask   tmask indice2d jpi jpj firstzt           if ny EQ 1 then mask   reform mask  nx  ny   over      construction of land containing all points to mask            if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0   values f_nan          res 0   values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN BEGIN              coeftps   lindgen jpt nx ny             coeftps   replicate 1  n_elements mask coeftps             mask    temporary mask replicate 1  jpt              mask  temporary mask    temporary coeftps              res temporary mask    valmask          ENDIF   moyennes en tous genres          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   grossemoyenne res direc nan  boxzoom   boxzoom   nodomdef        END      xyzt           date1 NE date2 AND  size u 0  EQ 4:BEGIN           indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1           indice3d   lindgen jpi  jpj  jpk           indice3d   indice3d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt      extraction of u and v on the appropriated domain            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 case  size u 3  OF                   nzt:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1  ELSE u   u 1: nx                          IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1  ELSE v   v 1: nx                         IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u 0:ny 1  ELSE u   u  1: ny                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v 0:ny 1  ELSE v   v  1: ny                    end                   jpk:BEGIN                       if nxu NE nx then                         if indicex 0  EQ firstxu then u   u 0:nx 1   firstzt:lastzt  ELSE u   u 1: nx   firstzt:lastzt                        IF nxv NE nx THEN                         if indicex 0  EQ firstxv then v   v 0:nx 1   firstzt:lastzt  ELSE v   v 1: nx   firstzt:lastzt                       IF nyu NE ny THEN                         if indicey 0  EQ firstyu then u   u  0:ny 1 firstzt:lastzt  ELSE u   u  1: ny firstzt:lastzt                        IF nyv NE ny THEN                         if indicey 0  EQ firstyv then v   v  0:ny 1 firstzt:lastzt  ELSE v   v  1: ny firstzt:lastzt                    end                   ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs                 endcase             END              size u 1  EQ jpi AND  size u 2  EQ jpj AND  size u 3  EQ jpk AND                 size v 1  EQ jpi AND  size v 2  EQ jpj AND  size u 3  EQ jpk :BEGIN                 u   u indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt                   v   v indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1 firstzt:lastzt                END             ELSE: return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     construction of u and v at points T            a u 0           u u shift u 1 0 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 0 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of logitude and latitude arrays            mask   tmask indice3d           if nzt EQ 1 then mask   reform mask  nx  ny  nzt   over             if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0     values f_nan          res 0     values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN BEGIN              coeftps   lindgen jpt nx ny nzt             coeftps   replicate 1  n_elements mask coeftps             mask    temporary mask replicate 1  jpt              mask  temporary mask    temporary coeftps              res temporary mask    valmask          ENDIF   All kind of average          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   grossemoyenne res direc nan  boxzoom   boxzoom   nodomdef        END      xy           ELSE:BEGIN                 xy          indice2d   lindgen jpi  jpj           indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of u and v on the appropriated domain            case 1 of              size u 1  EQ nxu AND  size u 2  EQ nyu AND                 size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN                 if nxu NE nx then                   if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                    IF nxv NE nx THEN                   if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                   IF nyu NE ny THEN                   if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny                  IF nyv NE ny THEN                   if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny              END              size u 1  EQ jpi AND  size u 2  EQ jpj AND                 size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN                 u   u indice2d                 v   v indice2d              END             ELSE:return  report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs           endcase     We reshape u and v to make sure that no dimension has been erased            if ny EQ 1 then begin             u   reform u  nx  ny   over              v   reform v  nx  ny   over           endif     construction of u and v at points T            a u 0           u u shift u 1 0 2           if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a          a v 0           v v shift v 0 1 2           if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of longitude and latitude arrays    We recover the complete grid to establish a big mask extent in the four    direction to cover pointsfor which a land point has been    considerated  make a small drawing             mask   tmask indice2d jpi jpj firstzt           if nyt EQ 1 THEN mask   reform mask  nx  ny   over      construction of land containing all points to mask            if n_elements valmask  EQ 0 THEN valmask   1e20          landu   where u GE valmask 10           if landu 0  NE  1 then u landu    0          landv   where v GE valmask 10           if landv 0  NE  1 then v landv    0          res sqrt u 2 v 2           if NOT keyword_set key_periodic  OR nx NE jpi then res 0 values f_nan          res 0 values f_nan          mask   where mask eq 0           IF mask 0  NE  1 THEN res mask    valmask   All kind of average          domdef   glamt indice2d 0  0   glamu indice2d nx 1  0 gphit indice2d 0  0   gphiv indice2d 0  ny 1  vert1  vert2   meme          if keyword_set direc  then res   moyenne res direc nan  boxzoom   boxzoom   nodomdef        END      endcase      if keyword_set key_performance  THEN print   temps norme  systime 1 tempsun     return  res end");
+a[190] = new Array("./ToBeReviewed/CALCULS/projectondepth.html", "projectondepth.pro", "", "             file_comments   Allows to project a 3d field following a depth array       categories   without loop      param ARRAYIN    It is a 3d array whose 3rd dimension must be equal to jpk       param DEPTHIN    It is a 2d array indicating for each point n  at which depth to project             returns   A 2d array which is the projection of the 3d array following depthes indicated by depthin      uses   common pro      restrictions    points at  values f_nan impossible calculation  Land points masked at valmask       examples   we build a possible depthes array     IDL  a gdept jpk 1 1 jpi jpj findgen jpi jpj    We build an array to project on these depthes  For the test    we build a 3d array whose each vector following z is the depth       IDL  arraytest replicate 1 jpi jpj gdept     IDL  arraytest reform arraytest jpi jpj jpk   over    We test the projection of the depth array on the depth      IDL  plt  1e6 a projectondepth arraytest a nocontour      null field at 1e 6 pres       verifcation projecting the temperature of 20 C for example       history   Sebastien Masson  smasson lodyc jussieu fr                         15 6 2000      version    Id            FUNCTION projectondepth  arrayin  depthin     compile_opt idl2  strictarrsubs      tempsun   systime 1            To key_performance  common      depth   litchamp depthin     array   litchamp arrayin    Small verifications    tailledepth   size depth     taillearray   size array     if tailledepth 0  NE 2 THEN return  report Depth array must have 2 dimensions     if taillearray 0  NE 3 THEN return  report Array in must have 3 dimensions    verification of the coherence between array s size and the domain     grille  mask   1   1   1 nx ny nz firstx firsty firstz lastx lasty lastz    case 1 of       tailledepth 1  eq jpi and tailledepth 2  eq jpj:depth depth firstx:lastx  firsty:lasty        tailledepth 1  eq  nx and tailledepth 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du tableau de profondeur     endcase    case 1 OF       taillearray 3  NE jpk:return  report Le tableau 3d doit avoir sa 3eme dimension egale a jpk        taillearray 1  eq jpi and taillearray 2  eq jpj:array array firstx:lastx  firsty:lasty          taillearray 1  eq  nx and taillearray 2  eq  ny:       else:return  report Probleme d adequation entre les tailles du domaine et celle du tableau de profondeur     endcase     c est parti      flevel   depth2floatlevel depth    we delete points at  values f_nan    notanumber   where finite flevel   nan  EQ 1     if notanumber 0  NE  1 then flevel notanumber    0   we sill  delete land points at valmask for example     flevel   0   flevel    jpk 1       indexup   level2index floor flevel     indexlow   nx ny indexup    out   where indexlow GE nx ny jpk 1     if out 0  NE  1 then indexlow out    indexlow out nx ny      weight   flevel floor flevel     res   array indexup     res   res weight array indexlow res      We put back points at  values f_nan    if notanumber 0  NE  1 then res notanumber     values f_nan    if out 0  NE  1 then res out     values f_nan   We mask land points at valmask    if n_elements valmask  EQ 0 then valmask   1e20    terre   where temporary mask    0  EQ 0     if terre 0  NE  1 then res terre    valmask      if keyword_set key_performance  THEN print   temps projectondepth  systime 1 tempsun     return  res end");
+a[191] = new Array("./ToBeReviewed/CALCULS/remplit.html", "remplit.pro", "", "          Extrapole zinout jpi jpj  sur les continents en utilisant les 4     plus proches voisins masques oceaniquement et construit un nouveau     masque     contenant l ancien masque oceanique PLUSles points extrapoles      Reitere le processus niter fois      C est pas clair  essayez                   Nan: to fill the point which have the value       values f_nan  Whitout this keyword  these point are not filling      and stays at  values f_nan         todo seb     FUNCTION remplit  zinput  NAN   nan  NITER   niter  BASIQUE   basique  mask   mask  FILLXDIR   fillxdir  FILLYDIR   fillydir  FILLVAL   fillval  _extra   ex     compile_opt idl2  strictarrsubs    common   tempsun   systime 1             pour key_performance   les points non remplis sont masques a valmask   IF n_elements niter  EQ 0 THEN niter   1   IF niter EQ 0 THEN return  zinput   z   zinput   if n_elements key_gridtype  EQ 0 then key_gridtype    c    if keyword_set basique  then begin     oldkey_gridtype   key_gridtype     key_gridtype    c      nx    size zinput 1      ny    size zinput 2      if NOT keyword_set mask  then mmmask   basique ELSE mmmask   mask     if  key_gridtype eq  e  then begin       case vargrid of          T :glam   glamt firstxt:lastxt  firstyt:lastyt           U :glam   glamu firstxu:lastxu  firstyu:lastyu        endcase     endif   ENDIF ELSE grille  mmmask  glam  gphi  gdep  nx  ny  nz  _extra   ex   if keyword_set mask  then mmmask   mask     if  size mmmask 0  EQ 3 THEN mmmask   mmmask    0      if n_elements mmmask  EQ 1 then mmmask   replicate 1b  nx  ny    if keyword_set nan  then begin     nanpoint   where finite z  EQ 0      if nanpoint 0  NE  1 then begin       mmmask nanpoint    0b       z nanpoint    0     endif   ENDIF   mmmask   byte mmmask      on ajoute un cadre de zero a z  mask  e1  e2   comme ca apres on peut faire des shifts ds tous les sens sans se   soucier des bords du domaine      tempdeux   systime 1            pour key_performance  2   nx2   nx 2   case key_gridtype of      c :BEGIN       ztmp   bytarr nx 2  ny 2        ztmp 1:nx  1:ny    mmmask       mmmask   temporary ztmp        ztmp   fltarr nx 2  ny 2        ztmp 1:nx  1:ny    z       if keyword_set key_periodic  AND nx EQ jpi then begin         ztmp 0  1:ny    z jpi 1            ztmp nx 1  1:ny    z 0          endif       z   temporary ztmp      END      e :BEGIN       ztmp   bytarr nx 2  ny 4        ztmp 1:nx  2:ny 1    mmmask       mmmask   temporary ztmp        ztmp   fltarr nx 2  ny 4        ztmp 1:nx  2:ny 1    z       if keyword_set key_periodic  AND nx EQ jpi then begin         ztmp 0  2:ny 1    z jpi 1            ztmp nx 1  2:ny 1    z 0          endif       z   temporary ztmp      END   endcase   IF testvar var   key_performance  EQ 2 THEN       print   temps remplit: on ajoute un cadre de zero   systime 1 tempdeux       iteration        FOR n   1  niter DO BEGIN    on trouve les points coast     tempdeux   systime 1          pour key_performance  2   les points du bord du cadre ne doivent pas etre selectionnes comme   la coast     case key_gridtype of        c :BEGIN         mmmask 0      1b         mmmask nx 1      1b         mmmask  0    1b         mmmask  ny 1    1b       END        e :BEGIN         mmmask 0      1b         mmmask nx 1      1b         mmmask  0:1    1b         mmmask  ny 2:ny 3    1b       END     endcase   liste des points terre restant     IF keyword_set fillxdir  THEN BEGIN   we stop if all the lines  that contains data  have been filled       test   total mmmask 1:nx    1        IF total test EQ 0 test EQ nx  EQ ny 2 THEN GOTO  fini     ENDIF     IF keyword_set fillydir  THEN BEGIN   we stop if all the columns  that contains data  have been filled       test   total mmmask  1:ny  2        IF total test EQ 0 test EQ ny  EQ nx 2 THEN GOTO  fini     ENDIF     land   where mmmask EQ 0      if land 0  EQ  1 then GOTO  fini   les points du bord du cadre doivent maintenant etre dans la terre     case key_gridtype of        c :BEGIN         mmmask 0      0b         mmmask nx 1      0b         mmmask  0    0b         mmmask  ny 1    0b       END        e :BEGIN         mmmask 0      0b         mmmask nx 1      0b         mmmask  0:1    0b         mmmask  ny 2:ny 3    0b       END     endcase     if keyword_set key_periodic  AND nx EQ jpi then begin       mmmask 0      mmmask nx          mmmask nx 1      mmmask 1        endif   liste des voisins mer     case key_gridtype of        c :BEGIN         CASE 1 OF           keyword_set fillxdir :weight   mmmask 1 land mmmask 1 land            keyword_set fillydir :weight   mmmask nx2 land mmmask nx2 land            ELSE:weight   mmmask 1 land mmmask 1 land mmmask nx2 land mmmask nx2 land                 1 sqrt 2 mmmask nx2 1 land mmmask nx2 1 land                              mmmask nx2 1 land mmmask nx2 1 land          ENDCASE       END        e :BEGIN         shifted   glam 0  0  LT glam 0  1          oddeven    land nx2 1 shifted  MOD 2         weight   mmmask 1 land mmmask 1 land               mmmask 2 nx2 land mmmask 2 nx2 land               sqrt 2 mmmask nx2 oddeven land mmmask nx2 1 oddeven land                         mmmask nx2 oddeven land mmmask nx2 1 oddeven land        END     endcase      ok   where weight GT 0      weight   weight ok      coast   land temporary ok        IF testvar var   key_performance  EQ 2 THEN         print   temps remplit: trouver la coast   systime 1 tempdeux     remplissage des points coast       tempdeux   systime 1          pour key_performance  2   on masque z     z   temporary z mmmask       case key_gridtype of        c :BEGIN         CASE 1 OF           keyword_set fillxdir :zcoast   z 1 coast z 1 coast            keyword_set fillydir :zcoast   z nx2 coast z nx2 coast            ELSE:zcoast   z 1 coast z 1 coast z nx2 coast z nx2 coast                 1 sqrt 2 z nx2 1 coast z nx2 1 coast                              z nx2 1 coast z nx2 1 coast          ENDCASE       END        e :BEGIN         oddeven    coast nx2 1 shifted  MOD 2         zcoast   z 1 coast z 1 coast z 2 nx2 coast z 2 nx2 coast               sqrt 2 z nx2 oddeven coast z nx2 1 oddeven coast                         z nx2 oddeven coast z nx2 1 oddeven coast        END     endcase           z coast     temporary zcoast  temporary weight    we update the the boundary conditions of z     if keyword_set key_periodic  AND nx EQ jpi then begin       z 0      z nx          z nx 1      z 1        endif     IV  on reduit le masque       mmmask  temporary coast    1       IF testvar var   key_performance  EQ 2 THEN         print   temps remplit: une iteration   systime 1 tempdeux   ENDFOR  fini:     on masque les valeurs sur les lands restantes     IF n_elements valmask  EQ 0 then valmask   1e20   IF n_elements fillval  EQ 0 THEN fillval   valmask   z   temporary z mmmask   fillval 1b mmmask      on redecoupe le tableau pour retirer le cadre      case key_gridtype of      c :BEGIN       z   z 1:nx  1:ny      END      e :BEGIN       z   z 1:nx  2:ny 1      END   endcase     if keyword_set basique  then key_gridtype   oldkey_gridtype     if keyword_set key_performance  THEN print   temps remplit  systime 1 tempsun    return  z END  ");
+a[192] = new Array("./ToBeReviewed/CALCULS/rhon.html", "rhon.pro", "", "            Calcul de la fonction d etat  issue de eos F            Creation : 1997   G  Roullet      adaptation pour les tableaux z zt xyz xyzt      par seb            todo seb     FUNCTION rhon  sn  tn  INSITU   insitu  SIGMA_N   sigma_n     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance       sn    1e5   double sn   double tn    1e5         IF keyword_set sigma_n  then insitu   1     taille   size sn     case taille 0  of       0:BEGIN                    z          zrhop 0d          jkmax   1       END        1:BEGIN                    z          zrhop dblarr taille 1           jkmax   taille 1        END        2:BEGIN                    xy  jpt 1  ou zt          zrhop dblarr taille 1 taille 2           if jpt EQ 1 then jkmax   1 ELSE jkmax   taille 1        END        3:BEGIN                    xyz  jpt 1  ou xyt          zrhop dblarr taille 1 taille 2 taille 3           if jpt EQ 1 then jkmax   taille 3  ELSE jkmax   1       END        4:BEGIN                    xyzt          zrhop dblarr taille 1 taille 2 taille 3 taille 4             jkmax   taille 3        END     endcase          FOR jk   0  jkmax 1 DO BEGIN        case taille 0  of          0:BEGIN                 z             ztt   tn             zs   sn          END           1:BEGIN                 z             ztt   tn jk              zs   sn jk            END           2:BEGIN                 xy  jpt 1  ou zt             if jpt EQ 1 then begin                ztt   tn                zs   sn             ENDIF ELSE BEGIN                ztt   tn jk                   zs   sn jk                 ENDELSE          END           3:BEGIN                 xyz  jpt 1  ou xyt             if jpt EQ 1 then begin                ztt   tn    jk                 zs   sn   jk               endif ELSE BEGIN                ztt   tn                zs   sn             ENDELSE          END           4:BEGIN                 xyzt             ztt   tn    jk                zs   sn   jk              END        endcase       if n_elements sigma_n  NE 0 then zh   1000 sigma_n ELSE zh   gdept jk        square root salinity       zsr  sqrt abs zs        compute density pure water at atm pressure       zr1 6 536332e 9 ztt 1 120083e 6 ztt 1 001685e 4 ztt 9 095290e 3 ztt 6 793952e 2 ztt 999 842594       seawater density atm pressure       zr2   5 3875e 9 ztt 8 2467e 7 ztt 7 6438e 5 ztt 4 0899e 3 ztt 0 824493       zr3   1 6546e 6 ztt 1 0227e 4 ztt 5 72466e 3       zr4  4 8314e 4         potential density  reference to the surface        case taille 0  of          0: zrhop       zr4 zs   zr3 zsr   zr2 zs   zr1          1: zrhop jk   zr4 zs   zr3 zsr   zr2 zs   zr1          2:BEGIN              if jpt EQ 1 then zrhop    zr4 zs   zr3 zsr   zr2 zs   zr1               ELSE zrhop jk     zr4 zs   zr3 zsr   zr2 zs   zr1          END          3:BEGIN              if jpt EQ 1 then zrhop   jk   zr4 zs   zr3 zsr   zr2 zs   zr1                ELSE zrhop    zr4 zs   zr3 zsr   zr2 zs   zr1          END          4: zrhop   jk     zr4 zs   zr3 zsr   zr2 zs   zr1       endcase        IF n_elements insitu  EQ 1 THEN BEGIN        add the compression terms          ze    3 508914e 8 ztt 1 248266e 8 ztt 2 595994e 6          zbw    1 296821e 6 ztt 5 782165e 9 ztt 1 045941e 4          zb   zbw   ze   zs            zd    2 042967e 2          zc    7 267926e 5 ztt 2 598241e 3 ztt 0 1571896          zaw    5 939910e 6 ztt 2 512549e 3 ztt 0 1028859 ztt  4 721788          za     zd zsr   zc zs   zaw            zb1   0 1909078 ztt 7 390729 ztt 55 87545          za1   2 326469e 3 ztt 1 553190 ztt 65 00517 ztt 1044 077          zkw   1 361629e 4 ztt 1 852732e 2 ztt 30 41638 ztt 2098 925 ztt 190925 6          zk0   zb1 zsr   za1 zs   zkw         masked in situ density          case taille 0  of             0: zrhop   zrhop    1 0 zh zk0 zh za zh zb              1: zrhop jk    zrhop jk     1 0 zh zk0 zh za zh zb              2:BEGIN                 if jpt EQ 1 then zrhop   zrhop    1 0 zh zk0 zh za zh zb                   ELSE zrhop jk      zrhop jk       1 0 zh zk0 zh za zh zb              END             3:BEGIN                 if jpt EQ 1 then zrhop   jk    zrhop   jk     1 0 zh zk0 zh za zh zb                   ELSE zrhop   zrhop    1 0 zh zk0 zh za zh zb              END             4: zrhop   jk      zrhop   jk       1 0 zh zk0 zh za zh zb           endcase                 ENDIF     ENDFOR         terre   where tn GE 1e6     if terre 0  NE  1 then zrhop terre    valmask     if keyword_set key_performance  THEN print   temps rhon  systime 1 tempsun          return  zrhop END   ");
 a[193] = new Array("./ToBeReviewed/CALENDRIER/def_month.html", "def_month.pro", "", "     todo seb   FUNCTION def_month  timave  date     translate month number in string       compile_opt idl2  strictarrsubs      IF strpos date   _  GT  1 THEN date   strmid date  0  strpos date   _     CASE strmid timave  0  2  OF         1m : BEGIN          CASE strmid date  strlen date 2  2  OF               01 : mn    January               02 : mn    February               03 : mn    March               04 : mn    April               05 : mn    May               06 : mn    June               07 : mn    July               08 : mn    August               09 : mn    September               10 : mn    October               11 : mn    November               12 : mn    December              ELSE: mn              ENDCASE        END         3m : BEGIN          CASE strmid date  strlen date 2  2  OF               01 : mn    DJF               02 : mn    MMA               03 : mn    JJA               04 : mn    SON              ELSE: mn              ENDCASE        END        ELSE:    ENDCASE       return  mn END ");
 a[194] = new Array("./ToBeReviewed/COULEURS/palit.html", "palit.pro", "", "     file_comments    Clarify the current palette playing with brightness      param coef  in required  The rule of attenuation of colors divide by 2 the brightness by default      param red       param green      param blue      todo Seb: compl ter param red green blue   PRO palit  coef  red  green  blue     compile_opt idl2  strictarrsubs      IF n_elements coef  EQ 0 THEN coef   0 5    IF n_elements red  EQ 0 THEN tvlct  red  green  blue   get    color_convert  red  green  blue  h  l  s   rgb_hls    l   1 coef 1 l       Black must stay really black     Each palette starts by Black and ends by white      l 0    0     tvlct  h  l  s   hls    return END");
-a[195] = new Array("./ToBeReviewed/GRILLE/changegrid.html", "changegrid.pro", "", "function changegrid  newgrid       compile_opt idl2  strictarrsubs    cm_4mesh        if cmpgrid newgrid  EQ 0 then return  0     update the common paramaters      ccmeshparameters   newgrid     ixminmesh   newgrid ixminmesh    ixmaxmesh   newgrid ixmaxmesh    iyminmesh   newgrid iyminmesh    iymaxmesh   newgrid iymaxmesh    izminmesh   newgrid izminmesh    izmaxmesh   newgrid izmaxmesh     read the new file      loadgrid  newgrid filename     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF      return  1 end");
-a[196] = new Array("./ToBeReviewed/GRILLE/cmpgrid.html", "cmpgrid.pro", "", "FUNCTION cmpgrid  newgrid       compile_opt idl2  strictarrsubs    common       newgrid must be a structure      if size newgrid   type  NE 8 then return  0     does ccmeshparameters exist        if n_elements ccmeshparameters  EQ 0 then return  1     we compare the structure which caracterise the grid whith   ccmeshparameters      case 1 of       ccmeshparameters jpiglo NE newgrid jpiglo:       ccmeshparameters jpjglo NE newgrid jpjglo:       ccmeshparameters jpkglo NE newgrid jpkglo:       ccmeshparameters jpi NE newgrid jpi:       ccmeshparameters jpj NE newgrid jpj:       ccmeshparameters jpk NE newgrid jpk:       total ccmeshparameters glaminfo   newgrid glaminfo  NE 0:       total ccmeshparameters gphiinfo   newgrid gphiinfo  NE 0:       ccmeshparameters ixminmesh NE newgrid ixminmesh:       ccmeshparameters ixmaxmesh NE newgrid ixmaxmesh:       ccmeshparameters iyminmesh NE newgrid iyminmesh:       ccmeshparameters iymaxmesh NE newgrid iymaxmesh:       ccmeshparameters izminmesh NE newgrid izminmesh:       ccmeshparameters izmaxmesh NE newgrid izmaxmesh:       ccmeshparameters key_shift NE newgrid key_shift:       ccmeshparameters key_periodic NE newgrid key_periodic:       array_equal ccmeshparameters key_stride  newgrid key_stride  EQ 0:       ccmeshparameters key_gridtype NE newgrid key_gridtype:       ccmeshparameters key_yreverse NE newgrid key_yreverse:       ccmeshparameters key_zreverse NE newgrid key_zreverse:       ccmeshparameters key_partialstep NE newgrid key_partialstep:       ccmeshparameters key_onearth NE newgrid key_onearth:       ELSE:return  0    endcase     return  1 end");
-a[197] = new Array("./ToBeReviewed/GRILLE/decoupeterre.html", "decoupeterre.pro", "", "          NAME:decoupeterre     PURPOSE:tres semblable a grille  Ici qd vargrid ne  T  ou  W  alors   pour le trace il faut recuperer Tmask  glamt  gphit et le tableau de   triangulation sur le sous domaine considere  La specificite de   decoupeterre par rapport a grille  c est que l on prend ds la   mesure du possible un sous domaine juste un peu plus grand que celui   definit par domdef de facon a etre sur que le masque que l on trace   recouvrira bien tout le dessin      CATEGORY:pour plt     CALLING SEQUENCE:decoupeterre  mask  glam  gphi  z  nx  ny  nz  TRI   tri     INPUTS:     KEYWORD PARAMETERS:           TRI si ce mot clef sert a obtenir grace a grille la           triangulation qui se rapporte a la grille mais uniquement           sur la partie du zoom  ce tableau de triangulation reduit           est passe ds la variable que l on a egalee a tri par ex:           grille tri triangulation_reduite  ne mot clef est           utilise dans plt pro              WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W        OUTPUTS:le masque et ses coordonnees     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          24 2 99         PRO decoupeterre  mask  glam  gphi  gdep  TYPE   type  TRI   tri  INDICEZOOM   indicezoom  COINMONTE   coinmonte  COINDESCEND   coindescend  WDEPTH   wdepth  REALSECTION   realsection  USETRI   usetri  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             pour key_performance     if vargrid EQ  W  then wdepth   1       horizontal parameters     if possible extent the domain according to the grid type   default case   case vargrid of      U :BEGIN       firstx   0    min firstxt  firstxu 1        lastx    max lastxt  lastxu 1    min firstyt  firstyu 1        lasty    max lastyt  lastyu 1    min firstxt  firstxv 1        lastx    max lastxt  lastxv 1    min firstyt  firstyv 1        lasty    max lastyt  lastyv 1    min firstxt  firstxf 1        lastx    max lastxt  lastxf 1    min firstyt  firstyf 1        lasty    max lastyt  lastyf 1    firstx 1 :lastx  firsty:lasty            ELSE glam   glamu 0    firstx 1 :lastx  firsty:lasty        ENDELSE     END      yz :BEGIN       if keyword_set realsection  EQ 0 then begin         if vargrid EQ  U  OR vargrid EQ  F  then             gphi   gphiu firstx:lastx  firsty:lasty        ENDIF ELSE BEGIN            to drawsectionbottom           if vargrid EQ  U  OR vargrid EQ  F  OR finite gphiv 0  EQ 0 then             gphi   gphif firstx:lastx  0    firsty 1 :lasty            ELSE gphi   gphiv firstx:lastx  0    firsty 1 :lasty        ENDELSE     END     ELSE:   ENDCASE     vertical boundaries     if keyword_set wdepth   then begin     firstz   0    min firstzt  firstzw 1      lastz    max lastzt  lastzw 1     jpk 1    ENDIF ELSE BEGIN     firstz   firstzt     lastz   lastzt   ENDELSE    nz   lastz firstz 1     mask     case type of      xy :BEGIN       mask   tmask firstx:lastx  firsty:lasty  firstz        profond   firstz NE 0     END   for the verical section  we have to choose the right mask according   to the grid point and to the direction of the section      xz :BEGIN       if vargrid EQ  V  OR vargrid EQ  F  then begin         mask    vmask firstx:lastx  firstyv:lastyv  firstz:lastz        ENDIF ELSE mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      END      yz :BEGIN       if vargrid EQ  U  OR vargrid EQ  F  then begin         mask    umask firstxu:lastxu  firsty:lasty  firstz:lastz        ENDIF ELSE mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      END     ELSE:mask   tmask firstx:lastx  firsty:lasty  firstz:lastz    endcase     vertical axis     when we do a real section we directly plot the gdepw    in drawsectionbottom pro  instead of contouring the mask at 0 5 at   gdept   IF keyword_set realsection  EQ 0 then gdep   gdept firstz:lastz      ELSE BEGIN       if lastz EQ jpk 1 then     we add some fictive very deep level that will not be used but that is   necessary to avoid array size bugs in draw bottom section        gdep    gdepw firstz 1:lastz  2 gdept jpk 1         ELSE gdep   gdepw firstz 1:lastz 1       gdep   gdepw firstz:lastz    special case when we are using the partial steps in the vertical   section that are only 1 point wide    in that case  the z axis is a 2d array and we modify the depth of   the last level ocean with hdepw that is the real depth of the bottom      CASE 1 OF       keyword_set key_partialstep  and type EQ  xz            AND ny EQ 1 AND keyword_set realsection :BEGIN         bottom   total mask  3          good   where bottom NE 0 AND bottom NE nz 1          bottom   lindgen nx bottom nx         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            gdep   replicate 1  nx gdep           truegdep   hdepw firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       keyword_set key_partialstep  and type EQ  yz            AND nx EQ 1 AND keyword_set realsection :BEGIN          bottom   total mask  3          good   where bottom NE 0 AND bottom NE nz 1          bottom   lindgen ny bottom ny         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            gdep   replicate 1  ny gdep           truegdep   hdepw firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ELSE:     ENDCASE   ENDELSE     vecteur triangulation Qd TRI est active     IF arg_present TRI  then       if triangles_list 0  EQ  1 OR usetri LT 1 then tri    1 ELSE BEGIN   si on est en train de tracer un niveau profond on refait la   triangulation     if keyword_set profond  then begin       tri   triangule mask  coinmonte   coinmonte  coindescend   coindescend  _extra   ex        indicezoom    lindgen jpi  jpj firstx:lastx  firsty:lasty      ENDIF ELSE BEGIN    sinon on recupere la partie de triangulation qui nous interesse et   on la numerote convenablement        if nx EQ jpi AND ny EQ jpj then tri   triangles_list ELSE BEGIN          msk   bytarr jpi  jpj          msk firstx:lastx  firsty:lasty    1         ind   where  msk triangles_list 0    EQ 1                        AND msk triangles_list 1    EQ 1                        AND msk triangles_list 2    EQ 1           tri   triangles_list  ind firstx firsty jpi          y   tri jpi         x   tri y jpi         tri   x y nx       ENDELSE     ENDELSE   ENDELSE     if keyword_set key_performance  THEN print   temps decoupeterre  systime 1 tempsun      return end ");
-a[198] = new Array("./ToBeReviewed/GRILLE/domdef.html", "domdef.pro", "", "          NAME: DOMDEF     PURPOSE:permet d extraire un sous domaine d etude en fournissant les   parametres necessaires pour les traces   cf  outputs      CATEGORY:     CALLING SEQUENCE:domdef  lon1  lon2  lat1  lat2 vert1 vert2  ou               bien domdef vecteur     INPUTS: facultatif   vecteur a  2  4 ou 6 elements:    sans l utilisation des mots cles index xindex yindex zindex:    vert1  vert2: pour un domaine 3D dont la partie horizontale couvre tout    glam et gphi    lon1  lon2  lat1  lat2:   definissant les longitudes min  max et les latitudes min  max du  domaine a   etudier  tous les niveaux sont selectiones     lon1 lon2 lat1 lat2 vert1 vert2 pour specifier les profondeurs      KEYWORD PARAMETERS:           ENDPOINTS: a four elements vector  x1 y1 x2 y2  used to specify         that domdef must define the box used to make a plot  pltz  pltt          plt1d  done strictly along the line  that can have any direction          starting at  x1  y1  ending at  x2  y2  When defining endpoints          you must also define TYPE which define the type of plots          pltz   xt   yt   zt   x   y   z   t  will used         ENDPOINTS keywords           FINDALWAYS:oblige a redefinir une boite meme qd auqun point         n est trouve ds la boite  dans ce cas on selectionne toute la         grille     GRIDTYPE:un string ou un vecteur de string contennant le nom des  grilles  determinees uniquement par :  T U V W F  pour  lesquelles le calcul doit etre fait  par  ex : T  ou  T U             MEMEINDICES: il se peut que les points t u v et F correspondant a         une meme boite geographique ne concernent pas les memes         indices des tableaux  Ceci pose parfois de pb  ou du moins de         serieuses complications  ds les programmes ou plusieurs types         de grilles interviennent  cf : norme  curl  Activer         MEMEINDICES pour forcer domdef a prendre les memes indices  ceux         de la grille T  pour toutes les autres grilles             INDEX: activer si on veut specifier que tous les elements         passes en entree de domdef se rapportent aux indices des         tableaux glam  gphi et gdep plutot qu aux valeurs de ces         tableaux            xindex: activer si on veut que les elements passes en entrre         de domdef et concernant la dimension en x se rapportent aux         indices des tableaux glam qu aux valeurs de ces tableaux             yindex: cf xindex mais pour y et les gphi            zindex: cf xindex mais pour z et les gdep     OUTPUTS:on recupere pour les 4 grilles t u v f      nxt u v:entier qui contient le nombre de pts en longitude de      la grille reduite au domaine      nyt u v:entier qui contient le nombre de pts en latitude de      la grille reduite au domaine      nzt w:entier qui contient le nombre de pts en profondeur de      la grille reduite au domaine 3D      firstxt u v f: le first indice qui delimite le sous domaine     suivant x      firstyt u v f: le first indice qui delimite le sous domaine     suivant y      firstzt w: le first indice qui delimite le sous domaine     suivant z      lastxt u v f: le last indice qui delimite le sous domaine     suivant x      lastyt u v f: le last indice qui delimite le sous domaine     suivant y      lastzt w: le last indice qui delimite le sous domaine     suivant z     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   8 2 98   rewrite everything  debug and spee up Sebastien Masson April 2005         pro domdef  x1  x2  y1  y2  z1  z2  FINDALWAYS   findalways                 GRIDTYPE   gridtype  MEMEINDICES   memeindices                 XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex                 ENDPOINTS   endpoints  TYPE   type                 INDEX   index  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance     CASE N_PARAMS  OF     0:     1:     2:     4:     6:     ELSE:BEGIN       ras   report Bad number of parameter in the call of domdef        RETURN     END   ENDCASE     IF keyword_set endpoints  THEN BEGIN     IF NOT keyword_set type  THEN BEGIN        dummy   report If domdef is used do find the box associated                             to endpoints  you must also specify type keyword        return     ENDIF      CASE N_PARAMS  OF       0:       1:boxzoom    x1        2:boxzoom    x1  x2        4:boxzoom    x1  x2  y1  y2        6:boxzoom    x1  x2  y1  y2  z1  z2      ENDCASE     section  BOXZOOM   boxzoom  ENDPOINTS   endpoints  TYPE   type   ONLYBOX     return   ENDIF         recall domdef when there is only one input parameter       IF N_PARAMS  EQ 1 THEN BEGIN     CASE n_elements x1  OF       2:domdef  x1 0  x1 1  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       4:domdef  x1 0  x1 1  x1 2  x1 3  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       6:domdef  x1 0  x1 1  x1 2  x1 3  x1 4  x1 5  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       ELSE:BEGIN         ras   report Bad number of elements in x1          RETURN       END     ENDCASE     RETURN     ENDIF     default definitions and checks     IF NOT keyword_set gridtype  THEN gridtype    T   U   V   W   F      ELSE gridtype   strupcase gridtype    IF keyword_set memeindices  THEN gridtype    T  gridtype    IF finite glamu 0  eq 0 THEN gridtype   gridtype where gridtype NE  U    IF finite glamv 0  eq 0 THEN gridtype   gridtype where gridtype NE  V    default definitions   lon1t   99999    lon2t    99999    lat1t   99999    lat2t    99999    lon1u   99999    lon2u    99999    lat1u   99999    lat2u    99999    lon1v   99999    lon2v    99999    lat1v   99999    lat2v    99999    lon1f   99999    lon2f    99999    lat1f   99999    lat2f    99999    vert1t   99999    vert2t    99999    vert1w   99999    vert2w    99999      IF jpj EQ 1 THEN BEGIN      IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN       glamt   reform glamt  jpi  jpj   over        gphit   reform gphit  jpi  jpj   over      ENDIF      IF  where gridtype eq  U 0  NE  1 THEN BEGIN       glamu   reform glamu  jpi  jpj   over        gphiu   reform gphiu  jpi  jpj   over      ENDIF       IF  where gridtype eq  V 0  NE  1 THEN BEGIN       glamv   reform glamv  jpi  jpj   over        gphiv   reform gphiv  jpi  jpj   over      ENDIF       IF  where gridtype eq  F 0  NE  1 THEN BEGIN       glamf   reform glamf  jpi  jpj   over        gphif   reform gphif  jpi  jpj   over      ENDIF     ENDIF     IF N_PARAMS  EQ 2 THEN GOTO  vertical         define all horizontal parameters     lon1 et lon2   lat1 et lat2   firstx tuvf  lastx tuvf  nx tuvf      check if the grid is defined for U and V points  If not  take care   of the cases gridtype eq  U  or  V      errstatus   0   IF  finite glamu 0 gphiu 0  EQ 0 OR n_elements glamu  EQ 0 OR n_elements gphiu  EQ 0  AND  where gridtype eq  U 0  NE  1 THEN BEGIN     firstxu    values f_nan     lastxu    values f_nan     nxu    values f_nan     okgrid   where gridtype NE  U  count      IF count NE 0 THEN gridtype   gridtype okgrid        ELSE errstatus   report U grid is undefined  Impossible to call domdef with vargid    U    ENDIF     IF  finite glamv 0 gphiv 0  EQ 0 OR n_elements glamv  EQ 0 OR n_elements gphiv  EQ 0  AND  where gridtype eq  V 0  NE  1 THEN BEGIN     firstxv    values f_nan     lastxv    values f_nan     nxv    values f_nan     okgrid   where gridtype NE  V  count      IF count NE 0 THEN gridtype   gridtype okgrid        ELSE errstatus   report V grid is undefined  Impossible to call domdef with vargid    V    ENDIF   IF errstatus EQ  1 THEN return       horizontal domain defined with lon1  lon2  lat1 and lat2       IF N_PARAMS  EQ 0       OR    N_PARAMS  EQ 4 OR N_PARAMS  EQ 6             AND NOT keyword_set xindex  AND NOT keyword_set yindex  AND NOT keyword_set index    THEN BEGIN     IF N_PARAMS  EQ 0 THEN BEGIN   find lon1 and lon2 the longitudinal boudaries of the full domain       IF  where gridtype eq  T 0  NE  1 THEN lon1t   min glamt  max   lon2t        IF  where gridtype eq  W 0  NE  1 AND  where gridtype eq  T 0  EQ  1 THEN lon1t   min glamt  max   lon2t        IF  where gridtype eq  U 0  NE  1 THEN lon1u   min glamu  max   lon2u        IF  where gridtype eq  V 0  NE  1 THEN lon1v   min glamv  max   lon2v        IF  where gridtype eq  F 0  NE  1 THEN lon1f   min glamf  max   lon2f        lon1   min lon1t  lon1u  lon1v  lon1f        lon2   max lon2t  lon2u  lon2v  lon2f    find lat1 and lat2 the latitudinal boudaries of the full domain       IF  where gridtype eq  T 0  NE  1 THEN lat1t   min gphit  max   lat2t        IF  where gridtype eq  W 0  NE  1 AND  where gridtype eq  T 0  EQ  1 THEN lat1t   min gphit  max   lat2t        IF  where gridtype eq  U 0  NE  1 THEN lat1u   min gphiu  max   lat2u        IF  where gridtype eq  V 0  NE  1 THEN lat1v   min gphiv  max   lat2v        IF  where gridtype eq  F 0  NE  1 THEN lat1f   min gphif  max   lat2f        lat1   min lat1t  lat1u  lat1v  lat1f        lat2   max lat2t  lat2u  lat2v  lat2f      ENDIF ELSE BEGIN        lon1   min x1  x2  max   lon2        lat1   min y1  y2  max   lat2      ENDELSE   find firstxt  firstxt  nxt and nyt according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN       dom   where   glamt GE lon1  AND  glamt LE lon2                       AND  gphit GE lat1  AND  gphit LE lat2          IF  dom 0  EQ  1  THEN BEGIN         IF keyword_set findalways  THEN BEGIN           print   WARNING  empty T points box  we get the neighnors to define a new box            neig1   neighbor lon1  lat1  glamt  gphit  sphere   keyword_set key_onearth    keyword_set key_irregular            neig2   neighbor lon2  lat2  glamt  gphit  sphere   keyword_set key_onearth    keyword_set key_irregular            CASE N_PARAMS  OF             4:domdef  min glamt neig1  max glamt neig2  min gphit neig1  max gphit neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex             6:domdef  min glamt neig1  max glamt neig2  min gphit neig1  max gphit neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex           ENDCASE           RETURN         ENDIF ELSE BEGIN           ras   report WARNING  The box does not contain any T points            firstxt    1   lastxt    1   nxt   0           firstyt    1   lastyt    1   nyt   0         ENDELSE       ENDIF ELSE BEGIN         jyt   dom   jpi         ixt   temporary dom  MOD jpi         firstxt   min temporary ixt  max   lastxt          firstyt   min temporary jyt  max   lastyt          nxt   lastxt   firstxt   1         nyt   lastyt   firstyt   1       ENDELSE     ENDIF   find firstxu  firstxu  firstyu  firstyu  nxu and nyu   according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  U 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxu   firstxt   lastxu   lastxt   nxu   nxt         firstyu   firstyt   lastyu   lastyt   nyu   nyt       ENDIF ELSE BEGIN         dom   where   glamu GE lon1  AND  glamu LE lon2                         AND  gphiu GE lat1  AND  gphiu LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN   if t grid parameters alreday defined  we use them               CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty U points box  we use the same index as T points                  firstxu   firstxt   lastxu   lastxt   nxu   nxt                 firstyu   firstyt   lastyu   lastyt   nyu   nyt               END               ELSE:BEGIN                 print   WARNING  empty U points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamu  gphiu  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamu  gphiu  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamu neig1  max glamu neig2  min gphiu neig1  max gphiu neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamu neig1  max glamu neig2  min gphiu neig1  max gphiu neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE           ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any U points              firstxu    1   lastxu    1   nxu   0             firstyu    1   lastyu    1   nyu   0           ENDELSE         ENDIF ELSE BEGIN           jyu   dom   jpi           ixu   temporary dom  MOD jpi           firstxu   min temporary ixu  max   lastxu            firstyu   min temporary jyu  max   lastyu            nxu   lastxu   firstxu   1           nyu   lastyu   firstyu   1         ENDELSE       ENDELSE     ENDIF   find firstxv  firstxv  firstyv  firstyv  nxv and nyv    according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  V 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxv   firstxt   lastxv   lastxt   nxv   nxt         firstyv   firstyt   lastyv   lastyt   nyv   nyt       ENDIF ELSE BEGIN         dom   where   glamv GE lon1  AND  glamv LE lon2                         AND  gphiv GE lat1  AND  gphiv LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN             CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty V points box  we use the same index as T points                  firstxv   firstxt   lastxv   lastxt   nxv   nxt                 firstyv   firstyt   lastyv   lastyt   nyv   nyt               END                 where gridtype eq  U 0  NE  1:BEGIN                 print   WARNING  empty V points box  we use the same index as U points                  firstxv   firstxu   lastxv   lastxu   nxv   nxu                 firstyv   firstyu   lastyv   lastyu   nyv   nyu               END                ELSE:BEGIN                 print   WARNING  empty V points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamv  gphiv  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamv  gphiv  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamv neig1  max glamv neig2  min gphiv neig1  max gphiv neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamv neig1  max glamv neig2  min gphiv neig1  max gphiv neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE           ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any V points              firstxv    1   lastxv    1   nxv   0             firstyv    1   lastyv    1   nyv   0           ENDELSE         ENDIF ELSE BEGIN           jyv   dom   jpi           ixv   temporary dom  MOD jpi           firstxv   min temporary ixv  max   lastxv            firstyv   min temporary jyv  max   lastyv            nxv   lastxv   firstxv   1           nyv   lastyv   firstyv   1         ENDELSE       ENDELSE     ENDIF   find firstxf  firstxf  firstyf  firstyf  nxf and nyf   according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  F 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxf   firstxt   lastxf   lastxt   nxf   nxt         firstyf   firstyt   lastyf   lastyt   nyf   nyt       ENDIF ELSE BEGIN         dom   where   glamf GE lon1  AND  glamf LE lon2                         AND  gphif GE lat1  AND  gphif LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN             CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as T points                  firstxf   firstxt   lastxf   lastxt   nxf   nxt                 firstyf   firstyt   lastyf   lastyt   nyf   nyt               END                 where gridtype eq  U 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as U points                  firstxf   firstxu   lastxf   lastxu   nxf   nxu                 firstyf   firstyu   lastyf   lastyu   nyf   nyu               END                 where gridtype eq  V 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as V points                  firstxf   firstxv   lastxf   lastxv   nxf   nxv                 firstyf   firstyv   lastyf   lastyv   nyf   nyv               END                ELSE:BEGIN                 print   WARNING  empty F points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamf  gphif  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamf  gphif  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamf neig1  max glamf neig2  min gphif neig1  max gphif neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamf neig1  max glamf neig2  min gphif neig1  max gphif neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE             ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any F points              firstxf    1   lastxf    1   nxf   0             firstyf    1   lastyf    1   nyf   0           ENDELSE         ENDIF ELSE BEGIN           jyf   dom   jpi           ixf   temporary dom  MOD jpi           firstxf   min temporary ixf  max   lastxf            firstyf   min temporary jyf  max   lastyf            nxf   lastxf   firstxf   1           nyf   lastyf   firstyf   1         ENDELSE       ENDELSE     ENDIF     ENDIF ELSE BEGIN     CASE 1 OF       horizontal domain defined with the X and Y indexes            keyword_set xindex  AND keyword_set yindex  OR keyword_set index :BEGIN         fstx   min x1  x2  max   lstx          fsty   min y1  y2  max   lsty          IF fstx LT 0 OR lstx GE jpi THEN BEGIN           ras   report Bad definition of X1 or X2            return         ENDIF         IF fsty LT 0 OR lsty GE jpj THEN BEGIN           ras   report Bad definition of Y1 or Y2            return         ENDIF         nx   lstx   fstx   1         ny   lsty   fsty   1   find lon1t  lon2t  lat1t  lat2t  firstxt  firstxt  nxt and nyt   according to x1  x2  y1  y2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype eq  W 0  NE  1 THEN BEGIN           lon1t   min glamt fstx:lstx  fsty:lsty  max   lon2t            lat1t   min gphit fstx:lstx  fsty:lsty  max   lat2t            firstxt   fstx   lastxt   lstx           firstyt   fsty   lastyt   lsty           nxt   nx   nyt   ny         ENDIF   find lon1u  lon2u  lat1u  lat2u  firstxu  firstxu  nxu and nyu   according to x1  x2  y1  y2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           lon1u   min glamu fstx:lstx  fsty:lsty  max   lon2u            lat1u   min gphiu fstx:lstx  fsty:lsty  max   lat2u            firstxu   fstx   lastxu   lstx           firstyu   fsty   lastyu   lsty           nxu   nx   nyu   ny         ENDIF   find lon1v  lon2v  lat1v  lat2v  firstxv  firstxv  nxv and nyv   according to x1  x2  y1  y2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           lon1v   min glamv fstx:lstx  fsty:lsty  max   lon2v            lat1v   min gphiv fstx:lstx  fsty:lsty  max   lat2v            firstxv   fstx   lastxv   lstx           firstyv   fsty   lastyv   lsty           nxv   nx   nyv   ny         ENDIF            find lon1f  lon2f  lat1f  lat2f  firstxf  firstxf  nxf and nyf   according to x1  x2  y1  y2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           lon1f   min glamf fstx:lstx  fsty:lsty  max   lon2f            lat1f   min gphif fstx:lstx  fsty:lsty  max   lat2f            firstxf   fstx   lastxf   lstx           firstyf   fsty   lastyf   lsty           nxf   nx   nyf   ny         ENDIF         lon1   min lon1t  lon1u  lon1v  lon1f          lon2   max lon2t  lon2u  lon2v  lon2f          lat1   min lat1t  lat1u  lat1v  lat1f          lat2   max lat2t  lat2u  lat2v  lat2f        END       horizontal domain defined with the X index and lat1 lat2           keyword_set xindex :BEGIN         fstx   min x1  x2  max   lstx          IF fstx LT 0 OR lstx GE jpi THEN BEGIN           ras   report Bad definition of X1 or X2            return         ENDIF         nx   lstx   fstx   1         lat1   min y1  y2  max   lat2    find lon1t  lon2t  firstxt  firstxt  firstyt  firstyt  nxt   and nyt according to x1  x2  lat1 and lat2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN           firstxt   fstx   lastxt   lstx   nxt   nx           dom   where   gphit fstx:lstx    GE lat1  AND  gphit fstx:lstx    LE lat2              IF  dom 0  EQ  1  THEN BEGIN             IF keyword_set findalways  THEN BEGIN               print   WARNING  empty T points box  we get the neighnors to define a new box                neig1   neighbor lon1  lat1  glamt fstx:lstx    gphit fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                neig2   neighbor lon2  lat2  glamt fstx:lstx    gphit fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                CASE N_PARAMS  OF                 4:domdef  fstx  lstx  min gphit fstx:lstx   neig1  max gphit fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                 6:domdef  fstx  lstx  min gphit fstx:lstx   neig1  max gphit fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex               ENDCASE               RETURN             ENDIF ELSE BEGIN               ras   report WARNING  The box does not contain any T points                firstyt    1   lastyt    1   nyt   0             ENDELSE           ENDIF ELSE BEGIN             jyt   temporary dom    nx             firstyt   min temporary jyt  max   lastyt              nyt   lastyt   firstyt   1           ENDELSE           IF nyt NE 0 THEN lon1t   min glamt firstxt:lastxt  firstyt:lastyt  max   lon2t          ENDIF   find lon1u  lon2u  firstxu  firstxu  firstyu  firstyu  nxu   and nyu according to x1  x2  lat1 and lat2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           firstxu   fstx   lastxu   lstx   nxu   nx           IF keyword_set memeindices  THEN BEGIN             firstyu   firstyt   lastyu   lastyt   nyu   nyt           ENDIF ELSE BEGIN             dom   where   gphiu fstx:lstx    GE lat1  AND  gphiu fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty U points box  we use the same index as T points                      firstyu   firstyt   lastyu   lastyt   nyu   nyt                   END                    ELSE:BEGIN                     print   WARNING  empty U points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamu fstx:lstx    gphiu fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamu fstx:lstx    gphiu fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphiu fstx:lstx   neig1  max gphiu fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphiu fstx:lstx   neig1  max gphiu fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any U points                  firstyu    1   lastyu    1   nyu   0               ENDELSE             ENDIF ELSE BEGIN               jyu   temporary dom    nx               firstyu   min temporary jyu  max   lastyu                nyu   lastyu   firstyu   1             ENDELSE           ENDELSE           IF nyu NE 0 THEN lon1u   min glamu firstxu:lastxu  firstyu:lastyu  max   lon2u          ENDIF   find lon1v  lon2v  firstxv  firstxv  firstyv  firstyv  nxv   and nyv according to x1  x2  lat1 and lat2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           firstxv   fstx   lastxv   lstx   nxv   nx           IF keyword_set memeindices  THEN BEGIN             firstyv   firstyt   lastyv   lastyt   nyv   nyt           ENDIF ELSE BEGIN             dom   where   gphiv fstx:lstx    GE lat1  AND  gphiv fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as T points                      firstyv   firstyt   lastyv   lastyt   nyv   nyt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as U points                      firstyv   firstyu   lastyv   lastyu   nyv   nyu                   END                    ELSE:BEGIN                     print   WARNING  empty V points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamv fstx:lstx    gphiv fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamv fstx:lstx    gphiv fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphiv fstx:lstx   neig1  max gphiv fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphiv fstx:lstx   neig1  max gphiv fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any V points                  firstyv    1   lastyv    1   nyv   0               ENDELSE             ENDIF ELSE BEGIN               jyv   temporary dom    nx               firstyv   min temporary jyv  max   lastyv                nyv   lastyv   firstyv   1             ENDELSE           ENDELSE           IF nyv NE 0 THEN lon1v   min glamv firstxv:lastxv  firstyv:lastyv  max   lon2v          ENDIF   find lon1f  lon2f  firstxf  firstxf  firstyf  firstyf  nxf   and nyf according to x1  x2  lat1 and lat2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           firstxf   fstx   lastxf   lstx   nxf   nx           IF keyword_set memeindices  THEN BEGIN             firstyf   firstyt   lastyf   lastyt   nyf   nyt           ENDIF ELSE BEGIN             dom   where   gphif fstx:lstx    GE lat1  AND  gphif fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as T points                      firstyf   firstyt   lastyf   lastyt   nyf   nyt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as U points                      firstyf   firstyu   lastyf   lastyu   nyf   nyu                   END                     where gridtype eq  V 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as V points                      firstyf   firstyv   lastyf   lastyv   nyf   nyv                   END                    ELSE:BEGIN                     print   WARNING  empty F points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamf fstx:lstx    gphif fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamf fstx:lstx    gphif fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphif fstx:lstx   neig1  max gphif fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphif fstx:lstx   neig1  max gphif fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any F points                  firstyf    1   lastyf    1   nyf   0               ENDELSE             ENDIF ELSE BEGIN               jyf   temporary dom    nx               firstyf   min temporary jyf  max   lastyf                nyf   lastyf   firstyf   1             ENDELSE           ENDELSE           IF nyf NE 0 THEN lon1f   min glamf firstxf:lastxf  firstyf:lastyf  max   lon2f          ENDIF         lon1   min lon1t  lon1u  lon1v  lon1f          lon2   max lon2t  lon2u  lon2v  lon2f        END       horizontal domain defined with the Y index and lon1 lon2           keyword_set yindex :BEGIN         fsty   min y1  y2  max   lsty          IF fsty LT 0 OR lsty GE jpj THEN BEGIN           ras   report Bad definition of Y1 or Y2            return         ENDIF         ny   lsty   fsty   1         lon1   min x1  x2  max   lon2    find lat1t  lat2t  firstxt  firstxt  firstyt  firstyt  nxt   and nyt according to x1  x2  lon1 and lon2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN           firstyt   fsty   lastyt   lsty   nyt   ny           dom   where   glamt  fsty:lsty  GE lon1  AND  glamt  fsty:lsty  LE lon2              IF  dom 0  EQ  1  THEN BEGIN             IF keyword_set findalways  THEN BEGIN               print   WARNING  empty T points box  we get the neighnors to define a new box                neig1   neighbor lon1  lat1  glamt  fsty:lsty  gphit  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                neig2   neighbor lon2  lat2  glamt  fsty:lsty  gphit  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                CASE N_PARAMS  OF                 4:domdef  min glamt  fsty:lsty neig1  max glamt  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                 6:domdef  min glamt  fsty:lsty neig1  max glamt  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex               ENDCASE               RETURN             ENDIF ELSE BEGIN               ras   report WARNING  The box does not contain any T points                firstxt    1   lastxt    1   nxt   0             ENDELSE           ENDIF ELSE BEGIN             jxt   temporary dom  MOD jpi             firstxt   min temporary jxt  max   lastxt              nxt   lastxt   firstxt   1           ENDELSE           IF nxt NE 0 THEN lat1t   min gphit firstxt:lastxt  firstyt:lastyt  max   lat2t          ENDIF   find lat1u  lat2u  firstxu  firstxu  firstyu  firstyu  nxu   and nyu according to x1  x2  lon1 and lon2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           firstyu   fsty   lastyu   lsty   nyu   ny           IF keyword_set memeindices  THEN BEGIN             firstxu   firstyt   lastxu   lastyt   nxu   nxt           ENDIF ELSE BEGIN             dom   where   glamu  fsty:lsty  GE lon1  AND  glamu  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty U points box  we use the same index as T points                      firstxu   firstxt   lastxu   lastxt   nxu   nxt                   END                    ELSE:BEGIN                     print   WARNING  empty U points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamu  fsty:lsty  gphiu  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamu  fsty:lsty  gphiu  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamu  fsty:lsty neig1  max glamu  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamu  fsty:lsty neig1  max glamu  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any U points                  firstxu    1   lastxu    1   nxu   0               ENDELSE             ENDIF ELSE BEGIN               jxu   temporary dom  MOD jpi               firstxu   min temporary jxu  max   lastxu                nxu   lastxu   firstxu   1             ENDELSE           ENDELSE           IF nxu NE 0 THEN lat1u   min gphiu firstxu:lastxu  firstyu:lastyu  max   lat2u          ENDIF   find lat1v  lat2v  firstxv  firstxv  firstyv  firstyv  nxv   and nyv according to x1  x2  lon1 and lon2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           firstyv   fsty   lastyv   lsty   nyv   ny           IF keyword_set memeindices  THEN BEGIN             firstxv   firstyt   lastxv   lastyt   nxv   nxt           ENDIF ELSE BEGIN             dom   where   glamv  fsty:lsty  GE lon1  AND  glamv  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as T points                      firstxv   firstxt   lastxv   lastxt   nxv   nxt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as U points                      firstxv   firstxu   lastxv   lastxu   nxv   nxu                   END                    ELSE:BEGIN                     print   WARNING  empty V points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamv  fsty:lsty  gphiv  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamv  fsty:lsty  gphiv  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamv  fsty:lsty neig1  max glamv  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamv  fsty:lsty neig1  max glamv  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any V points                  firstxv    1   lastxv    1   nxv   0               ENDELSE             ENDIF ELSE BEGIN               jxv   temporary dom  MOD jpi               firstxv   min temporary jxv  max   lastxv                nxv   lastxv   firstxv   1             ENDELSE           ENDELSE           IF nxv NE 0 THEN lat1v   min gphiv firstxv:lastxv  firstyv:lastyv  max   lat2v          ENDIF   find lat1f  lat2f  firstxf  firstxf  firstyf  firstyf  nxf   and nyf according to x1  x2  lon1 and lon2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           firstyf   fsty   lastyf   lsty   nyf   ny           IF keyword_set memeindices  THEN BEGIN             firstxf   firstyt   lastxf   lastyt   nxf   nxt           ENDIF ELSE BEGIN             dom   where   glamf  fsty:lsty  GE lon1  AND  glamf  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as T points                      firstxf   firstxt   lastxf   lastxt   nxf   nxt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as U points                      firstxf   firstxu   lastxf   lastxu   nxf   nxu                   END                     where gridtype eq  V 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as V points                      firstxf   firstxv   lastxf   lastxv   nxf   nxv                   END                    ELSE:BEGIN                     print   WARNING  empty F points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamf  fsty:lsty  gphif  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamf  fsty:lsty  gphif  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamf  fsty:lsty neig1  max glamf  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamf  fsty:lsty neig1  max glamf  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any F points                  firstxf    1   lastyf    1   nxf   0               ENDELSE             ENDIF ELSE BEGIN               jxf   temporary dom  MOD jpi               firstxf   min temporary jxf  max   lastxf                nxf   lastxf   firstxf   1             ENDELSE           ENDELSE           IF nxf NE 0 THEN lat1f   min gphif firstxf:lastxf  firstyf:lastyf  max   lat2f          ENDIF         lat1   min lat1t  lat1u  lat1v  lat1f          lat2   max lat2t  lat2u  lat2v  lat2f        END     ENDCASE   ENDELSE      The extracted domain is it regular or not       CASE 1 OF      where gridtype eq  T 0  NE  1 OR  where gridtype eq  W 0  NE  1  AND nxt NE 0 AND nyt NE 0:BEGIN   to get faster  we first test the most basic cases befor testing the   full array        CASE 0 OF         array_equal glamt firstxt:lastxt  firstyt  glamt firstxt:lastxt  lastyt :key_irregular   1b         array_equal gphit firstxt  firstyt:lastyt  gphit lastxt  firstyt:lastyt :key_irregular   1b         array_equal glamt firstxt:lastxt  firstyt:lastyt                          glamt firstxt:lastxt  firstyt replicate 1  nyt :key_irregular   1b         array_equal gphit firstxt:lastxt  firstyt:lastyt                          replicate 1  nxt gphit firstxt  firstyt:lastyt :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  U 0  NE  1 AND nxu NE 0 AND nyu NE 0:BEGIN       CASE 0 OF         array_equal glamu firstxu:lastxu  firstyu  glamu firstxu:lastxu  lastyu :key_irregular   1b         array_equal gphiu firstxu  firstyu:lastyu  gphiu lastxu  firstyu:lastyu :key_irregular   1b         array_equal glamu firstxu:lastxu  firstyu:lastyu                          glamu firstxu:lastxu  firstyu replicate 1  nyu :key_irregular   1b         array_equal gphiu firstxu:lastxu  firstyu:lastyu                          replicate 1  nxu gphiu firstxu  firstyu:lastyu :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  V 0  NE  1 AND nxv NE 0 AND nyv NE 0:BEGIN       CASE 0 OF         array_equal glamv firstxv:lastxv  firstyv  glamv firstxv:lastxv  lastyv :key_irregular   1b         array_equal gphiv firstxv  firstyv:lastyv  gphiv lastxv  firstyv:lastyv :key_irregular   1b         array_equal glamv firstxv:lastxv  firstyv:lastyv                          glamv firstxv:lastxv  firstyv replicate 1  nyv :key_irregular   1b         array_equal gphiv firstxv:lastxv  firstyv:lastyv                          replicate 1  nxv gphiv firstxv  firstyv:lastyv :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  F 0  NE  1 AND nxf NE 0 AND nyf NE 0:BEGIN       CASE 0 OF         array_equal glamf firstxf:lastxf  firstyf  glamf firstxf:lastxf  lastyf :key_irregular   1b         array_equal gphif firstxf  firstyf:lastyf  gphif lastxf  firstyf:lastyf :key_irregular   1b         array_equal glamf firstxf:lastxf  firstyf:lastyf                          glamf firstxf:lastxf  firstyf replicate 1  nyf :key_irregular   1b         array_equal gphif firstxf:lastxf  firstyf:lastyf                          replicate 1  nxf gphif firstxf  firstyf:lastyf :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END     ELSE:   ENDCASE         define all vertical parameters     vert1  vert2   firstz tw  lastz tw  nz tw          vertical:       vertical domain defined with vert1  vert2     IF NOT  keyword_set zindex  OR keyword_set index  THEN BEGIN   define vert1 et vert2     CASE N_PARAMS  OF       2:vert1   min x1  x2  max   vert2        6:vert1   min z1  z2  max   vert2        ELSE:BEGIN         IF  inter byte gridtype  byte T   U   V   F 0  NE  1 THEN             vert1t   min gdept  max   vert2t          IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN             vert1w   min gdepw  max   vert2w          vert1   min vert1t  vert1w          vert2   max vert2t  vert2w        END     ENDCASE   define firstzt  firstzt  nzt     IF  inter byte gridtype  byte T   U   V   F 0  NE  1 THEN BEGIN       domz   where gdept ge vert1 and gdept le vert2  nzt        IF nzt NE 0 THEN BEGIN         firstzt   domz 0          lastzt   domz nzt 1        ENDIF ELSE BEGIN          ras   report WARNING  The box does not contain any T level          firstzt    1         lastzt    1       ENDELSE      ENDIF   define firstzw  firstzw  nzw     IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstzw   firstzt         lastzw   lastzt         nzw   nzt       ENDIF ELSE BEGIN          domz   where gdepw ge vert1 and gdepw le vert2  nzw          IF nzw NE 0 THEN BEGIN           firstzw   domz 0            lastzw   domz nzw 1          ENDIF ELSE BEGIN            ras   report WARNING  The box does not contain any W level            firstzw    1           lastzw    1         ENDELSE        ENDELSE      ENDIF     vertical domain defined with the Z index     ENDIF ELSE BEGIN      CASE N_PARAMS  OF       2:fstz   min x1  x2  max   lstz        4:return       6:fstz   min z1  z2  max   lstz      ENDCASE     IF fstz LT 0 OR lstz GE jpk THEN BEGIN       ras   report Bad definition of X1  X2  Z1 or Z2        return     ENDIF     nz   lstz   fstz   1   find vert1t  vert2t  firstzt  firstzt  nzt   according to  x1  x2  or  z1  z2      IF  where gridtype eq  T 0  NE  1 THEN BEGIN       vert1t   min gdept fstz:lstz  max   vert2t        firstzt   fstz   lastzt   lstz   nzt   nz     ENDIF         find vert1w  vert2w  firstzw  firstzw  nzw   according to  x1  x2  or  z1  z2      IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN BEGIN       vert1w   min gdepw fstz:lstz  max   vert2w        firstzw   fstz   lastzw   lstz   nzw   nz     ENDIF           vert1   min vert1t  vert1w      vert2   max vert2t  vert2w    ENDELSE       IF NOT keyword_set key_forgetold  THEN BEGIN  updateold   ENDIF      if keyword_set key_performance  THEN print   temps domdef  systime 1 tempsun         return end");
-a[199] = new Array("./ToBeReviewed/GRILLE/f2v.html", "f2v.pro", "", "          NAME:f2v     PURPOSE:permet de passer un champs se rapportant a la grille F sur   la grille V  grace a la moyenne: res   0 5 res   shift res  1  0              CATEGORY:grille     CALLING SEQUENCE:res f2v tab       INPUTS:tab  un tableau 2  3 ou 4d     KEYWORD PARAMETERS:     OUTPUTS:res  un tableau 2  3 ou 4d     COMMON BLOCKS:common pro     SIDE EFFECTS:force les parametres du zoom sur la grille V a etre   les memes que ceux sur la grille T      RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la   valeur NaN consacree par IDL:  values f_nan     EXAMPLE:     MODIFICATION HISTORY:a partir des programmes de Marina Levy                        Sebastien Masson  smasson lodyc jussieu fr :                        inspection des traveuax finis  5 6 2000           FUNCTION f2v  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  on force nxt nxf  etc      firstxv   firstxf    lastxv   lastxf    firstyv   firstyf    lastyv   lastyf    nxv   nxf    nyv   nyf    vargrid    V     if NOT keyword_set valmask  then valmask   1e20    lon1   glamv firstxv  0     lon2   glamf lastxf  0     cas sur la taille du tableau et application     taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxf:lastxf  firstyf:lastyf              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    fmask firstxf:lastxf  firstyf:lastyf  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  1  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0       values f_nan          mask    vmask firstxf:lastxf  firstyf:lastyf  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ nzt:             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxf:lastxf  firstyf:lastyf  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxf:lastxf  firstyf:lastyf                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    fmask firstxf:lastxf  firstyf:lastyf  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxf  nyf  jpt   over           ENDIF ELSE mask    fmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0         values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxf:lastxf  firstyf:lastyf  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxf  nyf  jpt   over           ENDIF ELSE mask    vmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxf:lastxf  firstyf:lastyf  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    fmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxf  nyf  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0           values f_nan          mask    vmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxf  nyf  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold    ENDIF         return  res END ");
-a[200] = new Array("./ToBeReviewed/GRILLE/fmask.html", "fmask.pro", "", "          NAME:fmask     PURPOSE:calcule fmask     CATEGORY:fonction economisatrice de memoire  plus besion de garder   fmask        CALLING SEQUENCE:res fmask      OUTPUTS:un tableau 3d correspondant a fmask     EXAMPLE:s utilise comme si fmask etait un tableau connu en   replacant ds la syntaxe fmask par  fmask  par ex:   au lieu de taper fmask domainef  il faut taper  fmask domainef      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98         FUNCTION fmask       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             pour key_performance      CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask   1  0 shift tmask  0   1 shift tmask   1   1      3:res   tmask shift tmask   1  0  0 shift tmask  0   1  0 shift tmask   1   1  0    ENDCASE     if NOT keyword_set key_periodic  then res jpi 1        fmaskredy   res  jpj 1      fmaskredx     if keyword_set key_performance  THEN print   temps fmask  systime 1 tempsun       return  res end");
-a[201] = new Array("./ToBeReviewed/GRILLE/grille.html", "grille.pro", "", "          NAME:grille     PURPOSE: choisit la grille qui doit etre utilisee pour faire le graphe en   fonction de vargrid et renvoie les parametres correspondants calcules ds   domdef pro et reduit au domaine definit par domdef  contrairement a   grandegrille pro      CATEGORY:     CALLING SEQUENCE:    grille mask glam gphi gdep nx ny nz firstx firsty firstz lastx lasty lastz e1 e2 e3     INPUTS:rien  ATTENTION les choix de la grille se fait a partir de la   valeur de la variable globale vargrid  qui peut etre egale a  T     U   V   W  ou  F      KEYWORD PARAMETERS:           TRI si ce mot clef sert a obtenir grace a grille la           triangulation qui se rapporte a la grille mais uniquement           sur la partie du zoom  ce tableau de triangulation reduit           est passe ds la variable que l on a egalee a tri par ex:           grille tri triangulation_reduite  ne mot clef est           utilise dans plt pro              FORPLT: ds plt on veut que sur les points terres  glam et           gphi soit egale a glamt et gphit quelle que soit la grille               NOTRI: utile seulement qd TRI est active  dans ce cas           grille retourne  1 ds la variable tri meme si la variable du           common triangles_list est definie et differente de  1              WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W      OUTPUTS:mask glam gphi gdep nx ny nz firstx firsty firstz            lastx lasty lastz e1 e2 e3             pour leur definition cf domdef et la gestion des sous           domaines sur le web             Rq: ces outputs sont optionnels  si je veux recuperer que           mask  glam et gphi il suffit de taper grille  mask  glam  gphi     COMMON BLOCKS: cm_4mesh and cm_4data     SIDE EFFECTS: utilise la variable globale vargird     RESTRICTIONS: vargrid doit etre  T   W   U   V  ou  F      EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   12 2 1999                         10 11 1999  forplt         pro grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  TRI   tri  NOTRI   notri  TOUT   tout  FORPLT   forplt  IFPLTZ   ifpltz  WDEPTH   wdepth  _EXTRA   ex     include commons     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             pour key_performance     vargrid   strupcase strmid vargrid 0 reverse_offset      if vargrid eq  W  then wdepth   1   if keyword_set tout  then begin     savedbox   1b     saveboxparam   boxparam4grille dat      domdef  gridtype   vargrid  _EXTRA   ex   endif   tempdeux   systime 1            pour key_performance  2       IF keyword_set wdepth  THEN BEGIN     firstz   firstzw      lastz   lastzw     nz   nzw   ENDIF ELSE BEGIN     firstz   firstzt     lastz   lastzt     nz   nzt   ENDELSE       CASE 1 OF      grille T and W       vargrid eq  T  OR vargrid eq  W  : begin  scalaires       nx   nxt       ny   nyt       firstx   firstxt       firsty   firstyt       lastx   lastxt       lasty   lastyt  vecteurs 2d       IF arg_present glam  THEN glam   glamt firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphit firstx:lastx  firsty:lasty        IF arg_present e1  THEN e1   e1t firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2   e2t firstx:lastx  firsty:lasty   vecteurs 3d       IF keyword_set forplt  THEN mask   tmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      end     grille U       vargrid eq  U : begin  scalaires       nx   nxu       ny   nyu       firstx   firstxu       firsty   firstyu       lastx   lastxu       lasty   lastyu  vecteurs 2d       IF arg_present glam  THEN glam   glamu firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphiu firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN         mask   1b tmask firstx:lastx  firsty:lasty  firstz          eastboarder   mask shift mask  1  0 mask         westboarder   mask shift mask   1  0 mask         if key_periodic NE 1 OR nx NE jpi then westboarder nx 1      0b         tmp1   shift eastboarder  0  1          tmp1  0    0b         tmp2   shift eastboarder  0   1          tmp2  ny 1    0b         add    temporary tmp1 temporary tmp2 1b eastboarder 1b temporary westboarder          eastboarder   temporary eastboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    1b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      0b         endif         no1   temporary tmp1 temporary tmp2          tmp   temporary eastboarder temporary no1 mask         mask 0:nx 2      0b          tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1u firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2u firstx:lastx  firsty:lasty   vecteurs 3d       IF keyword_set forplt  THEN mask    umask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    umask firstx:lastx  firsty:lasty  firstz:lastz      end     grille V       vargrid eq  OPAPTDHV  or vargrid eq  OPAPT3DV          or vargrid eq  V : begin  scalaires       nx   nxv       ny   nyv       firstx   firstxv       firsty   firstyv       lastx   lastxv       lasty   lastyv  vecteurs 2d       IF arg_present glam  THEN glam   glamv firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphiv firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN          mask   1b tmask firstx:lastx  firsty:lasty  firstz          northboarder   mask shift mask  0  1 mask         southboarder   mask shift mask  0   1 mask         southboarder  ny 1    0b         tmp1   shift northboarder   1  0          if key_periodic NE 1 OR nx NE jpi then tmp1 nx 1      0b         tmp2   shift northboarder  1  0          if key_periodic NE 1 OR nx NE jpi then tmp2 0      0b         add    temporary tmp1 temporary tmp2 1b northboarder 1b southboarder          northboarder   temporary northboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    0b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      1b         endif         no1   temporary tmp1 temporary tmp2          tmp   temporary northboarder mask temporary no1          mask  0:ny 2    0b         tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1v firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2v firstx:lastx  firsty:lasty   vecteurs 3d       IF keyword_set forplt  THEN mask    vmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    vmask firstx:lastx  firsty:lasty  firstz:lastz      end     grille F       vargrid eq  OPAPTDHF  or vargrid eq  OPAPT3DF           or vargrid eq  F : begin  scalaires       nx   nxf       ny   nyf       firstx   firstxf       firsty   firstyf       lastx   lastxf       lasty   lastyf  vecteurs 2d       IF arg_present glam  THEN glam   glamf firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphif firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN          mask   1b tmask firstx:lastx  firsty:lasty  firstz          eastboarder   mask shift mask  1  0 mask         westboarder   mask shift mask   1  0 mask         westboarder nx 1      0b         northboarder   mask shift mask  0  1 mask         southboarder   mask shift mask  0   1 mask         southboarder  ny 1    0b         tmp1   shift northboarder   1  0          if key_periodic NE 1 OR nx NE jpi then tmp1 nx 1      0b         tmp2   shift northboarder  1  0          if key_periodic NE 1 OR nx NE jpi then tmp2 0      0b         add    temporary tmp1 temporary tmp2 1b northboarder 1b southboarder          northboarder   temporary northboarder temporary add          tmp1   shift eastboarder  0  1          tmp1  0    0b         tmp2   shift eastboarder  0   1          tmp2  ny 1    0b         add    temporary tmp1 temporary tmp2 1b eastboarder 1b temporary westboarder          eastboarder   temporary eastboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    1b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      1b         endif         no1   temporary tmp1 temporary tmp2          tmp    temporary northboarder temporary eastboarder mask temporary no1          mask 0:nx 2      0b          mask  0:ny 2    0b          tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1f firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2f firstx:lastx  firsty:lasty   vecteurs 3d       IF keyword_set forplt  THEN mask    fmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    fmask firstx:lastx  firsty:lasty  firstz:lastz      END       ELSE:BEGIN        ras   report Wrong definition of vargrid    vargrid  Only T  U  V  W or F are acceptable        stop     END   ENDCASE   IF testvar var   key_performance  EQ 2 THEN       print   temps grille: attribution des scalaires  vecteurs et tableaux   systime 1 tempdeux           Variables se rapportant a la dimension verticale             tempdeux   systime 1            pour key_performance  2   if keyword_set wdepth  then begin     gdep   gdepw firstz:lastz      e3   e3w firstz:lastz    endif else begin     gdep   gdept firstz:lastz      e3   e3t firstz:lastz    ENDELSE   for the vertical sections with partial steps   IF keyword_set ifpltz  AND keyword_set key_partialstep  THEN BEGIN     CASE 1 OF       ifpltz EQ  xz  AND ny EQ 1:BEGIN         bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3          good   where bottom NE 0 AND bottom NE nz keyword_set wdepth          bottom   lindgen nx bottom 1l keyword_set wdepth nx         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            IF lastz EQ jpk 1 THEN gdep nz 1    max hdepw            gdep   replicate 1  nx gdep           if keyword_set wdepth  THEN               truegdep   hdepw firstx:lastx  firsty:lasty              ELSE truegdep   hdept firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ifpltz EQ  yz  AND nx EQ 1:BEGIN         bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3          good   where bottom NE 0 AND bottom NE nz keyword_set wdepth          bottom   lindgen ny bottom 1l keyword_set wdepth ny         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            IF lastz EQ jpk 1 THEN gdep nz 1    max hdepw            gdep   replicate 1  ny gdep           if keyword_set wdepth  THEN               truegdep   hdepw firstx:lastx  firsty:lasty              ELSE truegdep   hdept firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ELSE:     ENDCASE   ENDIF   IF testvar var   key_performance  EQ 2 THEN       print   temps grille: Variables se rapportant a la dimension verticale   systime 1 tempdeux     vecteur triangulation Qd TRI est active     if arg_present TRI  then       if triangles_list 0  EQ  1 OR keyword_set notri  then tri    1 ELSE BEGIN      tempdeux   systime 1          pour key_performance  2     msk   bytarr jpi  jpj      msk firstx:lastx  firsty:lasty    1     ind   where  msk triangles_list 0   msk triangles_list 1   msk triangles_list 2    EQ 1       tri   triangles_list  ind firstx firsty jpi      y   tri jpi     x   tri y jpi     tri   x y nx     IF testvar var   key_performance  EQ 2 THEN         print   temps grille: decoupage de la triangulation   systime 1 tempdeux   ENDELSE     pour s assurer qu il n y a pas de dimension degenerees  1         mask reform mask   over       glam reform glam   over       gphi reform gphi   over       gdep reform gdep   over       e1 reform e1   over       e2 reform e2   over       e3 reform e3   over     if keyword_set savedbox  THEN restoreboxparam   boxparam4grille dat    if keyword_set key_performance  THEN print   temps grille  systime 1 tempsun       IF NOT keyword_set key_forgetold  THEN BEGIN  updateold   ENDIF      return  end       ");
-a[202] = new Array("./ToBeReviewed/GRILLE/t2v.html", "t2v.pro", "", "          NAME:t2v     PURPOSE:permet de passer un champs se rapportant a la grille T sur   la grille V  grace a la moyenne: res   0 5 res   shift res  0   1              CATEGORY:grille     CALLING SEQUENCE:res t2v tab       INPUTS:tab  un tableau 2  3 ou 4d     KEYWORD PARAMETERS:     OUTPUTS:res  un tableau 2  3 ou 4d     COMMON BLOCKS:common pro     SIDE EFFECTS:force les parametres du zoom sur la grille V a etre   les memes que ceux sur la grille T      RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la   valeur NaN consacree par IDL:  values f_nan     EXAMPLE:     MODIFICATION HISTORY:Marina Levy                        Sebastien Masson  smasson lodyc jussieu fr :                        inspection des traveuax finis  5 6 2000           FUNCTION t2v  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp   on force nxt nxv  etc      firstxv   firstxt    lastxv   lastxt    firstyv   firstyt    lastyv   lastyt    nxv   nxt    nyv   nyt    vargrid    V     if NOT keyword_set valmask  then valmask   1e20    lat1   gphit 0  firstyt     lat2   gphiv 0  lastyv     cas sur la taille du tableau et application     taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxt:lastxt  firstyt:lastyt              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask   tmask firstxt:lastxt  firstyt:lastyt  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  0   1           res  nyt 1     values f_nan          mask    vmask firstxt:lastxt  firstyt:lastyt  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ nzt:             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxt:lastxt  firstyt:lastyt  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxt:lastxt  firstyt:lastyt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask   tmask firstxt:lastxt  firstyt:lastyt  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxt  nyt  jpt   over           ENDIF ELSE mask   tmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0           res  nyt 1       values f_nan          if taille 3  EQ jpt then BEGIN             mask    vmask firstxt:lastxt  firstyt:lastyt  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxt  nyt  jpt   over           ENDIF ELSE mask    vmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxt:lastxt  firstyt:lastyt  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask   tmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxt  nyt  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0  0           res  nyt 1         values f_nan          mask    vmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxt  nyt  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END     ENDCASE    IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF      return  res END ");
-a[203] = new Array("./ToBeReviewed/GRILLE/tracegrille.html", "tracegrille.pro", "", "          NAME:tracegrille     PURPOSE:dessine la grille     CATEGORY:     CALLING SEQUENCE:tracegrille      INPUTS:glam et gphi  les tableaux 1d ou 2d des position en   longitude latitude des points de la grille  Si glam et gphi ne sont   pas specifies  trace la grille specifiee par vargrid  sur le domaine   definit par le dernier domdef      KEYWORD PARAMETERS:            XSTRIDE un entier pour specifier qu on ne veut tracer          qu une ligne de i constant tout les xstride points            YSTRIDE un entier pour specifier qu on ne veut tracer          qu une ligne de j constant tout les ystride points             OCEAN: pour ne tracer la grille que sur les points oceans              EARTH: pour ne tracer la grille que sur les points terre             RMOUT:select to remove all cell having one corner out of the          plot boundaries  x range   y range               tous les mots clefs de la procedure PLOTS     OUTPUTS:none     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:         IDL  plt indgen jpi jpj nocontour nofill       IDL  vargrid T        IDL  tracegrille ocean color 20       IDL  tracegrille earth color 80       MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                                  PRO tracegrille  glamin  gphiin  OCEAN   ocean  EARTH   earth                      XSTRIDE   xstride  YSTRIDE   ystride  RMOUT   rmout                      _extra   extra       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             pour key_performance   to avoid warning message   oldexcept    except    except   0   if n_elements key_gridtype  EQ 0 then key_gridtype    c      if n_elements glamin    n_elements gphiin  EQ 0 then BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     IF keyword_set ocean  AND key_gridtype EQ  c  THEN BEGIN   we reduce the mask to take into account the point located ON the coastline        CASE vargrid OF          U :BEGIN           mask   tmask firstx:lastx  firsty:lasty            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN tmpx   mask nx 1              mask    mask shift mask   1  0    1           IF NOT keyword_set key_periodic  OR nx NE jpi               THEN mask nx 1      temporary tmpx          END          V :BEGIN           mask   tmask firstx:lastx  firsty:lasty            tmpy   mask  ny 1            mask    mask shift mask  0   1    1           mask  ny 1    temporary tmpy          END          F :BEGIN           mask   tmask firstx:lastx  firsty:lasty            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN tmpx   mask nx 1              tmpy   mask  ny 1            mask    mask shift mask   1  0 shift mask  0   1 shift mask   1   1    1           mask  ny 1    temporary tmpy            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN mask nx 1      temporary tmpx          END         ELSE:       ENDCASE     ENDIF   ENDIF ELSE BEGIN     glam   glamin     gphi   gphiin     IF  size glam 0  EQ 1 AND  size gphi 0  EQ 1 THEN BEGIN       nx   n_elements glam         ny   n_elements gphi         glam   glam replicate 1  ny        gphi   replicate 1  nx gphi     ENDIF ELSE BEGIN       nx    size glam 1        ny    size glam 2      ENDELSE   ENDELSE   if n_elements mask  EQ 0 then mask   replicate 1b  nx  ny    if  size mask 0  EQ 3 then mask   mask    0      IF keyword_set RMOUT  THEN BEGIN     out   where glam GT max x range  OR glam LT min x range                    OR gphi GT max y range  OR gphi LT min y range      IF out 0  NE  1 THEN BEGIN       glam out     values f_nan       gphi out     values f_nan     ENDIF   ENDIF     IF keyword_set ocean  then BEGIN     earth   where mask EQ 0      if earth 0  NE  1 then begin       glam earth     values f_nan       gphi earth     values f_nan     ENDIF     earth   0   ENDIF     IF keyword_set earth  THEN BEGIN     ocean   where mask EQ 1      if ocean 0  NE  1 then begin       glam ocean     values f_nan       gphi ocean     values f_nan     ENDIF     ocean   0   ENDIF     if NOT keyword_set xstride  then xstride   1   if NOT keyword_set ystride  then ystride   1   case key_gridtype of      c :BEGIN       for i   0  ny 1  ystride do begin         plots   glam  i  gphi  i  _extra   extra       endfor       for i   0  nx 1  xstride do begin         plots   glam i    gphi i    _extra   extra       endfor     END      e :BEGIN       shifted   glam 0  0  LT glam 0  1        glam2   glam glam 1 glam 0 2        if shifted then begin         for i   0  ny 2 do BEGIN           xx    transpose glam  i   glam2  i            yy    transpose gphi  i   gphi  i 1            plots  xx 0:2 nx 2  yy 0:2 nx 2  _extra   extra         ENDFOR       ENDIF ELSE BEGIN         for i   1  ny 1 do BEGIN           xx    transpose glam  i   glam2  i            yy    transpose gphi  i   gphi  i 1            plots  xx 0:2 nx 2  yy 0:2 nx 2  _extra   extra         ENDFOR       ENDELSE       for i   1   ny 1 2 do           plots   glam 0  2 i 1  glam 0  2 i               gphi 0  2 i 1  gphi 0  2 i  _extra   extra       for i   0   ny 2 2 do           plots   glam nx 1  2 i  glam nx 1  2 i 1               gphi nx 1  2 i  gphi nx 1  2 i 1  _extra   extra     END   endcase    if keyword_set key_performance  THEN print   temps trace grille  systime 1 tempsun     except   oldexcept    return end");
-a[204] = new Array("./ToBeReviewed/GRILLE/u2t.html", "u2t.pro", "", "          NAME:u2t     PURPOSE:permet de passer un champs se rapportant a la grille U sur   la grille T  grace a la moyenne: res   0 5 res   shift res  1  0              CATEGORY:grille     CALLING SEQUENCE:res u2t tab       INPUTS:tab  un tableau 2  3 ou 4d     KEYWORD PARAMETERS:     OUTPUTS:res  un tableau 2  3 ou 4d     COMMON BLOCKS:common pro     SIDE EFFECTS:force les parametres du zoom sur la grille V a etre   les memes que ceux sur la grille T      RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la   valeur NaN consacree par IDL:  values f_nan     EXAMPLE:     MODIFICATION HISTORY:a partir des programmes de Marina Levy                        Sebastien Masson  smasson lodyc jussieu fr :                        inspection des traveuax finis  5 6 2000           FUNCTION u2t  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  on force nxt nxu  etc      firstxt   firstxu    lastxt   lastxu    firstyt   firstyu    lastyt   lastyu    nxt   nxu    nyt   nyu    vargrid    T     if NOT keyword_set valmask  then valmask   1e20    lon1   glamt firstxt  0     lon2   glamu lastxu  0      cas sur la taille du tableau et application     taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxu:lastxu  firstyu:lastyu              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    umask firstxu:lastxu  firstyu:lastyu  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  1  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0       values f_nan          mask   tmask firstxu:lastxu  firstyu:lastyu  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ nzt:             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxu:lastxu  firstyu:lastyu  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxu:lastxu  firstyu:lastyu                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    umask firstxu:lastxu  firstyu:lastyu  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxu  nyu  jpt   over           ENDIF ELSE mask    umask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0         values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxu:lastxu  firstyu:lastyu  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxu  nyu  jpt   over           ENDIF ELSE mask   tmask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxu:lastxu  firstyu:lastyu  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    umask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxu  nyu  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0           values f_nan          mask   tmask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxu  nyu  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase    IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF        return  res END ");
-a[205] = new Array("./ToBeReviewed/GRILLE/umask.html", "umask.pro", "", "          NAME:umask     PURPOSE:calcule umask     CATEGORY:fonction economisatrice de memoire  plus besion de garder   umask        CALLING SEQUENCE:res umask      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:un tableau 3d correspondant a umask     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:s utilise comme si umask etait un tableau connu en   replacant ds la syntaxe umask par umask  par ex:   au lieu de taper umask domaineu  il faut taper  umask domaineu       MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                          6 99 introduction du key_shift                         20 9 99 cas jpk 1  merci jpblod ipsl jussieu fr          FUNCTION umask       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             pour key_performance     CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask   1  0      3:res   tmask shift tmask   1  0  0    ENDCASE        if NOT keyword_set key_periodic  then res jpi 1        umaskred   if keyword_set key_performance  THEN print   temps umask  systime 1 tempsun      return  res end");
-a[206] = new Array("./ToBeReviewed/GRILLE/v2t.html", "v2t.pro", "", "          NAME:v2t     PURPOSE:permet de passer un champs se rapportant a la grille V sur   la grille T  grace a la moyenne: res   0 5 res   shift res  0   1              CATEGORY:grille     CALLING SEQUENCE:res v2t tab       INPUTS:tab  un tableau 2  3 ou 4d     KEYWORD PARAMETERS:     OUTPUTS:res  un tableau 2  3 ou 4d     COMMON BLOCKS:common pro     SIDE EFFECTS:force les parametres du zoom sur la grille V a etre   les memes que ceux sur la grille T      RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la   valeur NaN consacree par IDL:  values f_nan     EXAMPLE:     MODIFICATION HISTORY:a partir des programmes de Marina Levy                        Sebastien Masson  smasson lodyc jussieu fr :                        inspection des traveuax finis  5 6 2000           FUNCTION v2t  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  on force nxt nxv  etc      firstxt   firstxv    lastxt   lastxv    firstyt   firstyv    lastyt   lastyv    nxt   nxv    nyt   nyv    vargrid    T     if NOT keyword_set valmask  then valmask   1e20    lat1   gphit 0  firstyt     lat2   gphiv 0  lastyv     cas sur la taille du tableau et application     taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxv:lastxv  firstyv:lastyv              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    vmask firstxv:lastxv  firstyv:lastyv  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  0   1           res  0     values f_nan          mask   tmask firstxv:lastxv  firstyv:lastyv  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ nzt:             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxv:lastxv  firstyv:lastyv  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxv:lastxv  firstyv:lastyv                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    vmask firstxv:lastxv  firstyv:lastyv  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxv  nyv  jpt   over           ENDIF ELSE mask    vmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0           res  0       values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxv:lastxv  firstyv:lastyv  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxv  nyv  jpt   over           ENDIF ELSE mask   tmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxv:lastxv  firstyv:lastyv  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    vmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxv  nyv  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0  0           res  0         values f_nan          mask   tmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxv  nyv  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold    ENDIF       return  res END ");
-a[207] = new Array("./ToBeReviewed/GRILLE/vmask.html", "vmask.pro", "", "          NAME:vmask     PURPOSE:calcule vmask     CATEGORY:fonction economisatrice de memoire  plus besion de garder   vmask        CALLING SEQUENCE:res vmask      OUTPUTS:un tableau 3d correspondant a vmask     EXAMPLE:s utilise comme si vmask etait un tableau connu en   replacant ds la syntaxe vmask par vmask  par ex:   au lieu de taper vmask domainef  il faut taper vmask domainef      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         20 9 99 cas jpk 1  merci jpblod ipsl jussieu fr          FUNCTION vmask     compile_opt idl2  strictarrsubs    common   tempsun   systime 1             pour key_performance     CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask  0   1      3:res   tmask shift tmask  0   1  0    ENDCASE     res  jpj 1      vmaskred   if keyword_set key_performance  THEN print   temps vmask  systime 1 tempsun      return  res end");
-a[208] = new Array("./ToBeReviewed/HOPE/completetype.html", "completetype.pro", "", " function completetype  typein     compile_opt idl2  strictarrsubs      type typein    case type of        x :type type yzt         y :type type xzt         z :type type zyt         t :type type xyz         xy :type type zt         xz :type type yt         yz :type type xt         xt :type type yz         yt :type type xz         zt :type type xy         xyz :type type t         xyt :type type z         yzt :type type x         xyzt :    endcase    return  type  end  ");
-a[209] = new Array("./ToBeReviewed/HOPE/computehopegrid.html", "computehopegrid.pro", "", "          NAME:computehopegrid     PURPOSE:     CATEGORY:grille     CALLING SEQUENCE:computehopegrid      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         2001 06         PRO computehopegrid  xaxis  yaxis  zaxis  linetype  FORTHEMASK   forthemask  WPOINT   wpoint  FIRSTS   firsts  LASTS   lasts  PTTYPE   pttype       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF        if not  keyword_set scalar keyword_set vector  then scalar 1      jpiglo   n_elements xaxis     jpjglo   n_elements yaxis     jpkglo   n_elements zaxis       jpi   jpiglo    jpj   jpjglo    jpk   jpkglo      if NOT keyword_set firsts  then firsts    0  0  0     if NOT keyword_set lasts  then lasts    jpi 1  jpj 1  jpk 1      depermination of the grid type and of the point type      if keyword_set pttype  then vargrid   pttype    if linetype EQ  odd even  then key_gridtype    e  ELSE key_gridtype    c      computation of the horizontal grid      if key_gridtype EQ  e  then begin       if vargrid EQ  T  then begin          glamt xaxis          glamt   glamt replicate 1  jpj           xstep glamt 1 0 glamt 0 0 2           glamt 2 lindgen jpj 2 glamt 2 lindgen jpj 2 xstep          glamu glamt xstep       ENDIF ELSE BEGIN          glamu xaxis          glamu   glamu replicate 1  jpj           xstep glamu 1 0 glamu 0 0 2           glamu 2 lindgen jpj 2 glamu 2 lindgen jpj 2 xstep          glamt glamu xstep       ENDELSE  zoom       glamt   glamt firsts 0 :lasts 0  firsts 1 :lasts 1        glamu   glamu firsts 0 :lasts 0  firsts 1 :lasts 1        jpiglo   lasts 0 firsts 0 1       jpi   jpiglo       jpjglo   lasts 1 firsts 1 1       jpj   jpjglo       glamv   glamu       glamf   glamu       gphit   yaxis firsts 1 :lasts 1        gphit   replicate 1  jpi gphit       gphif   gphit       gphiu   gphit       gphiv   gphif    ENDIF ELSE BEGIN       if vargrid eq  T  then begin          glamt xaxis          glamt   glamt replicate 1  jpj           glamu glamt glamt 1 0 glamt 0 0 2        ENDIF ELSE BEGIN          glamu xaxis          glamu   glamu replicate 1  jpj           xstep glamu 1 0 glamu 0 0 2           glamt glamu glamu 1 0 glamu 0 0 2        ENDELSE  zoom       glamt   glamt firsts 0 :lasts 0  firsts 1 :lasts 1        glamu   glamu firsts 0 :lasts 0  firsts 1 :lasts 1        jpiglo   lasts 0 firsts 0 1       jpi   jpiglo       jpjglo   lasts 1 firsts 1 1       jpj   jpjglo       glamv   glamt       glamf   glamu       gphit   yaxis firsts 1 :lasts 1        gphit   replicate 1  jpi gphit       gphiu   gphit       if jpj GT 1 then begin          gphiv   gphit gphit 0  1 gphit 0  0 2           gphif   gphit gphit 0  1 gphit 0  0 2        ENDIF ELSE BEGIN           gphiv   gphit          gphif   gphit       ENDELSE    ENDELSE     computation of the vertical grid      if keyword_set wpoint  then begin       gdepw   zaxis       if jpk ne 1 then begin          gdept shift gdepw   1 gdepw 2           gdept jpk 1 gdepw jpk 1 5 gdepw jpk 1 gdepw jpk 2        endif else gdept zaxis    endif else begin       gdept   zaxis       if jpk ne 1 then begin          gdepw shift gdept  1 gdept 2           gdepw 0 0       endif else gdepw   zaxis    endelse     computation of the vertical scale factors      if jpk ne 1 then begin       e3t   abs shift gdepw 1 gdepw        e3t jpk 1    abs gdept jpk 1 gdepw jpk 1        e3w   abs gdept shift gdept 1        e3w 0    abs gdept 0 gdepw 0     endif else begin       e3t 1       e3w 1    endelse   zoom    gdept   gdept firsts 2 :lasts 2     gdepw   gdepw firsts 2 :lasts 2     e3t   e3t firsts 2 :lasts 2     e3w   e3w firsts 2 :lasts 2     jpkglo   lasts 2 firsts 2 1    jpk   jpkglo     computation of the horizontal scale factors      e1t   replicate 1b jpi jpj     e2t   replicate 1b jpi jpj     e1u   e1t    e2u   e2t    e1v   e1t    e2v   e2t    e1f   e1t    e2f   e2t     mask       tmask   replicate 1b  jpi  jpj  jpk     if keyword_set forthemask  then BEGIN       land where forthemask ge valmask 10        if land 0  ne  1 then tmask land    0b    endif    umaskred   replicate 1  jpj  jpk     vmaskred   replicate 1  jpi  jpk     fmaskredy   replicate 1  jpj  jpk     fmaskredx   replicate 1  jpi  jpk      updateold    domdef    if keyword_set firsts  AND keyword_set lasts  then BEGIN       if vargrid EQ  T  then BEGIN          if jpj GT 1 then begin             lon1   min glamt 0   0  1              lon2   max glamt jpi 1   0  1           endif ELSE BEGIN             lon1   min glamt 0  0              lon2   max glamt jpi 1   0           ENDELSE       ENDIF ELSE BEGIN          if jpj GT 1 then begin             lon1   min glamu 0   0  1              lon2   max glamu jpi 1   0  1           endif ELSE BEGIN             lon1   min glamu 0  0              lon2   max glamu jpi 1  0           ENDELSE       ENDELSE       lat1   min gphit 0  0  gphit 0  jpj 1        lat2   max gphit 0  0  gphit 0  jpj 1        domdef  lon1  lon2  lat1  lat2  gdepw 0  gdept jpk 1  gridtype   vargrid    ENDIF      ixminmesh   0l    ixmaxmesh   long jpi 1     iyminmesh   0l    iymaxmesh   long jpj 1     izminmesh   0l    izmaxmesh   long jpk 1      for the triangulation      key_periodic   glamt 0  EQ  glamt jpi 1 glamt 1 glamt 0  MOD 360     if jpi gt 4 AND jpj GT 4 then begin       triangles_list   triangule shifted   glamt 0  0  LT glamt 0  1        twin_corners_up 1       twin_corners_dn 1    ENDIF ELSE BEGIN       triangles_list 1       twin_corners_up 1       twin_corners_dn 1    ENDELSE     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF       return end  ");
-a[210] = new Array("./ToBeReviewed/HOPE/createhopestruct.html", "createhopestruct.pro", "", "FUNCTION createhopestruct  event     compile_opt idl2  strictarrsubs      widget_control  event top  get_uvalue top_uvalue   find the selected variable    selected    top_uvalue 1  findline top_uvalue   selected    get the variable id    varid top_uvalue 1  findline top_uvalue   datavarid selected    get the section type    type    top_uvalue 1  findline top_uvalue   sectype selected    get its dimension    dimsvar top_uvalue 1  findline top_uvalue   dimvar selected     tosort sortdim completetype type     dimsvar dimsvar tosort    get the specified spatial domain and build reading parameters    linetype  top_uvalue 1  findline top_uvalue   linetype selected     case linetype of        odd :domainid   widget_info event top find_by_uname    basedomainodd         even :domainid   widget_info event top find_by_uname    basedomaineven         odd even :domainid   widget_info event top find_by_uname    basedomainodd even     endcase    allaxes top_uvalue 1  findline top_uvalue   dimlist     xaxis allaxes dimsvar 0     xlimits    top_uvalue 1  findline top_uvalue   xlimits     if NOT keyword_set xlimits  then begin       xid widget_info domainid find_by_uname    xinterval        widget_control  xid  get_value xint    endif ELSE xint   xaxis where xaxis GE xlimits 0  AND xaxis LE xlimits 1     yaxis allaxes dimsvar 1     yaxis   reverse yaxis          latitudes from the south to the north    ylimits    top_uvalue 1  findline top_uvalue   ylimits     if NOT keyword_set ylimits  then begin       yid widget_info domainid find_by_uname    yinterval        widget_control  yid  get_value yint    endif ELSE yint   yaxis where yaxis GE ylimits 0  AND yaxis LE ylimits 1     zaxis allaxes dimsvar 2     zlimits    top_uvalue 1  findline top_uvalue   zlimits     if NOT keyword_set zlimits  then begin       zid widget_info domainid find_by_uname    zinterval        widget_control  zid  get_value zint    endif ELSE zint   zaxis where zaxis GE zlimits 0  AND zaxis LE zlimits 1    time axis and time interval    time allaxes dimsvar 3     yyyymmdd   vairdate time     tlimits    top_uvalue 1  findline top_uvalue   tlimits     if NOT keyword_set tlimits  then BEGIN       date1id   widget_info event top  find_by_uname    date1        widget_control  date1id  get_value   date1       date2id   widget_info event top  find_by_uname    date2        widget_control  date2id  get_value   date2       tlimits    date1  date2     ENDIF    tint   time where yyyymmdd GE tlimits 0  AND yyyymmdd LE tlimits 1       limits of the domain      nxt   n_elements xint     nyt   n_elements yint     nzt   n_elements zint     jpt   n_elements tint        firstx    where xaxis GE xint 0 0     firsty    where yaxis GE yint 0 0     lasty   firsty nyt 1    firstz    where zaxis GE zint 0 0     firstt    where time GE tint 0 0      read the array      cdfid ncdf_open top_uvalue 1  findline top_uvalue   filename     offset firstx n_elements yaxis lasty 1 firstz firstt     count nxt nyt nzt jpt     tosortinv sortdim completetype type inv    sort the offset and count for the case of the array is not written   as a xyzt array but for example as a yzxt array     offset offset tosortinv     count count tosortinv    call to ncdf_varget    ncdf_varget  cdfid  varid  array  offset offset  count count     force to keep the dimension equal to 1    if count 3  eq 1 then array reform array count 0 count 1 count 2 count 3 over     if not  array_equal tosort  lindgen 4  then array transpose temporary array tosort     count nxt nyt nzt jpt     if jpt eq 1 then array reform array count 0 count 1 count 2 count 3 over     array reverse array  2   over    if there is no longitude zoom  shift the array to obtain longitude   between 20 and 380    if nxt EQ 128 OR nxt EQ 256 then begin       key_shift    where xaxis GE 20 0        xaxis   shift temporary xaxis  key_shift        xaxis where xaxis LT 20    xaxis where xaxis LT 20 360       array   shift temporary array  key_shift  0  0  0     ENDIF ELSE key_shift   0   get some informations about the array    insidevar ncdf_varinq cdfid varid     if insidevar natts NE 0 then begin       attnames   strarr insidevar natts        for attiq 0 insidevar natts 1 do attnames attiq strlowcase ncdf_attname cdfid varid attiq    get the name       if  where attnames EQ  long_name 0  EQ  1 then value             ELSE ncdf_attget cdfid varid long_name value       varname   strtrim string value  2    get the units       if  where attnames EQ  units 0  EQ  1 then value             ELSE ncdf_attget cdfid varid units value       varunit   strtrim string value  2    get the  missing_value        if  where attnames EQ  missing_value 0  EQ  1 then valmask   1e20         ELSE ncdf_attget cdfid varid missing_value  valmask    ENDIF ELSE BEGIN        varunit           valmask   1e20       varname        ENDELSE    varexp         build arguments to use computehopegrid and put it together in a structure    firsts    firstx firsty firstz     lasts    firstx nxt 1 firsty nyt 1 firstz nzt 1     vargrid    top_uvalue 1  findline top_uvalue   pointtype selected     hopegrid    xaxis:xaxis  yaxis:yaxis  zaxis:zaxis  firsts:firsts  lasts:lasts  type:type  linetype:linetype  pttype:vargrid     hopestru    array:array  unit:varunit  name:varname  date:time firstt:firstt jpt 1  grid:vargrid  hopegrid:hopegrid    we close the netcdf file before living     ncdf_close   cdfid    return  hopestru end");
-a[211] = new Array("./ToBeReviewed/HOPE/cw_selectinterval.html", "cw_selectinterval.pro", "", "   PRO testwid_event  event         compile_opt idl2  strictarrsubs          widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          get :BEGIN            id   widget_info event top find_by_uname    discret             widget_control  id  get_value   value1            help  value1            print   value1  value1            id   widget_info event top find_by_uname    continus             widget_control  id  get_value   value2            help  value2            print   value2  value2         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex         compile_opt idl2  strictarrsubs          base widget_base COLUMN       nothing   widget_label base  value    beginning of the test           nothing   cw_selectinterval base  10 indgen 5  _extra   ex  uname    discret  uvalue    discret       print  nothing      nothing   cw_selectinterval base  indgen 20  _extra   ex  uname    continus  uvalue    continus       print  nothing          nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base   no_block      return   end       function cw_selectinterval_get_value  id     compile_opt idl2  strictarrsubs      bgroupid widget_info id  find_by_uname    bgroup    the widget is a set of button    if bgroupid ne 0 then begin       widget_control  bgroupid  get_value   selected       widget_control  bgroupid  get_uvalue   vecteur       vecteur   vecteur vecteur    endif else begin   the widget is 2 sliders       Minid   Widget_Info Id  Find_by_uname    min        widget_control  minid  get_value   minval       minval   minval value       maxid   widget_info id  find_by_uname    max        widget_control  maxid  get_value   maxval       maxval   maxval value       widget_control  minid  get_uvalue   vecteur       vecteur   vecteur vecteur       selected   where vecteur ge minval and vecteur le maxval     ENDELSE   if selected 0  eq  1 then return   1 else return  vecteur selected  END   function cw_selectinterval_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval    case uval name of        min :begin                 change the value if the minimum for the slider called max          maxid widget_info event handler  find_by_uname    max           widget_control  maxid  set_value SLIDER_MIN:event value 1        end        max :begin                 change the value if the maximum for the slider called min          minid widget_info event handler  find_by_uname    min           widget_control  minid  set_value SLIDER_MAX:event value 1        end        bgroup :    endcase    return   ID:event handler  TOP:event top  HANDLER:0L  END    function cw_selectinterval  parent  vecteur  _extra   ex     compile_opt idl2  strictarrsubs       base   widget_base parent                           EVENT_FUNC    cw_selectinterval_event                            FUNC_GET_VALUE cw_selectinterval_get_value                            PRO_SET_VALUE cw_selectinterval_set_value                             ROW  _extra   ex     if n_elements vecteur  le 10 then begin       nothing   CW_BGROUP base  strtrim vecteur 1 nonexclusive row  uvalue    name: bgroup  vecteur:vecteur  uname bgroup        buttvalue bytarr n_elements nothing        buttvalue 0 1       widget_control  nothing  set_value buttvalue    endif else begin       min min floor vecteur        max max ceil vecteur        nothing cw_slider_pm base  value   min  min min  max max 1  uvalue    name: min  vecteur:vecteur  uname min        nothing cw_slider_pm base  value   max  min min 1  max max  uvalue    name: max  uname max     endelse    return  base end");
-a[212] = new Array("./ToBeReviewed/HOPE/domainpart.html", "domainpart.pro", "", "pro domainpart  top_uvalue  basedomain  selected  DESTROY   destroy     compile_opt idl2  strictarrsubs       if keyword_set destroy  then BEGIN         id   widget_info basedomain find_by_uname    title          IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    oddsecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    evensecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    odd evensecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basex        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basey        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basez        IF id NE 0 THEN widget_control  id   destroy       return    endif     we get the size of the dimenstion id of this section      dimvar    top_uvalue 1  findline top_uvalue   dimvar     selecteddim   dimvar  selected     typedim    top_uvalue 1  findline top_uvalue   typedim     sorteddim   selecteddim sortdim typedim selecteddim     dimlist    top_uvalue 1  findline top_uvalue   dimlist       longitude part      basex widget_info basedomain find_by_uname    basex     IF basex NE 0 THEN widget_control  basex   destroy    basex widget_base basedomain row  uname basex     nothing widget_text basex value longitude  xsize   10     nothing cw_selectinterval basex dimlist sorteddim 0 uname xinterval uvalue name: xinterval       latitude part      basey widget_info basedomain find_by_uname    basey     IF basey NE 0 THEN widget_control  basey   destroy    basey widget_base basedomain row  uname basey     nothing widget_text basey value latitude  xsize   10     nothing cw_selectinterval basey reverse dimlist sorteddim 1  uname yinterval uvalue name: yinterval       depth part      basez widget_info basedomain find_by_uname    basez     IF basez NE 0 THEN widget_control  basez   destroy    basez widget_base basedomain row  uname basez     nothing widget_text basez value depth  xsize   10     nothing cw_selectinterval basez dimlist sorteddim 2 uname zinterval uvalue name: zinterval    end  ");
-a[213] = new Array("./ToBeReviewed/HOPE/findlineandpointtype.html", "findlineandpointtype.pro", "", "FUNCTION findlineandpointtype  sectype  xaxis  yaxis  iodir   the file  HOPE_lonlat nc  is used in this function  This file must   be localized in iodir   netcdf HOPE_lonlat     dimensions:           latTlow   242             lonTlowodd   128             latThigh   390             lonThighodd   256     variables:           float latTlow latTlow                      latTlow:units    degrees_north              float lonTlowodd lonTlowodd                      lonTlowodd:units    degrees_east                      lonTlowodd:point_spacing    even                      lonTlowodd:modulo                   float latThigh latThigh                      latThigh:units    degrees_north              float lonThighodd lonThighodd                      lonThighodd:units    degrees_east                      lonThighodd:point_spacing    even                      lonThighodd:modulo                 compile_opt idl2  strictarrsubs      jpi   n_elements xaxis     jpj   n_elements yaxis      depermination of the grid type and of the point type     low resolution grid: jpi 128  jpj 121   x 2  jpk 20                     0        1 4         2 8       4 2        5 6      odd                    T          u          T          u  93 3      even        T          u          T          u             92 2      odd                    T          u          T          u  91 1      even        T          u          T          u             90 0       high resolution grid: jpi 256  jpj 195   x 2  jpk 29                     0        0 7         1 4        2 1        2 8             odd                    T          u          T          u  91 6      even        T          u          T          u             91 0      odd                    T          u          T          u  90 5      even        T          u          T          u             90 0        x0   floor xaxis 0 10 10     y0   floor yaxis 0 10 10     case sectype of        xy :BEGIN          if  jpi NE 128 and jpi NE 256              OR  jpj NE 121 AND jpj NE 121 2 AND jpj NE 195 AND jpj NE 195 2  then begin             print    CASE NOT coded              stop          ENDIF          case 1 of             jpj EQ 195: BEGIN                case X0 OF                   0:BEGIN                      line    even                       vargrid    T                    END                   0 7:BEGIN                      case y0 OF                         91 6:BEGIN                            line    odd                             vargrid    T                          END                         91 0:BEGIN                            line    even                             vargrid    U                          END                         ELSE:BEGIN                            print    CASE NOT coded                             stop                         END                      endcase                   END                   1 4:BEGIN                      line    odd                       vargrid    U                    END                endcase             END             jpj EQ 121:BEGIN                case x0 OF                   0:BEGIN                      line    even                       vargrid    T                    END                   1 4:BEGIN                      case y0 OF                         93 3:BEGIN                            line    odd                             vargrid    T                          END                         92 2:BEGIN                            line    even                             vargrid    U                          END                         ELSE:BEGIN                            print    CASE NOT coded                             stop                         END                      endcase                   END                   2 8:BEGIN                      line    odd                       vargrid    U                    END                endcase             END             jpj EQ 195 2:BEGIN                line    odd even                 case x0 OF                   0 7:vargrid    T                    1 4:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             jpj EQ 121 2:BEGIN                line    odd even                 case x0 OF                   1 4:vargrid    T                    2 8:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             ELSE:BEGIN                print    CASE NOT coded                 stop             END          endcase       END        xz :BEGIN          if  jpi NE 128 and jpi NE 256  then begin             print    CASE NOT coded              stop          ENDIF          case X0 OF             0:BEGIN                line    even                 vargrid    T              END             0 7:BEGIN                id   ncdf_open iodir HOPE_lonlat nc                 ncdf_varget  id   latThigh  lat                test    where lat EQ yaxis 0 0                 if test EQ  1 then begin                   print    CASE NOT coded                    stop                endif                IF  test MOD 2  EQ 1 THEN BEGIN                   line    even                    vargrid    U                 ENDIF ELSE BEGIN                   line    odd                    vargrid    T                 ENDELSE                ncdf_close  id             END             1 4:BEGIN                if jpi EQ 128 then begin                   id   ncdf_open iodir HOPE_lonlat nc                    ncdf_varget  id   latTlow  lat                   test    where lat EQ yaxis 0 0                    if test EQ  1 then begin                      print    CASE NOT coded                       stop                   endif                   IF  test MOD 2  EQ 1 THEN BEGIN                      line    even                       vargrid    U                    ENDIF ELSE BEGIN                      line    odd                       vargrid    T                    ENDELSE                   ncdf_close  id                ENDIF ELSE BEGIN                   line    odd                    vargrid    U                 ENDELSE             END             2 8:BEGIN                line    odd                 vargrid    U              END          endcase       END        yz :BEGIN          if  jpj NE 121 AND jpj NE 195  then begin             print    CASE NOT coded              stop          ENDIF          id   ncdf_open iodir HOPE_lonlat nc           case y0 of             93 3:BEGIN                line    odd                 ncdf_varget  id   lonTlowodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    T                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             92 2:BEGIN                line    even                 ncdf_varget  id   lonTlowodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    U                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    T                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             91 6:BEGIN                line    odd                 ncdf_varget  id   lonThighodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    T                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             91 0:BEGIN                line    even                 ncdf_varget  id   lonThighodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    U                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    T                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             ELSE:BEGIN                print    CASE NOT coded                 stop             END          endcase          ncdf_close  id       END       else:BEGIN          print   case not coded           stop       END    endcase     return   linetype:line  pointtype:vargrid  end");
-a[214] = new Array("./ToBeReviewed/HOPE/read_hope.html", "read_hope.pro", "", "          NAME: read_hope     PURPOSE: read the Hope grid file converted in NetCdf by xconv     CATEGORY: reading     CALLING SEQUENCE: a read_hope typein  varnamein       INPUTS:          typein: a string specifing from which type of section the 4D          array based:  xy   xz   yz             varnamein: a string the name of the cariable to be read  in          lower or upper case      KEYWORD PARAMETERS:             FILENAME   the name of the file to be read             XLIMITS   a two elements vertor  lonmin  lonmax                      the bondary of the longitudes  from 0 to 360              YLIMITS   a two elements vertor  latmin  latmax                      the bondary of the latitudes  from  90 to 90              ZLIMITS   a two elements vertor  depthmin  depthmax                      the bondary of the depth             TLIMITS   a two elements vertor  date1  date2                      the bondary of the calendar with date1 and date2                     folowing the syntaxe yyyymmdd              ODDPT: activate to read only the sections located on ODD           points               EVENPT: activate to read only the sections located on even           points               ODDEVENPT: activate to read only the sections located on           both even and odd points  horizontal sections      OUTPUTS:             1 if typein and varnamein are undefine  this is the widget          version             a structure which but be read by litchamp pro and is          necessary to complute the grid associated to the data  see          the example      COMMON BLOCKS: common pro  usefull only for the definition of iodir      SIDE EFFECTS:        x   y   z   t   xt   yt  and  zt  section not coded  xconv       must be able to works with this kind of fonction        The grib file has no zoom possibilities on horizontal       dimensions      RESTRICTIONS:         When typein and varnamein are defined  the methode to find the       godd variable is:       1  find the variables which are available on this type of       sections woth this name       2  if ODDPT  EVENPT or ODDEVENPT are specified  consider only       these types of sections       3  for an XY section the chosen variable is the one which has       the most level in the vertical domain specified by ZLIMITS           for an XZ section the chosen variable is the one which has       the most points in the latitude domain specified by YLIMITS           for an YZ section the chosen variable is the one which has       the most points in the longitude domain specified by XLIMITS        EXAMPLE:         IDL  a read_hope xy ocpt filename CLIM_CNT_1993 1998 nc        IDL  help  a struct         Structure   6 tags  length 1860176  refs 1:          ARRAY           FLOAT     Array 128  242  15           UNIT            STRING     deg C           NAME            STRING     Ocean potential temperature           DATE            FLOAT     Array 1           GRID            STRING     T           HOPEGRID        STRUCT       Array 1        IDL  help  a hopegrid struct         Structure   8 tags  length 1588  refs 2:          XAXIS           FLOAT     Array 128           YAXIS           FLOAT     Array 242           ZAXIS           FLOAT     Array 15           FIRSTS          LONG      Array 3           LASTS           LONG      Array 3           TYPE            STRING     xy           LINETYPE        STRING     odd even           PTTYPE          STRING     T        IDL  help  litchamp a            FLOAT       Array 128  242  15      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         June 2001             pro read_hope_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval    widget_control  event top  get_uvalue top_uvalue    case uval name OF          cancel :begin   close the file          cdfid top_uvalue 1  findline top_uvalue   cdfid           ncdf_close  cdfid   clear the pointer          for i 0 n_elements top_uvalue 1 do ptr_free  top_uvalue i    kill the widget          widget_control event top destroy       end          type choice :begin   find the new type of selected section          typeindex widget_info event id droplist_select           selectedtype top_uvalue 1  findline top_uvalue   type choice typeindex    find the available variables for this type of section          sectype    top_uvalue 1  findline top_uvalue   sectype           goodvar   where sectype EQ selectedtype           namevar    top_uvalue 1  findline top_uvalue   namevar           goodnamevar   namevar goodvar    find the selected var name          varchoiceid   widget_info event top find_by_uname    var choice           varindex   widget_info varchoiceid droplist_select           varchoice    top_uvalue 1  findline top_uvalue   var choice           selectedvarname varchoice varindex    do we change the variable           if  where goodnamevar EQ selectedvarname 0  EQ  1 then begin             selectedvarname   goodnamevar 0              varindex    where varchoice EQ selectedvarname 0              widget_control  varchoiceid  set_droplist_select   varindex          ENDIF   displays the different domains          selected   goodvar where goodnamevar EQ selectedvarname           rh_alldomains  event top  selected       end          var choice :BEGIN   find the new variable          varindex widget_info event id droplist_select           selectedvar top_uvalue 1  findline top_uvalue   var choice varindex    find the available variables for this type of section          namevar    top_uvalue 1  findline top_uvalue   namevar           goodvar   where namevar EQ selectedvar           sectype    top_uvalue 1  findline top_uvalue   sectype           goodtype   sectype goodvar    find the selected type of section          typechoiceid   widget_info event top find_by_uname    type choice           typeindex   widget_info typechoiceid droplist_select           typechoice    top_uvalue 1  findline top_uvalue   type choice           selectedtype typechoice typeindex    do we change the type of section            if  where goodtype EQ selectedtype 0  EQ  1 then begin             selectedtype   goodtype 0              typeindex    where typechoice EQ selectedtype 0              widget_control  typechoiceid  set_droplist_select   typeindex          ENDIF   displays the different domains          selected   goodvar where goodtype EQ selectedtype           rh_alldomains  event top  selected       END          plot :BEGIN   plot the array          res   createhopestruct event    type of section          selected    top_uvalue 1  findline top_uvalue   selected           type    top_uvalue 1  findline top_uvalue   sectype selected    get the informations of cw_specifie          specifieid widget_info event top find_by_uname    specifie           widget_control  specifieid  get_value   specifie          specifie   struct2string specifie direct2string           case type of              x :command    plt1d res x specifie              y :command    plt1d res y specifie              z :command    plt1d res z specifie              t :command    pltt res t   specifie              xy :command    plt  res specifie              xz :command    pltz  res xz specifie              yz :command    pltz  res yz specifie              xt :command    pltt res xt specifie              yt :command    pltt res yt specifie              zt :command    pltt res zt specifie              xyz :              xyt :              yzt :              xyzt :          ENDCASE          test   execute command           if test EQ 0 then stop       end          linechoice :BEGIN          if event select EQ 1 then begin             sensitive   bytarr 3              sensitive where odd   even   odd even  eq event value    1             basedomainodd widget_info event top find_by_uname    basedomainodd              widget_control  basedomainodd  sensitive   sensitive 0              basedomaineven widget_info event top find_by_uname    basedomaineven              widget_control  basedomaineven  sensitive   sensitive 1              basedomainoddeven widget_info event top find_by_uname    basedomainodd even              widget_control  basedomainoddeven  sensitive   sensitive 2              case  where sensitive EQ 1 0  of                0:BEGIN                   widget_control  basedomainodd  get_uvalue   oddsecchoice                   oddsecchoiceid widget_info event top find_by_uname    oddsecchoice                    if oddsecchoiceid NE 0 then                      index   widget_info oddsecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    oddsecchoice index                 END                1:BEGIN                   widget_control  basedomaineven  get_uvalue   evensecchoice                   evensecchoiceid widget_info event top find_by_uname    evensecchoice                    if evensecchoiceid NE 0 then                      index   widget_info evensecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    evensecchoice index                 END                2:BEGIN                   widget_control  basedomainodd  get_uvalue   oddevensecchoice                   oddevensecchoiceid widget_info event top find_by_uname    odd evensecchoice                    if oddevensecchoiceid NE 0 then                      index   widget_info oddevensecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    oddevensecchoice index                 END             endcase          endif       END          oddsecchoice :BEGIN          widget_control  event top  update 0          basedomainodd widget_info event top find_by_uname    basedomainodd           widget_control  basedomainodd  get_uvalue   oddsecchoice          domainpart  top_uvalue  basedomainodd  oddsecchoice event index            top_uvalue 1  findline top_uvalue   selected    oddsecchoice event index           widget_control  event top  update 1       END          evensecchoice :BEGIN          widget_control  event top  update 0          basedomaineven widget_info event top find_by_uname    basedomaineven           widget_control  basedomaineven  get_uvalue   evensecchoice          domainpart  top_uvalue  basedomaineven  evensecchoice event index            top_uvalue 1  findline top_uvalue   selected    evensecchoice event index           widget_control  event top  update 1       END          odd evensecchoice :BEGIN          widget_control  event top  update 0          basedomainoddeven widget_info event top find_by_uname    basedomainodd even           widget_control  basedomainoddeven  get_uvalue   oddevensecchoice          domainpart  top_uvalue  basedomainoddeven  oddevensecchoice event index            top_uvalue 1  findline top_uvalue   selected    oddevensecchoice event index           widget_control  event top  update 1       END          date1 :BEGIN          date2id   widget_info event top  find_by_uname    date2           widget_control  date2id  get_value   date2          if event value GT date2 then widget_control  date2id  set_value   event value       END          date2 :BEGIN          date1id   widget_info event top  find_by_uname    date1           widget_control  date1id  get_value   date1          if event value LT date1 then widget_control  date1id  set_value   event value       END         else:    endcase    return end                   FUNCTION read_hope  typein  varnamein  FILENAME   filename  XLIMITS   xlimits  YLIMITS   ylimits   ZLIMITS   zlimits  TLIMITS   tlimits  ODDPT   oddpt  ODDEVENPT   oddevenpt  EVENPT   evenpt  _extra   ex     compile_opt idl2  strictarrsubs    common                           usefull only for the definition of iodir    if n_elements filename  EQ 0 then filename   isafile iodirectory   iodir  _extra   ex    IF size filename   type  NE 7 THEN return   1   filename   isafile filename   filename  iodirectory   iodir  _extra   ex      cdfid   ncdf_open filename          id of the netcdf file    wathinside   ncdf_inquire cdfid     structure with global informations       dimensions      namedim   strarr wathinside ndims     name of the dimensions   typedim   strarr wathinside ndims     type of the dimensions  x y z t    sizedim   lonarr wathinside ndims     size of each dimension   loop on the dimensions to get the names and sizes   for dimiq   0  wathinside ndims 1 do begin     ncdf_diminq  cdfid  dimiq  name  value     namedim dimiq    name     case 1 of        STRCMP name   lon  3   FOLD_CASE :typedim dimiq     x        STRCMP name   lat  3   FOLD_CASE :typedim dimiq     y        STRCMP name   z  1   FOLD_CASE :typedim dimiq     z        STRCMP name   t  1   FOLD_CASE :typedim dimiq     t        ELSE:BEGIN         ncdf_close  cdfid         return  report Unknown name of dimension        END     endcase     sizedim dimiq    value   endfor   dimlist: structure which contains the name and the value of each   dimension   we suppose that there is always a variable which has the    same name that the dimension and which gives the values of   this dimension   ncdf_varget  cdfid  namedim 0  value   dimlist   create_struct namedim 0  value    for dimiq   1  wathinside ndims 1 do begin     ncdf_varget  cdfid  namedim dimiq  value  get the value     dimlist   create_struct dimlist  namedim dimiq  value    endfor       variables      namevar   strarr wathinside nvars      names of the variables   ndimsvar   lonarr wathinside nvars     number of dim for each variable   dimvar   replicate 1  wathinside ndims  wathinside nvars    dims of each variables   loop over the variable ids to fill namevar  ndimsvar and dimvar   for varid   0  wathinside nvars 1 do begin     res   ncdf_varinq cdfid  varid      namevar varid    res name     namevar varid    strjoin strsplit namevar varid   _ 0 99   EXTRACT   REGEX      ndimsvar varid    res ndims     dimvar 0:res ndims 1  varid    res dim   ENDFOR   we cut dimvar to select only the interessant part   dimvar   dimvar 0:max ndimsvar 1      selection of the data variables which are diffrent from the   dimension variables   we suppose that that data variables are 4D array  with sometime   dimensions equal to 1  they must be different from dimension   variables which have only 1 dimension   datavarid   where ndimsvar eq 4    numberofvar   n_elements datavarid    namevar   namevar datavarid    ndimsvar   ndimsvar datavarid    dimvar   dimvar  datavarid      sectype   strarr numberofvar    the type of section for each variable : xy   xz   yz    linetype   strarr numberofvar    the line of the points : odd  even or odd even   pointtype   strarr numberofvar    the type of variable : scalar  T  or vector  U    for i   0  numberofvar 1 do begin     dimofthevar   dimvar  i      sectype i    typedim dimofthevar 0 typedim dimofthevar 1      xaxisid   dimofthevar where typedim dimofthevar  EQ  x      yaxisid   dimofthevar where typedim dimofthevar  EQ  y      lineandpt   findlineandpointtype sectype i  dimlist xaxisid 0  dimlist yaxisid 0  iodir      linetype i    lineandpt linetype     pointtype i    lineandpt pointtype   endfor                  definition of the widget               base   widget_base column        first base:       droplist to select the type of section      droplist to select the variable      button to select type of line : odd  even or odd even       base1   widget_base base   row   frame    typechoice   sectype uniq sectype  sort sectype    if n_elements typechoice  GT 1 then typechoice   typechoice sortdim typechoice    base11   widget_droplist base1  title    Type of section  value   typechoice  uvalue    name: type choice  uname    type choice    if n_elements typein  NE 0 then BEGIN     selectedtype   strmid typein  0  2      widget_control  base11  set_droplist_select                         0L    where typechoice EQ selectedtype 0    ENDIF ELSE selectedtype   typechoice 0       varchoice   namevar uniq namevar  sort namevar    base12   widget_droplist base1  title    Available data  value   varchoice  uvalue    name: var choice  uname    var choice    if n_elements varnamein  NE 0 THEN BEGIN     selectedname   varnamein     widget_control  base12  set_droplist_select                         0L    where strlowcase varchoice  EQ strlowcase varnamein 0    ENDIF ELSE selectedname   varchoice 0      base13   widget_base base1   row  uname    linechoicebase        base 2: base to select the domain of the odd points     base2   widget_base base   column  uname    basedomainodd   frame        base 3: base to select the domain of the even points     base3   widget_base base   column  uname    basedomaineven   frame        base 4: base to select the domain of the odd even points     base4   widget_base base   column  uname    basedomainodd even   frame        base 5: calendar     base5   widget_base base   row  uname    baset   frame    timename   strlowcase tag_names dimlist wathinside recdim    read the time axis in julina days   time   ncdf_timeget cdfid  timename    update the dimlist structure   dimlist wathinside recdim    time   base51   cw_calendar base5  time  uname    date1  uvalue    name: date1    base52   cw_calendar base5  time  uname    date2  uvalue    name: date2         base 6: base to select the min  max    and others keywords     base6   cw_specifie base   column  uname    specifie  uvalue    name: specifie         base 7: last base with the action buttons     base7   widget_base base   row  uname    finalaction    base71   widget_button base7  value    Plot  uvalue    name: plot    base72   widget_button base7  value    Cancel  uvalue    name: cancel        determination of the selected variable         goodname   0   where strlowcase namevar  EQ strlowcase selectedname    goodtype   0   where sectype EQ selectedtype    selected   inter goodname  goodtype    if selected 0  EQ  1 then BEGIN     widget_control  base   destroy     ncdf_close  cdfid     return  report impossible combinaison : type of section  selectedtype  variable name  selectedname    ENDIF   if n_elements typein  NE 0 then BEGIN     if NOT keyword_set xlimits  then xlimits    1e9  1e9      if NOT keyword_set ylimits  then ylimits    1e9  1e9      if NOT keyword_set zlimits  then zlimits    1e9  1e9      if NOT keyword_set tlimits  then tlimits    1e9  1e9    ENDIF   if n_elements typein  NE 0 AND n_elements selected  NE 1 then BEGIN     if keyword_set oddpt  then selected   inter selected  where linetype EQ  odd      if keyword_set evenpt  then selected   inter selected  where linetype EQ  even      if keyword_set oddevenpt  then selected   inter selected  where linetype EQ  odd even      if selected 0  EQ  1 then BEGIN       widget_control  base   destroy       ncdf_close  cdfid       return  report impossible combinaison : type of section  selectedtype  variable name  selectedname  and line type       endif     if n_elements selected  NE 1 then begin       case selectedtype of          xy :BEGIN   choice on the vertical axis   choice based on the variable which has the most available levels   between the zlimits            if NOT keyword_set zlimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             zdim   dimvar 2  selected i              zaxis   dimlist zdim              nothing   where zaxis GE zlimits 0  AND zaxis LE zlimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END          xz :BEGIN   choice on the latitude axis           if NOT keyword_set ylimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             ydim   dimvar 2  selected i              yaxis   dimlist ydim              nothing   where yaxis GE ylimits 0  AND yaxis LE ylimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END          yz :BEGIN   choice on the longitude axis           if NOT keyword_set xlimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             xdim   dimvar 2  selected i              xaxis   dimlist xdim              nothing   where xaxis GE xlimits 0  AND xaxis LE xlimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END       endcase     endif   ENDIF       definition of the uvalue of the base which allows to share the   variables between programs         top_uvalue   ptrarr 2  18   allocate_heap     top_uvalue 0  0     type choice     top_uvalue 1  0    temporary typechoice     top_uvalue 0  1     var choice     top_uvalue 1  1    temporary varchoice     top_uvalue 0  2     namevar     top_uvalue 1  2    temporary namevar     top_uvalue 0  3     dimvar     top_uvalue 1  3    temporary dimvar     top_uvalue 0  4     sectype     top_uvalue 1  4    temporary sectype     top_uvalue 0  5     linetype     top_uvalue 1  5    temporary linetype     top_uvalue 0  6     pointtype     top_uvalue 1  6    temporary pointtype     top_uvalue 0  7     dimlist     top_uvalue 1  7    temporary dimlist     top_uvalue 0  8     typedim     top_uvalue 1  8    temporary typedim     top_uvalue 0  9     sizedim     top_uvalue 1  9    temporary sizedim     top_uvalue 0  10     cdfid     top_uvalue 1  10    cdfid    top_uvalue 0  11     datavarid     top_uvalue 1  11    datavarid    top_uvalue 0  12     selected     top_uvalue 1  12    selected    top_uvalue 0  13     filename     top_uvalue 1  13    filename    top_uvalue 0  14     xlimits     top_uvalue 1  14    testvar var   xlimits     top_uvalue 0  15     ylimits     top_uvalue 1  15    testvar var   ylimits     top_uvalue 0  16     zlimits     top_uvalue 1  16    testvar var   zlimits     top_uvalue 0  17     tlimits     top_uvalue 1  17    testvar var   tlimits      widget_control  base  set_uvalue   top_uvalue   rh_alldomains  base  selected    if n_params  EQ 0 then BEGIN   we use the widget     widget_control  base   REALIZE     xmanager   read_hope  base   no_block     return    1   ENDIF   get the output   output   createhopestruct top:base    clear the pointer   for i   0  n_elements top_uvalue 1 do ptr_free  top_uvalue i    close the file   ncdf_close  cdfid   return  output end");
-a[215] = new Array("./ToBeReviewed/HOPE/rh_alldomains.html", "rh_alldomains.pro", "", "PRO rh_alldomains  topid  selected     compile_opt idl2  strictarrsubs       widget_control  topid  get_uvalue top_uvalue    widget_control  topid  update 0      selectedline top_uvalue 1  findline top_uvalue   linetype selected      we get the size of the dimenstion id of this section      dimvar    top_uvalue 1  findline top_uvalue   dimvar     typedim    top_uvalue 1  findline top_uvalue   typedim     dimlist    top_uvalue 1  findline top_uvalue   dimlist     sizedim    top_uvalue 1  findline top_uvalue   sizedim      buttons to select type of line : odd  even or odd even      linechoicebase widget_info topid find_by_uname    linechoicebase     id   widget_info linechoicebase find_by_uname    linechoice     IF id NE 0 THEN widget_control  id   destroy    choice        if  where selectedline EQ  odd 0  NE  1 then choice    choice   odd     if  where selectedline EQ  even 0  NE  1 then choice    choice   even     if  where selectedline EQ  odd even 0  NE  1 then choice    choice   odd even     choice   choice 1:n_elements choice 1     nothing   cw_bgroup linechoicebase choice   row exclusive   return_name  uname    linechoice  uvalue    name: linechoice     widget_control  nothing  set_value   0    sensitive   bytarr 3     sensitive where odd   even   odd even  eq choice 0    1      odd points domain      basedomainodd widget_info topid find_by_uname    basedomainodd     id   widget_info basedomainodd find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    oddsecchoice   where selectedline EQ  odd     if oddsecchoice 0  NE  1 then BEGIN       oddsecchoice   selected oddsecchoice        nothing widget_label basedomainodd  value    Domain of the odd points  uname    title        IF n_elements oddsecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  oddsecchoice           sorteddim   selecteddim          FOR i   0  n_elements oddsecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           oddsecchoice   oddsecchoice sortedzdim           nothing widget_droplist basedomainodd title    number of levels  value   strtrim sizedims  2  uvalue    name: oddsecchoice  uname oddsecchoice        ENDIF        domainpart  top_uvalue  basedomainodd  oddsecchoice 0        widget_control  basedomainodd  set_uvalue   oddsecchoice    ENDIF ELSE BEGIN        nothing widget_label basedomainodd  value       uname    title        domainpart  top_uvalue  basedomainodd   destroy       widget_control  basedomainodd  set_uvalue    1    ENDELSE    widget_control  basedomainodd  sensitive   sensitive 0       even points domain      basedomaineven widget_info topid find_by_uname    basedomaineven     id   widget_info basedomaineven find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    evensecchoice   where selectedline EQ  even     if evensecchoice 0  NE  1 then BEGIN       evensecchoice   selected evensecchoice        nothing widget_label basedomaineven  value    Domain of the even points  uname    title        IF n_elements evensecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  evensecchoice           sorteddim   selecteddim          FOR i   0  n_elements evensecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           evensecchoice   evensecchoice sortedzdim           nothing widget_droplist basedomaineven title    number of levels  value   strtrim sizedims  2  uvalue    name: evensecchoice  uname evensecchoice        ENDIF        domainpart  top_uvalue  basedomaineven  evensecchoice 0        widget_control  basedomaineven  set_uvalue   evensecchoice    ENDIF ELSE BEGIN       domainpart  top_uvalue  basedomaineven   destroy       nothing widget_label basedomaineven  value       uname    title        widget_control  basedomaineven  set_uvalue    1    ENDELSE    widget_control  basedomaineven  sensitive   sensitive 1       odd even points domain      basedomainoddeven widget_info topid find_by_uname    basedomainodd even     id   widget_info basedomainoddeven find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    oddevensecchoice   where selectedline EQ  odd even     if oddevensecchoice 0  NE  1 then BEGIN       oddevensecchoice   selected oddevensecchoice        nothing widget_label basedomainoddeven  value    Domain of the odd even points  uname    title        IF n_elements oddevensecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  oddevensecchoice           sorteddim   selecteddim          FOR i   0  n_elements oddevensecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           oddevensecchoice   oddevensecchoice sortedzdim           nothing widget_droplist basedomainoddeven title    number of levels  value   strtrim sizedims  2  uvalue    name: odd evensecchoice  uname odd evensecchoice        ENDIF        domainpart  top_uvalue  basedomainoddeven  oddevensecchoice 0        widget_control  basedomainoddeven  set_uvalue   oddevensecchoice    ENDIF ELSE BEGIN       domainpart  top_uvalue  basedomainoddeven   destroy       nothing widget_label basedomainoddeven  value       uname    title        widget_control  basedomainoddeven  set_uvalue    1    ENDELSE    widget_control  basedomainoddeven  sensitive   sensitive 2       case  where sensitive EQ 1 0  of       0: top_uvalue 1  findline top_uvalue   selected    oddsecchoice 0        1: top_uvalue 1  findline top_uvalue   selected    evensecchoice 0        2: top_uvalue 1  findline top_uvalue   selected    oddevensecchoice 0     endcase      widget_control  topid  update 1    return end");
-a[216] = new Array("./ToBeReviewed/HOPE/sortdim.html", "sortdim.pro", "", "  function sortdim  dims  inverse inverse       IDL  a x y t z       IDL  b a sortdim a       IDL  print  a      x y t z     IDL  print  b      x y z t     IDL  print  b sortdim a inv       x y t z     IDL  a xytz      IDL  print  sortdim a                 0           1           3           2           compile_opt idl2  strictarrsubs      tosort   dims    if n_elements tosort  eq 1 then       tosort   string reform byte tosort 1 strlen tosort 0     tosort   strrepl tosort strwhere tosort x a     tosort   strrepl tosort strwhere tosort y b     tosort   strrepl tosort strwhere tosort z c     tosort   strrepl tosort strwhere tosort t d     tosort   uniq tosort sort tosort     if keyword_set inverse  then tosort sort tosort     return  tosort  end   ");
-a[217] = new Array("./ToBeReviewed/HOPE/xrh.html", "xrh.pro", "", "  procedure to call read_hope in the widget mode PRO xrh  _extra   ex     compile_opt idl2  strictarrsubs      a   read_hope _extra   ex     return end");
-a[218] = new Array("./ToBeReviewed/IMAGE/animgif.html", "animgif.pro", "", "             file_comments    Build a gif animation      categories Animated drawings       param toto gif  in required  It is the name of the gif file containing the animation                            Comment: this file is placed in the directory defined by iodir       uses common pro      restrictions We use the Z buffer to go faster                 So  if it failed in animgif  you have to do:                IDL  device   close                IDL  set_plot   x                 IDL  retall      restrictions If we want to delete the  common                  we have to define manually the picture s size                   variables xsize and ysize  just as iodir       history Guillaume Roullet  grlod ipsl jussieu fr             Sebastien Masson  smasson lodyc jussieu fr             30 4 1999      version  Id: animgif pro 134 2006 07 07 10:19:08Z navarro             PRO animgif  nomfic     compile_opt idl2  strictarrsubs    common      It recuperates the color palette and put it in red  green  blue       tvlct   rouge vert bleu get      It completes the current palette on 256 colors       red    rouge  replicate 255  256 n_elements rouge      green    vert  replicate 255  256 n_elements rouge      blue    bleu  replicate 255  256 n_elements rouge       It rocks on the z device  allowing to create the picture without display it     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     set_plot   z    size of the picture  in pixel :    xsize   30 min page_size  max   ma key_portrait   ma 1 key_portrait     ysize   30 min page_size  max   ma 1 key_portrait    ma key_portrait     device  set_resolution    xsize  ysize      Beginning of the gif file  Writing of an empty picture        reinitplt    plot   0   0   nodata    write_gif iodir nomfic tvrd red  green  blue   multiple         Beggining of the part we want to change        Loop of picture s creation       calen   TIMEGEN 366  START JULDAY 1 1 2000      debut   where calen EQ 19810105     debut   where calen EQ 19790105     debut   debut 0     if debut EQ  1 then begin       device   close       CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE       stop    endif     for i   0  73 15 1 do begin     for i   0  3 2 1 do begin     for i   0  73 2 1 do begin       print   Image numero :  strtrim i  2        date   calen debut i        erase  255       plt  nlec sst  date   ATF  19  29  int    5   noerase        plt  nlec sss  date   ATF  label   2   noerase        plt  nlec htoth  date   RE3 nlec hpycn  date   RE3  10  60  int   5   inv   noerase        domdef  290 340 5 15         plt  norme nlec unsurf  date   RE3  nlec vnsurf  date   RE3  0  1 2  int    1   noerase         Writing of the picture in the file  gif          write_gif iodir nomfic tvrd red  green  blue   multiple    ENDFOR      End of the part we want to change        Closing of the file     write_gif iodir nomfic close    Rerock on terminal X mode      device   close    CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE      return end");
-a[219] = new Array("./ToBeReviewed/INIT/initncdf.html", "initncdf.pro", "", "          NAME:initncdf     PURPOSE:initfile for Netcdf file  define all the grid parameters     CATEGORY:     CALLING SEQUENCE:initncdf  ncfilename      INPUTS:ncfilename: a string giving the name of the NetCdf file     KEYWORD PARAMETERS:           GLAMBOUNDARY:a 2 elements vector   lon1 lon2  the longitute         boundaries that should be used to visualize the data            lon2   lon1           lon2   lon1 le 360         key_shift will be defined according to GLAMBOUNDARY             INVMASK: to inverse the mask: mask   1 mask           IODIRECTORY a string giving the name of iodirectory  see         isafile pro for all possibilities  default value is common          variable iodir           MASKNAME: a string giving the name of the variable in the file          that contains the land sea mask           MISSING_VALUE: to define  or redifine if the attribute is         already existing  the missing values used with USEASMASK         keyword            start1: index the axis from 1 instead of 0 when using          xyindex and or zindex           USEASMASK: a string giving the name of the variable in the file          that will be used to build the land sea mask  In this case the         mask is based on the first record  if record dimension         exists  The mask is build according to :           1 the keyword missing_value if existing           2 the attribute  missing_value  if existing           3 NaN values if existing            XYZ AXISNAME  a string giving the name of the variable in the file          that contains the  xyz axis           for X axis  default name must be  x   longitude   nav_lon  or  lon          for Y axis  default name must be  y   latitude   nav_lat  or  lat          for Z axis  default name must be  z   level   lev   depth             XYZ MINMESH: to define the common variables i xyz minmesh         used to define the grid only in a zoomed part of the original         grid  Defaut values are 0L            XYZ MAXMESH: to define the common variables i xyz maxmesh         used to define the grid only in a zoomed part of the original         grid  Defaut values are jp ijk glo 1            xyindex: to define the x y axis with index instead of using         the values contained in X YAXISNAME           x yaxis   keyword_set start1    findgen jpi jpj           this forces key_onearth   0            zindex: to define the z axis with index instead of using         the values contained in ZAXISNAME           zaxis   keyword_set start1    findgen jpk       OUTPUTS:none  except the grid parameters of the common pro     COMMON BLOCKS:common pro     SIDE EFFECTS:change the grid parameters of the common pro     RESTRICTIONS:   the file must contain an x and an y axis   1 ou 2 dimentional array      EXAMPLE: IDL  initncdf toto nc glam 180 180      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         8 May 2002         PRO initncdf  ncfilein  XAXISNAME   xaxisname  YAXISNAME   yaxisname                   ZAXISNAME   zaxisname  MASKNAME   maskname                   INVMASK   invmask  USEASMASK   useasmask                   MISSING_VALUE   missing_value  START1   start1                   XYINDEX   xyindex  ZINDEX   zindex                   _EXTRA   ex       compile_opt idl2  strictarrsubs    common     check the name of the file   ncfile   isafile FILENAME   ncfilein  IODIRECTORY   iodir  _extra   ex    if size ncfile   type  NE 7 then BEGIN     print   initncdf cancelled      return   endif   if the file is stored on tape   if  version os_family EQ  unix  then spawn   file  ncfile     dev null       open the file   cdfid   ncdf_open ncfile    what is inside the file   inside   ncdf_inquire cdfid      name of the variables   namevar   strarr inside nvars    for varid   0  inside nvars 1 do begin     invar   ncdf_varinq cdfid  varid      namevar varid    strlowcase invar name    ENDFOR     find the xaxis   if keyword_set xaxisname  then xaxisname   strlowcase xaxisname  ELSE xaxisname    x    xvarid   where namevar EQ xaxisname OR namevar EQ  longitude                     OR namevar EQ  nav_lon  OR namevar EQ  lon    xvarid   xvarid 0    if xvarid EQ  1 then begin     print   the xaxis was not found  check the use of XAXISNAME keyword      stop   endif   get the size of xaxis   xinq   ncdf_varinq cdfid  xvarid    ncdf_diminq  cdfid  xinq dim 0  blabla  jpifromx   should we read or compute the xaxis    IF NOT keyword_set xyindex  THEN BEGIN   read the xaxis     ncdf_varget  cdfid  xvarid  xaxis   make sure of the shape of xaxis     IF xinq ndims GE 2 THEN BEGIN       ncdf_diminq  cdfid  xinq dim 1  blabla  jpjfromx       xaxis   reform xaxis  jpifromx  jpjfromx   over      ENDIF   ENDIF ELSE xaxis   keyword_set start1    findgen jpifromx      find the yaxis   if keyword_set yaxisname  then yaxisname   strlowcase yaxisname  ELSE yaxisname    y    yvarid   where namevar EQ yaxisname OR namevar EQ  latitude  OR namevar EQ  nav_lat  OR namevar EQ  lat    yvarid   yvarid 0    if yvarid EQ  1 then begin     print   the yaxis was not found  check the use of YAXISNAME keyword      stop   endif   get the size of yaxis and check it is ok with the values found for x   yinq   ncdf_varinq cdfid  yvarid    IF xinq ndims GE 2 THEN BEGIN     ncdf_diminq  cdfid  yinq dim 0  blabla  jpifromy     ncdf_diminq  cdfid  yinq dim 1  blabla  jpjfromy     IF jpifromy NE jpifromx THEN BEGIN        print   xaxis and y axis do not have the same x dimension      ENDIF   ENDIF ELSE ncdf_diminq  cdfid  yinq dim 0  blabla  jpjfromy   IF n_elements jpjfromx  NE 0 THEN BEGIN     IF jpjfromy NE jpjfromx THEN BEGIN        print   xaxis and y axis do not have the same y dimension      ENDIF       ENDIF   should we read or compute the xaxis    IF NOT keyword_set xyindex  THEN BEGIN   read the yaxis     ncdf_varget  cdfid  yvarid  yaxis   make sure of the shape of xaxis     IF xinq ndims GE 2 THEN yaxis   reform yaxis  jpifromy  jpjfromy   over    ENDIF ELSE yaxis   keyword_set start1    findgen jpjfromy      find the zaxis   if keyword_set zaxisname  then zaxisname   strlowcase zaxisname  ELSE zaxisname    z    zvarid   where namevar EQ  nav_lev  or namevar EQ zaxisname OR namevar EQ  level  OR namevar EQ  lev  OR strmid namevar  0  5  EQ  depth    zvarid   zvarid 0    if zvarid EQ  1 AND inside ndims GT 3 then begin     print   initncdf: the zaxis was not found  check the the use of ZAXISNAME keyword if you whant to find one        stop   endif   read the zaxis   if zvarid NE  1 THEN ncdf_varget  cdfid  zvarid  zaxis   IF keyword_set zindex  THEN       zaxis   keyword_set start1    findgen n_elements zaxis      mask   CASE 1 OF     keyword_set maskname :BEGIN       mskid    where namevar EQ strlowcase maskname 0        if mskid NE  1 THEN BEGIN          mskinq   ncdf_varinq cdfid  mskid    is the mask variable containing the record dimension          withrcd    where mskinq dim EQ inside recdim 0          IF withrcd NE  1 THEN BEGIN   in order to read only the first record             we need to get the size of each dimension           count   replicate 1L  mskinq ndims            FOR d   0  mskinq ndims  1 DO BEGIN             IF d NE withrcd THEN BEGIN               ncdf_diminq  cdfid  mskinq dim d  name  size               count d    size             ENDIF           ENDFOR   read the variable for the first record                     ncdf_varget  cdfid  mskid  tmask  count   count         ENDIF ELSE ncdf_varget  cdfid  mskid  tmask   check if we need to applay add_offset and scale factor                  FOR a   0  mskinq natts 1 DO BEGIN           attname   ncdf_attname cdfid  mskid  a                 CASE strlowcase attname  OF              add_offset :ncdf_attget  cdfid  mskid  attname  add_offset              scale_factor :ncdf_attget  cdfid  mskid  attname  scale_factor             ELSE:           ENDCASE         ENDFOR         IF n_elements scale_factor  NE 0 THEN tmask   tmask scale_factor         IF n_elements add_offset  NE 0 THEN tmask   tmask add_offset         if keyword_set invmask  then tmask   1 tmask         tmask   byte round tmask        ENDIF ELSE tmask    1            END       keyword_set useasmask :BEGIN       mskid    where namevar EQ strlowcase useasmask 0        if mskid NE  1 THEN BEGIN          mskinq   ncdf_varinq cdfid  mskid    is the mask variable containing the record dimension          withrcd    where mskinq dim EQ inside recdim 0          IF withrcd NE  1 THEN BEGIN   in order to read only the first record             we need to get the size of each dimension           count   replicate 1L  mskinq ndims            FOR d   0  mskinq ndims  1 DO BEGIN             IF d NE withrcd THEN BEGIN               ncdf_diminq  cdfid  mskinq dim d  name  size               count d    size             ENDIF           ENDFOR   read the variable for the first record                  ncdf_varget  cdfid  mskid  tmask  count   count         ENDIF ELSE ncdf_varget  cdfid  mskid  tmask   check if we need to applay add_offset and scale factor                FOR a   0  mskinq natts 1 DO BEGIN           attname   ncdf_attname cdfid  mskid  a                 CASE strlowcase attname  OF              add_offset :ncdf_attget  cdfid  mskid  attname  add_offset              scale_factor :ncdf_attget  cdfid  mskid  attname  scale_factor              missing_value :IF n_elements missing_value  EQ 0 THEN                 ncdf_attget  cdfid  mskid  attname  missing_value             ELSE:           ENDCASE         ENDFOR         IF n_elements scale_factor  NE 0 THEN tmask   tmask scale_factor         IF n_elements add_offset  NE 0 THEN tmask   tmask add_offset         IF n_elements missing_value  NE 0 THEN BEGIN   we have to take care of the float accuracy           CASE 1 OF             missing_value GE 1 e6:tmask   tmask LT  missing_value 10              missing_value LE  1 e6:tmask   tmask GT  missing_value 10              abs missing_value  LE 1 e 6:tmask   abs tmask  GT 1 e 6             ELSE:tmask   tmask NE missing_value           ENDCASE           if keyword_set invmask  then tmask   1 tmask         ENDIF ELSE BEGIN           tmask   finite tmask            IF min tmask  EQ 1 THEN BEGIN             print   missing or nan values not found              tmask    1                     ENDIF         ENDELSE       ENDIF ELSE tmask    1            END       ELSE:tmask     1   ENDCASE   ncdf_close  cdfid     compute the grid   if zvarid EQ  1 then BEGIN      computegrid  xaxis   xaxis  yaxis   yaxis           mask   tmask  onearth   1b   keyword_set xyindex  _EXTRA   ex    ENDIF ELSE BEGIN      computegrid  xaxis   xaxis  yaxis   yaxis  zaxis   zaxis           mask   tmask  onearth   1b   keyword_set xyindex  _EXTRA   ex   ENDELSE    IF n_elements time  EQ 0 THEN time   0   jpt   n_elements time        return end");
+a[195] = new Array("./ToBeReviewed/GRILLE/changegrid.html", "changegrid.pro", "", "       todo seb     function changegrid  newgrid       compile_opt idl2  strictarrsubs    cm_4mesh        if cmpgrid newgrid  EQ 0 then return  0     update the common paramaters      ccmeshparameters   newgrid     ixminmesh   newgrid ixminmesh    ixmaxmesh   newgrid ixmaxmesh    iyminmesh   newgrid iyminmesh    iymaxmesh   newgrid iymaxmesh    izminmesh   newgrid izminmesh    izmaxmesh   newgrid izmaxmesh     read the new file      loadgrid  newgrid filename     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF      return  1 end");
+a[196] = new Array("./ToBeReviewed/GRILLE/cmpgrid.html", "cmpgrid.pro", "", "       todo seb     FUNCTION cmpgrid  newgrid       compile_opt idl2  strictarrsubs    common       newgrid must be a structure      if size newgrid   type  NE 8 then return  0     does ccmeshparameters exist        if n_elements ccmeshparameters  EQ 0 then return  1     we compare the structure which caracterise the grid whith   ccmeshparameters      case 1 of       ccmeshparameters jpiglo NE newgrid jpiglo:       ccmeshparameters jpjglo NE newgrid jpjglo:       ccmeshparameters jpkglo NE newgrid jpkglo:       ccmeshparameters jpi NE newgrid jpi:       ccmeshparameters jpj NE newgrid jpj:       ccmeshparameters jpk NE newgrid jpk:       total ccmeshparameters glaminfo   newgrid glaminfo  NE 0:       total ccmeshparameters gphiinfo   newgrid gphiinfo  NE 0:       ccmeshparameters ixminmesh NE newgrid ixminmesh:       ccmeshparameters ixmaxmesh NE newgrid ixmaxmesh:       ccmeshparameters iyminmesh NE newgrid iyminmesh:       ccmeshparameters iymaxmesh NE newgrid iymaxmesh:       ccmeshparameters izminmesh NE newgrid izminmesh:       ccmeshparameters izmaxmesh NE newgrid izmaxmesh:       ccmeshparameters key_shift NE newgrid key_shift:       ccmeshparameters key_periodic NE newgrid key_periodic:       array_equal ccmeshparameters key_stride  newgrid key_stride  EQ 0:       ccmeshparameters key_gridtype NE newgrid key_gridtype:       ccmeshparameters key_yreverse NE newgrid key_yreverse:       ccmeshparameters key_zreverse NE newgrid key_zreverse:       ccmeshparameters key_partialstep NE newgrid key_partialstep:       ccmeshparameters key_onearth NE newgrid key_onearth:       ELSE:return  0    endcase     return  1 end");
+a[197] = new Array("./ToBeReviewed/GRILLE/decoupeterre.html", "decoupeterre.pro", "", "             file_comments   Similar to grille  Here  when vargrid is not  T  or  W  we have to   recuperate Tmask  glamt  gphit and the array of triangulation on the   considerated subdomain for the drawing  The specificity of decoupeterre   in comparaison with grille  is that we take  if possible  a subdomain   just a little bit bigger than the one defined by domdef in order to be   sure that the mask we draw will cover over all the drawing       categories   utilities      keyword TRI    This keyword serve to obtain  thanks to grille  the triangulation which   refer to the grid but only on the part of the zoom  This of triangulation   is passed in the variable we have equate at TRI    For example: grille tri triangulation_reduite    This keyword is used in plt pro      keyword WDEPTH   To specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          24 2 99      version    Id       todo seb : manque tous les param et plein de keywords                  PRO decoupeterre  mask  glam  gphi  gdep  TYPE   type  TRI   tri  INDICEZOOM   indicezoom  COINMONTE   coinmonte  COINDESCEND   coindescend  WDEPTH   wdepth  REALSECTION   realsection  USETRI   usetri  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             For key_performance     if vargrid EQ  W  then wdepth   1       horizontal parameters     if possible extent the domain according to the grid type   default case   case vargrid of      U :BEGIN       firstx   0    min firstxt  firstxu 1        lastx    max lastxt  lastxu 1    min firstyt  firstyu 1        lasty    max lastyt  lastyu 1    min firstxt  firstxv 1        lastx    max lastxt  lastxv 1    min firstyt  firstyv 1        lasty    max lastyt  lastyv 1    min firstxt  firstxf 1        lastx    max lastxt  lastxf 1    min firstyt  firstyf 1        lasty    max lastyt  lastyf 1    firstx 1 :lastx  firsty:lasty            ELSE glam   glamu 0    firstx 1 :lastx  firsty:lasty        ENDELSE     END      yz :BEGIN       if keyword_set realsection  EQ 0 then begin         if vargrid EQ  U  OR vargrid EQ  F  then             gphi   gphiu firstx:lastx  firsty:lasty        ENDIF ELSE BEGIN            to drawsectionbottom           if vargrid EQ  U  OR vargrid EQ  F  OR finite gphiv 0  EQ 0 then             gphi   gphif firstx:lastx  0    firsty 1 :lasty            ELSE gphi   gphiv firstx:lastx  0    firsty 1 :lasty        ENDELSE     END     ELSE:   ENDCASE     vertical boundaries     if keyword_set wdepth   then begin     firstz   0    min firstzt  firstzw 1      lastz    max lastzt  lastzw 1     jpk 1    ENDIF ELSE BEGIN     firstz   firstzt     lastz   lastzt   ENDELSE    nz   lastz firstz 1     mask     case type of      xy :BEGIN       mask   tmask firstx:lastx  firsty:lasty  firstz        profond   firstz NE 0     END   for the verical section  we have to choose the right mask according   to the grid point and to the direction of the section      xz :BEGIN       if vargrid EQ  V  OR vargrid EQ  F  then begin         mask    vmask firstx:lastx  firstyv:lastyv  firstz:lastz        ENDIF ELSE mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      END      yz :BEGIN       if vargrid EQ  U  OR vargrid EQ  F  then begin         mask    umask firstxu:lastxu  firsty:lasty  firstz:lastz        ENDIF ELSE mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      END     ELSE:mask   tmask firstx:lastx  firsty:lasty  firstz:lastz    endcase     vertical axis     when we do a real section we directly plot the gdepw    in drawsectionbottom pro  instead of contouring the mask at 0 5 at   gdept   IF keyword_set realsection  EQ 0 then gdep   gdept firstz:lastz      ELSE BEGIN       if lastz EQ jpk 1 then     we add some fictive very deep level that will not be used but that is   necessary to avoid array size bugs in draw bottom section        gdep    gdepw firstz 1:lastz  2 gdept jpk 1         ELSE gdep   gdepw firstz 1:lastz 1       gdep   gdepw firstz:lastz    special case when we are using the partial steps in the vertical   section that are only 1 point wide    in that case  the z axis is a 2d array and we modify the depth of   the last level ocean with hdepw that is the real depth of the bottom      CASE 1 OF       keyword_set key_partialstep  and type EQ  xz            AND ny EQ 1 AND keyword_set realsection :BEGIN         bottom   total mask  3          good   where bottom NE 0 AND bottom NE nz 1          bottom   lindgen nx bottom nx         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            gdep   replicate 1  nx gdep           truegdep   hdepw firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       keyword_set key_partialstep  and type EQ  yz            AND nx EQ 1 AND keyword_set realsection :BEGIN          bottom   total mask  3          good   where bottom NE 0 AND bottom NE nz 1          bottom   lindgen ny bottom ny         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            gdep   replicate 1  ny gdep           truegdep   hdepw firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ELSE:     ENDCASE   ENDELSE     Triangulation vector when TRI is activated      IF arg_present TRI  then       if triangles_list 0  EQ  1 OR usetri LT 1 then tri    1 ELSE BEGIN   If we are tracing a deep level  we redo the triangulation     if keyword_set profond  then begin       tri   triangule mask  coinmonte   coinmonte  coindescend   coindescend  _extra   ex        indicezoom    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF ELSE BEGIN    Otherwise  we recuperate the part of triangulation that interest us and we number them well        if nx EQ jpi AND ny EQ jpj then tri   triangles_list ELSE BEGIN          msk   bytarr jpi  jpj          msk firstx:lastx  firsty:lasty    1         ind   where  msk triangles_list 0    EQ 1                        AND msk triangles_list 1    EQ 1                        AND msk triangles_list 2    EQ 1           tri   triangles_list  ind firstx firsty jpi          y   tri jpi         x   tri y jpi         tri   x y nx       ENDELSE     ENDELSE   ENDELSE     if keyword_set key_performance  THEN print   temps decoupeterre  systime 1 tempsun      return end ");
+a[198] = new Array("./ToBeReviewed/GRILLE/domdef.html", "domdef.pro", "", "             file_comments    Allows to extract a subdomain of study by providing parameters    needed for drawings  see outputs       categories      param Z1  in optional    For a 3d domain whose the horizontal part cover all glam       param Z2  in optional    For a 3d domain whose the horizontal part cover all gphi      param X1  in optional    Define the minimum longitude   All levels are selected       param X2  in optional    Define the maximum longitude   All levels are selected       param Y1  in optional    Define the minimum latitude   All levels are selected       param Y2  in optional    Define the maximum latitude   All levels are selected       keyword ENDPOINTS   A four elements vector  x1 y1 x2 y2  used to specify   that domdef must define the box used to make a plot  pltz  pltt    plt1d  done strictly along the line  that can have any direction    starting at  x1  y1  ending at  x2  y2  When defining endpoints    you must also define TYPE which define the type of plots    pltz   xt   yt   zt   x   y   z   t  will used   ENDPOINTS keywords      keyword FINDALWAYS   Force to redefine a box even when none point is find in the box     In this case  we select all the grid       keyword GRIDTYPE   It is a string or a vector of strings containing the grids s name     Only determinated by  T U V W F  for which the calculation    must be done      For example:  T  ou  T U       keyword MEMEINDICES   It is possible that points t u v and F correspond to a same geographic   box which do not concern the same array indexes  This is sometimes a   problem  or at least serious complications  in programs where several   type of grid interven  see norme  curl  Activate MEMEINDICE to   force domdef to take same indexes  those of the grid T  for all other   grids       keyword INDEX    We activate it if we want that all elements passed in input of domdef    refer to indexes of glam  gphi and gdep arrays rather than to values    of these arrays       keyword XINDEX    We activate it if we want that all elements passed in input of domdef    and concerning the X dimension refer to indexes of glam arrays rather    than to values of these arrays       keyword YINDEX    We activate it if we want that all elements passed in input of domdef    and concerning the X dimension refer to indexes of gphi arrays rather    than to values of these arrays        keyword ZINDEX    We activate it if we want that all elements passed in input of domdef    and concerning the X dimension refer to indexes of gdep arrays rather    than to values of these arrays      OUTPUTS:on recupere pour les 4 grilles t u v f      nxt u v:entier qui contient le nombre de pts en longitude de      la grille reduite au domaine      nyt u v:entier qui contient le nombre de pts en latitude de      la grille reduite au domaine      nzt w:entier qui contient le nombre de pts en profondeur de      la grille reduite au domaine 3D      firstxt u v f: le first indice qui delimite le sous domaine     suivant x      firstyt u v f: le first indice qui delimite le sous domaine     suivant y      firstzt w: le first indice qui delimite le sous domaine     suivant z      lastxt u v f: le last indice qui delimite le sous domaine     suivant x      lastyt u v f: le last indice qui delimite le sous domaine     suivant y      lastzt w: le last indice qui delimite le sous domaine     suivant z      uses   common pro        history   Sebastien Masson  smasson lodyc jussieu fr   8 2 98   rewrite everything  debug and spee up Sebastien Masson April 2005      version    Id       todo seb: output pas clair  pas d input required          pro domdef  x1  x2  y1  y2  z1  z2  FINDALWAYS   findalways                 GRIDTYPE   gridtype  MEMEINDICES   memeindices                 XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex                 ENDPOINTS   endpoints  TYPE   type                 INDEX   index  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             For key_performance     CASE N_PARAMS  OF     0:     1:     2:     4:     6:     ELSE:BEGIN       ras   report Bad number of parameter in the call of domdef        RETURN     END   ENDCASE     IF keyword_set endpoints  THEN BEGIN     IF NOT keyword_set type  THEN BEGIN        dummy   report If domdef is used do find the box associated                             to endpoints  you must also specify type keyword        return     ENDIF      CASE N_PARAMS  OF       0:       1:boxzoom    x1        2:boxzoom    x1  x2        4:boxzoom    x1  x2  y1  y2        6:boxzoom    x1  x2  y1  y2  z1  z2      ENDCASE     section  BOXZOOM   boxzoom  ENDPOINTS   endpoints  TYPE   type   ONLYBOX     return   ENDIF         recall domdef when there is only one input parameter       IF N_PARAMS  EQ 1 THEN BEGIN     CASE n_elements x1  OF       2:domdef  x1 0  x1 1  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       4:domdef  x1 0  x1 1  x1 2  x1 3  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       6:domdef  x1 0  x1 1  x1 2  x1 3  x1 4  x1 5  FINDALWAYS   findalways  GRIDTYPE   gridtype  MEMEINDICES   memeindices  XINDEX   xindex  YINDEX   yindex  ZINDEX   zindex  INDEX   index  _extra   ex       ELSE:BEGIN         ras   report Bad number of elements in x1          RETURN       END     ENDCASE     RETURN     ENDIF     default definitions and checks     IF NOT keyword_set gridtype  THEN gridtype    T   U   V   W   F      ELSE gridtype   strupcase gridtype    IF keyword_set memeindices  THEN gridtype    T  gridtype    IF finite glamu 0  eq 0 THEN gridtype   gridtype where gridtype NE  U    IF finite glamv 0  eq 0 THEN gridtype   gridtype where gridtype NE  V    default definitions   lon1t   99999    lon2t    99999    lat1t   99999    lat2t    99999    lon1u   99999    lon2u    99999    lat1u   99999    lat2u    99999    lon1v   99999    lon2v    99999    lat1v   99999    lat2v    99999    lon1f   99999    lon2f    99999    lat1f   99999    lat2f    99999    vert1t   99999    vert2t    99999    vert1w   99999    vert2w    99999      IF jpj EQ 1 THEN BEGIN      IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN       glamt   reform glamt  jpi  jpj   over        gphit   reform gphit  jpi  jpj   over      ENDIF      IF  where gridtype eq  U 0  NE  1 THEN BEGIN       glamu   reform glamu  jpi  jpj   over        gphiu   reform gphiu  jpi  jpj   over      ENDIF       IF  where gridtype eq  V 0  NE  1 THEN BEGIN       glamv   reform glamv  jpi  jpj   over        gphiv   reform gphiv  jpi  jpj   over      ENDIF       IF  where gridtype eq  F 0  NE  1 THEN BEGIN       glamf   reform glamf  jpi  jpj   over        gphif   reform gphif  jpi  jpj   over      ENDIF     ENDIF     IF N_PARAMS  EQ 2 THEN GOTO  vertical         define all horizontal parameters     lon1 et lon2   lat1 et lat2   firstx tuvf  lastx tuvf  nx tuvf      check if the grid is defined for U and V points  If not  take care   of the cases gridtype eq  U  or  V      errstatus   0   IF  finite glamu 0 gphiu 0  EQ 0 OR n_elements glamu  EQ 0 OR n_elements gphiu  EQ 0  AND  where gridtype eq  U 0  NE  1 THEN BEGIN     firstxu    values f_nan     lastxu    values f_nan     nxu    values f_nan     okgrid   where gridtype NE  U  count      IF count NE 0 THEN gridtype   gridtype okgrid        ELSE errstatus   report U grid is undefined  Impossible to call domdef with vargid    U    ENDIF     IF  finite glamv 0 gphiv 0  EQ 0 OR n_elements glamv  EQ 0 OR n_elements gphiv  EQ 0  AND  where gridtype eq  V 0  NE  1 THEN BEGIN     firstxv    values f_nan     lastxv    values f_nan     nxv    values f_nan     okgrid   where gridtype NE  V  count      IF count NE 0 THEN gridtype   gridtype okgrid        ELSE errstatus   report V grid is undefined  Impossible to call domdef with vargid    V    ENDIF   IF errstatus EQ  1 THEN return       horizontal domain defined with lon1  lon2  lat1 and lat2       IF N_PARAMS  EQ 0       OR    N_PARAMS  EQ 4 OR N_PARAMS  EQ 6             AND NOT keyword_set xindex  AND NOT keyword_set yindex  AND NOT keyword_set index    THEN BEGIN     IF N_PARAMS  EQ 0 THEN BEGIN   find lon1 and lon2 the longitudinal boudaries of the full domain       IF  where gridtype eq  T 0  NE  1 THEN lon1t   min glamt  max   lon2t        IF  where gridtype eq  W 0  NE  1 AND  where gridtype eq  T 0  EQ  1 THEN lon1t   min glamt  max   lon2t        IF  where gridtype eq  U 0  NE  1 THEN lon1u   min glamu  max   lon2u        IF  where gridtype eq  V 0  NE  1 THEN lon1v   min glamv  max   lon2v        IF  where gridtype eq  F 0  NE  1 THEN lon1f   min glamf  max   lon2f        lon1   min lon1t  lon1u  lon1v  lon1f        lon2   max lon2t  lon2u  lon2v  lon2f    find lat1 and lat2 the latitudinal boudaries of the full domain       IF  where gridtype eq  T 0  NE  1 THEN lat1t   min gphit  max   lat2t        IF  where gridtype eq  W 0  NE  1 AND  where gridtype eq  T 0  EQ  1 THEN lat1t   min gphit  max   lat2t        IF  where gridtype eq  U 0  NE  1 THEN lat1u   min gphiu  max   lat2u        IF  where gridtype eq  V 0  NE  1 THEN lat1v   min gphiv  max   lat2v        IF  where gridtype eq  F 0  NE  1 THEN lat1f   min gphif  max   lat2f        lat1   min lat1t  lat1u  lat1v  lat1f        lat2   max lat2t  lat2u  lat2v  lat2f      ENDIF ELSE BEGIN        lon1   min x1  x2  max   lon2        lat1   min y1  y2  max   lat2      ENDELSE   find firstxt  firstxt  nxt and nyt according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN       dom   where   glamt GE lon1  AND  glamt LE lon2                       AND  gphit GE lat1  AND  gphit LE lat2          IF  dom 0  EQ  1  THEN BEGIN         IF keyword_set findalways  THEN BEGIN           print   WARNING  empty T points box  we get the neighnors to define a new box            neig1   neighbor lon1  lat1  glamt  gphit  sphere   keyword_set key_onearth    keyword_set key_irregular            neig2   neighbor lon2  lat2  glamt  gphit  sphere   keyword_set key_onearth    keyword_set key_irregular            CASE N_PARAMS  OF             4:domdef  min glamt neig1  max glamt neig2  min gphit neig1  max gphit neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex             6:domdef  min glamt neig1  max glamt neig2  min gphit neig1  max gphit neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex           ENDCASE           RETURN         ENDIF ELSE BEGIN           ras   report WARNING  The box does not contain any T points            firstxt    1   lastxt    1   nxt   0           firstyt    1   lastyt    1   nyt   0         ENDELSE       ENDIF ELSE BEGIN         jyt   dom   jpi         ixt   temporary dom  MOD jpi         firstxt   min temporary ixt  max   lastxt          firstyt   min temporary jyt  max   lastyt          nxt   lastxt   firstxt   1         nyt   lastyt   firstyt   1       ENDELSE     ENDIF   find firstxu  firstxu  firstyu  firstyu  nxu and nyu   according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  U 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxu   firstxt   lastxu   lastxt   nxu   nxt         firstyu   firstyt   lastyu   lastyt   nyu   nyt       ENDIF ELSE BEGIN         dom   where   glamu GE lon1  AND  glamu LE lon2                         AND  gphiu GE lat1  AND  gphiu LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN   if t grid parameters alreday defined  we use them               CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty U points box  we use the same index as T points                  firstxu   firstxt   lastxu   lastxt   nxu   nxt                 firstyu   firstyt   lastyu   lastyt   nyu   nyt               END               ELSE:BEGIN                 print   WARNING  empty U points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamu  gphiu  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamu  gphiu  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamu neig1  max glamu neig2  min gphiu neig1  max gphiu neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamu neig1  max glamu neig2  min gphiu neig1  max gphiu neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE           ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any U points              firstxu    1   lastxu    1   nxu   0             firstyu    1   lastyu    1   nyu   0           ENDELSE         ENDIF ELSE BEGIN           jyu   dom   jpi           ixu   temporary dom  MOD jpi           firstxu   min temporary ixu  max   lastxu            firstyu   min temporary jyu  max   lastyu            nxu   lastxu   firstxu   1           nyu   lastyu   firstyu   1         ENDELSE       ENDELSE     ENDIF   find firstxv  firstxv  firstyv  firstyv  nxv and nyv    according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  V 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxv   firstxt   lastxv   lastxt   nxv   nxt         firstyv   firstyt   lastyv   lastyt   nyv   nyt       ENDIF ELSE BEGIN         dom   where   glamv GE lon1  AND  glamv LE lon2                         AND  gphiv GE lat1  AND  gphiv LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN             CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty V points box  we use the same index as T points                  firstxv   firstxt   lastxv   lastxt   nxv   nxt                 firstyv   firstyt   lastyv   lastyt   nyv   nyt               END                 where gridtype eq  U 0  NE  1:BEGIN                 print   WARNING  empty V points box  we use the same index as U points                  firstxv   firstxu   lastxv   lastxu   nxv   nxu                 firstyv   firstyu   lastyv   lastyu   nyv   nyu               END                ELSE:BEGIN                 print   WARNING  empty V points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamv  gphiv  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamv  gphiv  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamv neig1  max glamv neig2  min gphiv neig1  max gphiv neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamv neig1  max glamv neig2  min gphiv neig1  max gphiv neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE           ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any V points              firstxv    1   lastxv    1   nxv   0             firstyv    1   lastyv    1   nyv   0           ENDELSE         ENDIF ELSE BEGIN           jyv   dom   jpi           ixv   temporary dom  MOD jpi           firstxv   min temporary ixv  max   lastxv            firstyv   min temporary jyv  max   lastyv            nxv   lastxv   firstxv   1           nyv   lastyv   firstyv   1         ENDELSE       ENDELSE     ENDIF   find firstxf  firstxf  firstyf  firstyf  nxf and nyf   according to lon1  lon2  lat1 and lat2     IF  where gridtype eq  F 0  NE  1 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstxf   firstxt   lastxf   lastxt   nxf   nxt         firstyf   firstyt   lastyf   lastyt   nyf   nyt       ENDIF ELSE BEGIN         dom   where   glamf GE lon1  AND  glamf LE lon2                         AND  gphif GE lat1  AND  gphif LE lat2            IF  dom 0  EQ  1  THEN BEGIN           IF keyword_set findalways  THEN BEGIN             CASE 1 OF                where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as T points                  firstxf   firstxt   lastxf   lastxt   nxf   nxt                 firstyf   firstyt   lastyf   lastyt   nyf   nyt               END                 where gridtype eq  U 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as U points                  firstxf   firstxu   lastxf   lastxu   nxf   nxu                 firstyf   firstyu   lastyf   lastyu   nyf   nyu               END                 where gridtype eq  V 0  NE  1:BEGIN                 print   WARNING  empty F points box  we use the same index as V points                  firstxf   firstxv   lastxf   lastxv   nxf   nxv                 firstyf   firstyv   lastyf   lastyv   nyf   nyv               END                ELSE:BEGIN                 print   WARNING  empty F points box  we get the neighnors to define a new box                  neig1   neighbor lon1  lat1  glamf  gphif  sphere   keyword_set key_onearth    keyword_set key_irregular                  neig2   neighbor lon2  lat2  glamf  gphif  sphere   keyword_set key_onearth    keyword_set key_irregular                  CASE N_PARAMS  OF                   4:domdef  min glamf neig1  max glamf neig2  min gphif neig1  max gphif neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                   6:domdef  min glamf neig1  max glamf neig2  min gphif neig1  max gphif neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices  ZINDEX   zindex  _extra   ex                 ENDCASE                 RETURN               END             ENDCASE             ENDIF ELSE BEGIN             ras   report WARNING  The box does not contain any F points              firstxf    1   lastxf    1   nxf   0             firstyf    1   lastyf    1   nyf   0           ENDELSE         ENDIF ELSE BEGIN           jyf   dom   jpi           ixf   temporary dom  MOD jpi           firstxf   min temporary ixf  max   lastxf            firstyf   min temporary jyf  max   lastyf            nxf   lastxf   firstxf   1           nyf   lastyf   firstyf   1         ENDELSE       ENDELSE     ENDIF     ENDIF ELSE BEGIN     CASE 1 OF       horizontal domain defined with the X and Y indexes            keyword_set xindex  AND keyword_set yindex  OR keyword_set index :BEGIN         fstx   min x1  x2  max   lstx          fsty   min y1  y2  max   lsty          IF fstx LT 0 OR lstx GE jpi THEN BEGIN           ras   report Bad definition of X1 or X2            return         ENDIF         IF fsty LT 0 OR lsty GE jpj THEN BEGIN           ras   report Bad definition of Y1 or Y2            return         ENDIF         nx   lstx   fstx   1         ny   lsty   fsty   1   find lon1t  lon2t  lat1t  lat2t  firstxt  firstxt  nxt and nyt   according to x1  x2  y1  y2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype eq  W 0  NE  1 THEN BEGIN           lon1t   min glamt fstx:lstx  fsty:lsty  max   lon2t            lat1t   min gphit fstx:lstx  fsty:lsty  max   lat2t            firstxt   fstx   lastxt   lstx           firstyt   fsty   lastyt   lsty           nxt   nx   nyt   ny         ENDIF   find lon1u  lon2u  lat1u  lat2u  firstxu  firstxu  nxu and nyu   according to x1  x2  y1  y2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           lon1u   min glamu fstx:lstx  fsty:lsty  max   lon2u            lat1u   min gphiu fstx:lstx  fsty:lsty  max   lat2u            firstxu   fstx   lastxu   lstx           firstyu   fsty   lastyu   lsty           nxu   nx   nyu   ny         ENDIF   find lon1v  lon2v  lat1v  lat2v  firstxv  firstxv  nxv and nyv   according to x1  x2  y1  y2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           lon1v   min glamv fstx:lstx  fsty:lsty  max   lon2v            lat1v   min gphiv fstx:lstx  fsty:lsty  max   lat2v            firstxv   fstx   lastxv   lstx           firstyv   fsty   lastyv   lsty           nxv   nx   nyv   ny         ENDIF            find lon1f  lon2f  lat1f  lat2f  firstxf  firstxf  nxf and nyf   according to x1  x2  y1  y2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           lon1f   min glamf fstx:lstx  fsty:lsty  max   lon2f            lat1f   min gphif fstx:lstx  fsty:lsty  max   lat2f            firstxf   fstx   lastxf   lstx           firstyf   fsty   lastyf   lsty           nxf   nx   nyf   ny         ENDIF         lon1   min lon1t  lon1u  lon1v  lon1f          lon2   max lon2t  lon2u  lon2v  lon2f          lat1   min lat1t  lat1u  lat1v  lat1f          lat2   max lat2t  lat2u  lat2v  lat2f        END       horizontal domain defined with the X index and lat1 lat2           keyword_set xindex :BEGIN         fstx   min x1  x2  max   lstx          IF fstx LT 0 OR lstx GE jpi THEN BEGIN           ras   report Bad definition of X1 or X2            return         ENDIF         nx   lstx   fstx   1         lat1   min y1  y2  max   lat2    find lon1t  lon2t  firstxt  firstxt  firstyt  firstyt  nxt   and nyt according to x1  x2  lat1 and lat2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN           firstxt   fstx   lastxt   lstx   nxt   nx           dom   where   gphit fstx:lstx    GE lat1  AND  gphit fstx:lstx    LE lat2              IF  dom 0  EQ  1  THEN BEGIN             IF keyword_set findalways  THEN BEGIN               print   WARNING  empty T points box  we get the neighnors to define a new box                neig1   neighbor lon1  lat1  glamt fstx:lstx    gphit fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                neig2   neighbor lon2  lat2  glamt fstx:lstx    gphit fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                CASE N_PARAMS  OF                 4:domdef  fstx  lstx  min gphit fstx:lstx   neig1  max gphit fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                 6:domdef  fstx  lstx  min gphit fstx:lstx   neig1  max gphit fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex               ENDCASE               RETURN             ENDIF ELSE BEGIN               ras   report WARNING  The box does not contain any T points                firstyt    1   lastyt    1   nyt   0             ENDELSE           ENDIF ELSE BEGIN             jyt   temporary dom    nx             firstyt   min temporary jyt  max   lastyt              nyt   lastyt   firstyt   1           ENDELSE           IF nyt NE 0 THEN lon1t   min glamt firstxt:lastxt  firstyt:lastyt  max   lon2t          ENDIF   find lon1u  lon2u  firstxu  firstxu  firstyu  firstyu  nxu   and nyu according to x1  x2  lat1 and lat2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           firstxu   fstx   lastxu   lstx   nxu   nx           IF keyword_set memeindices  THEN BEGIN             firstyu   firstyt   lastyu   lastyt   nyu   nyt           ENDIF ELSE BEGIN             dom   where   gphiu fstx:lstx    GE lat1  AND  gphiu fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty U points box  we use the same index as T points                      firstyu   firstyt   lastyu   lastyt   nyu   nyt                   END                    ELSE:BEGIN                     print   WARNING  empty U points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamu fstx:lstx    gphiu fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamu fstx:lstx    gphiu fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphiu fstx:lstx   neig1  max gphiu fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphiu fstx:lstx   neig1  max gphiu fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any U points                  firstyu    1   lastyu    1   nyu   0               ENDELSE             ENDIF ELSE BEGIN               jyu   temporary dom    nx               firstyu   min temporary jyu  max   lastyu                nyu   lastyu   firstyu   1             ENDELSE           ENDELSE           IF nyu NE 0 THEN lon1u   min glamu firstxu:lastxu  firstyu:lastyu  max   lon2u          ENDIF   find lon1v  lon2v  firstxv  firstxv  firstyv  firstyv  nxv   and nyv according to x1  x2  lat1 and lat2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           firstxv   fstx   lastxv   lstx   nxv   nx           IF keyword_set memeindices  THEN BEGIN             firstyv   firstyt   lastyv   lastyt   nyv   nyt           ENDIF ELSE BEGIN             dom   where   gphiv fstx:lstx    GE lat1  AND  gphiv fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as T points                      firstyv   firstyt   lastyv   lastyt   nyv   nyt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as U points                      firstyv   firstyu   lastyv   lastyu   nyv   nyu                   END                    ELSE:BEGIN                     print   WARNING  empty V points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamv fstx:lstx    gphiv fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamv fstx:lstx    gphiv fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphiv fstx:lstx   neig1  max gphiv fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphiv fstx:lstx   neig1  max gphiv fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any V points                  firstyv    1   lastyv    1   nyv   0               ENDELSE             ENDIF ELSE BEGIN               jyv   temporary dom    nx               firstyv   min temporary jyv  max   lastyv                nyv   lastyv   firstyv   1             ENDELSE           ENDELSE           IF nyv NE 0 THEN lon1v   min glamv firstxv:lastxv  firstyv:lastyv  max   lon2v          ENDIF   find lon1f  lon2f  firstxf  firstxf  firstyf  firstyf  nxf   and nyf according to x1  x2  lat1 and lat2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           firstxf   fstx   lastxf   lstx   nxf   nx           IF keyword_set memeindices  THEN BEGIN             firstyf   firstyt   lastyf   lastyt   nyf   nyt           ENDIF ELSE BEGIN             dom   where   gphif fstx:lstx    GE lat1  AND  gphif fstx:lstx    LE lat2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as T points                      firstyf   firstyt   lastyf   lastyt   nyf   nyt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as U points                      firstyf   firstyu   lastyf   lastyu   nyf   nyu                   END                     where gridtype eq  V 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as V points                      firstyf   firstyv   lastyf   lastyv   nyf   nyv                   END                    ELSE:BEGIN                     print   WARNING  empty F points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamf fstx:lstx    gphif fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamf fstx:lstx    gphif fstx:lstx    sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  fstx  lstx  min gphif fstx:lstx   neig1  max gphif fstx:lstx   neig2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  fstx  lstx  min gphif fstx:lstx   neig1  max gphif fstx:lstx   neig2  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   XINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any F points                  firstyf    1   lastyf    1   nyf   0               ENDELSE             ENDIF ELSE BEGIN               jyf   temporary dom    nx               firstyf   min temporary jyf  max   lastyf                nyf   lastyf   firstyf   1             ENDELSE           ENDELSE           IF nyf NE 0 THEN lon1f   min glamf firstxf:lastxf  firstyf:lastyf  max   lon2f          ENDIF         lon1   min lon1t  lon1u  lon1v  lon1f          lon2   max lon2t  lon2u  lon2v  lon2f        END       horizontal domain defined with the Y index and lon1 lon2           keyword_set yindex :BEGIN         fsty   min y1  y2  max   lsty          IF fsty LT 0 OR lsty GE jpj THEN BEGIN           ras   report Bad definition of Y1 or Y2            return         ENDIF         ny   lsty   fsty   1         lon1   min x1  x2  max   lon2    find lat1t  lat2t  firstxt  firstxt  firstyt  firstyt  nxt   and nyt according to x1  x2  lon1 and lon2         IF  where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1 THEN BEGIN           firstyt   fsty   lastyt   lsty   nyt   ny           dom   where   glamt  fsty:lsty  GE lon1  AND  glamt  fsty:lsty  LE lon2              IF  dom 0  EQ  1  THEN BEGIN             IF keyword_set findalways  THEN BEGIN               print   WARNING  empty T points box  we get the neighnors to define a new box                neig1   neighbor lon1  lat1  glamt  fsty:lsty  gphit  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                neig2   neighbor lon2  lat2  glamt  fsty:lsty  gphit  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                CASE N_PARAMS  OF                 4:domdef  min glamt  fsty:lsty neig1  max glamt  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                 6:domdef  min glamt  fsty:lsty neig1  max glamt  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex               ENDCASE               RETURN             ENDIF ELSE BEGIN               ras   report WARNING  The box does not contain any T points                firstxt    1   lastxt    1   nxt   0             ENDELSE           ENDIF ELSE BEGIN             jxt   temporary dom  MOD jpi             firstxt   min temporary jxt  max   lastxt              nxt   lastxt   firstxt   1           ENDELSE           IF nxt NE 0 THEN lat1t   min gphit firstxt:lastxt  firstyt:lastyt  max   lat2t          ENDIF   find lat1u  lat2u  firstxu  firstxu  firstyu  firstyu  nxu   and nyu according to x1  x2  lon1 and lon2         IF  where gridtype eq  U 0  NE  1 THEN BEGIN           firstyu   fsty   lastyu   lsty   nyu   ny           IF keyword_set memeindices  THEN BEGIN             firstxu   firstyt   lastxu   lastyt   nxu   nxt           ENDIF ELSE BEGIN             dom   where   glamu  fsty:lsty  GE lon1  AND  glamu  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty U points box  we use the same index as T points                      firstxu   firstxt   lastxu   lastxt   nxu   nxt                   END                    ELSE:BEGIN                     print   WARNING  empty U points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamu  fsty:lsty  gphiu  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamu  fsty:lsty  gphiu  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamu  fsty:lsty neig1  max glamu  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamu  fsty:lsty neig1  max glamu  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                 ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any U points                  firstxu    1   lastxu    1   nxu   0               ENDELSE             ENDIF ELSE BEGIN               jxu   temporary dom  MOD jpi               firstxu   min temporary jxu  max   lastxu                nxu   lastxu   firstxu   1             ENDELSE           ENDELSE           IF nxu NE 0 THEN lat1u   min gphiu firstxu:lastxu  firstyu:lastyu  max   lat2u          ENDIF   find lat1v  lat2v  firstxv  firstxv  firstyv  firstyv  nxv   and nyv according to x1  x2  lon1 and lon2         IF  where gridtype eq  V 0  NE  1 THEN BEGIN           firstyv   fsty   lastyv   lsty   nyv   ny           IF keyword_set memeindices  THEN BEGIN             firstxv   firstyt   lastxv   lastyt   nxv   nxt           ENDIF ELSE BEGIN             dom   where   glamv  fsty:lsty  GE lon1  AND  glamv  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as T points                      firstxv   firstxt   lastxv   lastxt   nxv   nxt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty V points box  we use the same index as U points                      firstxv   firstxu   lastxv   lastxu   nxv   nxu                   END                    ELSE:BEGIN                     print   WARNING  empty V points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamv  fsty:lsty  gphiv  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamv  fsty:lsty  gphiv  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamv  fsty:lsty neig1  max glamv  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamv  fsty:lsty neig1  max glamv  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any V points                  firstxv    1   lastxv    1   nxv   0               ENDELSE             ENDIF ELSE BEGIN               jxv   temporary dom  MOD jpi               firstxv   min temporary jxv  max   lastxv                nxv   lastxv   firstxv   1             ENDELSE           ENDELSE           IF nxv NE 0 THEN lat1v   min gphiv firstxv:lastxv  firstyv:lastyv  max   lat2v          ENDIF   find lat1f  lat2f  firstxf  firstxf  firstyf  firstyf  nxf   and nyf according to x1  x2  lon1 and lon2         IF  where gridtype eq  F 0  NE  1 THEN BEGIN           firstyf   fsty   lastyf   lsty   nyf   ny           IF keyword_set memeindices  THEN BEGIN             firstxf   firstyt   lastxf   lastyt   nxf   nxt           ENDIF ELSE BEGIN             dom   where   glamf  fsty:lsty  GE lon1  AND  glamf  fsty:lsty  LE lon2                IF  dom 0  EQ  1  THEN BEGIN               IF keyword_set findalways  THEN BEGIN                 CASE 1 OF                    where gridtype eq  T 0  NE  1 OR  where gridtype EQ  W 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as T points                      firstxf   firstxt   lastxf   lastxt   nxf   nxt                   END                     where gridtype eq  U 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as U points                      firstxf   firstxu   lastxf   lastxu   nxf   nxu                   END                     where gridtype eq  V 0  NE  1:BEGIN                     print   WARNING  empty F points box  we use the same index as V points                      firstxf   firstxv   lastxf   lastxv   nxf   nxv                   END                    ELSE:BEGIN                     print   WARNING  empty F points box  we get the neighnors to define a new box                      neig1   neighbor lon1  lat1  glamf  fsty:lsty  gphif  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      neig2   neighbor lon2  lat2  glamf  fsty:lsty  gphif  fsty:lsty  sphere   keyword_set key_onearth    keyword_set key_irregular                      CASE N_PARAMS  OF                       4:domdef  min glamf  fsty:lsty neig1  max glamf  fsty:lsty neig2  fsty  lsty  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                       6:domdef  min glamf  fsty:lsty neig1  max glamf  fsty:lsty neig2  fsty  lsty  z1  z2  GRIDTYPE   gridtype  MEMEINDICES   memeindices   YINDEX  ZINDEX   zindex  _extra   ex                     ENDCASE                     RETURN                   END                  ENDCASE                ENDIF ELSE BEGIN                 ras   report WARNING  The box does not contain any F points                  firstxf    1   lastyf    1   nxf   0               ENDELSE             ENDIF ELSE BEGIN               jxf   temporary dom  MOD jpi               firstxf   min temporary jxf  max   lastxf                nxf   lastxf   firstxf   1             ENDELSE           ENDELSE           IF nxf NE 0 THEN lat1f   min gphif firstxf:lastxf  firstyf:lastyf  max   lat2f          ENDIF         lat1   min lat1t  lat1u  lat1v  lat1f          lat2   max lat2t  lat2u  lat2v  lat2f        END     ENDCASE   ENDELSE      The extracted domain is it regular or not       CASE 1 OF      where gridtype eq  T 0  NE  1 OR  where gridtype eq  W 0  NE  1  AND nxt NE 0 AND nyt NE 0:BEGIN   to get faster  we first test the most basic cases befor testing the   full array        CASE 0 OF         array_equal glamt firstxt:lastxt  firstyt  glamt firstxt:lastxt  lastyt :key_irregular   1b         array_equal gphit firstxt  firstyt:lastyt  gphit lastxt  firstyt:lastyt :key_irregular   1b         array_equal glamt firstxt:lastxt  firstyt:lastyt                          glamt firstxt:lastxt  firstyt replicate 1  nyt :key_irregular   1b         array_equal gphit firstxt:lastxt  firstyt:lastyt                          replicate 1  nxt gphit firstxt  firstyt:lastyt :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  U 0  NE  1 AND nxu NE 0 AND nyu NE 0:BEGIN       CASE 0 OF         array_equal glamu firstxu:lastxu  firstyu  glamu firstxu:lastxu  lastyu :key_irregular   1b         array_equal gphiu firstxu  firstyu:lastyu  gphiu lastxu  firstyu:lastyu :key_irregular   1b         array_equal glamu firstxu:lastxu  firstyu:lastyu                          glamu firstxu:lastxu  firstyu replicate 1  nyu :key_irregular   1b         array_equal gphiu firstxu:lastxu  firstyu:lastyu                          replicate 1  nxu gphiu firstxu  firstyu:lastyu :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  V 0  NE  1 AND nxv NE 0 AND nyv NE 0:BEGIN       CASE 0 OF         array_equal glamv firstxv:lastxv  firstyv  glamv firstxv:lastxv  lastyv :key_irregular   1b         array_equal gphiv firstxv  firstyv:lastyv  gphiv lastxv  firstyv:lastyv :key_irregular   1b         array_equal glamv firstxv:lastxv  firstyv:lastyv                          glamv firstxv:lastxv  firstyv replicate 1  nyv :key_irregular   1b         array_equal gphiv firstxv:lastxv  firstyv:lastyv                          replicate 1  nxv gphiv firstxv  firstyv:lastyv :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END      where gridtype eq  F 0  NE  1 AND nxf NE 0 AND nyf NE 0:BEGIN       CASE 0 OF         array_equal glamf firstxf:lastxf  firstyf  glamf firstxf:lastxf  lastyf :key_irregular   1b         array_equal gphif firstxf  firstyf:lastyf  gphif lastxf  firstyf:lastyf :key_irregular   1b         array_equal glamf firstxf:lastxf  firstyf:lastyf                          glamf firstxf:lastxf  firstyf replicate 1  nyf :key_irregular   1b         array_equal gphif firstxf:lastxf  firstyf:lastyf                          replicate 1  nxf gphif firstxf  firstyf:lastyf :key_irregular   1b         ELSE:key_irregular   0b       ENDCASE     END     ELSE:   ENDCASE         define all vertical parameters     vert1  vert2   firstz tw  lastz tw  nz tw          vertical:       vertical domain defined with vert1  vert2     IF NOT  keyword_set zindex  OR keyword_set index  THEN BEGIN   define vert1 et vert2     CASE N_PARAMS  OF       2:vert1   min x1  x2  max   vert2        6:vert1   min z1  z2  max   vert2        ELSE:BEGIN         IF  inter byte gridtype  byte T   U   V   F 0  NE  1 THEN             vert1t   min gdept  max   vert2t          IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN             vert1w   min gdepw  max   vert2w          vert1   min vert1t  vert1w          vert2   max vert2t  vert2w        END     ENDCASE   define firstzt  firstzt  nzt     IF  inter byte gridtype  byte T   U   V   F 0  NE  1 THEN BEGIN       domz   where gdept ge vert1 and gdept le vert2  nzt        IF nzt NE 0 THEN BEGIN         firstzt   domz 0          lastzt   domz nzt 1        ENDIF ELSE BEGIN          ras   report WARNING  The box does not contain any T level          firstzt    1         lastzt    1       ENDELSE      ENDIF   define firstzw  firstzw  nzw     IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN BEGIN       IF keyword_set memeindices  THEN BEGIN         firstzw   firstzt         lastzw   lastzt         nzw   nzt       ENDIF ELSE BEGIN          domz   where gdepw ge vert1 and gdepw le vert2  nzw          IF nzw NE 0 THEN BEGIN           firstzw   domz 0            lastzw   domz nzw 1          ENDIF ELSE BEGIN            ras   report WARNING  The box does not contain any W level            firstzw    1           lastzw    1         ENDELSE        ENDELSE      ENDIF     vertical domain defined with the Z index     ENDIF ELSE BEGIN      CASE N_PARAMS  OF       2:fstz   min x1  x2  max   lstz        4:return       6:fstz   min z1  z2  max   lstz      ENDCASE     IF fstz LT 0 OR lstz GE jpk THEN BEGIN       ras   report Bad definition of X1  X2  Z1 or Z2        return     ENDIF     nz   lstz   fstz   1   find vert1t  vert2t  firstzt  firstzt  nzt   according to  x1  x2  or  z1  z2      IF  where gridtype eq  T 0  NE  1 THEN BEGIN       vert1t   min gdept fstz:lstz  max   vert2t        firstzt   fstz   lastzt   lstz   nzt   nz     ENDIF         find vert1w  vert2w  firstzw  firstzw  nzw   according to  x1  x2  or  z1  z2      IF  where gridtype eq  W 0  NE  1 AND n_elements gdepw  NE 0 THEN BEGIN       vert1w   min gdepw fstz:lstz  max   vert2w        firstzw   fstz   lastzw   lstz   nzw   nz     ENDIF           vert1   min vert1t  vert1w      vert2   max vert2t  vert2w    ENDELSE       IF NOT keyword_set key_forgetold  THEN BEGIN  updateold   ENDIF      if keyword_set key_performance  THEN print   temps domdef  systime 1 tempsun         return end");
+a[199] = new Array("./ToBeReviewed/GRILLE/f2v.html", "f2v.pro", "", "             file_comments   Allows to pass a field refering to the grid F on the grid V     thanks to the average:    res   0 5 res   shift res  1  0           categories    Grille      param TEMP  in required    A 2  3 or 4d array      returns   res  a 2  3 or 4d array      uses   common pro      restrictions    Force parameters of the zoom on the grid V to be the same as    those on the grid T       restrictions    Points which can not be calculated are put at the value NaN    consecrated by IDL:  values f_nan      history   From Marina Levy s programs   Sebastien Masson  smasson lodyc jussieu fr :   Validation  5 6 2000      version    Id            FUNCTION f2v  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  We force nxt nxf  etc      firstxv   firstxf    lastxv   lastxf    firstyv   firstyf    lastyv   lastyf    nxv   nxf    nyv   nyf    vargrid    V     if NOT keyword_set valmask  then valmask   1e20    lon1   glamv firstxv  0     lon2   glamf lastxf  0     case on tha array s size and application    taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxf:lastxf  firstyf:lastyf              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    fmask firstxf:lastxf  firstyf:lastyf  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  1  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0       values f_nan          mask    vmask firstxf:lastxf  firstyf:lastyf  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ nzt:             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxf:lastxf  firstyf:lastyf  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxf:lastxf  firstyf:lastyf                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    fmask firstxf:lastxf  firstyf:lastyf  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxf  nyf  jpt   over           ENDIF ELSE mask    fmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0         values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxf:lastxf  firstyf:lastyf  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxf  nyf  jpt   over           ENDIF ELSE mask    vmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxf and taille 2  eq nyf AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxf:lastxf  firstyf:lastyf  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    fmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxf  nyf  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0  0           if NOT  keyword_set key_periodic  AND nxf EQ jpi  then res 0           values f_nan          mask    vmask firstxf:lastxf  firstyf:lastyf  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxf  nyf  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold    ENDIF         return  res END ");
+a[200] = new Array("./ToBeReviewed/GRILLE/fmask.html", "fmask.pro", "", "             file_comments   calculate fmask  Economize memory  we do not need to keep fmask anymore       categories   Utilities      returns   A 3d array corresponding to fmask       examples   Used like if fmask was a known array by substituing fmask by  fmask    For example: Instaed of write fmask domainef  we have to write  fmask domainef       history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id            FUNCTION fmask       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             For key_performance      CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask   1  0 shift tmask  0   1 shift tmask   1   1      3:res   tmask shift tmask   1  0  0 shift tmask  0   1  0 shift tmask   1   1  0    ENDCASE     if NOT keyword_set key_periodic  then res jpi 1        fmaskredy   res  jpj 1      fmaskredx     if keyword_set key_performance  THEN print   temps fmask  systime 1 tempsun       return  res end");
+a[201] = new Array("./ToBeReviewed/GRILLE/grille.html", "grille.pro", "", "             file_comments   Choose the grid which must be used to do the graph in function of   vargrid and send back corresponding parameters calculated in   domdef pro and reduced at the domain defined by domdef  contrarily   to grandegrille pro    BEWARE  The choice of the grid is made from the value of the    global variable vargrid  which can be equal to  T   U   V   W  ou  F       categories      keyword TRI    This keyword serve to obtain  thanks to grille  the triangulation which   refer to the grid but only on the part of the zoom  This of triangulation   is passed in the variable we have equate at TRI    For example: grille tri triangulation_reduite    This keyword is used in plt pro      keyword WDEPTH   To specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W        keyword FORPLT   In plt  we want that land points  glam and gphi  be equal to glamt and    gphit regardless of the grid       keyword NOTRI   Useful only when TRI is activated  In this case  grill send back  1 in the    variable tri even if the variable of the common triangles_list is defined    and different of 1       keyword _EXTRA    Used to pass your keywords      keyword TOUT      param MASK  out optional    For the definition  see domdef and the management of subdomains on the web        param  GLAM  out optional    For the definition  see domdef and the management of subdomains on the web        param  GPHI  out optional    For the definition  see domdef and the management of subdomains on the web        param  GDEP  out optional    For the definition  see domdef and the management of subdomains on the web        param  NX  out optional    For the definition  see domdef and the management of subdomains on the web        param  NY  out optional    For the definition  see domdef and the management of subdomains on the web        param  NZ  out optional    For the definition  see domdef and the management of subdomains on the web        param  FIRSTX  out optional    For the definition  see domdef and the management of subdomains on the web        param  FIRSTY  out optional    For the definition  see domdef and the management of subdomains on the web        param  FIRSTZ  out optional    For the definition  see domdef and the management of subdomains on the web                param LASTX  out optional    For the definition  see domdef and the management of subdomains on the web        param  LASTY  out optional    For the definition  see domdef and the management of subdomains on the web        param  LASTZ  out optional    For the definition  see domdef and the management of subdomains on the web        param  E1  out optional    For the definition  see domdef and the management of subdomains on the web       param  E2  out optional    For the definition  see domdef and the management of subdomains on the web        param  E3  out optional    For the definition  see domdef and the management of subdomains on the web       uses   cm_4mesh    cm_4data      restrictions    Use the variable vargrid      restrictions   Vargrid must be  T   W   U   V  ou  F       history    Sebastien Masson  smasson lodyc jussieu fr   12 2 1999                         10 11 1999  forplt      version    Id        todo Comment ecrire la remarque sur les inputs             pro grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz  e1  e2  e3  TRI   tri  NOTRI   notri  TOUT   tout  FORPLT   forplt  IFPLTZ   ifpltz  WDEPTH   wdepth  _EXTRA   ex     include commons     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             For key_performance     vargrid   strupcase strmid vargrid 0 reverse_offset      if vargrid eq  W  then wdepth   1   if keyword_set tout  then begin     savedbox   1b     saveboxparam   boxparam4grille dat      domdef  gridtype   vargrid  _EXTRA   ex   endif   tempdeux   systime 1            For key_performance  2       IF keyword_set wdepth  THEN BEGIN     firstz   firstzw      lastz   lastzw     nz   nzw   ENDIF ELSE BEGIN     firstz   firstzt     lastz   lastzt     nz   nzt   ENDELSE       CASE 1 OF      grid T and W       vargrid eq  T  OR vargrid eq  W  : begin  scalars       nx   nxt       ny   nyt       firstx   firstxt       firsty   firstyt       lastx   lastxt       lasty   lastyt  2d vectors       IF arg_present glam  THEN glam   glamt firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphit firstx:lastx  firsty:lasty        IF arg_present e1  THEN e1   e1t firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2   e2t firstx:lastx  firsty:lasty   3d vectors        IF keyword_set forplt  THEN mask   tmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask   tmask firstx:lastx  firsty:lasty  firstz:lastz      end     grid U       vargrid eq  U : begin  scalars       nx   nxu       ny   nyu       firstx   firstxu       firsty   firstyu       lastx   lastxu       lasty   lastyu  2d vectors       IF arg_present glam  THEN glam   glamu firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphiu firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN         mask   1b tmask firstx:lastx  firsty:lasty  firstz          eastboarder   mask shift mask  1  0 mask         westboarder   mask shift mask   1  0 mask         if key_periodic NE 1 OR nx NE jpi then westboarder nx 1      0b         tmp1   shift eastboarder  0  1          tmp1  0    0b         tmp2   shift eastboarder  0   1          tmp2  ny 1    0b         add    temporary tmp1 temporary tmp2 1b eastboarder 1b temporary westboarder          eastboarder   temporary eastboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    1b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      0b         endif         no1   temporary tmp1 temporary tmp2          tmp   temporary eastboarder temporary no1 mask         mask 0:nx 2      0b          tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1u firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2u firstx:lastx  firsty:lasty   3d vectors       IF keyword_set forplt  THEN mask    umask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    umask firstx:lastx  firsty:lasty  firstz:lastz      end     grid V       vargrid eq  OPAPTDHV  or vargrid eq  OPAPT3DV          or vargrid eq  V : begin  scalars       nx   nxv       ny   nyv       firstx   firstxv       firsty   firstyv       lastx   lastxv       lasty   lastyv  2d vectors       IF arg_present glam  THEN glam   glamv firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphiv firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN          mask   1b tmask firstx:lastx  firsty:lasty  firstz          northboarder   mask shift mask  0  1 mask         southboarder   mask shift mask  0   1 mask         southboarder  ny 1    0b         tmp1   shift northboarder   1  0          if key_periodic NE 1 OR nx NE jpi then tmp1 nx 1      0b         tmp2   shift northboarder  1  0          if key_periodic NE 1 OR nx NE jpi then tmp2 0      0b         add    temporary tmp1 temporary tmp2 1b northboarder 1b southboarder          northboarder   temporary northboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    0b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      1b         endif         no1   temporary tmp1 temporary tmp2          tmp   temporary northboarder mask temporary no1          mask  0:ny 2    0b         tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1v firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2v firstx:lastx  firsty:lasty   3d vecteurs       IF keyword_set forplt  THEN mask    vmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    vmask firstx:lastx  firsty:lasty  firstz:lastz      end     grid F       vargrid eq  OPAPTDHF  or vargrid eq  OPAPT3DF           or vargrid eq  F : begin  scalars       nx   nxf       ny   nyf       firstx   firstxf       firsty   firstyf       lastx   lastxf       lasty   lastyf  2d vectors       IF arg_present glam  THEN glam   glamf firstx:lastx  firsty:lasty        IF arg_present gphi  THEN gphi   gphif firstx:lastx  firsty:lasty        if keyword_set forplt  then BEGIN          mask   1b tmask firstx:lastx  firsty:lasty  firstz          eastboarder   mask shift mask  1  0 mask         westboarder   mask shift mask   1  0 mask         westboarder nx 1      0b         northboarder   mask shift mask  0  1 mask         southboarder   mask shift mask  0   1 mask         southboarder  ny 1    0b         tmp1   shift northboarder   1  0          if key_periodic NE 1 OR nx NE jpi then tmp1 nx 1      0b         tmp2   shift northboarder  1  0          if key_periodic NE 1 OR nx NE jpi then tmp2 0      0b         add    temporary tmp1 temporary tmp2 1b northboarder 1b southboarder          northboarder   temporary northboarder temporary add          tmp1   shift eastboarder  0  1          tmp1  0    0b         tmp2   shift eastboarder  0   1          tmp2  ny 1    0b         add    temporary tmp1 temporary tmp2 1b eastboarder 1b temporary westboarder          eastboarder   temporary eastboarder temporary add          tmp1    mask shift mask  0   1 shift mask  0  1  NE 1b         tmp1  ny 1    1b         tmp1  0    1b         tmp2    mask shift mask   1  0 shift mask  1  0  NE 1b         if key_periodic NE 1 OR nx NE jpi then begin           tmp2 nx 1      1b           tmp2 0      1b         endif         no1   temporary tmp1 temporary tmp2          tmp    temporary northboarder temporary eastboarder mask temporary no1          mask 0:nx 2      0b          mask  0:ny 2    0b          tmp   temporary tmp temporary mask          tmp   where tmp GE 1          if tmp 0  NE  1 then begin           glam tmp     glamt firstx:lastx  firsty:lasty tmp            gphi tmp     gphit firstx:lastx  firsty:lasty tmp          endif       ENDIF       IF arg_present e1  THEN e1    e1f firstx:lastx  firsty:lasty        IF arg_present e2  THEN e2    e2f firstx:lastx  firsty:lasty   3d vectors        IF keyword_set forplt  THEN mask    fmask firstx:lastx  firsty:lasty  firstz          ELSE IF arg_present mask  THEN mask    fmask firstx:lastx  firsty:lasty  firstz:lastz      END       ELSE:BEGIN        ras   report Wrong definition of vargrid    vargrid  Only T  U  V  W or F are acceptable        stop     END   ENDCASE   IF testvar var   key_performance  EQ 2 THEN       print   temps grille: attribution des scalaires  vecteurs et tableaux   systime 1 tempdeux           Variables refering to the vertical dimension             tempdeux   systime 1            For key_performance  2   if keyword_set wdepth  then begin     gdep   gdepw firstz:lastz      e3   e3w firstz:lastz    endif else begin     gdep   gdept firstz:lastz      e3   e3t firstz:lastz    ENDELSE   for the vertical sections with partial steps   IF keyword_set ifpltz  AND keyword_set key_partialstep  THEN BEGIN     CASE 1 OF       ifpltz EQ  xz  AND ny EQ 1:BEGIN         bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3          good   where bottom NE 0 AND bottom NE nz keyword_set wdepth          bottom   lindgen nx bottom 1l keyword_set wdepth nx         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            IF lastz EQ jpk 1 THEN gdep nz 1    max hdepw            gdep   replicate 1  nx gdep           if keyword_set wdepth  THEN               truegdep   hdepw firstx:lastx  firsty:lasty              ELSE truegdep   hdept firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ifpltz EQ  yz  AND nx EQ 1:BEGIN         bottom   total tmask firstx:lastx  firsty:lasty  firstz:lastz  3          good   where bottom NE 0 AND bottom NE nz keyword_set wdepth          bottom   lindgen ny bottom 1l keyword_set wdepth ny         IF good 0  NE  1 THEN BEGIN           bottom   bottom good            IF lastz EQ jpk 1 THEN gdep nz 1    max hdepw            gdep   replicate 1  ny gdep           if keyword_set wdepth  THEN               truegdep   hdepw firstx:lastx  firsty:lasty              ELSE truegdep   hdept firstx:lastx  firsty:lasty            gdep bottom    truegdep good          ENDIF       END       ELSE:     ENDCASE   ENDIF   IF testvar var   key_performance  EQ 2 THEN       print   temps grille: Variables se rapportant a la dimension verticale   systime 1 tempdeux     Triangulation vector when TRI is activated      if arg_present TRI  then       if triangles_list 0  EQ  1 OR keyword_set notri  then tri    1 ELSE BEGIN      tempdeux   systime 1          pour key_performance  2     msk   bytarr jpi  jpj      msk firstx:lastx  firsty:lasty    1     ind   where  msk triangles_list 0   msk triangles_list 1   msk triangles_list 2    EQ 1       tri   triangles_list  ind firstx firsty jpi      y   tri jpi     x   tri y jpi     tri   x y nx     IF testvar var   key_performance  EQ 2 THEN         print   temps grille: decoupage de la triangulation   systime 1 tempdeux   ENDELSE     To make sure there is not any degenerated dimension  1         mask reform mask   over       glam reform glam   over       gphi reform gphi   over       gdep reform gdep   over       e1 reform e1   over       e2 reform e2   over       e3 reform e3   over     if keyword_set savedbox  THEN restoreboxparam   boxparam4grille dat    if keyword_set key_performance  THEN print   temps grille  systime 1 tempsun       IF NOT keyword_set key_forgetold  THEN BEGIN  updateold   ENDIF      return  end       ");
+a[202] = new Array("./ToBeReviewed/GRILLE/t2v.html", "t2v.pro", "", "             file_comments   Allows to pass a field refering to the grid T on the grid V     thanks to the average res   0 5 res   shift res  0   1        categories    Grille      param TEMP  in required    A 2  3 or 4d array      returns   res  a 2  3 or 4d array      uses   common pro      restrictions    Force parameters of the zoom on the grid V to be the same as    those on the grid T       restrictions    Points which can not be calculated are put at the value NaN    consecrated by IDL:  values f_nan      history   From Marina Levy s programs   Sebastien Masson  smasson lodyc jussieu fr :   Validation  5 6 2000      version    Id            FUNCTION t2v  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp   We force nxt nxv  etc      firstxv   firstxt    lastxv   lastxt    firstyv   firstyt    lastyv   lastyt    nxv   nxt    nyv   nyt    vargrid    V     if NOT keyword_set valmask  then valmask   1e20    lat1   gphit 0  firstyt     lat2   gphiv 0  lastyv     case on tha array s size and application    taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxt:lastxt  firstyt:lastyt              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask   tmask firstxt:lastxt  firstyt:lastyt  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  0   1           res  nyt 1     values f_nan          mask    vmask firstxt:lastxt  firstyt:lastyt  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ nzt:             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxt:lastxt  firstyt:lastyt  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxt:lastxt  firstyt:lastyt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask   tmask firstxt:lastxt  firstyt:lastyt  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxt  nyt  jpt   over           ENDIF ELSE mask   tmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0           res  nyt 1       values f_nan          if taille 3  EQ jpt then BEGIN             mask    vmask firstxt:lastxt  firstyt:lastyt  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxt  nyt  jpt   over           ENDIF ELSE mask    vmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxt and taille 2  eq nyt AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxt:lastxt  firstyt:lastyt  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask   tmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxt  nyt  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0  0           res  nyt 1         values f_nan          mask    vmask firstxt:lastxt  firstyt:lastyt  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxt  nyt  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END     ENDCASE    IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF      return  res END ");
+a[203] = new Array("./ToBeReviewed/GRILLE/tracegrille.html", "tracegrille.pro", "", "             file_comments   Draw the grid      categories       param GLAMIN  in required    The 1d or 2d array in longitude of points of the grid If GLAM GLAMIN    is not specified  it trace the grid specified by vargrid  on the    domain defined by domdef       param GPHIIN  in required    The 1d or 2d array in latitude of points of the grid If GPHI GPHIIN    is not specified  it trace the grid specified by vargrid  on the    domain defined by domdef       keyword XSTRIDE    It is an integer to specify that we want to trace only one line of    constant i every xstride points      keyword YSTRIDE    It is an integer to specify that we want to trace only one line of    constant j every xstride points      keyword OCEAN    To trace the grid only on ocean points        keyword EARTH   To trace the grid only on land points pour ne tracer la grille que sur les points terre      keyword RMOUT   Select to remove all cell having one corner out of the   plot boundaries  x range   y range       keyword _EXTRA   Used to pass your keywords        uses   common pro       examples         IDL  plt indgen jpi jpj nocontour nofill       IDL  vargrid T        IDL  tracegrille ocean color 20       IDL  tracegrille earth color 80        history   Sebastien Masson  smasson lodyc jussieu fr       version    Id                              PRO tracegrille  glamin  gphiin  OCEAN   ocean  EARTH   earth                      XSTRIDE   xstride  YSTRIDE   ystride  RMOUT   rmout                      _extra   extra       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             For key_performance   to avoid warning message   oldexcept    except    except   0   if n_elements key_gridtype  EQ 0 then key_gridtype    c      if n_elements glamin    n_elements gphiin  EQ 0 then BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     IF keyword_set ocean  AND key_gridtype EQ  c  THEN BEGIN   we reduce the mask to take into account the point located ON the coastline        CASE vargrid OF          U :BEGIN           mask   tmask firstx:lastx  firsty:lasty            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN tmpx   mask nx 1              mask    mask shift mask   1  0    1           IF NOT keyword_set key_periodic  OR nx NE jpi               THEN mask nx 1      temporary tmpx          END          V :BEGIN           mask   tmask firstx:lastx  firsty:lasty            tmpy   mask  ny 1            mask    mask shift mask  0   1    1           mask  ny 1    temporary tmpy          END          F :BEGIN           mask   tmask firstx:lastx  firsty:lasty            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN tmpx   mask nx 1              tmpy   mask  ny 1            mask    mask shift mask   1  0 shift mask  0   1 shift mask   1   1    1           mask  ny 1    temporary tmpy            IF NOT keyword_set key_periodic  OR nx NE jpi               THEN mask nx 1      temporary tmpx          END         ELSE:       ENDCASE     ENDIF   ENDIF ELSE BEGIN     glam   glamin     gphi   gphiin     IF  size glam 0  EQ 1 AND  size gphi 0  EQ 1 THEN BEGIN       nx   n_elements glam         ny   n_elements gphi         glam   glam replicate 1  ny        gphi   replicate 1  nx gphi     ENDIF ELSE BEGIN       nx    size glam 1        ny    size glam 2      ENDELSE   ENDELSE   if n_elements mask  EQ 0 then mask   replicate 1b  nx  ny    if  size mask 0  EQ 3 then mask   mask    0      IF keyword_set RMOUT  THEN BEGIN     out   where glam GT max x range  OR glam LT min x range                    OR gphi GT max y range  OR gphi LT min y range      IF out 0  NE  1 THEN BEGIN       glam out     values f_nan       gphi out     values f_nan     ENDIF   ENDIF     IF keyword_set ocean  then BEGIN     earth   where mask EQ 0      if earth 0  NE  1 then begin       glam earth     values f_nan       gphi earth     values f_nan     ENDIF     earth   0   ENDIF     IF keyword_set earth  THEN BEGIN     ocean   where mask EQ 1      if ocean 0  NE  1 then begin       glam ocean     values f_nan       gphi ocean     values f_nan     ENDIF     ocean   0   ENDIF     if NOT keyword_set xstride  then xstride   1   if NOT keyword_set ystride  then ystride   1   case key_gridtype of      c :BEGIN       for i   0  ny 1  ystride do begin         plots   glam  i  gphi  i  _extra   extra       endfor       for i   0  nx 1  xstride do begin         plots   glam i    gphi i    _extra   extra       endfor     END      e :BEGIN       shifted   glam 0  0  LT glam 0  1        glam2   glam glam 1 glam 0 2        if shifted then begin         for i   0  ny 2 do BEGIN           xx    transpose glam  i   glam2  i            yy    transpose gphi  i   gphi  i 1            plots  xx 0:2 nx 2  yy 0:2 nx 2  _extra   extra         ENDFOR       ENDIF ELSE BEGIN         for i   1  ny 1 do BEGIN           xx    transpose glam  i   glam2  i            yy    transpose gphi  i   gphi  i 1            plots  xx 0:2 nx 2  yy 0:2 nx 2  _extra   extra         ENDFOR       ENDELSE       for i   1   ny 1 2 do           plots   glam 0  2 i 1  glam 0  2 i               gphi 0  2 i 1  gphi 0  2 i  _extra   extra       for i   0   ny 2 2 do           plots   glam nx 1  2 i  glam nx 1  2 i 1               gphi nx 1  2 i  gphi nx 1  2 i 1  _extra   extra     END   endcase    if keyword_set key_performance  THEN print   temps trace grille  systime 1 tempsun     except   oldexcept    return end");
+a[204] = new Array("./ToBeReviewed/GRILLE/u2t.html", "u2t.pro", "", "             file_comments   Allows to pass a field refering to the grid U on the grid T     thanks to the average:    res   0 5 res   shift res  1  0           categories    Grille      param TEMP  in required    A 2  3 or 4d array      returns   res  a 2  3 or 4d array      uses   common pro      restrictions    Force parameters of the zoom on the grid V to be the same as    those on the grid T       restrictions    Points which can not be calculated are put at the value NaN    consecrated by IDL:  values f_nan      history   From Marina Levy s programs   Sebastien Masson  smasson lodyc jussieu fr :   Validation  5 6 2000      version    Id            FUNCTION u2t  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  on force nxt nxu  etc      firstxt   firstxu    lastxt   lastxu    firstyt   firstyu    lastyt   lastyu    nxt   nxu    nyt   nyu    vargrid    T     if NOT keyword_set valmask  then valmask   1e20    lon1   glamt firstxt  0     lon2   glamu lastxu  0      case on tha array s size and application    taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxu:lastxu  firstyu:lastyu              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    umask firstxu:lastxu  firstyu:lastyu  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  1  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0       values f_nan          mask   tmask firstxu:lastxu  firstyu:lastyu  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ nzt:             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxu:lastxu  firstyu:lastyu  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxu:lastxu  firstyu:lastyu                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    umask firstxu:lastxu  firstyu:lastyu  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxu  nyu  jpt   over           ENDIF ELSE mask    umask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0         values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxu:lastxu  firstyu:lastyu  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxu  nyu  jpt   over           ENDIF ELSE mask   tmask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxu and taille 2  eq nyu AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxu:lastxu  firstyu:lastyu  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    umask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxu  nyu  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  1  0  0  0           if NOT  keyword_set key_periodic  AND nxu EQ jpi  then res 0           values f_nan          mask   tmask firstxu:lastxu  firstyu:lastyu  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxu  nyu  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase    IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF        return  res END ");
+a[205] = new Array("./ToBeReviewed/GRILLE/umask.html", "umask.pro", "", "             file_comments   calculate umask  Economize memory  we do not need to keep umask anymore       categories   Utilities       returns   A 3d array corresponding to umask        uses   common pro      examples   Used like if umask was a known array by substituing umask by  umask    For example: Instaed of write umask domainef  we have to write  umask domainef      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                          6 99 introduction of the key_shift                         20 9 99 cas jpk 1  Thanks to  jpblod ipsl jussieu fr       version    Id            FUNCTION umask       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     tempsun   systime 1             For key_performance     CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask   1  0      3:res   tmask shift tmask   1  0  0    ENDCASE        if NOT keyword_set key_periodic  then res jpi 1        umaskred   if keyword_set key_performance  THEN print   temps umask  systime 1 tempsun      return  res end");
+a[206] = new Array("./ToBeReviewed/GRILLE/v2t.html", "v2t.pro", "", "             file_comments   Allows to pass a field refering to the grid V on the grid T     thanks to the average:    res   0 5 res   shift res  1  0           categories    Grille      param TEMP  in required    A 2  3 or 4d array      returns   res  a 2  3 or 4d array      uses   common pro      restrictions    Force parameters of the zoom on the grid V to be the same as    those on the grid T       restrictions    Points which can not be calculated are put at the value NaN    consecrated by IDL:  values f_nan      history   From Marina Levy s programs   Sebastien Masson  smasson lodyc jussieu fr :   Validation  5 6 2000      version    Id       todo seb: nom du input            FUNCTION v2t  temp       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      res   temp  We force nxt nxv  etc      firstxt   firstxv    lastxt   lastxv    firstyt   firstyv    lastyt   lastyv    nxt   nxv    nyt   nyv    vargrid    T     if NOT keyword_set valmask  then valmask   1e20    lat1   gphit 0  firstyt     lat2   gphiv 0  lastyv     case on tha array s size and application    taille   size temp     CASE taille 0  OF        1: res    1       2: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv:             taille 1  eq jpi and taille 2  eq jpj:                res res firstxv:lastxv  firstyv:lastyv              else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           endcase          mask    vmask firstxv:lastxv  firstyv:lastyv  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre     values f_nan          res   0 5 res   shift res  0   1           res  0     values f_nan          mask   tmask firstxv:lastxv  firstyv:lastyv  0           terre   where mask EQ 0            IF terre 0  NE  1 THEN res terre    valmask       END       3: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ nzt:             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpk:                res res    firstzt:lastzt              taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpt:             taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk:                res res firstxv:lastxv  firstyv:lastyv  firstzt:lastzt              taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpt:                res res firstxv:lastxv  firstyv:lastyv                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          if taille 3  EQ jpt then begin             mask    vmask firstxv:lastxv  firstyv:lastyv  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxv  nyv  jpt   over           ENDIF ELSE mask    vmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0           res  0       values f_nan          if taille 3  EQ jpt then BEGIN             mask   tmask firstxv:lastxv  firstyv:lastyv  lastzt nzt NE jpk              mask   temporary mask replicate 1  jpt              mask   reform mask  nxv  nyv  jpt   over           ENDIF ELSE mask   tmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END       4: BEGIN           case 1 of             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ nzt AND taille 4  EQ jpt:             taille 1  eq nxv and taille 2  eq nyv AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res    firstzt:lastzt                taille 1  eq jpi and taille 2  eq jpj AND taille 3  EQ jpk AND taille 4  EQ jpt:                res res firstxv:lastxv  firstyv:lastyv  firstzt:lastzt                else:                return  report Probleme d adequation entre les tailles du domaine et de la boite           ENDCASE          mask    vmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxv  nyv  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre     values f_nan          res   0 5 res   shift res  0   1  0  0           res  0         values f_nan          mask   tmask firstxv:lastxv  firstyv:lastyv  firstzt:lastzt           mask   temporary mask replicate 1  jpt           mask   reform mask  nxv  nyv  nzt  jpt   over           terre   where temporary mask  EQ 0            IF terre 0  NE  1 THEN res temporary terre    valmask       END    endcase     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold    ENDIF       return  res END ");
+a[207] = new Array("./ToBeReviewed/GRILLE/vmask.html", "vmask.pro", "", "             file_comments   calculate fmask  Economize memory  we do not need to keep vmask anymore       categories   Utilities      returns   A 3d array corresponding to vmask       examples   Used like if vmask was a known array by substituing vmask by  vmask    For example: Instaed of write vmask domainef  we have to write  vmask domainef       history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         20 9 99 cas jpk 1  merci jpblod ipsl jussieu fr       version    Id            FUNCTION vmask     compile_opt idl2  strictarrsubs    common   tempsun   systime 1             For key_performance     CASE size tmask   n_dimensions  OF     2:res   tmask shift tmask  0   1      3:res   tmask shift tmask  0   1  0    ENDCASE     res  jpj 1      vmaskred   if keyword_set key_performance  THEN print   temps vmask  systime 1 tempsun      return  res end");
+a[208] = new Array("./ToBeReviewed/HOPE/completetype.html", "completetype.pro", "", "       todo seb     function completetype  typein     compile_opt idl2  strictarrsubs      type typein    case type of        x :type type yzt         y :type type xzt         z :type type zyt         t :type type xyz         xy :type type zt         xz :type type yt         yz :type type xt         xt :type type yz         yt :type type xz         zt :type type xy         xyz :type type t         xyt :type type z         yzt :type type x         xyzt :    endcase    return  type  end  ");
+a[209] = new Array("./ToBeReviewed/HOPE/computehopegrid.html", "computehopegrid.pro", "", "             file_comments      categories   grille       param XAXIS      param YAXIS      param ZAXIS      param LINETYPE      keyword FORTHEMASK      keyword WPOINT      keyword FIRSTS      keyword LASTS      keyword PTTYPE      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         2001 06      version    Id       todo seb           PRO computehopegrid  xaxis  yaxis  zaxis  linetype  FORTHEMASK   forthemask  WPOINT   wpoint  FIRSTS   firsts  LASTS   lasts  PTTYPE   pttype       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF        if not  keyword_set scalar keyword_set vector  then scalar 1      jpiglo   n_elements xaxis     jpjglo   n_elements yaxis     jpkglo   n_elements zaxis       jpi   jpiglo    jpj   jpjglo    jpk   jpkglo      if NOT keyword_set firsts  then firsts    0  0  0     if NOT keyword_set lasts  then lasts    jpi 1  jpj 1  jpk 1      depermination of the grid type and of the point type      if keyword_set pttype  then vargrid   pttype    if linetype EQ  odd even  then key_gridtype    e  ELSE key_gridtype    c      computation of the horizontal grid      if key_gridtype EQ  e  then begin       if vargrid EQ  T  then begin          glamt xaxis          glamt   glamt replicate 1  jpj           xstep glamt 1 0 glamt 0 0 2           glamt 2 lindgen jpj 2 glamt 2 lindgen jpj 2 xstep          glamu glamt xstep       ENDIF ELSE BEGIN          glamu xaxis          glamu   glamu replicate 1  jpj           xstep glamu 1 0 glamu 0 0 2           glamu 2 lindgen jpj 2 glamu 2 lindgen jpj 2 xstep          glamt glamu xstep       ENDELSE  zoom       glamt   glamt firsts 0 :lasts 0  firsts 1 :lasts 1        glamu   glamu firsts 0 :lasts 0  firsts 1 :lasts 1        jpiglo   lasts 0 firsts 0 1       jpi   jpiglo       jpjglo   lasts 1 firsts 1 1       jpj   jpjglo       glamv   glamu       glamf   glamu       gphit   yaxis firsts 1 :lasts 1        gphit   replicate 1  jpi gphit       gphif   gphit       gphiu   gphit       gphiv   gphif    ENDIF ELSE BEGIN       if vargrid eq  T  then begin          glamt xaxis          glamt   glamt replicate 1  jpj           glamu glamt glamt 1 0 glamt 0 0 2        ENDIF ELSE BEGIN          glamu xaxis          glamu   glamu replicate 1  jpj           xstep glamu 1 0 glamu 0 0 2           glamt glamu glamu 1 0 glamu 0 0 2        ENDELSE  zoom       glamt   glamt firsts 0 :lasts 0  firsts 1 :lasts 1        glamu   glamu firsts 0 :lasts 0  firsts 1 :lasts 1        jpiglo   lasts 0 firsts 0 1       jpi   jpiglo       jpjglo   lasts 1 firsts 1 1       jpj   jpjglo       glamv   glamt       glamf   glamu       gphit   yaxis firsts 1 :lasts 1        gphit   replicate 1  jpi gphit       gphiu   gphit       if jpj GT 1 then begin          gphiv   gphit gphit 0  1 gphit 0  0 2           gphif   gphit gphit 0  1 gphit 0  0 2        ENDIF ELSE BEGIN           gphiv   gphit          gphif   gphit       ENDELSE    ENDELSE     computation of the vertical grid      if keyword_set wpoint  then begin       gdepw   zaxis       if jpk ne 1 then begin          gdept shift gdepw   1 gdepw 2           gdept jpk 1 gdepw jpk 1 5 gdepw jpk 1 gdepw jpk 2        endif else gdept zaxis    endif else begin       gdept   zaxis       if jpk ne 1 then begin          gdepw shift gdept  1 gdept 2           gdepw 0 0       endif else gdepw   zaxis    endelse     computation of the vertical scale factors      if jpk ne 1 then begin       e3t   abs shift gdepw 1 gdepw        e3t jpk 1    abs gdept jpk 1 gdepw jpk 1        e3w   abs gdept shift gdept 1        e3w 0    abs gdept 0 gdepw 0     endif else begin       e3t 1       e3w 1    endelse   zoom    gdept   gdept firsts 2 :lasts 2     gdepw   gdepw firsts 2 :lasts 2     e3t   e3t firsts 2 :lasts 2     e3w   e3w firsts 2 :lasts 2     jpkglo   lasts 2 firsts 2 1    jpk   jpkglo     computation of the horizontal scale factors      e1t   replicate 1b jpi jpj     e2t   replicate 1b jpi jpj     e1u   e1t    e2u   e2t    e1v   e1t    e2v   e2t    e1f   e1t    e2f   e2t     mask       tmask   replicate 1b  jpi  jpj  jpk     if keyword_set forthemask  then BEGIN       land where forthemask ge valmask 10        if land 0  ne  1 then tmask land    0b    endif    umaskred   replicate 1  jpj  jpk     vmaskred   replicate 1  jpi  jpk     fmaskredy   replicate 1  jpj  jpk     fmaskredx   replicate 1  jpi  jpk      updateold    domdef    if keyword_set firsts  AND keyword_set lasts  then BEGIN       if vargrid EQ  T  then BEGIN          if jpj GT 1 then begin             lon1   min glamt 0   0  1              lon2   max glamt jpi 1   0  1           endif ELSE BEGIN             lon1   min glamt 0  0              lon2   max glamt jpi 1   0           ENDELSE       ENDIF ELSE BEGIN          if jpj GT 1 then begin             lon1   min glamu 0   0  1              lon2   max glamu jpi 1   0  1           endif ELSE BEGIN             lon1   min glamu 0  0              lon2   max glamu jpi 1  0           ENDELSE       ENDELSE       lat1   min gphit 0  0  gphit 0  jpj 1        lat2   max gphit 0  0  gphit 0  jpj 1        domdef  lon1  lon2  lat1  lat2  gdepw 0  gdept jpk 1  gridtype   vargrid    ENDIF      ixminmesh   0l    ixmaxmesh   long jpi 1     iyminmesh   0l    iymaxmesh   long jpj 1     izminmesh   0l    izmaxmesh   long jpk 1      for the triangulation      key_periodic   glamt 0  EQ  glamt jpi 1 glamt 1 glamt 0  MOD 360     if jpi gt 4 AND jpj GT 4 then begin       triangles_list   triangule shifted   glamt 0  0  LT glamt 0  1        twin_corners_up 1       twin_corners_dn 1    ENDIF ELSE BEGIN       triangles_list 1       twin_corners_up 1       twin_corners_dn 1    ENDELSE     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF       return end  ");
+a[210] = new Array("./ToBeReviewed/HOPE/createhopestruct.html", "createhopestruct.pro", "", "       todo seb     FUNCTION createhopestruct  event     compile_opt idl2  strictarrsubs      widget_control  event top  get_uvalue top_uvalue   find the selected variable    selected    top_uvalue 1  findline top_uvalue   selected    get the variable id    varid top_uvalue 1  findline top_uvalue   datavarid selected    get the section type    type    top_uvalue 1  findline top_uvalue   sectype selected    get its dimension    dimsvar top_uvalue 1  findline top_uvalue   dimvar selected     tosort sortdim completetype type     dimsvar dimsvar tosort    get the specified spatial domain and build reading parameters    linetype  top_uvalue 1  findline top_uvalue   linetype selected     case linetype of        odd :domainid   widget_info event top find_by_uname    basedomainodd         even :domainid   widget_info event top find_by_uname    basedomaineven         odd even :domainid   widget_info event top find_by_uname    basedomainodd even     endcase    allaxes top_uvalue 1  findline top_uvalue   dimlist     xaxis allaxes dimsvar 0     xlimits    top_uvalue 1  findline top_uvalue   xlimits     if NOT keyword_set xlimits  then begin       xid widget_info domainid find_by_uname    xinterval        widget_control  xid  get_value xint    endif ELSE xint   xaxis where xaxis GE xlimits 0  AND xaxis LE xlimits 1     yaxis allaxes dimsvar 1     yaxis   reverse yaxis          latitudes from the south to the north    ylimits    top_uvalue 1  findline top_uvalue   ylimits     if NOT keyword_set ylimits  then begin       yid widget_info domainid find_by_uname    yinterval        widget_control  yid  get_value yint    endif ELSE yint   yaxis where yaxis GE ylimits 0  AND yaxis LE ylimits 1     zaxis allaxes dimsvar 2     zlimits    top_uvalue 1  findline top_uvalue   zlimits     if NOT keyword_set zlimits  then begin       zid widget_info domainid find_by_uname    zinterval        widget_control  zid  get_value zint    endif ELSE zint   zaxis where zaxis GE zlimits 0  AND zaxis LE zlimits 1    time axis and time interval    time allaxes dimsvar 3     yyyymmdd   vairdate time     tlimits    top_uvalue 1  findline top_uvalue   tlimits     if NOT keyword_set tlimits  then BEGIN       date1id   widget_info event top  find_by_uname    date1        widget_control  date1id  get_value   date1       date2id   widget_info event top  find_by_uname    date2        widget_control  date2id  get_value   date2       tlimits    date1  date2     ENDIF    tint   time where yyyymmdd GE tlimits 0  AND yyyymmdd LE tlimits 1       limits of the domain      nxt   n_elements xint     nyt   n_elements yint     nzt   n_elements zint     jpt   n_elements tint        firstx    where xaxis GE xint 0 0     firsty    where yaxis GE yint 0 0     lasty   firsty nyt 1    firstz    where zaxis GE zint 0 0     firstt    where time GE tint 0 0      read the array      cdfid ncdf_open top_uvalue 1  findline top_uvalue   filename     offset firstx n_elements yaxis lasty 1 firstz firstt     count nxt nyt nzt jpt     tosortinv sortdim completetype type inv    sort the offset and count for the case of the array is not written   as a xyzt array but for example as a yzxt array     offset offset tosortinv     count count tosortinv    call to ncdf_varget    ncdf_varget  cdfid  varid  array  offset offset  count count     force to keep the dimension equal to 1    if count 3  eq 1 then array reform array count 0 count 1 count 2 count 3 over     if not  array_equal tosort  lindgen 4  then array transpose temporary array tosort     count nxt nyt nzt jpt     if jpt eq 1 then array reform array count 0 count 1 count 2 count 3 over     array reverse array  2   over    if there is no longitude zoom  shift the array to obtain longitude   between 20 and 380    if nxt EQ 128 OR nxt EQ 256 then begin       key_shift    where xaxis GE 20 0        xaxis   shift temporary xaxis  key_shift        xaxis where xaxis LT 20    xaxis where xaxis LT 20 360       array   shift temporary array  key_shift  0  0  0     ENDIF ELSE key_shift   0   get some informations about the array    insidevar ncdf_varinq cdfid varid     if insidevar natts NE 0 then begin       attnames   strarr insidevar natts        for attiq 0 insidevar natts 1 do attnames attiq strlowcase ncdf_attname cdfid varid attiq    get the name       if  where attnames EQ  long_name 0  EQ  1 then value             ELSE ncdf_attget cdfid varid long_name value       varname   strtrim string value  2    get the units       if  where attnames EQ  units 0  EQ  1 then value             ELSE ncdf_attget cdfid varid units value       varunit   strtrim string value  2    get the  missing_value        if  where attnames EQ  missing_value 0  EQ  1 then valmask   1e20         ELSE ncdf_attget cdfid varid missing_value  valmask    ENDIF ELSE BEGIN        varunit           valmask   1e20       varname        ENDELSE    varexp         build arguments to use computehopegrid and put it together in a structure    firsts    firstx firsty firstz     lasts    firstx nxt 1 firsty nyt 1 firstz nzt 1     vargrid    top_uvalue 1  findline top_uvalue   pointtype selected     hopegrid    xaxis:xaxis  yaxis:yaxis  zaxis:zaxis  firsts:firsts  lasts:lasts  type:type  linetype:linetype  pttype:vargrid     hopestru    array:array  unit:varunit  name:varname  date:time firstt:firstt jpt 1  grid:vargrid  hopegrid:hopegrid    we close the netcdf file before living     ncdf_close   cdfid    return  hopestru end");
+a[211] = new Array("./ToBeReviewed/HOPE/cw_selectinterval.html", "cw_selectinterval.pro", "", "       todo seb       PRO testwid_event  event         compile_opt idl2  strictarrsubs          widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          get :BEGIN            id   widget_info event top find_by_uname    discret             widget_control  id  get_value   value1            help  value1            print   value1  value1            id   widget_info event top find_by_uname    continus             widget_control  id  get_value   value2            help  value2            print   value2  value2         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex         compile_opt idl2  strictarrsubs          base widget_base COLUMN       nothing   widget_label base  value    beginning of the test           nothing   cw_selectinterval base  10 indgen 5  _extra   ex  uname    discret  uvalue    discret       print  nothing      nothing   cw_selectinterval base  indgen 20  _extra   ex  uname    continus  uvalue    continus       print  nothing          nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base   no_block      return   end       function cw_selectinterval_get_value  id     compile_opt idl2  strictarrsubs      bgroupid widget_info id  find_by_uname    bgroup    the widget is a set of button    if bgroupid ne 0 then begin       widget_control  bgroupid  get_value   selected       widget_control  bgroupid  get_uvalue   vecteur       vecteur   vecteur vecteur    endif else begin   the widget is 2 sliders       Minid   Widget_Info Id  Find_by_uname    min        widget_control  minid  get_value   minval       minval   minval value       maxid   widget_info id  find_by_uname    max        widget_control  maxid  get_value   maxval       maxval   maxval value       widget_control  minid  get_uvalue   vecteur       vecteur   vecteur vecteur       selected   where vecteur ge minval and vecteur le maxval     ENDELSE   if selected 0  eq  1 then return   1 else return  vecteur selected  END   function cw_selectinterval_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval    case uval name of        min :begin                 change the value if the minimum for the slider called max          maxid widget_info event handler  find_by_uname    max           widget_control  maxid  set_value SLIDER_MIN:event value 1        end        max :begin                 change the value if the maximum for the slider called min          minid widget_info event handler  find_by_uname    min           widget_control  minid  set_value SLIDER_MAX:event value 1        end        bgroup :    endcase    return   ID:event handler  TOP:event top  HANDLER:0L  END    function cw_selectinterval  parent  vecteur  _extra   ex     compile_opt idl2  strictarrsubs       base   widget_base parent                           EVENT_FUNC    cw_selectinterval_event                            FUNC_GET_VALUE cw_selectinterval_get_value                            PRO_SET_VALUE cw_selectinterval_set_value                             ROW  _extra   ex     if n_elements vecteur  le 10 then begin       nothing   CW_BGROUP base  strtrim vecteur 1 nonexclusive row  uvalue    name: bgroup  vecteur:vecteur  uname bgroup        buttvalue bytarr n_elements nothing        buttvalue 0 1       widget_control  nothing  set_value buttvalue    endif else begin       min min floor vecteur        max max ceil vecteur        nothing cw_slider_pm base  value   min  min min  max max 1  uvalue    name: min  vecteur:vecteur  uname min        nothing cw_slider_pm base  value   max  min min 1  max max  uvalue    name: max  uname max     endelse    return  base end");
+a[212] = new Array("./ToBeReviewed/HOPE/domainpart.html", "domainpart.pro", "", "       todo seb     pro domainpart  top_uvalue  basedomain  selected  DESTROY   destroy     compile_opt idl2  strictarrsubs       if keyword_set destroy  then BEGIN         id   widget_info basedomain find_by_uname    title          IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    oddsecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    evensecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    odd evensecchoice        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basex        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basey        IF id NE 0 THEN widget_control  id   destroy       id   widget_info basedomain find_by_uname    basez        IF id NE 0 THEN widget_control  id   destroy       return    endif     we get the size of the dimenstion id of this section      dimvar    top_uvalue 1  findline top_uvalue   dimvar     selecteddim   dimvar  selected     typedim    top_uvalue 1  findline top_uvalue   typedim     sorteddim   selecteddim sortdim typedim selecteddim     dimlist    top_uvalue 1  findline top_uvalue   dimlist       longitude part      basex widget_info basedomain find_by_uname    basex     IF basex NE 0 THEN widget_control  basex   destroy    basex widget_base basedomain row  uname basex     nothing widget_text basex value longitude  xsize   10     nothing cw_selectinterval basex dimlist sorteddim 0 uname xinterval uvalue name: xinterval       latitude part      basey widget_info basedomain find_by_uname    basey     IF basey NE 0 THEN widget_control  basey   destroy    basey widget_base basedomain row  uname basey     nothing widget_text basey value latitude  xsize   10     nothing cw_selectinterval basey reverse dimlist sorteddim 1  uname yinterval uvalue name: yinterval       depth part      basez widget_info basedomain find_by_uname    basez     IF basez NE 0 THEN widget_control  basez   destroy    basez widget_base basedomain row  uname basez     nothing widget_text basez value depth  xsize   10     nothing cw_selectinterval basez dimlist sorteddim 2 uname zinterval uvalue name: zinterval    end  ");
+a[213] = new Array("./ToBeReviewed/HOPE/findlineandpointtype.html", "findlineandpointtype.pro", "", "       todo seb     FUNCTION findlineandpointtype  sectype  xaxis  yaxis  iodir   the file  HOPE_lonlat nc  is used in this function  This file must   be localized in iodir   netcdf HOPE_lonlat     dimensions:           latTlow   242             lonTlowodd   128             latThigh   390             lonThighodd   256     variables:           float latTlow latTlow                      latTlow:units    degrees_north              float lonTlowodd lonTlowodd                      lonTlowodd:units    degrees_east                      lonTlowodd:point_spacing    even                      lonTlowodd:modulo                   float latThigh latThigh                      latThigh:units    degrees_north              float lonThighodd lonThighodd                      lonThighodd:units    degrees_east                      lonThighodd:point_spacing    even                      lonThighodd:modulo                 compile_opt idl2  strictarrsubs      jpi   n_elements xaxis     jpj   n_elements yaxis      depermination of the grid type and of the point type     low resolution grid: jpi 128  jpj 121   x 2  jpk 20                     0        1 4         2 8       4 2        5 6      odd                    T          u          T          u  93 3      even        T          u          T          u             92 2      odd                    T          u          T          u  91 1      even        T          u          T          u             90 0       high resolution grid: jpi 256  jpj 195   x 2  jpk 29                     0        0 7         1 4        2 1        2 8             odd                    T          u          T          u  91 6      even        T          u          T          u             91 0      odd                    T          u          T          u  90 5      even        T          u          T          u             90 0        x0   floor xaxis 0 10 10     y0   floor yaxis 0 10 10     case sectype of        xy :BEGIN          if  jpi NE 128 and jpi NE 256              OR  jpj NE 121 AND jpj NE 121 2 AND jpj NE 195 AND jpj NE 195 2  then begin             print    CASE NOT coded              stop          ENDIF          case 1 of             jpj EQ 195: BEGIN                case X0 OF                   0:BEGIN                      line    even                       vargrid    T                    END                   0 7:BEGIN                      case y0 OF                         91 6:BEGIN                            line    odd                             vargrid    T                          END                         91 0:BEGIN                            line    even                             vargrid    U                          END                         ELSE:BEGIN                            print    CASE NOT coded                             stop                         END                      endcase                   END                   1 4:BEGIN                      line    odd                       vargrid    U                    END                endcase             END             jpj EQ 121:BEGIN                case x0 OF                   0:BEGIN                      line    even                       vargrid    T                    END                   1 4:BEGIN                      case y0 OF                         93 3:BEGIN                            line    odd                             vargrid    T                          END                         92 2:BEGIN                            line    even                             vargrid    U                          END                         ELSE:BEGIN                            print    CASE NOT coded                             stop                         END                      endcase                   END                   2 8:BEGIN                      line    odd                       vargrid    U                    END                endcase             END             jpj EQ 195 2:BEGIN                line    odd even                 case x0 OF                   0 7:vargrid    T                    1 4:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             jpj EQ 121 2:BEGIN                line    odd even                 case x0 OF                   1 4:vargrid    T                    2 8:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             ELSE:BEGIN                print    CASE NOT coded                 stop             END          endcase       END        xz :BEGIN          if  jpi NE 128 and jpi NE 256  then begin             print    CASE NOT coded              stop          ENDIF          case X0 OF             0:BEGIN                line    even                 vargrid    T              END             0 7:BEGIN                id   ncdf_open iodir HOPE_lonlat nc                 ncdf_varget  id   latThigh  lat                test    where lat EQ yaxis 0 0                 if test EQ  1 then begin                   print    CASE NOT coded                    stop                endif                IF  test MOD 2  EQ 1 THEN BEGIN                   line    even                    vargrid    U                 ENDIF ELSE BEGIN                   line    odd                    vargrid    T                 ENDELSE                ncdf_close  id             END             1 4:BEGIN                if jpi EQ 128 then begin                   id   ncdf_open iodir HOPE_lonlat nc                    ncdf_varget  id   latTlow  lat                   test    where lat EQ yaxis 0 0                    if test EQ  1 then begin                      print    CASE NOT coded                       stop                   endif                   IF  test MOD 2  EQ 1 THEN BEGIN                      line    even                       vargrid    U                    ENDIF ELSE BEGIN                      line    odd                       vargrid    T                    ENDELSE                   ncdf_close  id                ENDIF ELSE BEGIN                   line    odd                    vargrid    U                 ENDELSE             END             2 8:BEGIN                line    odd                 vargrid    U              END          endcase       END        yz :BEGIN          if  jpj NE 121 AND jpj NE 195  then begin             print    CASE NOT coded              stop          ENDIF          id   ncdf_open iodir HOPE_lonlat nc           case y0 of             93 3:BEGIN                line    odd                 ncdf_varget  id   lonTlowodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    T                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             92 2:BEGIN                line    even                 ncdf_varget  id   lonTlowodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    U                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    T                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             91 6:BEGIN                line    odd                 ncdf_varget  id   lonThighodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    T                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    U                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             91 0:BEGIN                line    even                 ncdf_varget  id   lonThighodd  lonTodd                xstep    lonTodd 1 lonTodd 0 2                 case 1 OF                    where lonTodd EQ xaxis 0 0  NE  1:vargrid    U                     where lonTodd xstep EQ xaxis 0 0  NE  1:vargrid    T                    ELSE:BEGIN                      print    CASE NOT coded                       stop                   END                endcase             END             ELSE:BEGIN                print    CASE NOT coded                 stop             END          endcase          ncdf_close  id       END       else:BEGIN          print   case not coded           stop       END    endcase     return   linetype:line  pointtype:vargrid  end");
+a[214] = new Array("./ToBeReviewed/HOPE/read_hope.html", "read_hope.pro", "", "  pro read_hope_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval    widget_control  event top  get_uvalue top_uvalue    case uval name OF          cancel :begin   close the file          cdfid top_uvalue 1  findline top_uvalue   cdfid           ncdf_close  cdfid   clear the pointer          for i 0 n_elements top_uvalue 1 do ptr_free  top_uvalue i    kill the widget          widget_control event top destroy       end          type choice :begin   find the new type of selected section          typeindex widget_info event id droplist_select           selectedtype top_uvalue 1  findline top_uvalue   type choice typeindex    find the available variables for this type of section          sectype    top_uvalue 1  findline top_uvalue   sectype           goodvar   where sectype EQ selectedtype           namevar    top_uvalue 1  findline top_uvalue   namevar           goodnamevar   namevar goodvar    find the selected var name          varchoiceid   widget_info event top find_by_uname    var choice           varindex   widget_info varchoiceid droplist_select           varchoice    top_uvalue 1  findline top_uvalue   var choice           selectedvarname varchoice varindex    do we change the variable           if  where goodnamevar EQ selectedvarname 0  EQ  1 then begin             selectedvarname   goodnamevar 0              varindex    where varchoice EQ selectedvarname 0              widget_control  varchoiceid  set_droplist_select   varindex          ENDIF   displays the different domains          selected   goodvar where goodnamevar EQ selectedvarname           rh_alldomains  event top  selected       end          var choice :BEGIN   find the new variable          varindex widget_info event id droplist_select           selectedvar top_uvalue 1  findline top_uvalue   var choice varindex    find the available variables for this type of section          namevar    top_uvalue 1  findline top_uvalue   namevar           goodvar   where namevar EQ selectedvar           sectype    top_uvalue 1  findline top_uvalue   sectype           goodtype   sectype goodvar    find the selected type of section          typechoiceid   widget_info event top find_by_uname    type choice           typeindex   widget_info typechoiceid droplist_select           typechoice    top_uvalue 1  findline top_uvalue   type choice           selectedtype typechoice typeindex    do we change the type of section            if  where goodtype EQ selectedtype 0  EQ  1 then begin             selectedtype   goodtype 0              typeindex    where typechoice EQ selectedtype 0              widget_control  typechoiceid  set_droplist_select   typeindex          ENDIF   displays the different domains          selected   goodvar where goodtype EQ selectedtype           rh_alldomains  event top  selected       END          plot :BEGIN   plot the array          res   createhopestruct event    type of section          selected    top_uvalue 1  findline top_uvalue   selected           type    top_uvalue 1  findline top_uvalue   sectype selected    get the informations of cw_specifie          specifieid widget_info event top find_by_uname    specifie           widget_control  specifieid  get_value   specifie          specifie   struct2string specifie direct2string           case type of              x :command    plt1d res x specifie              y :command    plt1d res y specifie              z :command    plt1d res z specifie              t :command    pltt res t   specifie              xy :command    plt  res specifie              xz :command    pltz  res xz specifie              yz :command    pltz  res yz specifie              xt :command    pltt res xt specifie              yt :command    pltt res yt specifie              zt :command    pltt res zt specifie              xyz :              xyt :              yzt :              xyzt :          ENDCASE          test   execute command           if test EQ 0 then stop       end          linechoice :BEGIN          if event select EQ 1 then begin             sensitive   bytarr 3              sensitive where odd   even   odd even  eq event value    1             basedomainodd widget_info event top find_by_uname    basedomainodd              widget_control  basedomainodd  sensitive   sensitive 0              basedomaineven widget_info event top find_by_uname    basedomaineven              widget_control  basedomaineven  sensitive   sensitive 1              basedomainoddeven widget_info event top find_by_uname    basedomainodd even              widget_control  basedomainoddeven  sensitive   sensitive 2              case  where sensitive EQ 1 0  of                0:BEGIN                   widget_control  basedomainodd  get_uvalue   oddsecchoice                   oddsecchoiceid widget_info event top find_by_uname    oddsecchoice                    if oddsecchoiceid NE 0 then                      index   widget_info oddsecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    oddsecchoice index                 END                1:BEGIN                   widget_control  basedomaineven  get_uvalue   evensecchoice                   evensecchoiceid widget_info event top find_by_uname    evensecchoice                    if evensecchoiceid NE 0 then                      index   widget_info evensecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    evensecchoice index                 END                2:BEGIN                   widget_control  basedomainodd  get_uvalue   oddevensecchoice                   oddevensecchoiceid widget_info event top find_by_uname    odd evensecchoice                    if oddevensecchoiceid NE 0 then                      index   widget_info oddevensecchoiceid   droplist_select                      ELSE index   0                    top_uvalue 1  findline top_uvalue   selected    oddevensecchoice index                 END             endcase          endif       END          oddsecchoice :BEGIN          widget_control  event top  update 0          basedomainodd widget_info event top find_by_uname    basedomainodd           widget_control  basedomainodd  get_uvalue   oddsecchoice          domainpart  top_uvalue  basedomainodd  oddsecchoice event index            top_uvalue 1  findline top_uvalue   selected    oddsecchoice event index           widget_control  event top  update 1       END          evensecchoice :BEGIN          widget_control  event top  update 0          basedomaineven widget_info event top find_by_uname    basedomaineven           widget_control  basedomaineven  get_uvalue   evensecchoice          domainpart  top_uvalue  basedomaineven  evensecchoice event index            top_uvalue 1  findline top_uvalue   selected    evensecchoice event index           widget_control  event top  update 1       END          odd evensecchoice :BEGIN          widget_control  event top  update 0          basedomainoddeven widget_info event top find_by_uname    basedomainodd even           widget_control  basedomainoddeven  get_uvalue   oddevensecchoice          domainpart  top_uvalue  basedomainoddeven  oddevensecchoice event index            top_uvalue 1  findline top_uvalue   selected    oddevensecchoice event index           widget_control  event top  update 1       END          date1 :BEGIN          date2id   widget_info event top  find_by_uname    date2           widget_control  date2id  get_value   date2          if event value GT date2 then widget_control  date2id  set_value   event value       END          date2 :BEGIN          date1id   widget_info event top  find_by_uname    date1           widget_control  date1id  get_value   date1          if event value LT date1 then widget_control  date1id  set_value   event value       END         else:    endcase    return end                file_comments   Read the Hope grid file converted in NetCdf by xconv      categories   Reading      param TYPEIN  in required    A string specifing from which type of section the 4D   array based:  xy   xz   yz       param VARNAMEIN   A string the name of the cariable to be read  in   lower or upper case       keyword FILENAME   The name of the file to be read      keyword XLIMITS   A two elements vertor  lonmin  lonmax    the bondary of the longitudes  from 0 to 360       keyword YLIMITS   A two elements vertor  latmin  latmax    the bondary of the latitudes  from  90 to 90       keyword ZLIMITS   A two elements vertor  depthmin  depthmax    the bondary of the depth      keyword TLIMITS   A two elements vertor  date1  date2    the bondary of the calendar with date1 and date2   folowing the syntaxe yyyymmdd      keyword ODDPT   Activate to read only the sections located on ODD   points       keyword EVENPT   Activate to read only the sections located on even   points       keyword ODDEVENPT   Activate to read only the sections located on   both even and odd points  horizontal sections       keyword _EXTRA   Used to pass yor keywords      returns    1 if typein and varnamein are undefine  this is the widget   version      A structure which but be read by litchamp pro and is   necessary to complute the grid associated to the data  see   the example       uses   common pro  usefull only for the definition of iodir       restrictions    x   y   z   t   xt   yt  and  zt  section not coded  xconv   must be able to works with this kind of fonction    The grib file has no zoom possibilities on horizontal dimensions       restrictions     When typein and varnamein are defined  the methode to find the   godd variable is:    1  find the variables which are available on this type of   sections woth this name    2  if ODDPT  EVENPT or ODDEVENPT are specified  consider only   these types of sections    3  For an XY section the chosen variable is the one which has   the most level in the vertical domain specified by ZLIMITS        For an XZ section the chosen variable is the one which has   the most points in the latitude domain specified by YLIMITS        For an YZ section the chosen variable is the one which has   the most points in the longitude domain specified by XLIMITS         examples         IDL  a read_hope xy ocpt filename CLIM_CNT_1993 1998 nc        IDL  help  a struct         Structure   6 tags  length 1860176  refs 1:          ARRAY           FLOAT     Array 128  242  15           UNIT            STRING     deg C           NAME            STRING     Ocean potential temperature           DATE            FLOAT     Array 1           GRID            STRING     T           HOPEGRID        STRUCT       Array 1        IDL  help  a hopegrid struct         Structure   8 tags  length 1588  refs 2:          XAXIS           FLOAT     Array 128           YAXIS           FLOAT     Array 242           ZAXIS           FLOAT     Array 15           FIRSTS          LONG      Array 3           LASTS           LONG      Array 3           TYPE            STRING     xy           LINETYPE        STRING     odd even           PTTYPE          STRING     T        IDL  help  litchamp a            FLOAT       Array 128  242  15       history   Sebastien Masson  smasson lodyc jussieu fr                         June 2001      version    Id            FUNCTION read_hope  typein  varnamein  FILENAME   filename  XLIMITS   xlimits  YLIMITS   ylimits   ZLIMITS   zlimits  TLIMITS   tlimits  ODDPT   oddpt  ODDEVENPT   oddevenpt  EVENPT   evenpt  _extra   ex     compile_opt idl2  strictarrsubs    common                           usefull only for the definition of iodir    if n_elements filename  EQ 0 then filename   isafile iodirectory   iodir  _extra   ex    IF size filename   type  NE 7 THEN return   1   filename   isafile filename   filename  iodirectory   iodir  _extra   ex      cdfid   ncdf_open filename          id of the netcdf file    wathinside   ncdf_inquire cdfid     structure with global informations       dimensions      namedim   strarr wathinside ndims     name of the dimensions   typedim   strarr wathinside ndims     type of the dimensions  x y z t    sizedim   lonarr wathinside ndims     size of each dimension   loop on the dimensions to get the names and sizes   for dimiq   0  wathinside ndims 1 do begin     ncdf_diminq  cdfid  dimiq  name  value     namedim dimiq    name     case 1 of        STRCMP name   lon  3   FOLD_CASE :typedim dimiq     x        STRCMP name   lat  3   FOLD_CASE :typedim dimiq     y        STRCMP name   z  1   FOLD_CASE :typedim dimiq     z        STRCMP name   t  1   FOLD_CASE :typedim dimiq     t        ELSE:BEGIN         ncdf_close  cdfid         return  report Unknown name of dimension        END     endcase     sizedim dimiq    value   endfor   dimlist: structure which contains the name and the value of each   dimension   we suppose that there is always a variable which has the    same name that the dimension and which gives the values of   this dimension   ncdf_varget  cdfid  namedim 0  value   dimlist   create_struct namedim 0  value    for dimiq   1  wathinside ndims 1 do begin     ncdf_varget  cdfid  namedim dimiq  value  get the value     dimlist   create_struct dimlist  namedim dimiq  value    endfor       variables      namevar   strarr wathinside nvars      names of the variables   ndimsvar   lonarr wathinside nvars     number of dim for each variable   dimvar   replicate 1  wathinside ndims  wathinside nvars    dims of each variables   loop over the variable ids to fill namevar  ndimsvar and dimvar   for varid   0  wathinside nvars 1 do begin     res   ncdf_varinq cdfid  varid      namevar varid    res name     namevar varid    strjoin strsplit namevar varid   _ 0 99   EXTRACT   REGEX      ndimsvar varid    res ndims     dimvar 0:res ndims 1  varid    res dim   ENDFOR   we cut dimvar to select only the interessant part   dimvar   dimvar 0:max ndimsvar 1      selection of the data variables which are diffrent from the   dimension variables   we suppose that that data variables are 4D array  with sometime   dimensions equal to 1  they must be different from dimension   variables which have only 1 dimension   datavarid   where ndimsvar eq 4    numberofvar   n_elements datavarid    namevar   namevar datavarid    ndimsvar   ndimsvar datavarid    dimvar   dimvar  datavarid      sectype   strarr numberofvar    the type of section for each variable : xy   xz   yz    linetype   strarr numberofvar    the line of the points : odd  even or odd even   pointtype   strarr numberofvar    the type of variable : scalar  T  or vector  U    for i   0  numberofvar 1 do begin     dimofthevar   dimvar  i      sectype i    typedim dimofthevar 0 typedim dimofthevar 1      xaxisid   dimofthevar where typedim dimofthevar  EQ  x      yaxisid   dimofthevar where typedim dimofthevar  EQ  y      lineandpt   findlineandpointtype sectype i  dimlist xaxisid 0  dimlist yaxisid 0  iodir      linetype i    lineandpt linetype     pointtype i    lineandpt pointtype   endfor                  definition of the widget               base   widget_base column        first base:       droplist to select the type of section      droplist to select the variable      button to select type of line : odd  even or odd even       base1   widget_base base   row   frame    typechoice   sectype uniq sectype  sort sectype    if n_elements typechoice  GT 1 then typechoice   typechoice sortdim typechoice    base11   widget_droplist base1  title    Type of section  value   typechoice  uvalue    name: type choice  uname    type choice    if n_elements typein  NE 0 then BEGIN     selectedtype   strmid typein  0  2      widget_control  base11  set_droplist_select                         0L    where typechoice EQ selectedtype 0    ENDIF ELSE selectedtype   typechoice 0       varchoice   namevar uniq namevar  sort namevar    base12   widget_droplist base1  title    Available data  value   varchoice  uvalue    name: var choice  uname    var choice    if n_elements varnamein  NE 0 THEN BEGIN     selectedname   varnamein     widget_control  base12  set_droplist_select                         0L    where strlowcase varchoice  EQ strlowcase varnamein 0    ENDIF ELSE selectedname   varchoice 0      base13   widget_base base1   row  uname    linechoicebase        base 2: base to select the domain of the odd points     base2   widget_base base   column  uname    basedomainodd   frame        base 3: base to select the domain of the even points     base3   widget_base base   column  uname    basedomaineven   frame        base 4: base to select the domain of the odd even points     base4   widget_base base   column  uname    basedomainodd even   frame        base 5: calendar     base5   widget_base base   row  uname    baset   frame    timename   strlowcase tag_names dimlist wathinside recdim    read the time axis in julina days   time   ncdf_timeget cdfid  timename    update the dimlist structure   dimlist wathinside recdim    time   base51   cw_calendar base5  time  uname    date1  uvalue    name: date1    base52   cw_calendar base5  time  uname    date2  uvalue    name: date2         base 6: base to select the min  max    and others keywords     base6   cw_specifie base   column  uname    specifie  uvalue    name: specifie         base 7: last base with the action buttons     base7   widget_base base   row  uname    finalaction    base71   widget_button base7  value    Plot  uvalue    name: plot    base72   widget_button base7  value    Cancel  uvalue    name: cancel        determination of the selected variable         goodname   0   where strlowcase namevar  EQ strlowcase selectedname    goodtype   0   where sectype EQ selectedtype    selected   inter goodname  goodtype    if selected 0  EQ  1 then BEGIN     widget_control  base   destroy     ncdf_close  cdfid     return  report impossible combinaison : type of section  selectedtype  variable name  selectedname    ENDIF   if n_elements typein  NE 0 then BEGIN     if NOT keyword_set xlimits  then xlimits    1e9  1e9      if NOT keyword_set ylimits  then ylimits    1e9  1e9      if NOT keyword_set zlimits  then zlimits    1e9  1e9      if NOT keyword_set tlimits  then tlimits    1e9  1e9    ENDIF   if n_elements typein  NE 0 AND n_elements selected  NE 1 then BEGIN     if keyword_set oddpt  then selected   inter selected  where linetype EQ  odd      if keyword_set evenpt  then selected   inter selected  where linetype EQ  even      if keyword_set oddevenpt  then selected   inter selected  where linetype EQ  odd even      if selected 0  EQ  1 then BEGIN       widget_control  base   destroy       ncdf_close  cdfid       return  report impossible combinaison : type of section  selectedtype  variable name  selectedname  and line type       endif     if n_elements selected  NE 1 then begin       case selectedtype of          xy :BEGIN   choice on the vertical axis   choice based on the variable which has the most available levels   between the zlimits            if NOT keyword_set zlimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             zdim   dimvar 2  selected i              zaxis   dimlist zdim              nothing   where zaxis GE zlimits 0  AND zaxis LE zlimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END          xz :BEGIN   choice on the latitude axis           if NOT keyword_set ylimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             ydim   dimvar 2  selected i              yaxis   dimlist ydim              nothing   where yaxis GE ylimits 0  AND yaxis LE ylimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END          yz :BEGIN   choice on the longitude axis           if NOT keyword_set xlimits  then begin             print   case not coded              stop           ENDIF           number   lonarr n_elements selected            for i   0  n_elements selected 1 do begin             xdim   dimvar 2  selected i              xaxis   dimlist xdim              nothing   where xaxis GE xlimits 0  AND xaxis LE xlimits 1  count              number i    count           ENDFOR           selected   selected where number EQ max number            if n_elements selected  NE 1 then begin             print   case not coded              stop           endif         END       endcase     endif   ENDIF       definition of the uvalue of the base which allows to share the   variables between programs         top_uvalue   ptrarr 2  18   allocate_heap     top_uvalue 0  0     type choice     top_uvalue 1  0    temporary typechoice     top_uvalue 0  1     var choice     top_uvalue 1  1    temporary varchoice     top_uvalue 0  2     namevar     top_uvalue 1  2    temporary namevar     top_uvalue 0  3     dimvar     top_uvalue 1  3    temporary dimvar     top_uvalue 0  4     sectype     top_uvalue 1  4    temporary sectype     top_uvalue 0  5     linetype     top_uvalue 1  5    temporary linetype     top_uvalue 0  6     pointtype     top_uvalue 1  6    temporary pointtype     top_uvalue 0  7     dimlist     top_uvalue 1  7    temporary dimlist     top_uvalue 0  8     typedim     top_uvalue 1  8    temporary typedim     top_uvalue 0  9     sizedim     top_uvalue 1  9    temporary sizedim     top_uvalue 0  10     cdfid     top_uvalue 1  10    cdfid    top_uvalue 0  11     datavarid     top_uvalue 1  11    datavarid    top_uvalue 0  12     selected     top_uvalue 1  12    selected    top_uvalue 0  13     filename     top_uvalue 1  13    filename    top_uvalue 0  14     xlimits     top_uvalue 1  14    testvar var   xlimits     top_uvalue 0  15     ylimits     top_uvalue 1  15    testvar var   ylimits     top_uvalue 0  16     zlimits     top_uvalue 1  16    testvar var   zlimits     top_uvalue 0  17     tlimits     top_uvalue 1  17    testvar var   tlimits      widget_control  base  set_uvalue   top_uvalue   rh_alldomains  base  selected    if n_params  EQ 0 then BEGIN   we use the widget     widget_control  base   REALIZE     xmanager   read_hope  base   no_block     return    1   ENDIF   get the output   output   createhopestruct top:base    clear the pointer   for i   0  n_elements top_uvalue 1 do ptr_free  top_uvalue i    close the file   ncdf_close  cdfid   return  output end");
+a[215] = new Array("./ToBeReviewed/HOPE/rh_alldomains.html", "rh_alldomains.pro", "", "       todo seb     PRO rh_alldomains  topid  selected     compile_opt idl2  strictarrsubs       widget_control  topid  get_uvalue top_uvalue    widget_control  topid  update 0      selectedline top_uvalue 1  findline top_uvalue   linetype selected      we get the size of the dimenstion id of this section      dimvar    top_uvalue 1  findline top_uvalue   dimvar     typedim    top_uvalue 1  findline top_uvalue   typedim     dimlist    top_uvalue 1  findline top_uvalue   dimlist     sizedim    top_uvalue 1  findline top_uvalue   sizedim      buttons to select type of line : odd  even or odd even      linechoicebase widget_info topid find_by_uname    linechoicebase     id   widget_info linechoicebase find_by_uname    linechoice     IF id NE 0 THEN widget_control  id   destroy    choice        if  where selectedline EQ  odd 0  NE  1 then choice    choice   odd     if  where selectedline EQ  even 0  NE  1 then choice    choice   even     if  where selectedline EQ  odd even 0  NE  1 then choice    choice   odd even     choice   choice 1:n_elements choice 1     nothing   cw_bgroup linechoicebase choice   row exclusive   return_name  uname    linechoice  uvalue    name: linechoice     widget_control  nothing  set_value   0    sensitive   bytarr 3     sensitive where odd   even   odd even  eq choice 0    1      odd points domain      basedomainodd widget_info topid find_by_uname    basedomainodd     id   widget_info basedomainodd find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    oddsecchoice   where selectedline EQ  odd     if oddsecchoice 0  NE  1 then BEGIN       oddsecchoice   selected oddsecchoice        nothing widget_label basedomainodd  value    Domain of the odd points  uname    title        IF n_elements oddsecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  oddsecchoice           sorteddim   selecteddim          FOR i   0  n_elements oddsecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           oddsecchoice   oddsecchoice sortedzdim           nothing widget_droplist basedomainodd title    number of levels  value   strtrim sizedims  2  uvalue    name: oddsecchoice  uname oddsecchoice        ENDIF        domainpart  top_uvalue  basedomainodd  oddsecchoice 0        widget_control  basedomainodd  set_uvalue   oddsecchoice    ENDIF ELSE BEGIN        nothing widget_label basedomainodd  value       uname    title        domainpart  top_uvalue  basedomainodd   destroy       widget_control  basedomainodd  set_uvalue    1    ENDELSE    widget_control  basedomainodd  sensitive   sensitive 0       even points domain      basedomaineven widget_info topid find_by_uname    basedomaineven     id   widget_info basedomaineven find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    evensecchoice   where selectedline EQ  even     if evensecchoice 0  NE  1 then BEGIN       evensecchoice   selected evensecchoice        nothing widget_label basedomaineven  value    Domain of the even points  uname    title        IF n_elements evensecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  evensecchoice           sorteddim   selecteddim          FOR i   0  n_elements evensecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           evensecchoice   evensecchoice sortedzdim           nothing widget_droplist basedomaineven title    number of levels  value   strtrim sizedims  2  uvalue    name: evensecchoice  uname evensecchoice        ENDIF        domainpart  top_uvalue  basedomaineven  evensecchoice 0        widget_control  basedomaineven  set_uvalue   evensecchoice    ENDIF ELSE BEGIN       domainpart  top_uvalue  basedomaineven   destroy       nothing widget_label basedomaineven  value       uname    title        widget_control  basedomaineven  set_uvalue    1    ENDELSE    widget_control  basedomaineven  sensitive   sensitive 1       odd even points domain      basedomainoddeven widget_info topid find_by_uname    basedomainodd even     id   widget_info basedomainoddeven find_by_uname    title     IF id NE 0 THEN widget_control  id   destroy    oddevensecchoice   where selectedline EQ  odd even     if oddevensecchoice 0  NE  1 then BEGIN       oddevensecchoice   selected oddevensecchoice        nothing widget_label basedomainoddeven  value    Domain of the odd even points  uname    title        IF n_elements oddevensecchoice  GT 1 THEN BEGIN          selecteddim   dimvar  oddevensecchoice           sorteddim   selecteddim          FOR i   0  n_elements oddevensecchoice 1 DO             sorteddim  i    selecteddim sortdim typedim selecteddim  i  i           zdim   sorteddim 2             sizedims   sizedim zdim           sortedzdim   sort sizedims           sizedims   sizedims sortedzdim           oddevensecchoice   oddevensecchoice sortedzdim           nothing widget_droplist basedomainoddeven title    number of levels  value   strtrim sizedims  2  uvalue    name: odd evensecchoice  uname odd evensecchoice        ENDIF        domainpart  top_uvalue  basedomainoddeven  oddevensecchoice 0        widget_control  basedomainoddeven  set_uvalue   oddevensecchoice    ENDIF ELSE BEGIN       domainpart  top_uvalue  basedomainoddeven   destroy       nothing widget_label basedomainoddeven  value       uname    title        widget_control  basedomainoddeven  set_uvalue    1    ENDELSE    widget_control  basedomainoddeven  sensitive   sensitive 2       case  where sensitive EQ 1 0  of       0: top_uvalue 1  findline top_uvalue   selected    oddsecchoice 0        1: top_uvalue 1  findline top_uvalue   selected    evensecchoice 0        2: top_uvalue 1  findline top_uvalue   selected    oddevensecchoice 0     endcase      widget_control  topid  update 1    return end");
+a[216] = new Array("./ToBeReviewed/HOPE/sortdim.html", "sortdim.pro", "", "       todo seb       function sortdim  dims  inverse inverse       IDL  a x y t z       IDL  b a sortdim a       IDL  print  a      x y t z     IDL  print  b      x y z t     IDL  print  b sortdim a inv       x y t z     IDL  a xytz      IDL  print  sortdim a                 0           1           3           2           compile_opt idl2  strictarrsubs      tosort   dims    if n_elements tosort  eq 1 then       tosort   string reform byte tosort 1 strlen tosort 0     tosort   strrepl tosort strwhere tosort x a     tosort   strrepl tosort strwhere tosort y b     tosort   strrepl tosort strwhere tosort z c     tosort   strrepl tosort strwhere tosort t d     tosort   uniq tosort sort tosort     if keyword_set inverse  then tosort sort tosort     return  tosort  end   ");
+a[217] = new Array("./ToBeReviewed/HOPE/xrh.html", "xrh.pro", "", "       todo seb       procedure to call read_hope in the widget mode PRO xrh  _extra   ex     compile_opt idl2  strictarrsubs      a   read_hope _extra   ex     return end");
+a[218] = new Array("./ToBeReviewed/IMAGE/animgif.html", "animgif.pro", "", "             file_comments    Build a gif animation      categories    Animated drawings       param NOMFIC  in required     It is the name of the gif file containing the animation             Comment: this file is placed in the directory defined by iodir       uses    common pro      restrictions    We use the Z buffer to go faster                 So  if it failed in animgif  you have to do:                IDL  device   close                IDL  set_plot   x                 IDL  retall      restrictions    If we want to delete the  common                  we have to define manually the picture s size                   variables xsize and ysize  just as iodir       history    Guillaume Roullet  grlod ipsl jussieu fr             Sebastien Masson  smasson lodyc jussieu fr             30 4 1999      version     Id: animgif pro 134 2006 07 07 10:19:08Z navarro             PRO animgif  nomfic     compile_opt idl2  strictarrsubs    common      It recuperates the color palette and put it in red  green  blue       tvlct   rouge vert bleu get      It completes the current palette on 256 colors       red    rouge  replicate 255  256 n_elements rouge      green    vert  replicate 255  256 n_elements rouge      blue    bleu  replicate 255  256 n_elements rouge       It rocks on the z device  allowing to create the picture without display it     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     set_plot   z    size of the picture  in pixel :    xsize   30 min page_size  max   ma key_portrait   ma 1 key_portrait     ysize   30 min page_size  max   ma 1 key_portrait    ma key_portrait     device  set_resolution    xsize  ysize      Beginning of the gif file  Writing of an empty picture        reinitplt    plot   0   0   nodata    write_gif iodir nomfic tvrd red  green  blue   multiple         Beggining of the part we want to change        Loop of picture s creation       calen   TIMEGEN 366  START JULDAY 1 1 2000      debut   where calen EQ 19810105     debut   where calen EQ 19790105     debut   debut 0     if debut EQ  1 then begin       device   close       CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE       stop    endif     for i   0  73 15 1 do begin     for i   0  3 2 1 do begin     for i   0  73 2 1 do begin       print   Image numero :  strtrim i  2        date   calen debut i        erase  255       plt  nlec sst  date   ATF  19  29  int    5   noerase        plt  nlec sss  date   ATF  label   2   noerase        plt  nlec htoth  date   RE3 nlec hpycn  date   RE3  10  60  int   5   inv   noerase        domdef  290 340 5 15         plt  norme nlec unsurf  date   RE3  nlec vnsurf  date   RE3  0  1 2  int    1   noerase         Writing of the picture in the file  gif          write_gif iodir nomfic tvrd red  green  blue   multiple    ENDFOR      End of the part we want to change        Closing of the file     write_gif iodir nomfic close    Rerock on terminal X mode      device   close    CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE      return end");
+a[219] = new Array("./ToBeReviewed/INIT/initncdf.html", "initncdf.pro", "", "             file_comments   Initfile for Netcdf file  define all the grid parameters      categories         param NCFILEIN  in required    A string giving the name of the NetCdf file      keyword INVMASK   To inverse the mask: mask   1 mask      keyword MASKNAME   A string giving the name of the variable in the file    that contains the land sea mask      keyword MISSING_VALUE   To define  or redifine if the attribute is   already existing  the missing values used with USEASMASK   keyword      keyword START1   Index the axis from 1 instead of 0 when using    xyindex and or zindex      keyword USEASMASK   A string giving the name of the variable in the file    that will be used to build the land sea mask  In this case the   mask is based on the first record  if record dimension   exists  The mask is build according to :      1 the keyword missing_value if existing      2 the attribute  missing_value  if existing      3 NaN values if existing      keyword XAXISNAME   A string giving the name of the variable in the file    that contains the  xyz axis     for X axis  default name must be  x   longitude   nav_lon  or  lon             keyword YAXISNAME   A string giving the name of the variable in the file    that contains the  xyz axis     for Y axis  default name must be  y   latitude   nav_lat  or  lat       keyword ZAXISNAME   A string giving the name of the variable in the file    that contains the  xyz axis     for Z axis  default name must be  z   level   lev   depth       keyword XYINDEX   To define the x y axis with index instead of using   the values contained in X YAXISNAME     x yaxis   keyword_set start1    findgen jpi jpj     this forces key_onearth   0      keyword ZINDEX   To define the z axis with index instead of using   the values contained in ZAXISNAME     zaxis   keyword_set start1    findgen jpk         keyword _EXTRA   Used to pass your keywords       uses   common pro      restrictions   Change the grid parameters of the common pro      restrictions   the file must contain an x and an y axis   1 ou 2 dimentional array       examples    IDL  initncdf toto nc glam 180 180       history   Sebastien Masson  smasson lodyc jussieu fr                         8 May 2002      version    Id            PRO initncdf  ncfilein  XAXISNAME   xaxisname  YAXISNAME   yaxisname                   ZAXISNAME   zaxisname  MASKNAME   maskname                   INVMASK   invmask  USEASMASK   useasmask                   MISSING_VALUE   missing_value  START1   start1                   XYINDEX   xyindex  ZINDEX   zindex                   _EXTRA   ex       compile_opt idl2  strictarrsubs    common     check the name of the file   ncfile   isafile FILENAME   ncfilein  IODIRECTORY   iodir  _extra   ex    if size ncfile   type  NE 7 then BEGIN     print   initncdf cancelled      return   endif   if the file is stored on tape   if  version os_family EQ  unix  then spawn   file  ncfile     dev null       open the file   cdfid   ncdf_open ncfile    what is inside the file   inside   ncdf_inquire cdfid      name of the variables   namevar   strarr inside nvars    for varid   0  inside nvars 1 do begin     invar   ncdf_varinq cdfid  varid      namevar varid    strlowcase invar name    ENDFOR     find the xaxis   if keyword_set xaxisname  then xaxisname   strlowcase xaxisname  ELSE xaxisname    x    xvarid   where namevar EQ xaxisname OR namevar EQ  longitude                     OR namevar EQ  nav_lon  OR namevar EQ  lon    xvarid   xvarid 0    if xvarid EQ  1 then begin     print   the xaxis was not found  check the use of XAXISNAME keyword      stop   endif   get the size of xaxis   xinq   ncdf_varinq cdfid  xvarid    ncdf_diminq  cdfid  xinq dim 0  blabla  jpifromx   should we read or compute the xaxis    IF NOT keyword_set xyindex  THEN BEGIN   read the xaxis     ncdf_varget  cdfid  xvarid  xaxis   make sure of the shape of xaxis     IF xinq ndims GE 2 THEN BEGIN       ncdf_diminq  cdfid  xinq dim 1  blabla  jpjfromx       xaxis   reform xaxis  jpifromx  jpjfromx   over      ENDIF   ENDIF ELSE xaxis   keyword_set start1    findgen jpifromx      find the yaxis   if keyword_set yaxisname  then yaxisname   strlowcase yaxisname  ELSE yaxisname    y    yvarid   where namevar EQ yaxisname OR namevar EQ  latitude  OR namevar EQ  nav_lat  OR namevar EQ  lat    yvarid   yvarid 0    if yvarid EQ  1 then begin     print   the yaxis was not found  check the use of YAXISNAME keyword      stop   endif   get the size of yaxis and check it is ok with the values found for x   yinq   ncdf_varinq cdfid  yvarid    IF xinq ndims GE 2 THEN BEGIN     ncdf_diminq  cdfid  yinq dim 0  blabla  jpifromy     ncdf_diminq  cdfid  yinq dim 1  blabla  jpjfromy     IF jpifromy NE jpifromx THEN BEGIN        print   xaxis and y axis do not have the same x dimension      ENDIF   ENDIF ELSE ncdf_diminq  cdfid  yinq dim 0  blabla  jpjfromy   IF n_elements jpjfromx  NE 0 THEN BEGIN     IF jpjfromy NE jpjfromx THEN BEGIN        print   xaxis and y axis do not have the same y dimension      ENDIF       ENDIF   should we read or compute the xaxis    IF NOT keyword_set xyindex  THEN BEGIN   read the yaxis     ncdf_varget  cdfid  yvarid  yaxis   make sure of the shape of xaxis     IF xinq ndims GE 2 THEN yaxis   reform yaxis  jpifromy  jpjfromy   over    ENDIF ELSE yaxis   keyword_set start1    findgen jpjfromy      find the zaxis   if keyword_set zaxisname  then zaxisname   strlowcase zaxisname  ELSE zaxisname    z    zvarid   where namevar EQ  nav_lev  or namevar EQ zaxisname OR namevar EQ  level  OR namevar EQ  lev  OR strmid namevar  0  5  EQ  depth    zvarid   zvarid 0    if zvarid EQ  1 AND inside ndims GT 3 then begin     print   initncdf: the zaxis was not found  check the the use of ZAXISNAME keyword if you whant to find one        stop   endif   read the zaxis   if zvarid NE  1 THEN ncdf_varget  cdfid  zvarid  zaxis   IF keyword_set zindex  THEN       zaxis   keyword_set start1    findgen n_elements zaxis      mask   CASE 1 OF     keyword_set maskname :BEGIN       mskid    where namevar EQ strlowcase maskname 0        if mskid NE  1 THEN BEGIN          mskinq   ncdf_varinq cdfid  mskid    is the mask variable containing the record dimension          withrcd    where mskinq dim EQ inside recdim 0          IF withrcd NE  1 THEN BEGIN   in order to read only the first record             we need to get the size of each dimension           count   replicate 1L  mskinq ndims            FOR d   0  mskinq ndims  1 DO BEGIN             IF d NE withrcd THEN BEGIN               ncdf_diminq  cdfid  mskinq dim d  name  size               count d    size             ENDIF           ENDFOR   read the variable for the first record                     ncdf_varget  cdfid  mskid  tmask  count   count         ENDIF ELSE ncdf_varget  cdfid  mskid  tmask   check if we need to applay add_offset and scale factor                  FOR a   0  mskinq natts 1 DO BEGIN           attname   ncdf_attname cdfid  mskid  a                 CASE strlowcase attname  OF              add_offset :ncdf_attget  cdfid  mskid  attname  add_offset              scale_factor :ncdf_attget  cdfid  mskid  attname  scale_factor             ELSE:           ENDCASE         ENDFOR         IF n_elements scale_factor  NE 0 THEN tmask   tmask scale_factor         IF n_elements add_offset  NE 0 THEN tmask   tmask add_offset         if keyword_set invmask  then tmask   1 tmask         tmask   byte round tmask        ENDIF ELSE tmask    1            END       keyword_set useasmask :BEGIN       mskid    where namevar EQ strlowcase useasmask 0        if mskid NE  1 THEN BEGIN          mskinq   ncdf_varinq cdfid  mskid    is the mask variable containing the record dimension          withrcd    where mskinq dim EQ inside recdim 0          IF withrcd NE  1 THEN BEGIN   in order to read only the first record             we need to get the size of each dimension           count   replicate 1L  mskinq ndims            FOR d   0  mskinq ndims  1 DO BEGIN             IF d NE withrcd THEN BEGIN               ncdf_diminq  cdfid  mskinq dim d  name  size               count d    size             ENDIF           ENDFOR   read the variable for the first record                  ncdf_varget  cdfid  mskid  tmask  count   count         ENDIF ELSE ncdf_varget  cdfid  mskid  tmask   check if we need to applay add_offset and scale factor                FOR a   0  mskinq natts 1 DO BEGIN           attname   ncdf_attname cdfid  mskid  a                 CASE strlowcase attname  OF              add_offset :ncdf_attget  cdfid  mskid  attname  add_offset              scale_factor :ncdf_attget  cdfid  mskid  attname  scale_factor              missing_value :IF n_elements missing_value  EQ 0 THEN                 ncdf_attget  cdfid  mskid  attname  missing_value             ELSE:           ENDCASE         ENDFOR         IF n_elements scale_factor  NE 0 THEN tmask   tmask scale_factor         IF n_elements add_offset  NE 0 THEN tmask   tmask add_offset         IF n_elements missing_value  NE 0 THEN BEGIN   we have to take care of the float accuracy           CASE 1 OF             missing_value GE 1 e6:tmask   tmask LT  missing_value 10              missing_value LE  1 e6:tmask   tmask GT  missing_value 10              abs missing_value  LE 1 e 6:tmask   abs tmask  GT 1 e 6             ELSE:tmask   tmask NE missing_value           ENDCASE           if keyword_set invmask  then tmask   1 tmask         ENDIF ELSE BEGIN           tmask   finite tmask            IF min tmask  EQ 1 THEN BEGIN             print   missing or nan values not found              tmask    1                     ENDIF         ENDELSE       ENDIF ELSE tmask    1            END       ELSE:tmask     1   ENDCASE   ncdf_close  cdfid     compute the grid   if zvarid EQ  1 then BEGIN      computegrid  xaxis   xaxis  yaxis   yaxis           mask   tmask  onearth   1b   keyword_set xyindex  _EXTRA   ex    ENDIF ELSE BEGIN      computegrid  xaxis   xaxis  yaxis   yaxis  zaxis   zaxis           mask   tmask  onearth   1b   keyword_set xyindex  _EXTRA   ex   ENDELSE    IF n_elements time  EQ 0 THEN time   0   jpt   n_elements time        return end");
 a[220] = new Array("./ToBeReviewed/INIT/initncdfxxx.html", "initncdfxxx.pro", "", "");
 a[221] = new Array("./ToBeReviewed/INIT/initorca05.html", "initorca05.pro", "", "");
@@ -237,55 +237,55 @@
 a[235] = new Array("./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits.html", "scan_grib_nbits.pro", "", "FUNCTION scan_grib_nbits  num  recstart     compile_opt idl2  strictarrsubs        nrec    n_elements recstart    nbits   bytarr nrec      FOR i   0L  nrec 1 DO BEGIN     offset   recstart i 8     a   assoc num  bytarr 1   nozero  offset 1      sizepds   bit2int binary a 1  binary a 2  binary a 3      flag   binary a 8      gdsnotomitted   flag 0      bmsnotomitted   flag 1      ddd    bit2int binary a 27  binary a 28   checkneg        offset   offset sizepds       IF gdsnotomitted THEN BEGIN       a   assoc num  bytarr 1   nozero  offset 1        sizedds   bit2int binary a 1  binary a 2  binary a 3        offset   offset sizedds     ENDIF       IF bmsnotomitted THEN BEGIN       a   assoc num  bytarr 1   nozero  offset 1        sizebms   bit2int binary a 1  binary a 2  binary a 3        offset   offset sizebms     ENDIF      a   assoc num  bytarr 1   nozero  offset 1      nbits i    a 11     ENDFOR     RETURN  nbits END");
 a[236] = new Array("./ToBeReviewed/LECTURE/GRIB/scan_grib_recstart.html", "scan_grib_recstart.pro", "", "FUNCTION scan_grib_recstart  num     compile_opt idl2  strictarrsubs      infofile   fstat num    minimum size of one record   minisize   8L 28L 4L 4L   maxoffset   infofile size minisize     start   0L   offset   0L   previousrecsize   0L    WHILE offset LT maxoffset DO BEGIN   Every record must begin with  GRIB    However  their is no rule to define the space between 2 records     1  we try space   previousrecsize MOD 8  because for echam outputs    the total size of the records is rounded to modulo 8     addoff   8    previousrecsize MOD 8      offset   offset addoff     IF offset GE maxoffset THEN GOTO  out     a   assoc num  bytarr 4   nozero  offset      typefile   string a 0      IF typefile NE  GRIB  THEN offset   offset addoff    2  we try space   previousrecsize MOD 120  because for ecmwf   outputs  the total size of the records is rounded to modulo 120     addoff   120    previousrecsize MOD 120      IF typefile NE  GRIB  THEN BEGIN       offset   offset addoff       IF offset GE maxoffset THEN GOTO  out       a   assoc num  bytarr 4   nozero  offset        typefile   string a 0        IF typefile NE  GRIB  THEN offset   offset addoff     ENDIF    3  we try space   0     IF typefile NE  GRIB  THEN BEGIN       a   assoc num  bytarr 4   nozero  offset        typefile   string a 0      ENDIF    4  we try any value for space     IF typefile NE  GRIB  THEN BEGIN       REPEAT BEGIN         CASE 1 OF           array_equal a 0 3    byte G    :offset   offset 3           array_equal a 0 2:3  byte GR   :offset   offset 2           array_equal a 0 1:3  byte GRI :offset   offset 1           else:offset   offset 4         ENDCASE         IF offset GE maxoffset THEN GOTO  out         a   assoc num  bytarr 4   nozero  offset          typefile   string a 0        ENDREP UNTIL typefile EQ  GRIB      ENDIF       start    start  offset            a   assoc num  bytarr 1   nozero  offset 4      recsize   bit2int binary a 0  binary a 1  binary a 2      offset   offset recsize     previousrecsize   recsize     ENDWHILE   out:     RETURN  start 1:n_elements start 1   END");
-a[237] = new Array("./ToBeReviewed/LECTURE/binary.html", "binary.pro", "", "    Name:     binary   Purpose:     Returns the binary representation of a number of any numerical type    Argument:     number   scalar or array of numbers  any numerical type    Returns:     Byte array with binary representation of numbers    Examples:     Binary representation of 11b:       IDL  print  binary 11b        0 0 0 0 1 0 1 1     Binary representation of pi  x86: Little endian IEEE representation :       IDL  print  format z9 8 5x 4 1x 8i1  long pi 0  binary pi         40490fdb      01000000 01001001 00001111 11011011  x86 Linux         0fdb4149      00001111 11011011 01000001 01001001  Alpha OpenVMS        IDL  print  format 8 1x 8i0  binary dpi         01000000 00001001 00100001 11111011 01010100 01000100 00101101 00011000     Some first tests before type double was added:       print  format 2a6 4x 2z9 8 4x 8z3 2             version arch   version os  long dpi 0 2  byte dpi 0 8          x86 linux     54442d18 400921fb     18 2d 44 54 fb 21 09 40       sparc sunos     400921fb 54442d18     40 09 21 fb 54 44 2d 18       alpha   vms     0fda4149 68c0a221     49 41 da 0f 21 a2 c0 68        Beginning with IDL 5 1  Alpha VMS uses IEEE representation as well    Modification history:      19 Dec 1997  Originally a news posting by David Fanning                           Re: bits from bytes       20 Dec 1997   Complete  rewrite: eliminate loops       22 Dec 1997  Bit shift instead of exponentiation  return byte        array  handle input arrays         Think about double and complex types       22 Sep 1998  Complete rewrite: reduce every numerical type to        single bytes  Check that big and little endian machines        return exactly the same results  if IEEE       7 May 2003     Added newish data types  unsigned and long64   BT   function binary  number     compile_opt idl2  strictarrsubs     s   size number    type   s s 0    1    n_no   s s 0    2    Numerical types:  will have to be completed if IDL adds double long      1: byte              1 byte unsigned integer    2: integer           2 byte   signed integer    3: long              4 byte   signed integer    4: floating point    4 byte  single precision    5: double precision  8 byte  double precision    6: complex         2x4 byte  single precision    9: double complex  2x8 byte  double precision    12: uInt       2 byte  unsigned integer    13: uLong      4 byte  unsigned integer    14: Long64        8 byte  signed integer    15: uLong64       8 byte  unsigned integer    Non numerical types:   0: undefined  7: string  8: structure  10: pointer  11: object reference    nbyt    0  1  2  4  4  8  8  0  0  16  0  0    number of bytes per type   code    0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15    nbyt    0  1  2  4  4  8  8  0  0  16  0  0   2   4   8   8    ntyp   nbyt type    if ntyp eq 0 then message   Invalid argument  must be numerical type    bits    128  64  32  16   8   4   2   1      ishft 1b  7 indgen 8    For correct array handling and byte comparison   number  and  bits  require   same dimensions   numvalue and bitvalue   bitvalue    bits  intarr ntyp    intarr n_no    little_endian    byte 1  0  1 0    In case of complex type and little endian machine  swap the two float values   before the complete second dimension is reversed at returning    if  type eq 6 or type eq 9  and little_endian then     type complex     numvalue   reform byte number  0  1  ntyp 2  2  n_no                         intarr 8     1 0    8  ntyp  n_no      else numvalue    byte number  0  1  ntyp  n_no intarr 8        On little endian machines  the second dimension of the return value must   be reversed    if little_endian AND type NE 1 then       return  reverse numvalue and bitvalue  ne 0  2  else       return           numvalue and bitvalue  ne 0 end");
-a[238] = new Array("./ToBeReviewed/LECTURE/changeread.html", "changeread.pro", "", "FUNCTION changeread  newread       compile_opt idl2  strictarrsubs    common       newread must be two structures      if size newread   type  NE 8 then return  0     we compare the two structure which caracterise the read        case 1 of       ccreadparameters funclec_name NE newread funclec_name:       ccreadparameters jpidta NE newread jpidta:       ccreadparameters jpjdta NE newread jpjdta:       ccreadparameters jpkdta NE newread jpkdta:       ccreadparameters ixmindta NE newread ixmindta:       ccreadparameters ixmaxdta NE newread ixmaxdta:       ccreadparameters iymindta NE newread iymindta:       ccreadparameters iymaxdta NE newread iymaxdta:       ccreadparameters izmindta NE newread izmindta:       ccreadparameters izmaxdta NE newread izmaxdta:       ELSE:return  0    endcase     update the common paramaters      ccreadparameters   newread    jpidta   newread jpidta    jpjdta   newread jpjdta    jpkdta   newread jpkdta    ixmindta   newread ixmindta    ixmaxdta   newread ixmaxdta    iymindta   newread iymindta    iymaxdta   newread iymaxdta    izmindta   newread izmindta    izmaxdta   newread izmaxdta      return  1 end");
-a[239] = new Array("./ToBeReviewed/LECTURE/inverse_binary.html", "inverse_binary.pro", "", "    NAME: inverse_binary     PURPOSE: inverse function of the binary pro function   given a   input array of 0 1  return its corresponding byte integer long   representation     CATEGORY:     CALLING SEQUENCE: res   inverse_binary binnum      INPUTS:       binnum must be a binary type array containing only 0 and 1       According to binary pro outputs  binnum array must have the      following dimensions values:  8  t  d1  d2       t gives the output type: t   1   byte                               t   2   integer                               t   4   long              d1  d2  are the output dimensions     KEYWORD PARAMETERS: no     OUTPUTS: a byte integer long array with  d1  d2  dimensions     COMMON BLOCKS: no     RESTRICTIONS:the binary number can represent only byte integer long     EXAMPLE:         IDL  a indgen 5        IDL  b binary a        IDL  help  b       B               BYTE        Array 8  2  5        IDL  print  b          0   0   0   0   0   0   0   0          0   0   0   0   0   0   0   0                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   0   1                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   1   0                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   1   1                 0   0   0   0   0   0   0   0          0   0   0   0   0   1   0   0       IDL  help  inverse_binary b            INT         Array 5        IDL  print  inverse_binary b               0       1       2       3       4     MODIFICATION HISTORY:        Sebastien Masson  smasson jamstec go jp         July 2004       FUNCTION inverse_binary  binnumb       compile_opt idl2  strictarrsubs     s   size binnumb   dimensions    IF n_elements s  EQ 1 THEN numbofbit   8 ELSE numbofbit   8 s 1    nvalues   n_elements binnumb numbofbit   bn   reform long binnumb  numbofbit  nvalues      CASE numbofbit OF     8:res   byte total temporary bn 2b reverse indgen numbofbit replicate 1b  nvalues  1  1      16:res   fix total temporary bn 2 reverse indgen numbofbit replicate 1  nvalues  1  1   double      32:res   long total temporary bn 2L reverse indgen numbofbit replicate 1L  nvalues  1  1   double    ENDCASE     CASE n_elements s  OF     1:res   res 0      2:res   res 0      3:     ELSE:res   reform res  s 2:n_elements s 1   over    ENDCASE     return  res end");
-a[240] = new Array("./ToBeReviewed/LECTURE/litchamp.html", "litchamp.pro", "", "          NAME:litchamp     PURPOSE:permet de lire un simple tableau ou une structure   correspondant a un champ    Si en entree on a :      un simple tableau  litchamp renvoie le tableau      une stucture  litchamp renvoie le premier element de la structure     qui doit obligatoirement etre le champ sous forme d un tableau      Au passage litchamp regarde les autres elements de la structure et     met a jour si besoin les variables globales qui se rapportent au     champ: vargrid  varname  varunit  vardate  varexp   valmask et time      CATEGORY:permet d appeler plt  pltz  pltt   avec un tableau ou une   structure et de mettre a jour les variables globales liees au champ       CALLING SEQUENCE:res litchamp struct      INPUTS:          struct: c est soit un tableau soit une structure       Si struct est une structure  elle doit suivre les regles      suivantes:           le premier element est le tableau contenant le champ            les autres elements sont des strings qui contiennent des          informations sur le champ SAUF pour l element relatif a          date  Ce dernier peut etre soit un string pour designer une date          particuliere  ex:  August 1999  ou bien un vecteur de jours          juliens  d IDL  correspondant au calendrier a associer au          champ si c est une serie temporelle            l ordre des elements  autre que le premier  n a pas          d importance             les autres elements  autre que le premier  sont tous          optionnels            ils sont reconnus par la premiere lettre de leur nom:               g  pour actualiser vargrid               u  pour actualiser varunit               e  pour actualiser varexp               d  pour actualiser vardate               n  pour actualiser varname               m  pour actualiser valmask     KEYWORD PARAMETERS:             GRID: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  g  si il existe et   dans le cas contraire              UNIT: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  u  si il existe et   dans le cas contraire              EXP: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  e  si il existe et   dans le cas contraire              DATE: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  d  si il existe et   dans le cas contraire              NAME: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  n  si il existe et   dans le cas contraire              LEVEL: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  l  si il existe et  1 dans le cas contraire              MASK: activer ce mot cle si on veut que litchamp renvoie la          variable associee a l element de la structure commencant          par  m  si il existe et  1 dans le cas contraire      OUTPUTS:c est le tableau qui continent le champ      COMMON BLOCKS:  common pro     SIDE EFFECTS: actualise au besion les variables globales vargrid    varname  varunit  vardate  varexp  valmask et time      RESTRICTIONS:     EXAMPLE:             IDL  print  vargrid    varname    varunit    vardate    varexp           T        0         IDL  help  litchamp a:indgen 5  u: C  name: toto              INT         Array 5       IDL  print  vargrid    varname    varunit    vardate    varexp            T  toto  C  0         IDL  help  litchamp a:indgen 5  da: 1999              INT         Array 5       IDL  print  vargrid    varname    varunit    vardate    varexp           T  toto  C  1999           MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          28 5 1999         FUNCTION litchamp  struct  GRID   grid  NAME   name  UNIT   unit  EXP   exp  DATE   date                        LEVEL   level  MASK   mask     compile_opt idl2  strictarrsubs    common      if size struct   type  ne 8 then BEGIN   alors contour n est pas une structure       if keyword_set grid  then return          if keyword_set name  then return          if keyword_set unit  then return          if keyword_set exp   then return          if keyword_set date   then return          if keyword_set level   then return   1       if keyword_set mask   then return   1       return   struct               ENDIF        IF n_tags struct  EQ 1 then BEGIN   la structure n a qu un element       if keyword_set grid  then return          if keyword_set name  then return          if keyword_set unit  then return          if keyword_set exp   then return          if keyword_set date   then return          if keyword_set level   then return   1       if keyword_set mask   then return   1       return   struct 0     ENDIF        nomelements   tag_names struct     for i   1  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :BEGIN             if keyword_set grid  then return  strupcase struct i              vargrid   strupcase struct i           END           n :BEGIN             if keyword_set name  then return  struct i              varname   struct i           END           u :BEGIN             if keyword_set unit  then return  struct i              varunit   struct i           END           e :BEGIN             if keyword_set exp  then return  struct i              varexp   struct i           END           m :BEGIN             if keyword_set mask  then return  struct i              valmask   struct i           END           d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                time   struct i                 jpt   n_elements time                 if jpt EQ 1 then vardate    strtrim vairdate struct i 0  2                 ELSE vardate    strtrim vairdate struct i 0  2                         strtrim vairdate struct i jpt 1  2               ENDELSE             if keyword_set date  then return  vardate          END           h :BEGIN             computehopegrid   struct i xaxis   struct i yaxis                   struct i zaxis   struct i linetype                  FIRSTS    struct i firsts  LASTS    struct i lasts                  FORTHEMASK   struct 0  pttype    struct i pttype          END          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure  cf  IDL  xhelp   litchamp           end       endcase    endfor      if keyword_set grid  then return       if keyword_set name  then return       if keyword_set unit  then return       if keyword_set exp   then return       if keyword_set date   then return       if keyword_set level   then return   1    if keyword_set mask   then return   1     return   struct 0  end");
-a[241] = new Array("./ToBeReviewed/LECTURE/ncdf_lec.html", "ncdf_lec.pro", "", "          NAME:ncdflec     PURPOSE:donne des infos sur un fichier netcdf et permet de recupere   les variables qui y sont ecrites      CATEGORY:lecture de fichiers netcdf     CALLING SEQUENCE: res ncdflec nom_de _fichier      INPUTS:nom_de _fichier:nom d un fichier net cdf situe ds e repertoire   stipule par iodir     KEYWORD PARAMETERS:    ATT:  global  ou au nom d une variable  permet de voir tous les   attributs rattaches a une variable     DIM:donne la liste des dimensions    VAR:         1   var: donne la liste des variables         2  var nom de variable : ds ce cas la fonction retourne la variable           IODIR: string contenant le repertoire ou aller chercher le         fichier a lire            _EXTRA: permet de passer les mots cles definits par IDL pour         les fonction NETCDF  en particulier OFFSET et COUNT ds ncdf_varget      OUTPUTS: 1 sauf si var nom de variable  auquel cas la fonction retourne la variable     REMARQUE:les noms des variables du programme sont similaires a ceux employes   ds le manuel IDL  scientific data formats      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          4 1 98     function ncdf_lec nom ATT att DIM dim VAR var  IODIR   iodir  _extra   ex     compile_opt idl2  strictarrsubs      res    1      if NOT keyword_set IODIR  then iodir        if not keyword_set att  or keyword_set dim  or keyword_set var  then BEGIN       att   1       dim   1       var   1        commande ncdump  c  iodir nom        spawn commande        goto fini    endif     ouverture du fichier nom      cdfid ncdf_open iodir nom      que contient le fichier       wathinside ncdf_inquire cdfid      print dans le fichier   iodir nom  il y a:     if keyword_set dim  then begin        print nombre de dimensions:  strtrim wathinside ndims 1        print numero de la dimension dont la valeur est infini:  strtrim wathinside recdim 1     endif    if keyword_set var  then       if size var   type  NE 7 then print nombre de variables  : strtrim wathinside nvars 1     if keyword_set att  then begin       if strlowcase att  ne  global  then goto nonglobal       print nombre de attributs globaux : strtrim wathinside ngatts 1     endif     attributs globaux      if keyword_set att  then begin       print          print ATTRIBUTS GLOBAUX        for attiq 0 wathinside ngatts 1 do begin          name ncdf_attname cdfid attiq global   nom de l atribut          ncdf_attget cdfid name value global  valeur de l atribut          print name :  string value        endfor    endif nonglobal:     affichage des differentes dimensions      if keyword_set dim  then begin        print          print DIMENSIONS     endif    nomdim    strarr wathinside ndims     tailledim lonarr wathinside ndims     for dimiq 0 wathinside ndims 1 do begin       ncdf_diminq cdfid dimiq name value   nom et valeur de la dimension       nomdim dimiq name       tailledim dimiq value       if keyword_set dim  then begin           print dimension numero  strtrim dimiq 1  nom:  nomdim dimiq                valeur:    strtrim tailledim dimiq 1        endif    endfor     affichage des differentes variables        if keyword_set att  or keyword_set var  then begin    vature de var   string ou 1    help  var  output   nature    if  strpos nature   STRING 0  NE  1 then nature    string  ELSE nature    1    si on doit juste lire la variable    if nature EQ  string  then begin       ncdf_varget  cdfid  var  res  _extra   ex       GOTO  sortie    ENDIF    si c est pour avoir des renseignements    if not keyword_set att  then att rien        print          for varid 0 wathinside nvars 1 do begin          varcontent ncdf_varinq cdfid varid    que contient la variable          if strlowcase att  eq strlowcase varcontent name  or keyword_set var              then begin             print variable numero:  strtrim varid 1  nom: varcontent name                  type:   varcontent datatype  dimensions: nomdim varcontent dim              if strlowcase att  eq strlowcase varcontent name  then begin                for attiq 0 varcontent natts 1 do begin                   name ncdf_attname cdfid varid attiq                    ncdf_attget cdfid varid name value                   print       strtrim attiq   name :  strtrim string value 1                 endfor                goto  sortie             endif          endif       endfor    endif   sortie:    ncdf_close cdfid     fini:     return  res end");
-a[242] = new Array("./ToBeReviewed/LECTURE/read_ftp.html", "read_ftp.pro", "", "    READ_FTP     Syntax:     READ_FTP  remote_host   files    directory   FILE   DATA variable                  USER string   PASS string   PTR      Arguments     remote_host   Name of the remote host  ftp server  that you want                   to connect to  or a complete ftp location such as for example:                        ftp: ftp rsinc com pub gzip README GZIP       directory   Remote directory where the files reside on the ftp                 server       files   A single filename or an array of filenames to be             retrieved      Keywords     FILE   Set this keyword to make a local copy of the file to be            transferred   The local file will have the same name as the            remote file and will be placed in the current working            directory        DATA   Set this to a named variable that will contain either a            byte array or an array of pointers to byte arrays with the            transferred data   If there is more than one file  an array            of pointers is returned  one for each file             Note that when downloading large files using  FILE            instead will require much less memory since the entire file            is not stored in a variable in that case        PTR    Set this keyword to return an array of pointers            even when there is only one file        USER   Specify user name to connect to server with   Default is:            anonymous        PASS   Specify password to use when connecting   Default is:            test test com      Examples of use    1  Retrieve and print the contents of ftp: ftp rsinc com pub gzip README GZIP:     IDL  READ_FTP   ftp: ftp rsinc com pub gzip README GZIP  DATA data     IDL  help  data            DATA            BYTE        Array 2134      IDL  print  string data                README file: Research Systems Anonymous FTP site  ftp rsinc com                      pub directory                     gzip directory                 2  Retrieve some files from podaac jpl nasa gov and store the files      in the current working directory:        IDL  files   string lindgen 10 50 format MGB370 3 3d gz       IDL  READ_FTP   podaac jpl nasa gov  files          IDL         pub sea_surface_height topex_poseidon mgdrb data MGB_370   FILE      IDL  spawn dir MGB log_output       Volume in drive C is Local Disk       Volume Serial Number is 34CE 24DF         Directory of C: test test0307        07 28 2003  11:58a             362 167 MGB370 050 gz      07 28 2003  11:58a             333 005 MGB370 051 gz      07 28 2003  11:58a             310 287 MGB370 052 gz      07 28 2003  11:58a             358 771 MGB370 053 gz      07 28 2003  11:59a             387 282 MGB370 054 gz      07 28 2003  11:59a             361 633 MGB370 055 gz      07 28 2003  11:59a             383 075 MGB370 056 gz      07 28 2003  11:59a             365 844 MGB370 057 gz      07 28 2003  11:59a             383 918 MGB370 058 gz      07 28 2003  12:00p             372 712 MGB370 059 gz                    10 File s       3 618 694 bytes      These compressed files can cosequently be opened with OPENR and the      COMPRESSED keyword      pro ftp_post  u  cmd  res  out out  count count   compile_opt idl2   if  cmd ne   then begin     printf  u  cmd  format a      comment out the following line to disable debug info     print   cmd   endif   if  size out type  eq 0  then out 2      catch  err   if  err ne 0  then return   line    count 0   while arg_present res  do begin     readf  u  line     if count eq 0 then res line else res res line      count count 1     comment out the following line to disable debug info     print   line     if strmatch line out  then break   endwhile end  pro ftp_parse_pasv  text  host  port   t strtrim text 2    ind where strcmp t 227 3    i ind 0    if  i ne  1  then begin     sub stregex t i 0 9 extract      p strsplit strmid sub 1 strlen sub 2 extract      p strtrim p 2      host p 0 p 1 p 2 p 3      port 256 long p 4 long p 5    endif end  pro read_ftp  site  files  dir  port  data data  file file  user user                  pass pass  ptr ptr   compile_opt idl2   if n_elements port  eq 0 then port ftp    if n_elements files  eq 0 then begin     if strcmp site ftp: 6  then host strmid site 6  else host site     pos strpos host      dir strmid host pos      host strmid host 0 pos      pos strpos dir reverse_search      files strmid dir pos 1      dir strmid dir 0 pos    endif else host site   if  size user type  eq 0  then user anonymous    if  size pass type  eq 0  then pass test test com                                      socket  u  host  port  connect_timeout 5  read_timeout 5   get_lun   ftp_post  u    res   ftp_post  u   USER  user  res  out 3      ftp_post  u   PASS  pass  res   ftp_post  u   TYPE I  res   if  size dir type  ne 0  then ftp_post  u   CWD  dir  res   if keyword_set file  or arg_present data  then begin     bufsize 512     buffer bytarr bufsize      n n_elements files      if arg_present data  then dat ptrarr n      for i 0  n 1 do begin       ftp_post  u   SIZE  files i  res  out 213         sz long64 strmid res n_elements res 1 4        if arg_present data  then dat i ptr_new bytarr sz        ftp_post  u   PASV  res       ftp_parse_pasv  res  host  port       ftp_post  u   RETR  files i  res  out 1          socket  v  host  port  connect_timeout 5  read_timeout 5              get_lun   rawio       tc 0ll       if keyword_set file  then openw w files i get_lun       while  tc lt sz  do begin         if  sz tc lt bufsize  then begin           bufsize sz tc           buffer bytarr bufsize          endif         readu  v  buffer  transfer_count dtc         if arg_present data  then               dat i tc dtc eq bufsize buffer:buffer 0:dtc 1          if keyword_set file  then              writeu w dtc eq bufsize buffer:buffer 0:dtc 1          tc tc dtc       endwhile       free_lun  v       if keyword_set file  then free_lun  w       ftp_post  u    res     endfor     if arg_present data  then begin        if  n gt 1 or keyword_set ptr  then data dat          else data temporary dat 0       endif   endif   ftp_post  u   QUIT  res   free_lun  u end");
-a[243] = new Array("./ToBeReviewed/LECTURE/read_ncdf.html", "read_ncdf.pro", "", "          NAME: read_ncdf     PURPOSE:fonction de lecture pour fichier net_cdf    Ce programme  est moins universel que ncdf_lec  il fait appelle au   variables declarees dans common pro  mais il est du cop bcp plus   facile d utilisation  Il prend en compte la declaration des   differents zoom qui ont ete definis  ixminmesh premierx  la   declaration de la variable key_shift  bref le resultat de   read_ncdf peut dorectement etre utilise dans plt    C est aussi ce programme qui est utilise par defaut dans mes   widgets pour la partie lecture      CATEGORY:lecture de fichiers NetCdf     CALLING SEQUENCE:res   read_ncdf name debut fin       INPUTS: name: un string definissant le champ a lire            debut et fin: sont relatifs a l axe des temps  Ce peut etre             2 dates du type yyyymmdd et ds ce cas on selectionne les           dates qui sont comprisent entre ces 2 dates              2 indices qui definissent entre quel et quel pas de temps             on doit extraire la dimension temporelle            exp: ne sert a rien      KEYWORD PARAMETERS: utilisables hors du contexte des widgets            BOXZOOM: contient la boxzoom sur laquelle on doit faire la          lecture          FILENAME: string contennant le nom du fichier           INIT  to call automatically initncdf  filename and thus          redefine all the grid parameters          GRID UTVWF  to specify the type of grid  Defaut is  1           based on the name of the file if the file ends by          GRID _ TUVFW NC  not case sensible  or  2  T if case  1           is not found           IODIRECTORY a string giving the name of iodirectory  see          isafile pro for all possibilities  default value is common           variable iodir          TIMESTEP:activer pour specifier que debut et fin font          reference a des indices de l axe du temps et non pas a des          dates            TOUT: activer si on veut lire le ficher sur l ensemble du          domaine sans tenir compte du sous domaine definit par boxzoom          ou lon1 lon2 lat1 lat2 vert1 vert2           NOSTRUCT: activer si on ne veut pas que read_ncdf reourne          une structure mais uniquement le tableau se rapportant au          champ            TIMEVAR: a string to define the name of the variable that          contains the time axis  This keyword can be usefull if there          is no unlimited dimension or if the time axis selected by defaut           the first 1D array with unlimited dimension  is not the good one        OUTPUTS:une stucture lisible par litchamp pro ou un simple tableau   si  NOSTRUCT est active      COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:le champ doit avoir une dimension temporelle     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         15 10 1999         FUNCTION read_ncdf  name  debut  fin  pour_etre_compatible  BOXZOOM   boxzoom  FILENAME   filename                         PARENTIN   parentin  TIMESTEP   timestep  TIMEVAR   timevar                         TOUT   tout  NOSTRUCT   nostruct  CONT_NOFILL   CONT_NOFILL  INIT   init                         GRID   grid  FBASE2TBASE   fbase2tbase  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     we find the filename       print filename    is parent a valid widget     if keyword_set parentin  then BEGIN     parent   long parentin      parent   parent widget_info parent   managed    ENDIF   filename   isafile filename   filename  IODIRECTORY   iodir  _EXTRA   ex      ouverture du fichier nom     if size filename   type  NE 7 then       return  report read_ncdf cancelled    IF  version OS_FAMILY EQ  unix  THEN spawn   file  filename     dev null    cdfid   ncdf_open filename    contient   ncdf_inquire cdfid      we check if the variable name exists in the file      if ncdf_varid cdfid  name  EQ  1 then BEGIN     ncdf_close  cdfid     return  report variable  name   C not found in the file  filename    ENDIF   varcontient   ncdf_varinq cdfid  name      shall we redefine the grid parameters     if keyword_set init  THEN initncdf  filename  _extra   ex     check the time axis and the debut and fin dates     if n_elements debut  EQ 0 then begin     debut   0     timestep   1   endif   if keyword_set timestep  then begin     firsttps   debut 0      if n_elements fin  NE 0 then lasttps   fin 0  ELSE lasttps   firsttps     jpt   lasttps firsttps 1     time   julday 1  1  1    lindgen jpt    ENDIF ELSE BEGIN     if keyword_set parent  then BEGIN       widget_control  parent  get_uvalue   top_uvalue       filelist   extractatt top_uvalue   filelist        IF filelist 0  EQ  many   THEN filelist   filename       currentfile    where filelist EQ filename 0        time    extractatt top_uvalue   fileparameters currentfile time_counter       date1   date2jul debut 0        if n_elements fin  NE 0 then date2   date2jul fin 0  ELSE date2   date1       firsttps   where time EQ date1    firsttps   firsttps 0        lasttps   where time EQ date2    lasttps   lasttps 0      ENDIF ELSE BEGIN       IF keyword_set timevar  THEN BEGIN          timeid   ncdf_varid cdfid  timevar          IF timeid EQ  1 THEN BEGIN           ncdf_close  cdfid           return  report the file  filename  as no variable     timevar                                 C Use the TIMESTEP keyword          endif         timecontient   ncdf_varinq cdfid  timeid          contient recdim   timecontient dim 0        ENDIF ELSE BEGIN    we find the infinite dimension         timedim   contient recdim         if timedim EQ  1 then BEGIN           ncdf_close  cdfid           return  report the file  filename  as no infinite dimension   C Use TIMESTEP or TIMEVAR keyword          endif   we find the FIRST time axis               timeid   0         repeat BEGIN         tant que l on a pas trouve une variable qui n a qu                                    une dimension: la dimension infinie           timecontient   ncdf_varinq cdfid  timeid    que contient la variable           timeid   timeid 1         endrep until  n_elements timecontient dim  EQ 1                         AND timecontient dim 0  EQ contient recdim              OR timeid EQ contient nvars 1           if timeid EQ contient nvars 1 then BEGIN           ncdf_close  cdfid           return  report the file  filename  as no time axis variable   C Use the TIMESTEP keyword          endif         timeid   timeid 1       ENDELSE    we must found the time origin of the julian calendar used in the   time axis     does the attribut units an dcalendar exist for the variable time axis        if timecontient natts EQ 0 then BEGIN         ncdf_close  cdfid         return  report the variable  timecontient name  has no attribut C Use the TIMESTEP keyword or add the attribut  units  to the variable        endif       attnames   strarr timecontient natts        for attiq   0  timecontient natts 1 do attnames attiq    ncdf_attname cdfid  timeid  attiq        if  where attnames EQ  units 0  EQ  1 then BEGIN         ncdf_close  cdfid         return  report Attribut  units  not found for the variable  timecontient name   C Use the TIMESTEP keyword        ENDIF     now we try to find the attribut called calendar    the the attribute  calendar  exists    If no  we suppose that the calendar is gregorian calendar         if  where attnames EQ  calendar 0  NE  1 then BEGIN         ncdf_attget  cdfid  timeid   calendar  value         value   string value          CASE value OF            noleap :key_caltype    noleap             360d :key_caltype    360d             greg :IF n_elements key_caltype  EQ 0 THEN key_caltype    greg            ELSE:BEGIN              notused   report Unknown calendar:  value  we use greg calendar               key_caltype    greg            END         ENDCASE       ENDIF ELSE BEGIN          notused   report Unknown calendar  we use  key_caltype  calendar           IF n_elements key_caltype  EQ 0 THEN key_caltype    greg        ENDELSE     now we take acre of units attribut       ncdf_attget  cdfid  timeid   units  value     time_counter:units    seconds since 0001 01 01 00:00:00      time_counter:units    hours since 0001 01 01 00:00:00      time_counter:units    days since 1979 01 01 00:00:00      time_counter:units    months since 1979 01 01 00:00:00      time_counter:units    years since 1979 01 01 00:00:00        we decript the  units  attribut to find the time origin       value   strtrim strcompress string value  2        mots   str_sep value            unite   mots 0        depart   str_sep mots 2          ncdf_varget  cdfid  timeid  time       time   double time        unite   strlowcase unite        IF strpos unite   s  strlen unite 1  NE  1 THEN unite   strmid unite  0  strlen unite 1        IF strpos unite   julian_  NE  1 THEN unite   strmid unite  7        case unite of          second :time   julday depart 1  depart 2  depart 0 time 86400 d          hour :time   julday depart 1  depart 2  depart 0 time 24 d          day :time   julday depart 1  depart 2  depart 0 time          month :BEGIN            if total fix time  NE time  NE 0 then     we switch to days with 30d m             time   julday depart 1  depart 2  depart 0 round time 30                ELSE for t   0  n_elements time 1 DO               time t    julday depart 1 time t  depart 2  depart 0          END          year :BEGIN           if total fix time  NE time  NE 0 then     we switch to days with 365d y             time   julday depart 1  depart 2  depart 0 round time 365                ELSE for t   0  n_elements time 1 do               time t    julday depart 1  depart 2  depart 0 time t          END         ELSE:BEGIN           ncdf_close  cdfid           return  report The  units  attribu of the time axis must be something like:  C  seconds since 0001 01 01    C  days since 1979 01 01    C  months since 1979 01 01    C  years since 1979 01 01           end       ENDCASE       date1   date2jul debut 0        if n_elements fin  NE 0 then date2   date2jul fin 0  ELSE date2   date1       time   double time        firsttps   where time GE date1    firsttps   firsttps 0        if firsttps EQ  1 THEN BEGIN         ncdf_close  cdfid         return  report date 1:  strtrim jul2date date1  1  is not found in the time axis        ENDIF       lasttps   where time LE date2        if lasttps 0  EQ  1 THEN BEGIN         ncdf_close  cdfid         return  report the time axis as no date before date 2:  strtrim jul2date date2  1        endif       lasttps   lasttps n_elements lasttps 1        if lasttps LT firsttps then BEGIN         ncdf_close  cdfid         return  report the time axis as no dates between date1 and  date 2:  strtrim jul2date date1  1   strtrim jul2date date2  1        endif     ENDELSE     time   time firsttps:lasttps      jpt   lasttps firsttps 1   ENDELSE     nom de la grille a laquelle se rapporte le champ     IF keyword_set grid  THEN vargrid   strupcase grid  ELSE BEGIN     vargrid    T                  default definition     IF finite glamu 0  EQ 1 THEN BEGIN       pattern    GRID   GRID_   GRID   UPID_   30ID_        gdtype    T   U   V   W   F        fnametest   strupcase filename        FOR i   0  n_elements pattern 1 DO BEGIN         FOR j   0  n_elements gdtype 1 DO BEGIN           substr   pattern i gdtype j            pos   strpos fnametest  substr            IF pos NE  1 THEN                vargrid   strmid fnametest  pos strlen substr 1  1          ENDFOR       ENDFOR     ENDIF   ENDELSE     call the init function          redefinition du domaine      if keyword_set tout  then begin     nx   jpi     ny   jpj     nz   jpk     firstx   0     firsty   0     firstz   0     lastx   jpi 1     lasty   jpj 1     lastz   jpk 1     case strupcase vargrid  of        T :mask   tmask        U :mask   umask         V :mask   vmask         W :mask   tmask        F :mask   fmask      endcase   ENDIF ELSE BEGIN     if keyword_set boxzoom  then BEGIN        Case 1 Of         N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0          N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1          N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2          N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4          N_Elements Boxzoom  Eq 6:bte   Boxzoom         Else: BEGIN           ncdf_close  cdfid           return  report Wrong Definition of Boxzoom          end       ENDCASE       savedbox   1b       saveboxparam   boxparam4rdncdf dat        domdef  bte  GRIDTYPE    T  vargrid  _extra   ex     ENDIF     grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     undefine  glam   undefine  gphi     on libere un peu de memoire    ENDELSE     on initialise les ixmindta  iymindta au besoin     if n_elements jpidta  EQ 0 THEN jpidta   jpiglo   if n_elements jpjdta  EQ 0 THEN jpjdta   jpjglo   if n_elements jpkdta  EQ 0 THEN jpkdta   jpkglo   if n_elements ixmindta  EQ 0 THEN ixmindta   0   if n_elements ixmaxdta  EQ 0 then ixmaxdta   jpidta 1   if ixmindta EQ  1 THEN ixmindta   0   IF ixmaxdta EQ  1 then ixmaxdta   jpidta 1   if n_elements iymindta  EQ 0 THEN iymindta   0   IF n_elements iymaxdta  EQ 0 then iymaxdta   jpjdta 1   if iymindta EQ  1 THEN iymindta   0   IF iymaxdta EQ  1 then iymaxdta   jpjdta 1   if n_elements izmindta  EQ 0 THEN izmindta   0   IF n_elements izmaxdta  EQ 0 then izmaxdta   jpkdta 1   if izmindta EQ  1 THEN izmindta   0   IF izmaxdta EQ  1 then izmaxdta   jpkdta 1     on va lire le fichier     if n_elements key_stride  LE 2 then key_stride    1  1  1    key_stride   1l   long key_stride    key_shift   long testvar var   key_shift      IF n_elements key_yreverse  EQ 0 THEN key_yreverse   0   IF keyword_set key_yreverse  THEN BEGIN     tmp   jpj 1 firsty     firsty   jpj 1 lasty     lasty   tmp   ENDIF     IF keyword_set fbase2tbase  THEN BEGIN     case strupcase vargrid  of        U :BEGIN         IF NOT keyword_set key_periodic  THEN BEGIN           firstx   firstx 1           lastx   lastx 1         ENDIF       END        V :BEGIN         firsty   firsty 1         lasty   lasty 1       END        F :BEGIN         firsty   firsty 1         lasty   lasty 1         IF NOT keyword_set key_periodic  THEN BEGIN           firstx   firstx 1           lastx   lastx 1         ENDIF       END       ELSE:     endcase   ENDIF     IF keyword_set fbase2tbase  AND keyword_set key_periodic        AND  strupcase vargrid  EQ  U  OR strupcase vargrid  EQ  F  THEN key_shift    key_shift 1        read_ncdf_varget         IF keyword_set fbase2tbase  AND keyword_set key_periodic        AND  strupcase vargrid  EQ  U  OR strupcase vargrid  EQ  F  THEN key_shift    key_shift 1     on definit les variables globales rattachees a la variable     varname   varname   name   varunit   if varcontient natts NE 0 then begin     attnames   strarr varcontient natts      for attiq   0  varcontient natts 1 do attnames attiq    ncdf_attname cdfid  name  attiq      lowattnames   strlowcase attnames        found    where lowattnames EQ  units 0      IF found NE  1 then ncdf_attget  cdfid  name  attnames found  value ELSE value         varunit   strtrim string value  2        found    where lowattnames EQ  add_offset 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  add_offset ELSE add_offset   0        found    where lowattnames EQ  scale_factor 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  scale_factor ELSE scale_factor   1        missing_value    no      found    where lowattnames EQ  _fillvalue 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  missing_value     found    where lowattnames EQ  missing_value 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  missing_value     ENDIF ELSE BEGIN      varunit         add_offset   0      scale_factor   1      missing_value    no    ENDELSE   vardate   on construit une belle date lisible en fonction du langage specifie     year   long debut 0 10000   month    long debut 0 100  MOD 100   day    long debut 0  MOD 100    vardate   string format    C CMoA  31 month 1   strtrim day  1   strtrim year  1    varexp   file_basename filename     we apply reverse   if keyword_set key_yreverse  then res   reverse temporary res   2    if keyword_set key_zreverse  AND  size res 0  EQ 3 AND jpt EQ 1 then res   reverse temporary res  3    if keyword_set key_zreverse  AND  size res 0  EQ 4 THEN res   reverse temporary res  3     on applique la valeur valmask sur les points terre   if NOT keyword_set cont_nofill  then begin     valmask   1e20     case 1 of       varcontient ndims eq 2:BEGIN  xy array         mask   mask    0          earth   where mask EQ 0        END       varcontient ndims eq 3 AND  where varcontient dim EQ contient recdim 0  EQ  1:BEGIN  xyz array         earth   where mask EQ 0        END       varcontient ndims eq 3 AND  where varcontient dim EQ contient recdim 0  NE  1:BEGIN  xyt array         mask   mask    0          earth   where mask EQ 0          if earth 0  NE  1 then BEGIN           earth   earth replicate 1  jpt replicate nx ny  n_elements earth lindgen jpt          END       END       varcontient ndims eq 4:BEGIN  xyzt array         earth   where mask EQ 0          if earth 0  NE  1 then BEGIN           earth   earth replicate 1  jpt replicate nx ny nz  n_elements earth lindgen jpt          END       END     endcase   ENDIF ELSE earth    1   we look for  missing_value   IF size missing_value   type  NE 7 then BEGIN     IF size missing_value   type  EQ 1 THEN BEGIN        IF isnumber string missing_value  tmp  EQ 1 THEN missing_value   tmp     ENDIF       if missing_value NE valmask then begin     if abs missing_value  LT 1e6 then missing   where res EQ missing_value        ELSE missing   where abs res  gt abs missing_value 10       ENDIF ELSE missing    1   ENDIF ELSE missing    1   on applique les add_offset  scale_factor et missing_value   if scale_factor NE 1 then res   temporary res scale_factor   if add_offset NE 0 then res   temporary res add_offset   if missing 0  NE  1 then res temporary missing     values f_nan   if earth 0  NE  1 then res temporary earth    1e20     ncdf_close  cdfid     if keyword_set savedbox  THEN restoreboxparam   boxparam4rdncdf dat    if keyword_set nostruct  then return  res     ELSE BEGIN      IF keyword_set key_forgetold  THEN BEGIN       return   arr:res  grid:vargrid  unit:varunit  experiment:varexp  name:varname       ENDIF ELSE BEGIN        return   tab:res  grille:vargrid  unite:varunit  experience:varexp  nom:varname      ENDELSE    ENDELSE  END      ");
+a[237] = new Array("./ToBeReviewed/LECTURE/binary.html", "binary.pro", "", "     file_comments   Returns the binary representation of a number of any numerical type        param NUMBER  in required    scalar or array of numbers  any numerical type        Returns   Byte array with binary representation of numbers        Examples     Binary representation of 11b:       IDL  print  binary 11b        0 0 0 0 1 0 1 1     Binary representation of pi  x86: Little endian IEEE representation :       IDL  print  format z9 8 5x 4 1x 8i1  long pi 0  binary pi         40490fdb      01000000 01001001 00001111 11011011  x86 Linux         0fdb4149      00001111 11011011 01000001 01001001  Alpha OpenVMS        IDL  print  format 8 1x 8i0  binary dpi         01000000 00001001 00100001 11111011 01010100 01000100 00101101 00011000     Some first tests before type double was added:       print  format 2a6 4x 2z9 8 4x 8z3 2             version arch   version os  long dpi 0 2  byte dpi 0 8          x86 linux     54442d18 400921fb     18 2d 44 54 fb 21 09 40       sparc sunos     400921fb 54442d18     40 09 21 fb 54 44 2d 18       alpha   vms     0fda4149 68c0a221     49 41 da 0f 21 a2 c0 68        Beginning with IDL 5 1  Alpha VMS uses IEEE representation as well        history:      19 Dec 1997  Originally a news posting by David Fanning                           Re: bits from bytes       20 Dec 1997   Complete  rewrite: eliminate loops       22 Dec 1997  Bit shift instead of exponentiation  return byte        array  handle input arrays         Think about double and complex types       22 Sep 1998  Complete rewrite: reduce every numerical type to        single bytes  Check that big and little endian machines        return exactly the same results  if IEEE       7 May 2003     Added newish data types  unsigned and long64   BT      version    Id      function binary  number     compile_opt idl2  strictarrsubs     s   size number    type   s s 0    1    n_no   s s 0    2    Numerical types:  will have to be completed if IDL adds double long      1: byte              1 byte unsigned integer    2: integer           2 byte   signed integer    3: long              4 byte   signed integer    4: floating point    4 byte  single precision    5: double precision  8 byte  double precision    6: complex         2x4 byte  single precision    9: double complex  2x8 byte  double precision    12: uInt       2 byte  unsigned integer    13: uLong      4 byte  unsigned integer    14: Long64        8 byte  signed integer    15: uLong64       8 byte  unsigned integer    Non numerical types:   0: undefined  7: string  8: structure  10: pointer  11: object reference    nbyt    0  1  2  4  4  8  8  0  0  16  0  0    number of bytes per type   code    0  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15    nbyt    0  1  2  4  4  8  8  0  0  16  0  0   2   4   8   8    ntyp   nbyt type    if ntyp eq 0 then message   Invalid argument  must be numerical type    bits    128  64  32  16   8   4   2   1      ishft 1b  7 indgen 8    For correct array handling and byte comparison   number  and  bits  require   same dimensions   numvalue and bitvalue   bitvalue    bits  intarr ntyp    intarr n_no    little_endian    byte 1  0  1 0    In case of complex type and little endian machine  swap the two float values   before the complete second dimension is reversed at returning    if  type eq 6 or type eq 9  and little_endian then     type complex     numvalue   reform byte number  0  1  ntyp 2  2  n_no                         intarr 8     1 0    8  ntyp  n_no      else numvalue    byte number  0  1  ntyp  n_no intarr 8        On little endian machines  the second dimension of the return value must   be reversed    if little_endian AND type NE 1 then       return  reverse numvalue and bitvalue  ne 0  2  else       return           numvalue and bitvalue  ne 0 end");
+a[238] = new Array("./ToBeReviewed/LECTURE/changeread.html", "changeread.pro", "", "       todo seb     FUNCTION changeread  newread       compile_opt idl2  strictarrsubs    common       newread must be two structures      if size newread   type  NE 8 then return  0     we compare the two structure which caracterise the read        case 1 of       ccreadparameters funclec_name NE newread funclec_name:       ccreadparameters jpidta NE newread jpidta:       ccreadparameters jpjdta NE newread jpjdta:       ccreadparameters jpkdta NE newread jpkdta:       ccreadparameters ixmindta NE newread ixmindta:       ccreadparameters ixmaxdta NE newread ixmaxdta:       ccreadparameters iymindta NE newread iymindta:       ccreadparameters iymaxdta NE newread iymaxdta:       ccreadparameters izmindta NE newread izmindta:       ccreadparameters izmaxdta NE newread izmaxdta:       ELSE:return  0    endcase     update the common paramaters      ccreadparameters   newread    jpidta   newread jpidta    jpjdta   newread jpjdta    jpkdta   newread jpkdta    ixmindta   newread ixmindta    ixmaxdta   newread ixmaxdta    iymindta   newread iymindta    iymaxdta   newread iymaxdta    izmindta   newread izmindta    izmaxdta   newread izmaxdta      return  1 end");
+a[239] = new Array("./ToBeReviewed/LECTURE/inverse_binary.html", "inverse_binary.pro", "", "       file_comments   Inverse function of the binary pro function   given a   input array of 0 1  return its corresponding byte integer long   representation      categories      param BINNUMB  in required    Must be a binary type array containing only 0 and 1    According to binary pro outputs  binnum array must have the   following dimensions values:  8  t  d1  d2    t gives the output type: t   1   byte                               t   2   integer                               t   4   long           d1  d2  are the output dimensions        returns    A byte integer long array with  d1  d2  dimensions      restrictions   The binary number can represent only byte integer long      examples         IDL  a indgen 5        IDL  b binary a        IDL  help  b       B               BYTE        Array 8  2  5        IDL  print  b          0   0   0   0   0   0   0   0          0   0   0   0   0   0   0   0                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   0   1                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   1   0                 0   0   0   0   0   0   0   0          0   0   0   0   0   0   1   1                 0   0   0   0   0   0   0   0          0   0   0   0   0   1   0   0       IDL  help  inverse_binary b            INT         Array 5        IDL  print  inverse_binary b               0       1       2       3       4      history        Sebastien Masson  smasson jamstec go jp         July 2004      version    Id          FUNCTION inverse_binary  binnumb       compile_opt idl2  strictarrsubs     s   size binnumb   dimensions    IF n_elements s  EQ 1 THEN numbofbit   8 ELSE numbofbit   8 s 1    nvalues   n_elements binnumb numbofbit   bn   reform long binnumb  numbofbit  nvalues      CASE numbofbit OF     8:res   byte total temporary bn 2b reverse indgen numbofbit replicate 1b  nvalues  1  1      16:res   fix total temporary bn 2 reverse indgen numbofbit replicate 1  nvalues  1  1   double      32:res   long total temporary bn 2L reverse indgen numbofbit replicate 1L  nvalues  1  1   double    ENDCASE     CASE n_elements s  OF     1:res   res 0      2:res   res 0      3:     ELSE:res   reform res  s 2:n_elements s 1   over    ENDCASE     return  res end");
+a[240] = new Array("./ToBeReviewed/LECTURE/litchamp.html", "litchamp.pro", "", "             file_comments   Allows to read an array or a sructure cooresponding to a field    If we have in input:       an array  litchamp send back the array       a structure  litchamp send back the first element of the structure      which must be the field in an array      Litchamp profit of this to look other elements of the structure et     update if needed global variables which refer to the field:     vargrid  varname  varunit  vardate  varexp   valmask et time       categories   graphic      param STRUCT  in required    It is either an array or a structure     If STRUCT is a structure  it must follow following rules:           the first element is the array containing the field            other elements are strings containing informations on the field exept          for the one about the date  This one can be either a string to designate          a particular date  ex:  August 1999  or a vector of julian days  of IDL           corresponding  to the calendar to be associated with the field if it is a          temporal series            the order of elements  exept the first  has not any importance             the other elements  exept the first  are optional            they are recognize by the first letter of their names:               g  to update vargrid               u  to update varunit               e  to update varexp               d  to update vardate               n  to update varname               m  to update valmask      keyword GRID   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  g  if it exist    and   if it does not       keyword UNIT   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  u  if it exist    and   if it does not       keyword EXP   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  u  if it exist    and   if it does not       keyword DATE   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  d  if it exist    and   if it does not       keyword NAME   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  n  if it exist    and   if it does not       keyword LEVEL   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  l  if it exist    and  1 if it does not          keyword MASK   We activate this keyword if we want litchamp to send back the variable    associated with the element of the structure starting by  m  if it exist    and  1 if it does not       returns   It is the array containing the field       uses   common pro      restrictions   Update if needed global variables vargrid    varname  varunit  vardate  varexp  valmask and time       examples             IDL  print  vargrid    varname    varunit    vardate    varexp           T        0         IDL  help  litchamp a:indgen 5  u: C  name: toto              INT         Array 5       IDL  print  vargrid    varname    varunit    vardate    varexp            T  toto  C  0         IDL  help  litchamp a:indgen 5  da: 1999              INT         Array 5       IDL  print  vargrid    varname    varunit    vardate    varexp           T  toto  C  1999            history   Sebastien Masson  smasson lodyc jussieu fr                          28 5 1999      version    Id            FUNCTION litchamp  struct  GRID   grid  NAME   name  UNIT   unit  EXP   exp  DATE   date                        LEVEL   level  MASK   mask     compile_opt idl2  strictarrsubs    common     if size struct   type  ne 8 then BEGIN   so contour is not a structure        if keyword_set grid  then return          if keyword_set name  then return          if keyword_set unit  then return          if keyword_set exp   then return          if keyword_set date   then return          if keyword_set level   then return   1       if keyword_set mask   then return   1       return   struct               ENDIF        IF n_tags struct  EQ 1 then BEGIN   The structure has only one element        if keyword_set grid  then return          if keyword_set name  then return          if keyword_set unit  then return          if keyword_set exp   then return          if keyword_set date   then return          if keyword_set level   then return   1       if keyword_set mask   then return   1       return   struct 0     ENDIF        nomelements   tag_names struct     for i   1  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :BEGIN             if keyword_set grid  then return  strupcase struct i              vargrid   strupcase struct i           END           n :BEGIN             if keyword_set name  then return  struct i              varname   struct i           END           u :BEGIN             if keyword_set unit  then return  struct i              varunit   struct i           END           e :BEGIN             if keyword_set exp  then return  struct i              varexp   struct i           END           m :BEGIN             if keyword_set mask  then return  struct i              valmask   struct i           END           d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                time   struct i                 jpt   n_elements time                 if jpt EQ 1 then vardate    strtrim vairdate struct i 0  2                 ELSE vardate    strtrim vairdate struct i 0  2                         strtrim vairdate struct i jpt 1  2               ENDELSE             if keyword_set date  then return  vardate          END           h :BEGIN             computehopegrid   struct i xaxis   struct i yaxis                   struct i zaxis   struct i linetype                  FIRSTS    struct i firsts  LASTS    struct i lasts                  FORTHEMASK   struct 0  pttype    struct i pttype          END          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure  cf  IDL  xhelp   litchamp           end       endcase    endfor      if keyword_set grid  then return       if keyword_set name  then return       if keyword_set unit  then return       if keyword_set exp   then return       if keyword_set date   then return       if keyword_set level   then return   1    if keyword_set mask   then return   1     return   struct 0  end");
+a[241] = new Array("./ToBeReviewed/LECTURE/ncdf_lec.html", "ncdf_lec.pro", "", "             file_comments   Give informations on a file net cdf and allows to recuperate    variables which are write in       categories   Reading      param NOM  in required    Name of a file net cdf situated in the directory stipulated by iodir       keyword ATT    global  or at the name of a variable  Allows to see all attributes    joined at a variable      keyword DIM   Give the list of dimensions       keyword VAR         1   var: Gove the list of dimensions          2  var nom de variable : in this case the function send back the variable       keyword IODIR   String containing the directory containing the file to be read      keyword _EXTRA   Allows to pass keywords defined by IDL to functions NETCDF   particularly OFFSET    and COUNT in ncdf_varget       returns    1  exept if var nom de variable  then the function send back the variable       restrictions   Variables s names of the program are similar to these used by the IDL manual     scientific data formats       history   Sebastien Masson  smasson lodyc jussieu fr                          4 1 98      version    Id        function ncdf_lec nom ATT att DIM dim VAR var  IODIR   iodir  _extra   ex     compile_opt idl2  strictarrsubs      res    1      if NOT keyword_set IODIR  then iodir        if not keyword_set att  or keyword_set dim  or keyword_set var  then BEGIN       att   1       dim   1       var   1        commande ncdump  c  iodir nom        spawn commande        goto fini    endif     opening of the file name       cdfid ncdf_open iodir nom      Wht does the file contain       wathinside ncdf_inquire cdfid      print in the file   iodir nom  there are:     if keyword_set dim  then begin        print nombre de dimensions:  strtrim wathinside ndims 1        print numero de la dimension dont la valeur est infini:  strtrim wathinside recdim 1     endif    if keyword_set var  then       if size var   type  NE 7 then print nombre de variables  : strtrim wathinside nvars 1     if keyword_set att  then begin       if strlowcase att  ne  global  then goto nonglobal       print nombre de attributs globaux : strtrim wathinside ngatts 1     endif     Global attributes      if keyword_set att  then begin       print          print ATTRIBUTS GLOBAUX        for attiq 0 wathinside ngatts 1 do begin          name ncdf_attname cdfid attiq global   attribute s name          ncdf_attget cdfid name value global  attribute s value          print name :  string value        endfor    endif nonglobal:     Display of different dimensions       if keyword_set dim  then begin        print          print DIMENSIONS     endif    nomdim    strarr wathinside ndims     tailledim lonarr wathinside ndims     for dimiq 0 wathinside ndims 1 do begin       ncdf_diminq cdfid dimiq name value   dimension s name and value       nomdim dimiq name       tailledim dimiq value       if keyword_set dim  then begin           print dimension numero  strtrim dimiq 1  nom:  nomdim dimiq                valeur:    strtrim tailledim dimiq 1        endif    endfor     Display of different variables         if keyword_set att  or keyword_set var  then begin    var s value  string or 1    help  var  output   nature    if  strpos nature   STRING 0  NE  1 then nature    string  ELSE nature    1    If we just have to read the variable     if nature EQ  string  then begin       ncdf_varget  cdfid  var  res  _extra   ex       GOTO  sortie    ENDIF    If it is to have pieces of information     if not keyword_set att  then att rien        print          for varid 0 wathinside nvars 1 do begin          varcontent ncdf_varinq cdfid varid    What does variable contain           if strlowcase att  eq strlowcase varcontent name  or keyword_set var              then begin             print variable numero:  strtrim varid 1  nom: varcontent name                  type:   varcontent datatype  dimensions: nomdim varcontent dim              if strlowcase att  eq strlowcase varcontent name  then begin                for attiq 0 varcontent natts 1 do begin                   name ncdf_attname cdfid varid attiq                    ncdf_attget cdfid varid name value                   print       strtrim attiq   name :  strtrim string value 1                 endfor                goto  sortie             endif          endif       endfor    endif   sortie:    ncdf_close cdfid     fini:     return  res end");
+a[242] = new Array("./ToBeReviewed/LECTURE/read_ftp.html", "read_ftp.pro", "", " pro ftp_post  u  cmd  res  out out  count count   compile_opt idl2   if  cmd ne   then begin     printf  u  cmd  format a      comment out the following line to disable debug info     print   cmd   endif   if  size out type  eq 0  then out 2      catch  err   if  err ne 0  then return   line    count 0   while arg_present res  do begin     readf  u  line     if count eq 0 then res line else res res line      count count 1     comment out the following line to disable debug info     print    READ_FTP   ftp: ftp rsinc com pub gzip README GZIP  DATA data     IDL  help  data            DATA            BYTE        Array 2134      IDL  print  string data                README file: Research Systems Anonymous FTP site  ftp rsinc com                      pub directory                     gzip directory                 2  Retrieve some files from podaac jpl nasa gov and store the files      in the current working directory:        IDL  files   string lindgen 10 50 format MGB370 3 3d gz       IDL  READ_FTP   podaac jpl nasa gov  files          IDL         pub sea_surface_height topex_poseidon mgdrb data MGB_370   FILE      IDL  spawn dir MGB log_output       Volume in drive C is Local Disk       Volume Serial Number is 34CE 24DF         Directory of C: test test0307        07 28 2003  11:58a             362 167 MGB370 050 gz      07 28 2003  11:58a             333 005 MGB370 051 gz      07 28 2003  11:58a             310 287 MGB370 052 gz      07 28 2003  11:58a             358 771 MGB370 053 gz      07 28 2003  11:59a             387 282 MGB370 054 gz      07 28 2003  11:59a             361 633 MGB370 055 gz      07 28 2003  11:59a             383 075 MGB370 056 gz      07 28 2003  11:59a             365 844 MGB370 057 gz      07 28 2003  11:59a             383 918 MGB370 058 gz      07 28 2003  12:00p             372 712 MGB370 059 gz                    10 File s       3 618 694 bytes      These compressed files can cosequently be opened with OPENR and the      COMPRESSED keyword       history      version    Id       todo seb: que fait on de  syntax  au debut du header       pro read_ftp  site  files  dir  port  data data  file file  user user                  pass pass  ptr ptr   compile_opt idl2   if n_elements port  eq 0 then port ftp    if n_elements files  eq 0 then begin     if strcmp site ftp: 6  then host strmid site 6  else host site     pos strpos host      dir strmid host pos      host strmid host 0 pos      pos strpos dir reverse_search      files strmid dir pos 1      dir strmid dir 0 pos    endif else host site   if  size user type  eq 0  then user anonymous    if  size pass type  eq 0  then pass test test com                                      socket  u  host  port  connect_timeout 5  read_timeout 5   get_lun   ftp_post  u    res   ftp_post  u   USER  user  res  out 3      ftp_post  u   PASS  pass  res   ftp_post  u   TYPE I  res   if  size dir type  ne 0  then ftp_post  u   CWD  dir  res   if keyword_set file  or arg_present data  then begin     bufsize 512     buffer bytarr bufsize      n n_elements files      if arg_present data  then dat ptrarr n      for i 0  n 1 do begin       ftp_post  u   SIZE  files i  res  out 213         sz long64 strmid res n_elements res 1 4        if arg_present data  then dat i ptr_new bytarr sz        ftp_post  u   PASV  res       ftp_parse_pasv  res  host  port       ftp_post  u   RETR  files i  res  out 1          socket  v  host  port  connect_timeout 5  read_timeout 5              get_lun   rawio       tc 0ll       if keyword_set file  then openw w files i get_lun       while  tc lt sz  do begin         if  sz tc lt bufsize  then begin           bufsize sz tc           buffer bytarr bufsize          endif         readu  v  buffer  transfer_count dtc         if arg_present data  then               dat i tc dtc eq bufsize buffer:buffer 0:dtc 1          if keyword_set file  then              writeu w dtc eq bufsize buffer:buffer 0:dtc 1          tc tc dtc       endwhile       free_lun  v       if keyword_set file  then free_lun  w       ftp_post  u    res     endfor     if arg_present data  then begin        if  n gt 1 or keyword_set ptr  then data dat          else data temporary dat 0       endif   endif   ftp_post  u   QUIT  res   free_lun  u end");
+a[243] = new Array("./ToBeReviewed/LECTURE/read_ncdf.html", "read_ncdf.pro", "", "            PURPOSE:fonction de lecture pour fichier net_cdf    Ce programme  est moins universel que ncdf_lec  il fait appelle au   variables declarees dans common pro  mais il est du cop bcp plus   facile d utilisation  Il prend en compte la declaration des   differents zoom qui ont ete definis  ixminmesh premierx  la   declaration de la variable key_shift  bref le resultat de   read_ncdf peut dorectement etre utilise dans plt    C est aussi ce programme qui est utilise par defaut dans mes   widgets pour la partie lecture      CATEGORY:lecture de fichiers NetCdf     CALLING SEQUENCE:res   read_ncdf name debut fin       INPUTS: name: un string definissant le champ a lire            debut et fin: sont relatifs a l axe des temps  Ce peut etre             2 dates du type yyyymmdd et ds ce cas on selectionne les           dates qui sont comprisent entre ces 2 dates              2 indices qui definissent entre quel et quel pas de temps             on doit extraire la dimension temporelle            exp: ne sert a rien      KEYWORD PARAMETERS: utilisables hors du contexte des widgets            BOXZOOM: contient la boxzoom sur laquelle on doit faire la          lecture          FILENAME: string contennant le nom du fichier           INIT  to call automatically initncdf  filename and thus          redefine all the grid parameters          GRID UTVWF  to specify the type of grid  Defaut is  1           based on the name of the file if the file ends by          GRID _ TUVFW NC  not case sensible  or  2  T if case  1           is not found           IODIRECTORY a string giving the name of iodirectory  see          isafile pro for all possibilities  default value is common           variable iodir          TIMESTEP:activer pour specifier que debut et fin font          reference a des indices de l axe du temps et non pas a des          dates            TOUT: activer si on veut lire le ficher sur l ensemble du          domaine sans tenir compte du sous domaine definit par boxzoom          ou lon1 lon2 lat1 lat2 vert1 vert2           NOSTRUCT: activer si on ne veut pas que read_ncdf reourne          une structure mais uniquement le tableau se rapportant au          champ            TIMEVAR: a string to define the name of the variable that          contains the time axis  This keyword can be usefull if there          is no unlimited dimension or if the time axis selected by defaut           the first 1D array with unlimited dimension  is not the good one        OUTPUTS:une stucture lisible par litchamp pro ou un simple tableau   si  NOSTRUCT est active      COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:le champ doit avoir une dimension temporelle     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         15 10 1999         FUNCTION read_ncdf  name  debut  fin  pour_etre_compatible  BOXZOOM   boxzoom  FILENAME   filename                         PARENTIN   parentin  TIMESTEP   timestep  TIMEVAR   timevar                         TOUT   tout  NOSTRUCT   nostruct  CONT_NOFILL   CONT_NOFILL  INIT   init                         GRID   grid  FBASE2TBASE   fbase2tbase  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     we find the filename       print filename    is parent a valid widget     if keyword_set parentin  then BEGIN     parent   long parentin      parent   parent widget_info parent   managed    ENDIF   filename   isafile filename   filename  IODIRECTORY   iodir  _EXTRA   ex      ouverture du fichier nom     if size filename   type  NE 7 then       return  report read_ncdf cancelled    IF  version OS_FAMILY EQ  unix  THEN spawn   file  filename     dev null    cdfid   ncdf_open filename    contient   ncdf_inquire cdfid      we check if the variable name exists in the file      if ncdf_varid cdfid  name  EQ  1 then BEGIN     ncdf_close  cdfid     return  report variable  name   C not found in the file  filename    ENDIF   varcontient   ncdf_varinq cdfid  name      shall we redefine the grid parameters     if keyword_set init  THEN initncdf  filename  _extra   ex     check the time axis and the debut and fin dates     if n_elements debut  EQ 0 then begin     debut   0     timestep   1   endif   if keyword_set timestep  then begin     firsttps   debut 0      if n_elements fin  NE 0 then lasttps   fin 0  ELSE lasttps   firsttps     jpt   lasttps firsttps 1     time   julday 1  1  1    lindgen jpt    ENDIF ELSE BEGIN     if keyword_set parent  then BEGIN       widget_control  parent  get_uvalue   top_uvalue       filelist   extractatt top_uvalue   filelist        IF filelist 0  EQ  many   THEN filelist   filename       currentfile    where filelist EQ filename 0        time    extractatt top_uvalue   fileparameters currentfile time_counter       date1   date2jul debut 0        if n_elements fin  NE 0 then date2   date2jul fin 0  ELSE date2   date1       firsttps   where time EQ date1    firsttps   firsttps 0        lasttps   where time EQ date2    lasttps   lasttps 0      ENDIF ELSE BEGIN       IF keyword_set timevar  THEN BEGIN          timeid   ncdf_varid cdfid  timevar          IF timeid EQ  1 THEN BEGIN           ncdf_close  cdfid           return  report the file  filename  as no variable     timevar                                 C Use the TIMESTEP keyword          endif         timecontient   ncdf_varinq cdfid  timeid          contient recdim   timecontient dim 0        ENDIF ELSE BEGIN    we find the infinite dimension         timedim   contient recdim         if timedim EQ  1 then BEGIN           ncdf_close  cdfid           return  report the file  filename  as no infinite dimension   C Use TIMESTEP or TIMEVAR keyword          endif   we find the FIRST time axis               timeid   0         repeat BEGIN         tant que l on a pas trouve une variable qui n a qu                                    une dimension: la dimension infinie           timecontient   ncdf_varinq cdfid  timeid    que contient la variable           timeid   timeid 1         endrep until  n_elements timecontient dim  EQ 1                         AND timecontient dim 0  EQ contient recdim              OR timeid EQ contient nvars 1           if timeid EQ contient nvars 1 then BEGIN           ncdf_close  cdfid           return  report the file  filename  as no time axis variable   C Use the TIMESTEP keyword          endif         timeid   timeid 1       ENDELSE    we must found the time origin of the julian calendar used in the   time axis     does the attribut units an dcalendar exist for the variable time axis        if timecontient natts EQ 0 then BEGIN         ncdf_close  cdfid         return  report the variable  timecontient name  has no attribut C Use the TIMESTEP keyword or add the attribut  units  to the variable        endif       attnames   strarr timecontient natts        for attiq   0  timecontient natts 1 do attnames attiq    ncdf_attname cdfid  timeid  attiq        if  where attnames EQ  units 0  EQ  1 then BEGIN         ncdf_close  cdfid         return  report Attribut  units  not found for the variable  timecontient name   C Use the TIMESTEP keyword        ENDIF     now we try to find the attribut called calendar    the the attribute  calendar  exists    If no  we suppose that the calendar is gregorian calendar         if  where attnames EQ  calendar 0  NE  1 then BEGIN         ncdf_attget  cdfid  timeid   calendar  value         value   string value          CASE value OF            noleap :key_caltype    noleap             360d :key_caltype    360d             greg :IF n_elements key_caltype  EQ 0 THEN key_caltype    greg            ELSE:BEGIN              notused   report Unknown calendar:  value  we use greg calendar               key_caltype    greg            END         ENDCASE       ENDIF ELSE BEGIN          notused   report Unknown calendar  we use  key_caltype  calendar           IF n_elements key_caltype  EQ 0 THEN key_caltype    greg        ENDELSE     now we take acre of units attribut       ncdf_attget  cdfid  timeid   units  value     time_counter:units    seconds since 0001 01 01 00:00:00      time_counter:units    hours since 0001 01 01 00:00:00      time_counter:units    days since 1979 01 01 00:00:00      time_counter:units    months since 1979 01 01 00:00:00      time_counter:units    years since 1979 01 01 00:00:00        we decript the  units  attribut to find the time origin       value   strtrim strcompress string value  2        mots   str_sep value            unite   mots 0        depart   str_sep mots 2          ncdf_varget  cdfid  timeid  time       time   double time        unite   strlowcase unite        IF strpos unite   s  strlen unite 1  NE  1 THEN unite   strmid unite  0  strlen unite 1        IF strpos unite   julian_  NE  1 THEN unite   strmid unite  7        case unite of          second :time   julday depart 1  depart 2  depart 0 time 86400 d          hour :time   julday depart 1  depart 2  depart 0 time 24 d          day :time   julday depart 1  depart 2  depart 0 time          month :BEGIN            if total fix time  NE time  NE 0 then     we switch to days with 30d m             time   julday depart 1  depart 2  depart 0 round time 30                ELSE for t   0  n_elements time 1 DO               time t    julday depart 1 time t  depart 2  depart 0          END          year :BEGIN           if total fix time  NE time  NE 0 then     we switch to days with 365d y             time   julday depart 1  depart 2  depart 0 round time 365                ELSE for t   0  n_elements time 1 do               time t    julday depart 1  depart 2  depart 0 time t          END         ELSE:BEGIN           ncdf_close  cdfid           return  report The  units  attribu of the time axis must be something like:  C  seconds since 0001 01 01    C  days since 1979 01 01    C  months since 1979 01 01    C  years since 1979 01 01           end       ENDCASE       date1   date2jul debut 0        if n_elements fin  NE 0 then date2   date2jul fin 0  ELSE date2   date1       time   double time        firsttps   where time GE date1    firsttps   firsttps 0        if firsttps EQ  1 THEN BEGIN         ncdf_close  cdfid         return  report date 1:  strtrim jul2date date1  1  is not found in the time axis        ENDIF       lasttps   where time LE date2        if lasttps 0  EQ  1 THEN BEGIN         ncdf_close  cdfid         return  report the time axis as no date before date 2:  strtrim jul2date date2  1        endif       lasttps   lasttps n_elements lasttps 1        if lasttps LT firsttps then BEGIN         ncdf_close  cdfid         return  report the time axis as no dates between date1 and  date 2:  strtrim jul2date date1  1   strtrim jul2date date2  1        endif     ENDELSE     time   time firsttps:lasttps      jpt   lasttps firsttps 1   ENDELSE     nom de la grille a laquelle se rapporte le champ     IF keyword_set grid  THEN vargrid   strupcase grid  ELSE BEGIN     vargrid    T                  default definition     IF finite glamu 0  EQ 1 THEN BEGIN       pattern    GRID   GRID_   GRID   UPID_   30ID_        gdtype    T   U   V   W   F        fnametest   strupcase filename        FOR i   0  n_elements pattern 1 DO BEGIN         FOR j   0  n_elements gdtype 1 DO BEGIN           substr   pattern i gdtype j            pos   strpos fnametest  substr            IF pos NE  1 THEN                vargrid   strmid fnametest  pos strlen substr 1  1          ENDFOR       ENDFOR     ENDIF   ENDELSE     call the init function          redefinition du domaine      if keyword_set tout  then begin     nx   jpi     ny   jpj     nz   jpk     firstx   0     firsty   0     firstz   0     lastx   jpi 1     lasty   jpj 1     lastz   jpk 1     case strupcase vargrid  of        T :mask   tmask        U :mask   umask         V :mask   vmask         W :mask   tmask        F :mask   fmask      endcase   ENDIF ELSE BEGIN     if keyword_set boxzoom  then BEGIN        Case 1 Of         N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0          N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1          N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2          N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4          N_Elements Boxzoom  Eq 6:bte   Boxzoom         Else: BEGIN           ncdf_close  cdfid           return  report Wrong Definition of Boxzoom          end       ENDCASE       savedbox   1b       saveboxparam   boxparam4rdncdf dat        domdef  bte  GRIDTYPE    T  vargrid  _extra   ex     ENDIF     grille  mask  glam  gphi  gdep  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     undefine  glam   undefine  gphi     on libere un peu de memoire    ENDELSE     on initialise les ixmindta  iymindta au besoin     if n_elements jpidta  EQ 0 THEN jpidta   jpiglo   if n_elements jpjdta  EQ 0 THEN jpjdta   jpjglo   if n_elements jpkdta  EQ 0 THEN jpkdta   jpkglo   if n_elements ixmindta  EQ 0 THEN ixmindta   0   if n_elements ixmaxdta  EQ 0 then ixmaxdta   jpidta 1   if ixmindta EQ  1 THEN ixmindta   0   IF ixmaxdta EQ  1 then ixmaxdta   jpidta 1   if n_elements iymindta  EQ 0 THEN iymindta   0   IF n_elements iymaxdta  EQ 0 then iymaxdta   jpjdta 1   if iymindta EQ  1 THEN iymindta   0   IF iymaxdta EQ  1 then iymaxdta   jpjdta 1   if n_elements izmindta  EQ 0 THEN izmindta   0   IF n_elements izmaxdta  EQ 0 then izmaxdta   jpkdta 1   if izmindta EQ  1 THEN izmindta   0   IF izmaxdta EQ  1 then izmaxdta   jpkdta 1     on va lire le fichier     if n_elements key_stride  LE 2 then key_stride    1  1  1    key_stride   1l   long key_stride    key_shift   long testvar var   key_shift      IF n_elements key_yreverse  EQ 0 THEN key_yreverse   0   IF keyword_set key_yreverse  THEN BEGIN     tmp   jpj 1 firsty     firsty   jpj 1 lasty     lasty   tmp   ENDIF     IF keyword_set fbase2tbase  THEN BEGIN     case strupcase vargrid  of        U :BEGIN         IF NOT keyword_set key_periodic  THEN BEGIN           firstx   firstx 1           lastx   lastx 1         ENDIF       END        V :BEGIN         firsty   firsty 1         lasty   lasty 1       END        F :BEGIN         firsty   firsty 1         lasty   lasty 1         IF NOT keyword_set key_periodic  THEN BEGIN           firstx   firstx 1           lastx   lastx 1         ENDIF       END       ELSE:     endcase   ENDIF     IF keyword_set fbase2tbase  AND keyword_set key_periodic        AND  strupcase vargrid  EQ  U  OR strupcase vargrid  EQ  F  THEN key_shift    key_shift 1        read_ncdf_varget         IF keyword_set fbase2tbase  AND keyword_set key_periodic        AND  strupcase vargrid  EQ  U  OR strupcase vargrid  EQ  F  THEN key_shift    key_shift 1     on definit les variables globales rattachees a la variable     varname   varname   name   varunit   if varcontient natts NE 0 then begin     attnames   strarr varcontient natts      for attiq   0  varcontient natts 1 do attnames attiq    ncdf_attname cdfid  name  attiq      lowattnames   strlowcase attnames        found    where lowattnames EQ  units 0      IF found NE  1 then ncdf_attget  cdfid  name  attnames found  value ELSE value         varunit   strtrim string value  2        found    where lowattnames EQ  add_offset 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  add_offset ELSE add_offset   0        found    where lowattnames EQ  scale_factor 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  scale_factor ELSE scale_factor   1        missing_value    no      found    where lowattnames EQ  _fillvalue 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  missing_value     found    where lowattnames EQ  missing_value 0      if found NE  1 then ncdf_attget  cdfid  name  attnames found  missing_value     ENDIF ELSE BEGIN      varunit         add_offset   0      scale_factor   1      missing_value    no    ENDELSE   vardate   on construit une belle date lisible en fonction du langage specifie     year   long debut 0 10000   month    long debut 0 100  MOD 100   day    long debut 0  MOD 100    vardate   string format    C CMoA  31 month 1   strtrim day  1   strtrim year  1    varexp   file_basename filename     we apply reverse   if keyword_set key_yreverse  then res   reverse temporary res   2    if keyword_set key_zreverse  AND  size res 0  EQ 3 AND jpt EQ 1 then res   reverse temporary res  3    if keyword_set key_zreverse  AND  size res 0  EQ 4 THEN res   reverse temporary res  3     on applique la valeur valmask sur les points terre   if NOT keyword_set cont_nofill  then begin     valmask   1e20     case 1 of       varcontient ndims eq 2:BEGIN  xy array         mask   mask    0          earth   where mask EQ 0        END       varcontient ndims eq 3 AND  where varcontient dim EQ contient recdim 0  EQ  1:BEGIN  xyz array         earth   where mask EQ 0        END       varcontient ndims eq 3 AND  where varcontient dim EQ contient recdim 0  NE  1:BEGIN  xyt array         mask   mask    0          earth   where mask EQ 0          if earth 0  NE  1 then BEGIN           earth   earth replicate 1  jpt replicate nx ny  n_elements earth lindgen jpt          END       END       varcontient ndims eq 4:BEGIN  xyzt array         earth   where mask EQ 0          if earth 0  NE  1 then BEGIN           earth   earth replicate 1  jpt replicate nx ny nz  n_elements earth lindgen jpt          END       END     endcase   ENDIF ELSE earth    1   we look for  missing_value   IF size missing_value   type  NE 7 then BEGIN     IF size missing_value   type  EQ 1 THEN BEGIN        IF isnumber string missing_value  tmp  EQ 1 THEN missing_value   tmp     ENDIF       if missing_value NE valmask then begin     if abs missing_value  LT 1e6 then missing   where res EQ missing_value        ELSE missing   where abs res  gt abs missing_value 10       ENDIF ELSE missing    1   ENDIF ELSE missing    1   on applique les add_offset  scale_factor et missing_value   if scale_factor NE 1 then res   temporary res scale_factor   if add_offset NE 0 then res   temporary res add_offset   if missing 0  NE  1 then res temporary missing     values f_nan   if earth 0  NE  1 then res temporary earth    1e20     ncdf_close  cdfid     if keyword_set savedbox  THEN restoreboxparam   boxparam4rdncdf dat    if keyword_set nostruct  then return  res     ELSE BEGIN      IF keyword_set key_forgetold  THEN BEGIN       return   arr:res  grid:vargrid  unit:varunit  experiment:varexp  name:varname       ENDIF ELSE BEGIN        return   tab:res  grille:vargrid  unite:varunit  experience:varexp  nom:varname      ENDELSE    ENDELSE  END      ");
 a[244] = new Array("./ToBeReviewed/LECTURE/read_ncdf_varget.html", "read_ncdf_varget.pro", "", "");
 a[245] = new Array("./ToBeReviewed/LECTURE/xncdf_lec.html", "xncdf_lec.pro", "", "  La lecture de ce programme se fait de bas en haut:     1  xncdf_lec       2  xncdf_lec_event           3  wid_var                wid_var_event   pro wid_var_event   event   NAME:wid_var_event     PURPOSE:procedure appele par xmanager qd on appuie sur un bouton du   2eme widget cree par wid_var      INPUTS: event  une structure caracterisant le type d evenement qui   arrive au widget numero1 2     COMMON BLOCKS:wididbase resultat infovariable indicewid motcle           compile_opt idl2  strictarrsubs      COMMON wididbase  base    COMMON resultat  res    COMMON infovariable  cdfid  listename  contient  nomdim  tailledim  varid  varcontient    COMMON indicewid_var  widbase1  widbase2111  widbase212  widbase213  selectatt    COMMON motcle  mcatt  mccount  mcoffset  mciodir  mcshift  mcstride  mcvar     quel est le type d evenement     widget_control  event id  get_uvalue uval    tailledimvar   tailledim varcontient dim     if n_elements uval  EQ 0 then return   case sur le type d evenement    case uval OF       1:BEGIN                     on change des valeurs dans le tableau   on controle que les valeurs mises dans le tableau ne sont pas   completement fausses          widget_control  widbase1  get_value   table   agument du bon type     si le type est mauvais on change automatiquement par des valeurs par   defaut          if event x GT  size table 1  then return          if event y GT  size table 2  then return          if size table event x  event y   type  GE 6             OR size table event x  event y   type  EQ 0 then BEGIN              if event x EQ 1 then                widget_control  widbase1  use_table_select    1  event y 1  event y                   set_value   tailledimvar event y                ELSE widget_control  widbase1                  use_table_select    event x  event y  event x  event y  set_value   0          endif   agument avec une valeur nom debile           table   fix table           case event x of             0:BEGIN               on a touche a l offset:                if table 0  event y  LT 0 then BEGIN                   table 0  event y    0                   widget_control  widbase1  use_table_select    0  event y  0  event y                         set_value   0                endif   si il depasse la dim du tableau on le met au max et le cont a 1                if table 0  event y  GT tailledimvar event y table 3  event y  then begin                   widget_control  widbase1  use_table_select    0  event y 1  event y                         set_value    tailledimvar event y table 3  event y  1                 ENDIF ELSE BEGIN   si avec le nouvel offset le count est trop grand  on le diminue juste   de ce qu il faut                    if table 1  event y  GT                       tailledimvar event y table 3  event y table 0  event y  then begin                      widget_control  widbase1  use_table_select    1  event y  1  event y                            set_value    tailledimvar event y table 3  event y table 0  event y                    endif                ENDELSE             END             1:BEGIN              on a touche au count                if table 1  event y  LT 1 then BEGIN                   table 1  event y    1                   widget_control  widbase1  use_table_select    1  event y  1  event y                         set_value   1                endif   si il est trop grand  on le diminue juste de ce qu il faut                 if table 1  event y  GT                    tailledimvar event y table 3  event y table 0  event y  then BEGIN                   widget_control  widbase1  use_table_select    1  event y  1  event y                         set_value    tailledimvar event y table 3  event y table 0  event y                 endif             END             2:BEGIN               on a touche au shift                widget_control  widbase1  use_table_select    2  event y  2  event y                      set_value   table 2  event y  MOD  tailledimvar event y table 3  event y              END             3:BEGIN               on touche au stride                if table 3  event y  LT 1 then BEGIN                   table 3  event y    1                   widget_control  widbase1  use_table_select    3  event y  3  event y                         set_value   1                endif                if table 3  event y  EQ 0 then     il ne doit pas etre nul                 widget_control  widbase1  use_table_select    3  event y  3  event y                      set_value   1   il ne doit pas etre trop grand                if table 3  event y  GT tailledimvar event y  then                   widget_control  widbase1  use_table_select    0  event y 3  event y                      set_value    0  1  0  tailledimvar event y                   ELSE BEGIN                   if table 1  event y  GT                       tailledimvar event y table 3  event y table 0  event y  then begin                      widget_control  widbase1  use_table_select    1  event y  1  event y                            set_value    tailledimvar event y table 3  event y table 0  event y                    endif                ENDELSE             END             ELSE:          endcase       END       2111:BEGIN                 on a touche aux boutons oui non   on actualise le vecteur selectatt a 0 ou 1 pour l attribut concerne    numero event id           selectatt where widbase2111 EQ event id    event select       end       31:BEGIN                   on a appuye sur  get           widget_control  widbase1  get_value   table          table   fix table           mcshift   where table 2    NE 0           mcoffset   table 0             mccount   table 1             mcstride   table 3             if mcshift 0  NE  1 then BEGIN   il y a des shifts   on lit l integralite des dimensions pour lesquelles il y a un shift             mcoffset mcshift    0             mccount mcshift    tailledimvar mcshift    on active pas stride qd il n y en a pas besoin car ca fait ecrire a   l ecran qqch de louche              if total mcstride  EQ n_elements mcstride  then                ncdf_varget  cdfid  varid  res  OFFSET   mcoffset  COUNT   mccount               ELSE                ncdf_varget  cdfid  varid  res  OFFSET   mcoffset  COUNT   mccount  STRIDE   mcstride   pour faire le shift             mcshift   table 2                mcoffset   table 0                mccount   table 1      on definit commende qui permet de faire un shift             commande    res shift res              for dim   0  varcontient ndims 1 do commande   commande string table 2 dim              commande   commande              rien   execute commande    on redefinit commnade qui permet de couper les dimensions qui n ont   pas ete encore coupees  c est celles que l on shift              commande    res res    initialisation de la commende             for dim   0  varcontient ndims 1 do BEGIN                 if mcshift dim  EQ 0 then commande   commande                   ELSE commande commande string mcoffset dim : string mccount dim mcoffset dim 1              ENDFOR             commande   strmid commande  0  strlen commande 1              rien   execute commande    cas sans shift  on lit directement le bon bout de tableau          ENDIF ELSE BEGIN             if total mcstride  EQ n_elements mcstride  then                ncdf_varget  cdfid  varid  res  OFFSET   mcoffset  COUNT   mccount               ELSE                ncdf_varget  cdfid  varid  res  OFFSET   mcoffset  COUNT   mccount  STRIDE   mcstride          ENDELSE   faut il constituer une structure avec les attributs qui on ete selectionnes          if total selectatt  NE 0 then BEGIN   il y a des attributs selectionnes             res   create_struct varcontient name  res    on cree la structure             selectatt   where selectatt EQ 1    on trouve les attributs selectiones              for attid   0   n_elements selectatt 1 do BEGIN   pour lesquels on prend                widget_control  widbase212 selectatt attid  get_value   attname   le nom                widget_control  widbase213 selectatt attid  get_value   attvalue   la valeur               res   create_struct res  attname 0  attvalue 0    on concatene la structe             endfor          endif          widget_control  event top   destroy  on ferme le 2eme widget          widget_control  base   destroy  on ferme le 1eme widget          ncdf_close cdfid       END       32:                        cas de l affichage d un held  avec xdisplayfile        33:widget_control  event top   destroy  on ferme le 2eme widget       ELSE:    endcase    return end     PRO wid_var  widid_pere         NAME: wid_var     PURPOSE: cette procedure gere le 2eme widget cree qd on appelle   xncdf_lec  ce widget concerne la lecture de la variable     INPUTS: widid_pere: un scalere contenant l identite du widget pere   qui a etait cree par xncdf_lec et qui a permis de selectionner la   variable a lire      OUTPUTS: indirectement res  le tableau ou la structure resultat      COMMON BLOCKS:resultat infovariable indicewid_var motcle             compile_opt idl2  strictarrsubs      COMMON resultat  res    COMMON infovariable  cdfid  listename  contient  nomdim  tailledim  varid  varcontient    COMMON indicewid_var  widbase1  widbase2111  widbase212  widbase213  selectatt    COMMON motcle  mcatt  mccount  mcoffset  mciodir  mcshift  mcstride  mcvar    res    1     ouverture de la fenetre de base sous forme de colonnes      widbase   widget_base column  title variable:  varcontient name   align_center  group_leader   widid_pere      ouverture de  sous fenetres de base       widbase1 tableau des offsets      rien   widget_label widbase  value         on saute une ligne   defintion des lables des lignes du tableau    rowlab   string tailledim varcontient dim     for i   0   n_elements rowlab 1 do rowlab i    strtrim rowlab i  1     rowlab   nomdim varcontient dim replicate :   n_elements varcontient dim rowlab   definition des valeurs initiales du tableau    valinit   lonarr 4  n_elements varcontient dim    colonne 0 : les offset    if keyword_set mcoffset  AND n_elements mcoffset  EQ varcontient ndims THEN       valinit 0 mcoffset ELSE valinit 0      0   colonne 1 : les counts    if keyword_set mccount  AND n_elements mccount  EQ varcontient ndims THEN        valinit 1 mccount ELSE valinit 1      tailledim varcontient dim    colonne 2 : les shifts    if keyword_set mcshift  AND n_elements mcshift  EQ varcontient ndims THEN       valinit 2 mcshift ELSE valinit 2      0   colonne 3 : les strides    if keyword_set mcstride  AND n_elements mcstride  EQ varcontient ndims THEN       valinit 3 mcstride ELSE valinit 3      1   test des valeurs initiales du tableau    valinit   fix valinit     valinit 3      1   valinit 3     valinit 0     valinit 1       tailledim varcontient dim valinit 3   valinit 0       valinit 2      valinit 2    MOD  tailledim varcontient dim valinit 3      test des shifts   declaration du tableau    widbase1   widget_table widbase  row_labels   rowlab  value   valinit   editable                                column_labels    Offset   Count   Shift   Stride  uvalue   1    un petit blabla    rien   widget_label widbase  value    ATTENTION: Faire des  return  pour que les valeurs   align_center     rien   widget_label widbase  value    du tableau ou des textes soient bien prises en compte   align_center      widbase2 choix des attributs      rien   widget_label widbase  value         on saute une ligne    widbase2   widget_base widbase   column    pour chaque attribut  on cree un widget  widbase21  qui contient en ligne un   bouton oui non  widbase211  et deux wigdet text  widbase212    widbase213 comportant le nom et la valeur de l attribut     widbase21   lonarr varcontient natts     widbase211   lonarr varcontient natts     widbase2111   lonarr varcontient natts    vecteur qui serviera a savoir quels boutons oui non sont   selectiones  cf  wid_var_event    selectatt   lonarr varcontient natts     selectatt    0    widbase212   lonarr varcontient natts     widbase213   lonarr varcontient natts     for attid   0  varcontient natts 1 do BEGIN  boucle sur le nombre d attributs       widbase21 attid    widget_base widbase2   row        name ncdf_attname cdfid varid attid        ncdf_attget cdfid varid name value       widbase211 attid    widget_base widbase21 attid   nonexclusive        widbase2111 attid     widget_button widbase211 attid  value       uvalue   2111        widbase212 attid    widget_text widbase21 attid  value   name   editable        widbase213 attid    widget_text widbase21 attid  value strtrim string value 1   editable     endfor     widbase3 boutons du bas      widbase3   widget_base widbase   row align_center     widbase31 widget_button widbase3 value GET  uvalue 31     widbase32 widget_button widbase3 value Help  uvalue 32     widbase33 widget_button widbase3 value DONE  uvalue 33     execution de la fentre de base et des sous fenetres      widget_control widbase realize      xmanager wid_var widbase    return end    PRO xncdf_lec_event  event         NAME:xncdf_lec_event     PURPOSE: procedure appele par xmanager qd on appuie sur un bouton du   1ere widget cree par xncdf_lec      INPUTS: event  une structure caracterisant le type d evenement qui   arrive au widget numero1     COMMON BLOCKS:resultat  infovariable  motcle             compile_opt idl2  strictarrsubs      COMMON resultat  res    COMMON infovariable  cdfid  listename  contient  nomdim  tailledim  varid  varcontient    COMMON motcle  mcatt  mccount  mcoffset  mciodir  mcshift  mcstride  mcvar   quel est le type d evenement     widget_control  event id  get_uvalue uval   case sur le type d evenement    case uval of       1:BEGIN                     on veut lire un autre fichier          widget_control  event id  get_value   nom   on recupere le nom          widget_control  event top   destroy  on ferme le widget          ncdf_close cdfid         on ferme le mauvais fichier qui a ete ouvert   on reapelle xncdf_lec          res   xncdf_lec nom 0  ATT   mcatt  COUNT   mccount  OFFSET   mcoffset  IODIR   mciodir                              SHIFT   mcshift   STRIDE   mcstride  VAR   mcvar            return       END       2:BEGIN                     une variable est selectionee          varid   event index      on recupere son numero ds le fichier Netcdf          varcontient   ncdf_varinq cdfid varid           wid_var  event top       on appelle le programme qui lance le 2eme widget  cf    haut       END       3:BEGIN                     bouton done          widget_control  event top   destroy   on tue le widget          ncdf_close cdfid         on ferme le fichier       END       ELSE:    endcase    return end           NAME: xncdf_lec     PURPOSE: lecture d un fichier Net Cdf avec des widgets        CATEGORY: lecture de fichiers avec widgets     CALLING SEQUENCE: res xncdf_lec nom_fichier       INPUTS:         OPTIONNEL  nom_fichier: c est un string qui donne le nom du         fichier a ouvrir Si nomfichier ne contient pas le caractere         separateur de repertoirte   sous unix par ex  Le fichier         sera cherche ds le repertoire courant     KEYWORD PARAMETERS:           IODIR: string contenant le repertoire ou aller chercher le         fichier a lire  Si nomfichier ne contient pas le caractere         separateur de repertoirte   sous unix par ex  Le fichier         cherche s appelera iodir nom_fichier            COUNT: An optional vector containing the counts to be used in         reading Value  COUNT is a 1 based vector with an element for         each dimension of the data to be written The default matches         the size of the variable so that all data is written out            GROUP: The widget ID of the widget that calls XNCDF_LEC  When         this ID is specified  a death of the caller results in a death         of XNCDF_LEC             OFFSET: An optional vector containing the starting position         for the read  The default start position is  0  0              SHIFT: un vecteur d entiers  specifiant pour chaque dimension         de combien il faut la shifter  Par defaut c est          0 0  cf  la fonction shift pour           d explications  ATTENTION  le shift est effectue sur le         tableau de taille maximum avant la reduction eventuelle         determinee par OFFSET et COUNT  Par contre il est effectue         apres l extraction eventuelle cree par le STRIDE            STRIDE: An optional vector containing the strides  or sampling         intervals  between accessed values of the netCDF variable  The         default stride vector is that for a contiguous read   1  1                OUTPUTS: 2 cas possibles:         1  aucun attributs n a ete selectionne  Dans ce cas res est         le tableau que l on voulait lire          2  Des attributs ont ete selectionnes  Dans ce cas res est une         structre dont le premier element portant le nom de la variable         est le tableau de valeurs et les autre auguments sont les         arguments selectiones     COMMON BLOCKS: wididbase  infovariable  resultat  motcle     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE: help  xncdf_lec      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         24 8 1999         FUNCTION xncdf_lec  nom  ATT   att  COUNT   count  GROUP   group  OFFSET   offset  IODIR   iodir  SHIFT   shift   STRIDE   stride  VAR   var     compile_opt idl2  strictarrsubs      COMMON wididbase  base    COMMON infovariable  cdfid  listename  contient  nomdim  tailledim  varid  varcontient    COMMON resultat  res    COMMON motcle  mcatt  mccount  mcoffset  mciodir  mcshift  mcstride  mcvar     bidouille pour utiliser les mots cles  on passe par des variables   declarees ds un common       res    1    if keyword_set att  then mcatt   att ELSE mcatt   0    if keyword_set count  then mccount  count  ELSE mccount   0    if keyword_set offset  then mcoffset   offset ELSE mcoffset   0    if keyword_set shift  then mcshift   shift ELSE mcshift   0    if keyword_set stride  then mcstride   stride ELSE mcstride   0    if keyword_set var  then mcvar   var ELSE mcvar   0     choix du nom du fichier     Quel type de machine est utiliee    thisOS   strupcase strmid version os_family  0  3     CASE thisOS of        MAC :sep    :         WIN :sep           ELSE: sep        ENDCASE   si iodir n est pas definit on l initialise au repertoire courant    if NOT keyword_set iodir  then cd   current   iodir    mciodir   iodir   on complete iodir d un caractere separateur de repertoire si besoin   est     IF rstrpos iodir  sep  NE strlen iodir 1 THEN iodir   iodir sep     if n_elements nom  EQ 0 then BEGIN   si nom n est pas definit   on en trouve un grace au programme dialog_pickfile       nom   dialog_pickfile filter   iodir nc         if nom 0  EQ   then return    1   si on a rien trouve on sort  on complete nom par iodir si nom ne contient pas de caractere  separateur derepertoire    ENDIF ELSE if strpos nom  sep  EQ  1 then nom   iodir nom    test   findfile nom            le nom cherche correspond bien a un fichier     while test 0  EQ   OR n_elements test  GT 1 do BEGIN   on en cherche un tant qu il ne correspond a rien        test   test 0        nom   dialog_pickfile filter   iodir nc        if nom EQ   then return    1       test   findfile nom     endwhile     ouverture du fichier nom      cdfid ncdf_open nom     contient ncdf_inquire cdfid      que contient le fichier      ouverture de la fenetre de base sous forme de colonnes    if n_elements group  EQ 0 then base   widget_base column  title Fichier:  nom   align_left       ELSE base   widget_base column  title Fichier:  nom   align_left  GROUP_LEADER   group    ouverture de  sous fenetres de base       base 1 titre portant le nom du fichier      base1   widget_base base   column   align_center     rien   widget_label base1  value    Net Cdf filename   align_center    blabla    rien   widget_text base1  value   nom   align_center  uvalue 1   editable   nom du fichier que l on peut changer     rien   widget_label base1  value         on saute une ligne     base 2 informations generales sur le fichier      base2   widget_base base   column      informations sur les attributs globaux      if contient ngatts NE  1 then begin       rien   widget_label base2  value    Nombre de attributs globaux:   strtrim contient ngatts 1   align_left        for attiq 0 contient ngatts 1 do BEGIN   bouble sur le nombre d attributs globaux          name ncdf_attname cdfid attiq global   nom de l atribut          ncdf_attget cdfid name value global  valeur de l atribut          rien   widget_text base2  value   name :  strtrim string value 1  xsize   60   scroll   wrap   align_right        endfor       rien   widget_label base2  value          endif      informations sur les dimensions      rien   widget_label base2  value    Nombre de dimensions:  strtrim contient ndims 1   align_left     if contient recdim NE  1 then begin   bouble sur le nombre de dimensions       ncdf_diminq cdfid contient recdim name value   nom et valeur de la dimension       rien   widget_label base2  value    nom de la dimension infinie:  name   align_left     endif      nomdim    strarr contient ndims    vecteur contenant le nom des dimensions    tailledim lonarr contient ndims    vecteur contenant la valeur des dimensions    for dimiq 0 contient ndims 1 do begin   bouble sur le nombre de dimensions       ncdf_diminq cdfid dimiq name value   nom et valeur de la dimension       nomdim dimiq name       tailledim dimiq value       rien   widget_label base2  value   name  de taille:  strtrim value 1   align_right     ENDFOR    rien   widget_label base2  value         on saute une ligne     base 3 choix de la variable      base3   widget_base base   column     rien   widget_label base3  value    Nombre de variables:  strtrim contient nvars 1   align_left     base31   widget_base base3   row   align_center   creation d un vecteur listename contenant le nom de toutes les  variables du fichier    listename   strarr contient nvars     for varid 0 contient nvars 1 do begin       varcontient ncdf_varinq cdfid varid    que contient la variable       listename varid    varcontient name    endfor    rien  widget_label base31  value    variable    creation d un bouton a menu deroulant    base311 widget_droplist base31 value listename  uvalue 2     rien   widget_label base3  value         base 4 bouton done      base4   widget_base base   row     base42 widget_button base4 value done  uvalue 3   align_right   execution de la fentre de base et des sous fenetres    widget_control base realize      xmanager xncdf_lec base          return  res end");
-a[246] = new Array("./ToBeReviewed/MATRICE/colle.html", "colle.pro", "", "     file_comments    This concatenation function exist in IDL so long   as we do not try to stick with a dimension superior or equal at 4         categories utilities      param a0  in required       param a1  in required       param a2  in required       param a3  in required       param a4  in required       param a5  in required       param a6  in required       param a7  in required       param a8  in required       param a9  in required       param a10  in required       param a11  in required       param a12  in required       param a13  in required       param a14  in required       param a15  in required       param a16  in required       param a17  in required       param a18  in required       param a19  in required       param a20  in required       param CAS 1  in required           table_of_pointer: It is a table of pointers  where each           element point on a table to stick                   For exemple  in a program  we want to stick n table ones with others               tab ptrarr n allocate_heap             for i 0 n 1 do begin                tab n replicate n 2 3             endfor            res colle tab 1       param CAS 2  in required           we directly give tables to stick          Comment: In this case  the plus we can give is 20 tables             BEWARE: whitout the keyword  SAUVE entry arguments are                   delete when  we build res  In the first case we                   delete the table of pointers and variables on which we point       param direc  in required  The direction on which stick them  1 2 3        keyword SAUVE mot cle qui force a sauvegarder le tableau de           pointeur et les tableaux a coller       returns res matrice resultat      examples IDL  print  colle replicate 1 2 2 2 indgen 2 2 2 2                      1       1                  1       1                  0       1                  2       3                    1       1                  1       1                  4       5                  6       7      history Sebastien Masson  smasson lodyc jussieu fr                          13 1 98      version  Id: colle pro 134 2006 07 07 10:19:08Z navarro       FUNCTION colle  a0  a1  a2  a3  a4  a5  a6  a7  a8  a9  a10  a11  a12  a13  a14  a15  a16  a17  a18  a19  a20  SAUVE   sauve     compile_opt idl2  strictarrsubs      res    1     on met en place ptrtab et direc en fonction des arguments en entree      case 1 of       n_params  EQ 2:BEGIN       cas ou l on donne directement le tableau de pointeurs          ptrtab   a0          direc   a1          if NOT keyword_set sauve  then undefine  a0   on recupere le nombre de tableaux a coller          nbretab    size ptrtab 1        end       n_params  GT 2:BEGIN   on recupere le nombre de tableaux a coller          nbretab   n_params 1          bidon   execute direc   a strtrim n_params 1  2    on ecrit le tableau de pointeur dont chaque element pointe sur un tableau          ptrtab ptrarr nbretab allocate_heap           for n   0 nbretab 1 do begin             bidon   execute ptrtab n a strtrim n  2              if NOT keyword_set sauve  then bidon   execute undefine  a strtrim n  2           endfor          sauve   0       end       ELSE:    endcase     case sur la valeure de direc      case direc of       1:BEGIN                     on colle suivant la dimension 1          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        2:BEGIN                     on colle suivant la dimension 2          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        3:BEGIN                     on colle suivant la dimension 3          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END       ELSE:BEGIN    on transpose res de facon a mettre la dimension a coller numero 1    pour cela on contient le vecteur permute qui donne la place que   doivent prendre les dimensions ds la matrice transposee         siz    size ptrtab 0 0           if siz LT direc then              ptrtab 0    reform ptrtab 0   size ptrtab 0 1:siz  replicate 1  direc siz   over           permute   indgen size ptrtab 0 0           permute 0    direc 1          permute direc 1    0          res   transpose ptrtab 0  permute           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN   on colle suivant la dimension 1             if  size ptrtab n 0  LT direc then                 ptrtab n    reform ptrtab n   size ptrtab n 1:siz  replicate 1  direc siz                          res    temporary res  transpose ptrtab n  permute              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR          res   transpose temporary res  permute        END    ENDCASE       if NOT keyword_set sauve  then undefine  ptrtab sortie:    return   res      END     ");
-a[247] = new Array("./ToBeReviewed/PLOTS/DESSINE/bar_plot.html", "bar_plot.pro", "", "   Id: bar_plot pro 134 2006 07 07 10:19:08Z navarro       Copyright  c  1990 2000  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited        PURPOSE:  Create a bar graph  or overplot on an existing one      CATEGORY:  Graphics      CALLING SEQUENCE:  BAR_PLOT  Values     INPUTS:  Values: A vector containing the values to be represented by the bars   Each element in VALUES corresponds to a single bar in the  output      KEYWORD PARAMETERS:     BASELINES: A vector  the same size as VALUES  that contains the  base value associated with each bar   If not specified   a base value of zero is used for all bars           COLORS: A vector  the same size as VALUES  containing the color index  to be used for each bar   If not specified  the colors are  selected based on spacing the color indices as widely as  possible within the available colors  specified by D N_COLORS         BARNAMES: A string array  containing one string label per bar   If the bars are vertical  the labels are placed beneath  them   If horizontal  rotated  bars are specified  the labels  are placed to the left of the bars     TITLE: A string containing the main title to for the bar plot     XTITLE: A string containing the title for the X axis     YTITLE: A string containing the title for the Y axis        BASERANGE: A floating point scalar in the range 0 0 to 1 0  that  determines the fraction of the total available plotting area  in the direction perpendicular to the bars  to be used   If not specified  the full available area is used         BARWIDTH: A floating point value that specifies the width of the bars  in units of  nominal bar width   The nominal bar width is  computed so that all the bars  and the space between them   set by default to 20  of the width of the bars  will fill the  available space  optionally controlled with the BASERANGE  keyword         BARSPACE:  A scalar that specifies  in units of  nominal bar width   the spacing between bars   For example  if BARSPACE is 1 0   then all bars will have one bar width of space between them   If not specified  the bars are spaced apart by 20  of the bar  width        BAROFFSET: A scalar that specifies the offset to be applied to the  first bar  in units of  nominal bar width   This keyword  allows  for example  different groups of bars to be overplotted  on the same graph   If not specified  the default offset is  equal to BARSPACE          OUTLINE: If set  this keyword specifies that an outline should be  drawn around each bar         OVERPLOT: If set  this keyword specifies that the bar plot should be  overplotted on an existing graph       BACKGROUND: A scalar that specifies the color index to be used for  the background color   By default  the normal IDL background  color is used     ROTATE: If set  this keyword indicates that horizontal rather than  vertical bars should be drawn   The bases of horizontal bars  are on the left   Y  axis and the bars extend to the right      OUTPUTS:  A bar plot is created  or an existing one is overplotted      EXAMPLE:  By using the overplotting capability  it is relatively easy to create  stacked bar charts  or different groups of bars on the same graph     For example  if ARRAY is a two dimensional array of 5 columns and 8  rows  it is natural to make a plot with 5 bars  each of which is a  stacked  composite of 8 sections   First  create a 2D COLORS array   equal in size to ARRAY  that has identical color index values across  each row to ensure that the same item is represented by the same color  in all bars     With ARRAYS and COLORS defined  the following code fragment  illustrates the creation of stacked bars  note that the number of rows  and columns is arbitrary :    Y RANGE    0 ymax    Scale range to accommodate the total bar lengths   BASE   INTARR NROWS   FOR I   0  NROWS 1 DO BEGIN     BAR_PLOT  ARRAY I  COLORS COLORS I  BASELINES BASE                  BARWIDTH 0 75  BARSPACE 0 25  OVER I GT 0      BASE   BASE   ARRAY I   ENDFOR    To plot each row of ARRAY as a clustered group of bars within the same  graph  use the BASERANGE keyword to restrict the available plotting  region for each set of bars   The sample code fragment below  illustrates this method:    FOR I   0  NROWS 1 DO       BAR_PLOT  ARRAY I  COLORS COLORVECT  BARWIDTH 0 8 BARSPACE 0 2          BAROFFSET I 1 0 BARSPACE NCOLS  OVER I GT 0  BASERANGE 0 19    where NCOLS is the number of columns in ARRAY  and COLORVECT is a  vector containing the color indices to be used for each group of  bars    In this example  each group uses the same set of colors  but  this could easily be changed      MODIFICATION HISTORY:  August 1990  T J  Armitage  RSI  initial programming   Replacement  for PLOTBAR and OPLOTBAR routines written by William Thompson     September 1990  Steve Richards  RSI  changed defaults to improve the  appearance of the bar plots in the default mode  Included  spacing the bars slightly    pro bar_plot values baselines baselines colors colors barnames barnames              title title xtitle xtitle ytitle ytitle baserange baserange              barwidth barwidth barspace barspace baroffset baroffset              outline outline overplot overplot background background              rotate rotate  _EXTRA   ex     compile_opt idl2  strictarrsubs   if  n_params d  eq 0  then begin   Print call   return if no parameters   print bar_test values baselines baselines colors colors barnames barnames    print  title title xtitle xtitle ytitle ytitle baserange baserange      print  barwidth barwidth barspace barspace baroffset baroffset      print  outline outline overplot overplot background background      print  rotate rotate    return endif  nbars n_elements values  Determine number of bars   Baselines  bars extend from baselines through values  default 0 if not keyword_set baselines  then baselines intarr nbars    Default colors spaced evenly in current color table if not keyword_set colors  then      colors fix d n_colors float nbars indgen nbars 0 5    Labels for the individual bars  none by default if not keyword_set barnames  then barnames strarr nbars      Main title if not keyword_set title  then title    Centered title under X axis if not keyword_set xtitle  then xtitle    Title for Y axis if not keyword_set ytitle  then ytitle    Fraction  0 1  of full X range to use if not keyword_set baserange  then baserange 1 0   Space betw  bars  taken from nominal bar widths  default is none If not keyword_set barspace  then barspace 0 2   Bar width scaling factor  relative to nominal if not keyword_set barwidth  then barwidth 1 0   barspace   barspace   nbars   Initial X offset  in scaled bar widths  default is none if not keyword_set baroffset  then baroffset barspace barwidth   Outline of bars  default is none outline   keyword_set outline    Overplot  do not erase the existing display  default is to create new plot overplot   keyword_set overplot    Background color index  defaults to 0  usually black  if not specified if not keyword_set background  then background 0   Rotate  make horizontal bars  default is vertical bars rotate   keyword_set rotate   mnB   MIN baselines  MAX mxB   NAN  mnV   MIN values  MAX mxV   NAN  range mnB  mxV        Maximum of bases   values  if  rotate  then begin     Horizontal bars    if  x range 0  eq 0  and  x range 1  eq 0      Determine range for X axis       then xrange range         else xrange x range     Or  use range specified    if  y range 0  eq 0  and  y range 1  eq 0      Plot will calculate       then                                           defaults for X  but not         yrange    0  n_elements values              for Ys  so fill in here        else           yrange y range     Axis perpend  to bars    yticks 1     Suppress ticks in plot    ytickname strarr 2       xticks 0    xtickname strarr 1  endif else begin     Vertical bars    if  y range 0  eq 0  and  y range 1  eq 0      Determine range for Y axis       then yrange range         else yrange y range                 Or  use range specified    xrange x range     Axis perpend  to bars    xticks 1     Suppress ticks in plot    xtickname strarr 2       yticks 0    ytickname strarr 1  endelse if  overplot eq 0  then      Create new plot  no data plot values nodata title title xtitle xtitle ytitle ytitle       noerase overplot xrange xrange yrange yrange xticks xticks       xtickname xtickname yticks yticks ytickname ytickname       xstyle 1 ystyle 1 data background background  _EXTRA   ex if  rotate  then begin     Horizontal bars    base_win y window     Window range in Y    scal_fact x s     Scaling factors    tick_scal_fact y s     Tick scaling factors endif else begin     Vertical bars    base_win x window     Window range in X    scal_fact y s     Scaling factors    tick_scal_fact x s     Tick scaling factors endelse winrange baserange base_win 1 base_win 0     Normal  window range barsize barwidth winrange nbars     Normal  bar width winoffset base_win 0 baroffset barsize     Normal  first offset bases scal_fact 0 scal_fact 1 baselines     Baselines  in normal coor  normal scal_fact 0 scal_fact 1 values     Values  in normal coor  barstart indgen nbars barsize barspace winrange nbars   Coor  at left edges tickv winoffset barstart 0 5 barsize     Tick coor   centered  for i 0 nbars 1 do begin     Draw the bars    width winoffset barstart i barstart i         Compute bar width       barstart i barsize barstart i barsize     length bases i normal i normal i bases i    Compute bar length    if  rotate  then begin     Horizontal bars       x length     X axis is  length  axis       y width     Y axis is  width  axis    endif else begin     Vertical bars       x width     X axis is  width  axis       y length     Y axis is  length  axis    endelse    polyfill x y color colors i normal     Polyfill with color    if  outline  then plots x y normal     Outline using  p color endfor  tickv tickv tick_scal_fact 0 tick_scal_fact 1    Locations of the ticks if  rotate  then      Label the bars  Y axis    axis yaxis 0 ystyle 1 yticks nbars 1 ytickv tickv ytickname barnames      yticklen 0 0   else      Label the bars  X axis    axis xaxis 0 xstyle 1 xticks nbars 1 xtickv tickv xtickname barnames      xticklen 0 0 return end");
-a[248] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt.html", "plt.pro", "", "          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:           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           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   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      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             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:             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:   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:   IDL  domdef 180 180 90 45   IDL  plt  tab   stereo map 90 0 0            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            pro plt  tab1  giventype  givenmin  givenmax  REALCONT   realcont  CONTOUR   contour              INTERVALLE   intervalle  INV   inv  GRIDTYPE   gridtype  BOXZOOM   boxzoom              CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel              STYLE   style  CONTMAX   contmax  CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel              VECTEUR   vecteur  MAP   map  MININ   minin  MAXIN   maxin              CONT_NOFILL   cont_nofill              USETRI   usetri  NOTRI   notri  MASKFILL   maskfill              DUPLICATE   duplicate  STRICTFILL   strictfill  OVERPLOT   overplot              DECIMATETRI   decimatetri   LABMAP   labmap  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   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     if keyword_set gridtype  then vargrid   gridtype   if keyword_set vecteur  AND  NOT keyword_set gridtype  then BEGIN     vargrid   litchamp tab1   grid      if vargrid eq   then BEGIN       vargrid   xquestion What is the grid associated to the data to contour   T   chkwidget        vargrid   strupcase vargrid      endif   ENDIF     I2  lecture du champ et checkup      if keyword_set boxzoom  AND n_elements contour  ne 4  then BEGIN     savedbox   1b     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 minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin   checktypeminmax   plt  TYPE   type  MIN   min  MAX   max  _extra   ex   z2d   checkfield tab1   plt  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  VECTEUR   vecteur  _extra   ex     if z2d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat      return   ENDIF   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    do we have a triangulation      wehavetri   triangles_list 0  NE  1     the triangulation must be used to draw the continents   if we make a map  are we periodic and nx jpi       CASE strupcase vargrid  OF        T :nx   nxt        W :nx   nxt        U :nx   nxu        V :nx   nxv        F :nx   nxf     ENDCASE     mapperio   keyword_set map keyword_set key_periodic nx eq jpi       usetri    wehavetri wehavetri holeintri mapperio keyword_set key_irregular    2 notri    ENDIF     I3  reinitialisation   p x y    Rq: on ne reinitialise pas qd on rapelle plt en boucle pour utiliser 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     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    if keyword_set profond        OR  usetri EQ 0 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri NE 2 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx           lasty  lastz   forplt  _extra   ex   ENDIF ELSE BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx  lasty           lastz  TRI   trifield   forplt  _extra   ex   ENDELSE     I5 determination du mi:min et du ma:max de z2d ainsi que de max: max et      min: min pour le dessin      masknan   finite z2d    nan   total masknan  NE n_elements z2d     faudra t il faire un 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   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     if n_elements contour  NE 4 AND NOT keyword_set overplot  THEN       placedessin   plt  posfenetre  posbar         CONTOUR   contour  VECTEUR   vecteur  MAP   map  DIREC   direc  _extra   ex       III  habillage du dessin  labels style axe            III1  choix des labels     if keyword_set intervalle  AND NOT keyword_set label  then label   1   if keyword_set label  eq 0 then cas   0 else cas   label   label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel         INTERVALLE   intervalle  strictfill   strictfill     III2 choix de style     if not keyword_set style  then style   0   style  style  level_z2d  linestyle  thick   if keyword_set inv  then colnumb   reverse colnumb      III3  definition des axes     if NOT keyword_set overplot  THEN axe   xy  _EXTRA   ex         IV  dessin         extrapolation des donnees sur les terres et seuillage     if keyword_set nan  then begin     z2d where masknan EQ 0    max   ENDIF ELSE masknan   1   filling the mask values   we fill only masknan or we fill mask masknan    IF keyword_set nan  AND keyword_set cont_nofill  THEN       z2d   remplit z2d  nite   1 vargrid NE  T  AND vargrid NE  W                        mask   masknan  _extra   ex       ELSE z2d   remplit z2d  nite    1    vargrid NE  T  AND vargrid NE  W                                         keyword_set nan                           1 keyword_set cont_nofill                           1 n_elements maskfill  NE 0                      mask   mask masknan  _extra   ex    IF keyword_set strictfill  EQ 0 AND n_elements maskfill  EQ 0 then       z2d   min   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   temporary z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1 mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    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  keyword_set profond  OR keyword_set cont_nofill        AND  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W             OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  then BEGIN     trifield   triangule tmask firstx:lastx  firsty:lasty  firstz                               coinmonte   coinmontemask                              coindescend   coindescendmask                              keep_cont   cont_nofill  _extra   ex      indicezoommask    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF   triangulation for nan mask   if keyword_set nan  then BEGIN     trinan   triangule masknan   keep_cont                            coinmonte   coinmontenan                            coindescend   coindescendnan      indicezoomnan    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF    IF n_elements twin_corners_up  EQ 0 THEN coinmontemask    1 ELSE coinmontemask   twin_corners_up    IF n_elements twin_corners_dn  EQ 0 THEN coindescendmask     1 ELSE coindescendmask   twin_corners_dn   if vargrid EQ  T  OR vargrid EQ  W  then BEGIN      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      decoupeterre  mask  glammsk  gphimsk  type    xy          TRI   trimsk  usetri   usetri  indicezoom   indicezoommask           coinmonte   coinmontemask  coindescend   coindescendmask           _EXTRA   ex   ENDELSE     IV1  choix du type de dessin     typetrace    classique    if keyword_set map  AND key_onearth then BEGIN    appelle de mapset qd on veut faire des projections     IF n_elements map  NE 3 THEN map    0   lon1 lon2 2  MOD 360  0      typetrace    projection      map_lat   map 0      map_lon   map 1      map_rot   map 2      if chkstru ex   TITLE  then begin       maptitre   ex title        ex title         endif     map_set  map_lat  map_lon  map_rot  _extra   ex  position   posfenetre   iso           limit    lat1  lon1  lat2  lon2   noborder     if n_elements maptitre  ne 0 then ex title   maptitre     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      if n_elements trinan  GE 2 then BEGIN        trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex        if trinan 0  EQ  1 then undefine  trinan     endif   ENDIF ELSE BEGIN   pour que les axes de coordonees soient pris en compte     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       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        if n_elements trinan  GE 2 then trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex      ENDIF   endelse     IV2  coutours et coloriages     if keyword_set duplicate   then BEGIN   pour marina uniquement ATTENTION C EST TRES MAL CODE     lon   glam  0      decalage   max lon min lon lon shift lon  1 n_elements lon 1       x range 1     x range 1 duplicate 1 decalage     for i   1  duplicate 1 do BEGIN       z2d    z2d  z2d        gphi    gphi  gphi        mask    mask  mask        gphimsk    gphimsk  gphimsk        glam    glam  glam i decalage        glammsk    glammsk  glammsk      ENDFOR   endif   save  glam  gphi  trifield  file    tri dat    if keyword_set decimatetri  then BEGIN     tempsdeux   systime 1         pour key_performance     IF n_elements trimsk  EQ 0 THEN trimsk   trifield     Verts   transpose temporary glam   temporary gphi                              temporary z2d      Conn    replicate 3  1  n_elements trifield 3  trifield      Result   mesh_decimate temporary verts   temporary Conn                                 Connout  vertices   Vertsout                                percent_vertices   decimatetri      connout   reform connout  4   n_elements connout 4   over       trifield    temporary connout 1:3        glam   reform Vertsout 0        gphi   reform Vertsout 1        z2d   reform Vertsout 2        undefine  Vertsout     print   temps decimatetri  systime 1 tempsdeux    ENDIF   pltbase  z2d  glam  gphi         mask  glammsk  gphimsk  trichamp   trifield  trimsk   trimsk   forplt         level_z2d  colnumb  contour   contour  usetri   usetri  realcont   realcont         overplot   keyword_set overplot keyword_set map          c_linestyle   linestyle  c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  cont_nofill   cont_nofill  nan   nan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         coinmontenan   coinmontenan  coindescendnan   coindescendnan         indicezoommask   indicezoommask  indicezoomnan   indicezoomnan         masknan   masknan  trinan   trinan  _extra   ex     IV3  rappelle de plt en boucle qd contour est active     if n_elements contour  eq 4 then BEGIN   c est la 2eme fois que je passe ds pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    je renvoie le min  le max et l unite     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     plt  contour  contmin  contmax  CONTOUR   pourlegende   NOERASE           USETRI   usetri           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style           NLEVEL   contnlevel  DUPLICATE   duplicate  STRICTFILL   strictfill           MASKFILL   maskfill  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       V  petites finitions           V1  ajout eventuel de vecteurs en surimpression     if keyword_set vecteur  then BEGIN      oldattributs   saveatt      ajoutvect  vecteur  vectlegende  _extra   ex     restoreatt  oldattributs   ENDIF     if keyword_set overplot  then GOTO  fini     V2  Trace de la ligne de changement de date l equateur et   le meridien de greenwich        if NOT keyword_set map  AND key_onearth then meridienparallele   xy      V3  pour tracer les continents d IDL     if keyword_set realcont  then BEGIN   si noease est passe de _extra  on s assure qu il est a 1     if chkstru ex   NOERASE  then begin       oldnoerase   ex noerase       ex noerase   1     ENDIF     if chkstru ex   coast_thick  then mlinethick   ex coast_thick ELSE mlinethick   1     if chkstru ex   coast_color  then mcolor   ex coast_color ELSE mcolor   0     IF NOT keyword_set map  THEN         map_set  0   lon1 lon2 2  MOD 360  0  position   posfenetre            limit    lat1  lon1  lat2  lon2   NOERASE   noborder  color   0           _extra   ex     if realcont NE 2 AND NOT keyword_set cont_nofill  then BEGIN       if chkstru ex   cont_color  then cntcol   ex coast_color         ELSE cntcol    d n_colors   1     255       map_continents   fill_continents  color   cntcol  _extra   ex   noerase     ENDIF     map_continents   continents  color   mcolor  MLINETHICK   mlinethick   noerase  _extra   ex     if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase   ENDIF     V4  legendes   affichage de celles ci     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     if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   coast_color   endif     case typetrace of      classique :         plot   0   0   nodata   noerase  color   0  xstyle   1  ystyle   1  _extra   ex      projection : BEGIN        if chkstru ex   NOERASE  then begin         oldnoerase   ex noerase         ex noerase   1       endif       if chkstru ex   SUBTITLE  then  p subtitle   ex SUBTITLE       if n_elements maptitre  ne 0 then ex title   maptitre       map_set  map_lat  map_lon  map_rot  _extra   ex   iso  limit    lat1  lon1  lat2  lon2             NOERASE   noborder  title    p title  color   0           map_proj_info  numproj   current           map_proj_info  numproj  name   nomproj           if nomproj EQ  Mercator  OR nomproj EQ  Cylindrical  OR nomproj EQ  LambertConic             OR nomproj EQ  Gnomic  OR nomproj EQ  AlbersEqualAreaConic               OR nomproj EQ  TransverseMercator  OR nomproj EQ  MillerCylindrical               OR nomproj EQ  LambertConicEllipsoid  then map_grid  box_axes 1 latdel 10 londel 10             ELSE map_grid  charsize   0 75   label latalign   1 lonalign             1 latdel   10 londel   30       IF n_elements labmap  EQ 0 THEN labmap   1       map_grid  charsize   0 75  label   labmap  latalign   1  lonalign   1  latdel   10  londel   30  color   0  _extra   ex       if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase     end   endcase     V5  barre de couleur     colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       VI  impression eventuelle     fini:   terminedessin  _extra   ex     sortie:   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat    if keyword_set key_performance  NE 0 THEN print   temps plt  systime 1 tempsun        return end  ");
-a[249] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt1d.html", "plt1d.pro", "", "      NAME:  PLT1D     PURPOSE:  trace des graphes 1d     CATEGORY:         Graphics  trace des graphes 1d: x y z  ou t mais ds ce cas  on         rapelle directement pltt      CALLING SEQUENCE:  plt1d  champ type  min  max      INPUTS:  champ: le champ dont on veut faire le hovmoller champ  peut etre de 2 types:  1  un tableu qui peut etre:              2d  3d ou 4d:  tableau xy  xyz  xyt ou xyzt  dans ce cas               le tableau va passer dans moyenne ou grossemoyenne pour              etre moyennee et devenir un tableau 1 1d                1d:type doit qd meme etre specifie pour qu on sache de            quel trace il sagit  Pour avoir une legende correcte             respecifier la zone d extraction via BOXZOOM         2  une structure repondant aux critaires specifies par         litchamp pro  cf  IDL  xhelp litchamp  Le tableau contennu ds         la structure repondant aux criteres du cas 1  cf  ci dessus           TYPE: un string: type de plot 1d que l on veut faire:         trace suivant:  x y z        ces arguments ne sont pas obligatoires:      MAX: valeur maximum que l on veut prendre en compte dans le trace   du plot  Par defaut on prend le max de tableau  sur les pts mer     MIN: valeur minimum que l on veut prendre en compte dans le trace   du plot  Par defaut on prend le min de tableau  sur les pts mer      KEYWORD PARAMETERS:    BOXZOOM:vecteur indiquant la zone geographique  3d  sur laquelle doit   etre fait l extraction du champ pour faire le hovmoeller    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  vert1  vert2    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 vert1 vert2 sont les variables globales   definies lors du dernier domdef            COL1d:  OBSOLETE numero de la couleur qd on fait un trace 1d         par defaut  0  il faut mieux utiliser le mot cle COLOR utilise         par plot           ENDPOINTS: mot clef specifiant que l on veut faire une coupe         verticale en diagonale  les coordonnees des extremites de         celle ci sont alors definies les 4 elements du vecteur         ENDPOINTS:  x1 y1 x2 y2  qui sont les coordonnees     LANDSCAPE: oblige la feuille ou le fenetre a l ecran a etre  en position  allongee            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             NOERASE: activer pour faire un dessin a l ecran sans creer   une nouvelle fenetre  Rq: activer ds le cas d un Postscript de   plusieurs traces de type  t  pour ne pas faire un Postscript de   plusieurs pages             OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d     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             SIN: activer ce mot cle si l on veut que l  axe des x soit         trace en sinus de la latitude qd on fait un frace f y            STY1D:  OBSOLETE numero du style utilise lors d un trace         1d  Il faut mieux utiliser le mot cle LINESTYLE qui est celui         de plot  Attention ce mot cle est encore utile si on veut         faire des barres plutot qu un courbe  mettre sty1d bar     TRANS: fait un postscript  active  post automatiquement  et l imprime    si on le desire  sur un transparant    WINDOW: nimero 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 defaut 1   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: creation 24 6 99 Eric Guilyardi                           a partir routine pltt de Sebastien Masson    8 7 1999 Sebastien Masson  smasson lodyc jussieu fr     inspection des travaux finis   8 2 2000 Sebastien Masson: checkfield         pro plt1d  tab  giventype  givenmin  givenmax  BOXZOOM   boxzoom  SIN   sin                MININ   minin  MAXIN   maxin  TYPEIN   typein  ENDPOINTS   endpoints                COL1D   col1d  STY1D   sty1d  OV1D   ov1d  X   x  Y   y  Z   z  TT   tt                REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SWITCHXY   switchxy                _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance     1ere partie: initialisation et petits calculs          verification de la valeur de type       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 minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if keyword_set tt  then typein    t    if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   endif     checktypeminmax   plt1d  TYPE   type  MIN   min  MAX   max  ENDPOINTS   endpoints         XX   keyword_set x  YY   keyword_set y  ZZ   keyword_set z     if type EQ  t  then BEGIN     pltt  tab  type  min  max  BOXZOOM   boxzoom  SIN   sin  TYPEIN   typein           COL1D   col1d  STY1D   sty1d  OV1D   ov1d  ENDPOINTS   endpoints  _extra   ex     return   endif     I2  reinitialisation   p x y    Rq: on ne reinitialise pas qd on rapelle plt1d     if NOT keyword_set ov1d  then reinitplt     I1  lecture du champ      if  keyword_set boxzoom  OR keyword_set endpoints  THEN BEGIN      savedbox   1b      saveboxparam   boxparam4plt1d dat     ENDIF     if keyword_set endpoints  then begin     section  tab  z1d  glam  gphi  ENDPOINTS   endpoints  TYPE   type           BOXZOOM   boxzoom  DIREC   direc     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       z   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       z   gdept firstzt:lastzt        nz   nzt     ENDELSE   ENDIF ELSE BEGIN      z1d   checkfield tab   plt1d  TYPE   type  BOXZOOM   boxzoom                          direc   direc  _extra   ex      grille  mask  glam  gphi  gdep  nx  ny  nz   ENDELSE   if z1d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      return   endif   on construit le mask pour cela le tableau doit etre masque  fait   automatiquement a la valeure valmask si on passe ds moyenne ou grossemoyenne    mask   fltarr n_elements z1d    if n_elements valmask  EQ 0 then valmask   1e20   nan   total finite z1d   nan     1   if keyword_set nan  then begin     notanum   where finite z1d  EQ 0      z1d notanum    0     mask where z1d LT valmask 10    1     z1d notanum     values f_nan   ENDIF ELSE mask where z1d LT valmask 10    1     determination du min et du max apres la moyenne     nan   total finite z1d   nan    1   determineminmax  z1d  mask  mi  ma  MININ   min  MAXIN   max  nan   nan  INTERVALLE   intervalle  _extra   ex   if z1d 0  EQ  1 THEN return       if NOT keyword_set ov1d  THEN placedessin   autre  posfenetre  posbar  contour   contour  DIREC   direc  endpoints   endpoints  _extra   ex       2eme partie: dessin       definition des vecteurs abscisse et ordonee   la triangulation est definie pour que le trace soit effectue du bas   a gauche vers le haut a droite  il faut donc la matrice e contourer   se presente de cette maniere  d ou certains transpose et reverse       case type of      y : begin       yy   z1d       IF  size gphi 0  EQ 1 then xx   gphi ELSE BEGIN          IF keyword_set key_irregular  THEN BEGIN            cln    where gphi EQ max gphi 0            xx   reform gphi cln MOD nx            ENDIF ELSE xx   reform gphi 0          ENDELSE       if keyword_set sin  then xx   sin pi 180 xx        min0   lat1   max0   lat2     END      x :begin       yy   z1d       xx   glam  0        min0   lon1   max0   lon2     END       z :begin       yy   reverse gdep  1        xx   reverse z1d  1        min0   0   max0   0       case n_elements boxzoom  of         0: y range    vert1  vert2          1: y range    0  boxzoom          2: y range   boxzoom         4: y range    vert1  vert2          5: y range    0  boxzoom 4          6: y range   boxzoom 4:5        endcase       if NOT keyword_set ov1d  then  y range   reverse y range      END    ENDCASE          definition des axes        if keyword_set integrationtps  then axe  type  time 0  time jpt 1  SIN   sin  _extra   ex        ELSE axe  type  SIN   sin   if NOT keyword_set ov1d  then axe  type  SIN   sin       dessin       if type EQ  z  then begin     idx   where xx NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  x range    min abs max min 5  max abs max min 5          ELSE  x range    min  max      ENDIF   ENDIF ELSE BEGIN      idx   where yy NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  y range    min abs max min 5  max abs max min 5          ELSE  y range    min  max      ENDIF   ENDELSE      if NOT keyword_set ov1d  then BEGIN      legende  mi  ma  type  CONTOUR   contour  DIREC   direc  ENDPOINTS   endpoints  _EXTRA   ex     ENDIF   IF keyword_set switchxy   THEN BEGIN     tmp   xx     xx   yy     yy   temporary tmp      if NOT keyword_set ov1d  then BEGIN        tmp    x        x    y        y   temporary tmp      ENDIF   ENDIF   if NOT keyword_set ov1d  then BEGIN      if keyword_set reverse_x  then  x range   reverse x range      if keyword_set reverse_y  then  y range   reverse y range    ENDIF     xx   xx idx    yy   yy idx    if  not keyword_set col1d  then col1d   0   if keyword_set sty1d  then BEGIN  si on veut faire des barres     IF strlowcase strtrim sty1d  EQ  bar  then begin        y range    y range 0 y range 1 y range 0 05   y range 1         bar_plot  yy  background    d n_colors 1    255             baselines   replicate y range 0  n_elements yy  barnames                 colors      replicate col1d  n_elements yy   outline       if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF       plot   0   0   noerase   nodata  _extra   ex       GOTO  fini     ENDIF    ENDIF     if NOT keyword_set ov1d  then BEGIN        plot  xx  yy  color   col1d  linestyle   sty1d  thick   2  title     subtitle     _extra   ex     if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur 0 et trace une ligne a y 0       if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE   0       if  where tag_names ex  EQ  THICK 0  NE  1 then ex THICK   0     ENDIF     plot   x range   0  0   noerase   nodata           xstyle   1 4 keyword_set endpoints  AND                          type EQ  x  AND lat1 NE lat2  OR  type EQ  y  AND lon1 NE lon2            ystyle   1  _extra   ex   ajout d un axe ds le cas ou l on utilise endpoints     if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex   trace une ligne a x 0     plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex   ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex       3eme partie: impression eventuelle     fini:   terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun          return end  ");
-a[250] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltbase.html", "pltbase.pro", "", "          NAME:pltbase     PURPOSE: surcouche de contour pour tracer un champ eventuellement   masque  brique elementaire de plt  pltz et pltt      CATEGORY:un tarce vite fait et ou delestage de l ecriture de plt  pltz  pltt     CALLING SEQUENCE: pltbase  z2d  x  y  mask xm  ym    levels  colors      INPUTS:          z2d:le tableau a tracer            x et y les axes  vecteurs ou tableaux de meme taille que          z2d  Ce sont les coordonnees de z2d            mask: le tableau qui masque z2d  avec des 0 sur les points a          masquer et des 1 sur les autres  si z2d n est pas masque          mettre cet argument egale a 1             xm et ym les axes du mask  vecteurs ou tableaux de meme taille que          mask  Ce sont les coordonnees de mask            levels et colors:  optionnels  les vecteurs qui contiennent          les niveaus et les couleurs necessaires au contour  S il ne          sont pas donnes on prends 20 niveau entre le min et le max      KEYWORD PARAMETERS:            COLORTRICHAMP : la couleur que l on veut utiliser pour          dessiner la triangulation qui est utilisee pour faire les          contour du champ            COLORTRIMASK : la couleur que l on veut utiliser pour          dessiner la triangulation qui est utilisee pour faire les          contour du mask            COAST_COLOR: the color of the coastline                        defaut value is 0   black            COAST_THICK: the thickness of the coastline                        defaut value is 1            COLOR_C: to draw the contour in color instead of in black          with filling in color              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   white             DESSTRICHAMP: pour dessiner la triangulation qui est          utilisee pour faire les contour du champ               DESSTRIMASK: pour dessiner la triangulation qui est          utilisee pour faire les contour du mask             FORPLT: a activer si on veut que le trace des cote soit          realise par tracecote plutot que tracemask             I_COLORS: un vecteur specifiant la couleur a utiliser pour          tracer les contours  C est la meme chose que c_colors qui          ajit sur les contours             MORE: chiffre a donner pour eviter les bug du style:      Out of range subscript encountered:        Execution halted at:  PLTBASE           151               par defaut more 10 si le bug existe tjs  augmenter la               valeur de more   l explication et la justification de               cette methode n ont pas encore de fondements               scientifiques                           NOFILL: pour faire juste les isolignes             NOCONTOUR: pour faire juste les couleurs             UNSUR2: pour tarcer une isoligne sur 2            UNLABSUR: entier n  specifant qu on ne labelle qu un          contour sur n            CONTOUR: pour etrte utilise depuis plt  pltz ou pltt  cf ces          routines             _EXTRA: mot cle magique d idl pour faire passer tous lse          mots cles acceptes par les routines et fonctions utilises ds          ce programme sans les declarer explicitement       OUTPUTS:     COMMON BLOCKS:          common pro     SIDE EFFECTS:     RESTRICTIONS:ds le cas ou z2d  x et y sont des tableaux de meme   taille il faut les metre sous forme de vecteur: z2d  x  y      EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                                                    8 2 2000 check if the tri array is not equal to                          1  allow contour with out using a triangulation            PRO pltbase  z2d  x  y  mask  xm  ym  levels  colors  UNSUR2   unsur2  CONTOUR   contour                  NOCONTOUR   nocontour  NOFILL   nofill                  TRICHAMP   trichamp  TRIMSK   trimsk                  REALCONT   realcont  NAN   nan  usetri   usetri                  COLORTRICHAMP   colortrichamp  COLORTRIMASK   colortrimask                  COLORTRINAN   colortrinan                  COLORPOINTS   colorpoints  DRAWPOINTS   drawpoints                  TH_TRICHAMP   th_trichamp  TH_TRIMASK   th_trimask                  DESSTRICHAMP   desstrichamp  DESSTRIMASK   desstrimask                  DESSTRINAN   desstrinan  COLOR_C   color_c                  I_COLORS   i_colors   CONT_COLOR   CONT_COLOR                  CONT_NOFILL   cont_nofill  UNLABSUR   unlabsur                  COINMONTEMASK   coinmontemask  COINDESCENDMASK   coindescendmask                  COINMONTENAN   coinmontenan  COINDESCENDNAN   coindescendnan                  INDICEZOOMMASK   indicezoommask  INDICEZOOMNAN   indicezoomnan                  MASKNAN   masknan  TRINAN   trinan                  FORPLT   forplt  REALSECTION   realsection                  MORE   more  EXCHANGE_XY   exchange_xy                  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       explication concernant contour  Ce mot cle est active qd on on trace   un contour en couleur different de celui en trait noir    si il est active  cas n_elements contour  NE 0  on passe 2 fois ds pltbase:     1  on trace les couleurs puis on sort c est le cas:           n_elements contour  NE 0 AND n_elements contour  NE 4      2  on trace les contour en trait puis les continents c est le cas            n_elements contour  NE 0 AND n_elements contour  EQ 4        tempsun   systime 1             pour key_performance   if n_elements mask  EQ 0 then mask   1b   if n_elements masknan  EQ 0 then masknan   1b   IF total mask  EQ n_elements z2d  THEN mask   1b     si les niveaux et les couleurs ne sont pas donnes     if n_params  EQ 4 then        label  0  min z2d mask  max z2d mask  ncontour  levels  colors   attention bidouille inexplicable pour que tout se passe bien avec les   postcript ds pltz    if n_elements contour  LE 4 AND  x type EQ 0 THEN       plot   0   0  xstyle   5  ystyle   5   nodata   noerase  title     subtitle         si cell_fill fait partit de _extra  on le desactive si il n est pas   egale a 2     IF chkstru ex   CELL_FILL  THEN BEGIN      cell_fill   ex CELL_FILL     if ex CELL_FILL NE 2 then ex CELL_FILL   0   ENDIF ELSE cell_fill   0            I  remplissage des contours en palette de couleur      if NOT keyword_set more  then more   10   if NOT keyword_set nofill  AND NOT keyword_set color_c  then begin     if n_elements contour  NE 4 THEN BEGIN        if usetri EQ 2 then BEGIN         IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels  c_color   colors                noerase   fill  TRIANGULATION   trichamp  _extra   ex         ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels  c_color   colors   noerase                fill  _extra   ex        ENDELSE     ENDIF   ENDIF   if n_elements contour  NE 0 AND n_elements contour  NE 4 THEN GOTO  fini    IF chkstru ex   C_ORIENTATION  THEN ex   extractstru ex   C_ORIENTATION    IF chkstru ex   C_SPACING  THEN ex   extractstru ex   C_SPACING    IF chkstru ex   C_COLORS  THEN ex   extractstru ex   C_COLORS      II  trace des contours en trait     if n_elements contour  EQ 4 OR n_elements contour  EQ 0 THEN BEGIN     we put the masked values to NaN       IF  n_elements mask  GT 1 OR n_elements masknan  GT 1          AND NOT keyword_set cont_nofill  THEN BEGIN         tonan   where mask masknan  EQ 0  count        tonan   where remplit mask masknan  nite   1  mask   mask masknan                                  basique  fillval   0                                 fillxdir   keyword_set realsection  EQ 0  count        IF count NE 0 THEN z2d temporary tonan     values f_nan     ENDIF        on ne passe pas si on doit faire des contours differents    ds le cas on unsur2 est active on reduit levels     if NOT keyword_set nocontour  then begin       IF keyword_set unsur2  THEN levels   levels where zeroun n_elements levels    eq 1    unlabsur est active   C_LABEL est passe via _EXTRA        if keyword_set unlabsur  THEN IF chkstru ex   C_LABELS  THEN           ex C_LABELS   1 indgen n_elements ex C_LABELS  MOD unlabsur    1      pour ne pas filler qd cell_fill est impose        IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   0         CASE 1 OF         keyword_set color_c :c_colors   colors         keyword_set i_colors :c_colors   i_colors         ELSE:       ENDCASE         IF usetri EQ 2 THEN BEGIN          IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  TRIANGULATION   trichamp  _extra   ex       ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  _extra   ex       ENDELSE     ENDIF     III  remplissage des continents de couleur       IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   cell_fill   1     IF chkstru ex   LEVELS  THEN ex   extractstru ex   LEVELS      IF chkstru ex   NODATA  THEN ex   extractstru ex   NODATA      IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255         si il y a des points a nan    on trace en blanc les points a nan avant de dessiner les cotes avec   un trait        if keyword_set trinan  THEN BEGIN       IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size masknan 2        IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size masknan 1 y       contour   1b masknan  fltarr more   x  fltarr more               y  fltarr more  levels   0 5   overplot   fill             c_colors   cont_color  TRIANGULATION   trinan  _extra   ex       IF keyword_set forplt  THEN           completecointerre  COINMONTE   coinmontenan             COINDESCEND   coindescendnan  INDICEZOOM   indicezoomnan             CONT_COLOR   cont_color  _EXTRA   ex         ELSE fillcornermask  x  0  y 0    COINMONTE   coinmontenan             COINDESCEND   coindescendnan  CONT_COLOR   cont_color  _extra   ex     ENDIF     remplissage des continents       if keyword_set realcont  then if realcont EQ 1 then mask   1b     if n_elements mask  NE 1 then BEGIN   si mask 1 on saute          if NOT keyword_set cont_nofill  then BEGIN     mask filling           case 1 of           keyword_set realsection :drawsectionbottom  mask  xm  ym                 CONT_NOFILL   cont_nofill  CONT_COLOR   cont_color  _EXTRA   ex           usetri GE 1:BEGIN             if n_elements trimsk  eq 0 then trimsk   trichamp             IF size xm   N_DIMENSIONS  EQ 1 THEN xm   xm replicate 1   size mask 2              IF size ym   N_DIMENSIONS  EQ 1 THEN ym   replicate 1   size mask 1 ym             contour   1b mask  fltarr more   xm  fltarr more                     ym  fltarr more  LEVELS   0 5   OVERPLOT   FILL                   C_COLORS   cont_color  TRIANGULATION   trimsk  _extra   ex             IF keyword_set forplt  THEN                 completecointerre  COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  INDICEZOOM   indicezoommask                   CONT_COLOR   cont_color  _EXTRA   ex               ELSE fillcornermask  xm  0  ym 0    COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  CONT_COLOR   cont_color  _extra   ex           END           ELSE:BEGIN              IF size xm   n_dimensions  EQ 2 THEN xm   xm  0              IF size ym   n_dimensions  EQ 2 THEN ym   reform ym 0                contour  1b mask  xm  ym  LEVELS   0 5   OVERPLOT                    FILL  C_COLORS   cont_color  _EXTRA   ex           END         ENDCASE       ENDIF                       NOT keyword_set cont_nofill      IV  trace les cotes en trait         case 1 of         keyword_set realsection  AND NOT keyword_set cont_nofill :               keyword_set realsection  AND keyword_set cont_nofill :             drawsectionbottom  mask  xm  ym               CONT_NOFILL   cont_nofill  _extra   ex          keyword_set forplt  AND  map projection GT 0 OR key_irregular              OR keyword_set nan :tracecote  _extra   ex         ELSE:tracemask  mask  xm  ym  _extra   ex       endcase                         ENDIF                         n_elements mask  NE 1   ENDIF     draw the triangulations     if keyword_set desstrichamp  then       dessinetri  trichamp  x  y  color   colortrichamp  thick   th_trichamp   if keyword_set desstrimask  then       dessinetri  trimsk  xm  ym  color   colortrimask  thick   th_trimask   if keyword_set desstrinan  then       dessinetri  trinan  x  y  color   colortrinan   if keyword_set drawpoints  then       tracegrille  x  y  color   colorpoints     fini:   IF keyword_set key_performance  THEN print   temps pltbase  systime 1 tempsun     return end");
-a[251] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltsc.html", "pltsc.pro", "", "PRO  pltsc tab1 tab2  min1  max1  min2  max2  varname2  BOXZOOM   boxzoom               COL1D col1d STY1D sty1d OV1D ov1d  _extra   ex     scatter plot  inspired from plt1d        compile_opt idl2  strictarrsubs        include common  cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      Rq: on ne reinitialise pas qd on rapelle pltsc    if NOT keyword_set ov1d  then reinitplt      reduce data xyzt domain     if keyword_set boxzoom  then BEGIN       Case 1 Of        N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0         N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1         N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2         N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4         N_Elements Boxzoom  Eq 6:bte   Boxzoom        Else: Begin          ras   report Wrong Definition of Boxzoom            return        End      endcase      savedbox   1b      saveboxparam   boxparam4pltsc dat       domdef  bte  GRIDTYPE   vargrid    ENDIF    extract indexes to plot     indexm   where tab1 LE valmask 10     tab1   tab1 indexm     tab2   tab2 indexm      npts    size indexm 1     deal with  min and max of plot    IF finite min1  EQ 0 THEN min1   min tab1     IF finite max1  EQ 0 THEN max1   max tab1     IF finite min2  EQ 0 THEN min2   min tab2     IF finite max2  EQ 0 THEN max2   max tab2         init plot if not overlay        IF NOT keyword_set ov1d  THEN placedessin   yfx  posfenetre  posbar        contour   contour  _extra   ex    yy   tab1    xx   tab2    axis range     x range    min2 abs max2 min2 5 max2 abs max2 min2 5      y range    min1 abs max1 min1 5 max1 abs max1 min1 5      IF  NOT keyword_set sty1d  THEN sty1d   0    IF  NOT keyword_set col1d  THEN col1d   0    IF  NOT keyword_set ov1d  THEN  BEGIN        legende  min1  max1   yfx  VARNAME2   varname2  NPTS   npts  _EXTRA   ex          plot xx yy  background   255  psym   sty1d 1  color col1d  thick 2            title     subtitle    _extra   ex        if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur 0 et trace une ligne a y 0          if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE  0        ENDIF        plot   x range   0  0   noerase   nodata  xstyle   1  ystyle   1  _extra   ex   trace une ligne a x 0       plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex    ENDIF ELSE oplot xx yy color col1d linestyle sty1d thick 2  _extra   ex       3eme partie: impression eventuelle     fini:    terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4pltsc dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun           return end  ");
-a[252] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltt.html", "pltt.pro", "", "      NAME:  PLTT     PURPOSE:  trace des graphes hovmoller     CATEGORY:         Graphics  trace des graphes hovmoller: xt yt zt t     CALLING SEQUENCE:  pltt  champ type  min  max  datmin  datmax      INPUTS:  champ: le champ dont on veut faire le hovmoller champ  peut etre de 2 types:  1  un tableu qui peut etre:              3d ou 4d: la derniere composante etant le temps  dans ce              cas  le tableau va passer dans grossemoyenne pour etre              moyennee suivant et devenir un tableau 2d ou 1d               2d: si tableau est deja 2d  il n est pas modifie               attention les terres doivent etre masquees a la valeure              valmask  et type doit qd meme etre specifie pour qu on              sache de quel trace il sagit  Pour avoir une legende              correcte  respecifier la zone d extraction via BOXZOOM              1d: uniquement pour les traces de type  t  Type doit qd              meme etre specifie pour qu on sache de quel trace il              sagit  Pour avoir une legende correcte  respecifier la zone              d extraction via BOXZOOM         2  une structure repondant aux critaire specifies par         litchamp pro  cf  IDL  xhelp litchamp  Le tableau contennu ds         la structure repondant aux criteres du cas 1  cf  ci dessus           TYPE: type de hovmoller que l on veut faire:                xt yt zt t        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 tableau  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 tableau  sur les pts   mer            DATMIN: c est la borne inf de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd            DATMAX: c est la borne max de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd      KEYWORD PARAMETERS:    BOXZOOM:vecteur indiquant la zone geographique  3d  sur laquelle doit   etre fait l extraction du champ pour faire le hovmoeller    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  vert1  vert2    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 vert1 vert2 sont les variables globales   definies lors du dernier domdef           CB_TITLE: le titre de la colorbar          CB_SUBTITLE: le soustitre de la colorbar          CB_CHARSIZE: The character size of the color bar annotations            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   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 reponadnt aux meme caracteristiques   que l argument numero 1 de pltt           ENDPOINTS: mot clef specifiant que l on veut faire une coupe         verticale en diagonale  les coordonnees des extremites de         celle ci sont alors definies les 4 elements du vecteur         ENDPOINTS:  x1 y1 x2 y2  qui sont les coordonnees             EXCHANGE_XY: permet d intervertir les axes             FILTER: applique une moyenne glissante de largeur FILTER     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      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             COL1d:  OBSOLETE numero de la couleur qd on fait un trace 1d         par defaut  0  il faut mieux utiliser le mot cle COLOR utilise         par plot           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     CONTNLEVEL: nombre de contours a dessiner qd on utilise ajoutcontour   active par le mot cle CONTOUR actif si CONTLABEL 0  par defaut  20     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  Rq: activer ds le cas d un Postscript de   plusieurs traces de type  t  pour ne pas faire un Postscript de   plusieurs pages             OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d            OVERPLOT: pour faire un pltt par dessus un autre  Rq:         contrairemnet a l utilisation de CONTOUR          l utilisation de ce mot clef ne modifie pas la legende ou et         la barre de couleur  dans le cas d un plot 1d  contrairement         a ov1d  on peut changer les axes et les ranges     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           REPEAT_C n pour repeter une serie temporelle n fois    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           STY1D:  OBSOLETE numero du style utilise lors d un trace         1d  Il faut mieux utiliser le mot cle LINESTYLE qui est celui         de plot  Attention ce mot cle est encore utile si on veut         faire des barres plutot qu une courbe  mettre sty1d bar     TRANS: fait un postscript  active  post automatiquement  et l imprime    si on le desire  sur un transparant            TREND_TYPE: modify data by calling trends pro            TYPEIN: permet de specifier la valeur type de hovmoller que          l on veut faire:                xt yt zt t            a l aide d un mot cle plutot que par l argument type Si         l argument et le mot cle sont specifies en meme temps  c est         la valeur specifiee par le mot cle qui est retenue             USETRI: pour forcer a utiliser de triangulation             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    WINDOW: nimero 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 defaut 1   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   27 5 98                         Jerome Vialard  adapting plt to hovmoller drawing                          2 7 98                         Sebastien Masson 14 8 98  continents barres                          15 1 98   adaptation pour les tableaux 3 et 4d pour que la moyenne soit faite   dans pltt plutot que lors de la lecture                          Sebastien Masson 14 8 98                          7 1999                          Eric Guilyardi 29 7 99 FILTER  TREND_TYPE                          REPEAT_C                          Sebastien Masson 08 02 2000 checkfield and                         usetri keyword          pro pltt tab giventype givenmin givenmax datmin datmax BOXZOOM   boxzoom  CONTOUR contour             ENDPOINTS endpoints INTERVALLE intervalle INV inv              CONTINTERVALLE contintervalle LABEL label CONTLABEL contlabel             STYLE style  CONTMAX contmax             CONTMIN contmin NLEVEL nlevel CONTNLEVEL contnlevel             COL1D col1d STY1D sty1d  MININ   minin  MAXIN   maxin             OV1D ov1d  FILTER   filter  TREND_TYPE   trend_type             REPEAT_C   repeat_c  TYPEIN   typein  XT   XT  YT   YT  ZT   zt              TT   tt  STRICTFILL   strictfill  OVERPLOT   overplot              EXCHANGE_XY   exchange_xy              _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            pour key_performance     I2  reinitialisation   p x y    Rq: on ne reinitialise pas qd on rapelle plt en boucle pour utiliser contour      if n_elements contour  ne 4 AND NOT keyword_set overplot        AND NOT keyword_set ov1d  then reinitplt     I1  lecture du champ      if  keyword_set boxzoom  OR keyword_set endpoints         AND n_elements contour  ne 4 THEN BEGIN      savedbox   1b      saveboxparam   boxparam4pltt dat     ENDIF    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 minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin    if keyword_set typein  then BEGIN        if size type   type  NE 7 AND size type   type  NE 0 then begin          if n_elements min  NE 0 then max   min          min   type       endif       type   typein     ENDIF      checktypeminmax   pltt  TYPE   type  MIN   min  MAX   max          XT   XT  YT   YT  ZT   zt  TT   tt  ENDPOINTS   endpoints  _extra   ex      if keyword_set endpoints  then begin       section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type             BOXZOOM   boxzoom  DIREC   direc       nx   n_elements glam         ny   nx       if strupcase vargrid  EQ  W  then begin          z   gdepw firstzw:lastzw           nz   nzw       ENDIF ELSE BEGIN          z   gdept firstzt:lastzt           nz   nzt       ENDELSE    ENDIF ELSE BEGIN        z2d   checkfield tab   pltt  TYPE   type  BOXZOOM   boxzoom                            direc   direc  _extra   ex        if z2d 0  EQ  1 then BEGIN          IF keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat          return       endif       grille  mask  glam  gphi  gdep  nx  ny nz    ENDELSE     calcul de tendance anomaly suivant TREND_TYPE       IF NOT keyword_set trend_type  THEN trend_type   0     IF trend_type GT 0 THEN z2d   trends z2d  trend_type  type       filtrage des donnee dans le cas  t         IF type EQ  t  AND keyword_set filter  THEN BEGIN        print       Applying a running mean filter of width  string filter  format    I3        z2d   smooth z2d  filter        z2d 0:filter 2 1    0        z2d size z2d 1 filter 2 1: size z2d 1 1    0     ENDIF       repetition de la serie temporelle       IF NOT keyword_set repeat_c  THEN repeat_c   1     temps   time 0:jpt 1     IF repeat_c GT 1 THEN BEGIN       taille size z2d        CASE taille 0  OF          1: z2d   reform z2d replicate 1  repeat_c  taille 1 repeat_c           2: BEGIN             z2d   z2d replicate 1  repeat_c              z2d   reform z2d  taille 1  taille 2 repeat_c   over           END           ELSE:        ENDCASE       temps    temps   lindgen jpt REPEAT_c 1 1 temps 1 temps 0 temps jpt 1     ENDIF       selection du type de graphique        taille size z2d     case taille 0  of       2 : typdes 2d        1 : begin          z1d z2d          typdes 1d           if keyword_set OV1D  then begin             yy   z2d             if n_elements datmin  NE 0 then tempsmin   date2jul datmin                ELSE tempsmin   temps 0    on shift l axe du temps pour des questions de precision sur les   dates du calendier julien en long qui sont passes en float ds les axes             xx   temps tempsmin              x range x range tempsmin              x tickv x tickv tempsmin   on fait un faux plot pour appliquer ces changements              plot 0   0 noerase xstyle 5  ystyle   5  title     subtitle     ytitle     xtitle                 goto  trace1d          endif       end    endcase   on construit le mask pour cela le tableau doit etre masque  fait   automatiquement a la valeur valmask si on passe ds moyenne ou grossemoyenne     nan   total finite z2d nan   z2d  not very nice when xgridstyle 2    same if xticklen 0 5  not very nice in the middle    so we draw   the top  right  axis by hand using axis          if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF         plot   0   0   nodata   noerase  _extra   ex             xstyle   1 4 keyword_set endpoints  AND type EQ  xt  AND lat1 NE lat2 8 type EQ  yt  OR type EQ  zt              ystyle   1 4 keyword_set endpoints  AND type EQ  yt 8 type EQ  xt    call axis for the missing axis        IF type EQ  xt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  YTICKNAME 0  NE  1 then             ex YTICKNAME   replicate    n_elements ex YTICKNAME          axis  yaxis   1  ystyle   1  yticklen   0               ytickname   replicate     y ticks 1  _extra   ex       ENDIF       IF  type EQ  yt  OR type EQ  zt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 then             ex XTICKNAME   replicate    n_elements ex XTICKNAME         axis  xaxis   1  xstyle   1  xticklen   0             xtickname   replicate     x ticks 1  _extra   ex       ENDIF   ajout d un axe ds le cas ou l on utilise endpoints       if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     barre de couleur         colnumb   colnumb 0:ncontour 1 keyword_set strictfill        barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                         position   posbar  _extra   ex      endif     1d   trace1d:    if  typdes eq  1d  then begin       if  not keyword_set col1d  then col1d   0       if keyword_set sty1d  then BEGIN  si on veut faire des barres          IF strlowcase strtrim sty1d  EQ  bar  then begin              y range    y range 0 y range 1 y range 0 05 y range 1               bar_plot  yy  background    d n_colors 1   not very nice when xgridstyle 2  same if   xticklen 0 5  not very nice in the middle       so we draw the top axis by hand using axis           if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire             if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          ENDIF          plot   0   0   nodata   noerase                xstyle   1 8 1 keyword_set exchange_xy                 ystyle   1 8 keyword_set exchange_xy  _extra   ex   call axis for the missing axis           if n_elements ex  NE 0 then BEGIN    force tickname to blank array             if  where tag_names ex  EQ  YTICKNAME 0  NE  1 AND keyword_set exchange_xy  then ex YTICKNAME   replicate    n_elements ex YTICKNAME              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 AND NOT keyword_set exchange_xy  then ex XTICKNAME   replicate    n_elements ex XTICKNAME           ENDIF          if keyword_set exchange_xy  then  axis  yaxis   1  ystyle   1                yticklen   0  ytickname   replicate     y ticks 1  _extra   ex            ELSE axis  xaxis   1  xstyle   1  xticklen   0                xtickname   replicate     x ticks 1  _extra   ex        ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex    endif fini:     on remet l axe du temps en jours julien IDL et non pas en jours   juliens comptes a partir tempsmin       if type EQ  xt  then BEGIN         y range y range tempsmin         y tickv y tickv tempsmin    ENDIF ELSE BEGIN         x range x range tempsmin        x tickv x tickv tempsmin    ENDELSE   on fait un faut plot pour que ces valeurs soient prises en   consideration    plot   0   0   nodata   noerase  xstyle   5  ystyle   5          title     subtitle     ytitle     xtitle           3eme partie: impression eventuelle        terminedessin  _extra   ex    if keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps pltt  systime 1 tempsun           return end  ");
-a[253] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltz.html", "pltz.pro", "", "          NAME:  PLTZ     PURPOSE:  trace des graphes verticaux     CATEGORY:         Graphics     CALLING SEQUENCE:  pltz  champ  min  max      INPUTS:  champ: le champ dont on veut faire la coupe verticale champ  peut etre de 2 types:           1  un tableau 2d ou 3d             Si le champ est 2d undiquer avec le mot cle boxzoom les           delimitations geographiques de la boxzoom  Si le chyamp est           3d  on extrait la section et on moyenne eventuellement avant           de faire le plot           2  une structure repondant aux critaire specifies par           litchamp pro  cf  IDL  xhelp litchamp  le tableau contenu           ds la structure doit etre 2 ou 3d cf cas 1  si dessus     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  200    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           CB_TITLE: le titre de la colorbar          CB_SUBTITLE: le soustitre de la colorbar          CB_CHARSIZE: The character size of the color bar annotations    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              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   white    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 reponadnt aux meme caracteristiques   que l argument numero 1 de pltz           ENDPOINTS: mot clef specifiant que l on veut faire une coupe         verticale en diagonale  les coordonnees des extremites de         celle ci sont alors definies les 4 elements du vecteur         ENDPOINTS:  x1 y1 x2 y2  qui sont les coordonnees     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 utilisee pour colorier le graphe                sans toucher au noir  au blanc et a la palette utilisee     ZRATIO: lorsque le dessin presente une partie zoomee  rapport de   taille entre la partie zommee  hz  hauteur zoom  et le dessin entier  ht    hauteur total  Par defaut  2 3    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 la fenetre a etre en position  allongee            LCT: entier designant le numero de la palette de couleur que         l on veut utiliser pour le plot             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            NOTRI: pour forcer a ne pas utiliser de triangulation            OVERPLOT: pour faire un plt par dessus un autre  Rq:         contrairemnet a l utilisation de CONTOUR          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            SIN: activer ce mot cle si l on veut que l  axe des x soit         trace en sinus de la latitude qd on fait une coupe  yz             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    TRANS: fait un postscript  active  post automatiquement  et l imprime    si on le desire  sur un transparant            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    WINDOW: nimero de la fenetre ou l on veut faire le graphe  permet   d ouvrir plusieurs fenetres  par defaut on ouvre  IDL0             WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W             XZ: force a faire une coupe xz            YZ: force a faire une coupe yz    YXASPECT: rapport d echelle entre y et x  par ex:  1 pour un repere   presque orthonorme   2 si l axe des y est environ 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               WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W     ZOOM: profondeur jusqu a laquelle on fait un zoom  par defaut 200m ou   la profondeur maximale si elle est inf a 200            ZEROMIDDLE: fo force the middle of the colorbar to be equal         to 0  force max max abs min max  and min max      OUTPUTS:     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          pro pltz  tab  giventype  givenmin  givenmax  BOXZOOM   boxzoom  CONTOUR   contour               ENDPOINTS   endpoints  INTERVALLE   intervalle  INV   inv  ZRATIO   zratio               CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel               STYLE   style  CONTMAX   contmax  SIN   sin  TYPEIN   typein               CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel               NOTRI   notri  USETRI   usetri  FILLXDIR   fillxdir               ZOOM   zoom  XZ   xz  YZ   yz  MININ   minin  MAXIN   maxin               STRICTFILL   strictfill  OVERPLOT   overplot  MASKFILL   maskfill               WDEPTH   wdepth  REALSECTION   realsection               _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance       1ere partie: initialisation et petits calculs     on ne reinitialise pas qd on rapelle pltz en boucle pour utiliser contour   if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt     if n_elements contour  ne 4 THEN saveboxparam   boxparam4pltz dat      lecture du champ     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 minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if n_elements realsection  EQ 0 then realsection   1   IF n_elements usetri  EQ 0 THEN BEGIN     IF n_elements notri  NE 0 THEN usetri   2 notri ELSE usetri   1   ENDIF   no need of triangulation   IF usetri EQ 1 AND keyword_set realsection  THEN usetri   0   did we specify the type     if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   ENDIF      checktypeminmax   pltz  TYPE   type  MIN   min  MAX   max         XZ   xz  YZ   yz  ENDPOINTS   endpoints  _extra   ex     if keyword_set endpoints  then begin     section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type          BOXZOOM   boxzoom  DIREC   direc  WDEPTH   wdepth  _extra   ex     if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       gdep   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       gdep   gdept firstzt:lastzt        nz   nzt     ENDELSE     mask   z2d LE valmask 10    ENDIF ELSE BEGIN     z2d   checkfield tab   pltz  TYPE   type  BOXZOOM   boxzoom                          DIREC   direc  WDEPTH   wdepth  _extra   ex      if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     IF realsection EQ 1 THEN grille  mask  glam  gphi  gdep  nx  ny  nz  ifpltz   type  WDEPTH   wdepth       ELSE grille  mask  glam  gphi  gdep  nx  ny  nz  WDEPTH   wdepth   ENDELSE   stop     profmax    y range 0    profmin    y range 1    if not keyword_set zoom  then zoom   200   zoom   zoom 0    IF zoom LT profmin THEN zoom   profmax   if zoom GE vert2 then zoom   profmax   construction of the mask and of the axis   axis4pltz  type  mask  glam  gphi  gdep  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   to draw from bottom to top  avoid using cell_fill    z2d   reverse z2d  2        determination du mi:min et du ma:max de tab1 ainsi que de max: max et     min: min pour le dessin      nan   total finite z2d   nan   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1b mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values  find the coordinates of the mask        if  where mask EQ 0 0  EQ  1 AND NOT keyword_set nan  then notri   1     if keyword_set notri  then trifield    1       ELSE trifield   triangule mask basic    if  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  THEN       trifield   triangule mask   basic      IF NOT keyword_set endpoints   THEN BEGIN     if keyword_set nan  then trinan   triangule masknan   basic  coinmonte   coinmontenan  coindescend   coindescendnan      decoupeterre  mask  glammsk  gphimsk  gdepmsk  type   type  WDEPTH   wdepth  REALSECTION   realsection     axis4pltz  type  mask  glammsk  gphimsk  gdepmsk  XXAXIS   xmask  ZZAXIS   zmask  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   ENDIF ELSE BEGIN     xmask   xxaxis     zmask   zzaxis   ENDELSE      if  usetri GE 1 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN      IF keyword_set realsection  THEN trimsk   triangule mask   basic        ELSE trimsk   triangule mask   basic  coinmonte   coinmontemask                                 coindescend   coindescendmask    ENDIF          dessin en lui meme     pltbase  z2d  xxaxis  zzaxis  mask  xmask  zmask         level_z2d  colnumb  overplot   overplot         contour   contour  trichamp   trifield  trimsk   trimsk          c_linestyle   linestyle         c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  unsur2   unsur2         masknan   masknan  trinan   trinan         coinmontenan   coinmontenan  coindescendnan   coindescendnan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         REALSECTION   realsection  USETRI   usetri  _extra   ex     rappelle de pltz en boucle qd contour est active     if n_elements contour  eq 4 then BEGIN   c est la 2eme fois que je passe ds pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    je renvoie le min  le max et l unite     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     pltz  contour  contmin  contmax  CONTOUR   pourlegende  ZRATIO   zratio           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style   noerase            NLEVEL   contnlevel  ZOOM   zoom  BOXZOOM   boxzoom  ENDPOINTS   endpoints           STRICTFILL   strictfill  REALSECTION   realsection  MASKFILL   maskfill           USETRI   usetri  WDEPTH   wdepth  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       3eme partie: dessin du cadre  legendes  colorbar      if keyword_set overplot  then BEGIN       y range     zoom  profmin    on repasse en coordonees physiques      plot   0   0   nodata   noerase  title     subtitle     xstyle   5  ystyle   5     GOTO  fini   endif     legendes   affichage de celles ci     legende  mi  ma  type  CONTOUR   pourlegende  INTERVALLE   intervalle  DIREC   direc  endpoints   endpoints  _EXTRA   ex   if type eq  yz  then xaxe    lataxe  else xaxe    lonaxe    if keyword_set sin  OR NOT key_onearth then xaxe       cadre applique par defaut   plot   xxaxis 0  xxaxis n_elements xxaxis 1   zratio   zratio   noerase         xstyle   1 4 keyword_set endpoints  AND  type EQ  xz  AND lat1 NE lat2  OR  type EQ  yz  AND lon1 NE lon2          xtickformat   xaxe  _extra   ex   ajout d un axe ds le cas ou l on utilise endpoints   if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     axe y en 1 ou 2 parties     if n_elements ex  NE 0 then BEGIN    pour ne plus mettre de titre     if  where tag_names ex  EQ  TITLE 0  NE  1 then ex TITLE         pour ne plus mettre de sous titre     if  where tag_names ex  EQ  SUBTITLE 0  NE  1 then ex SUBTITLE         pour n avoir q un ytitle     if  where tag_names ex  EQ  YTITLE 0  NE  1 then BEGIN        ytitle   ex YTITLE       ex YTITLE           endif   ENDIF   htotal   posfenetre 3 posfenetre 1    hzoom   1 zratio htotal   if zoom LT profmax then       plot   0   0   nodata   noerase  ystyle   1  yrange    profmax  zoom 0 001          position   posfenetre 0  0  0   hzoom  _extra   ex  title     subtitle     ytitle          y range     zoom  profmin      on repasse en coordonees physiques    plot   0   0   nodata   noerase  ystyle   1  _extra   ex         title     subtitle     ytitle     position   posfenetre 0  htotal hzoom  0  0      pour ecrire le ytitle      if  d name EQ  PS  then       xs    max page_size  min   mi 1 key_portrait    mi key_portrait d x_px_cm     ELSE xs    d x_size   if n_elements ytitle  NE 0 then  y title   ytitle   charsize   chkstru ex   ycharsize   extract    if charsize EQ  1 then charsize    p charsize   IF chkstru ex   charsize  THEN ex charsize   charsize   if chkstru ex   ytitle   extract  NE   then       decalage   string format    e10 3  profmax    decalage   float strmid decalage  strpos decalage   e 1    posy   posfenetre 1 1 htotal 2   posx   posfenetre 0 decalage 3 d x_ch_size charsize xs   xyouts  posx  posy   y title   normal  orientation   90  color   0  ALIGNMENT    5  charsize   charsize  _extra   ex      barre de couleur     colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       4eme partie: impression eventuelle     fini:   terminedessin  _extra   ex         sortie:   restoreboxparam   boxparam4pltz dat      if keyword_set key_performance  NE 0 THEN print   temps pltz  systime 1 tempsun    return end   ");
-a[254] = new Array("./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html", "sbar_plot.pro", "", "          NAME:sbar_plot  super bar_plot      PURPOSE: meme chose que bar_plot mais compatible avec l ensemble de   l environnement  common pro est inclu      CATEGORY:dessine     CALLING SEQUENCE: sbar_plot y      INPUTS: cd IDL bar_plot     KEYWORD PARAMETERS:      meme que ceux de bar_plot avec en plus:        COLORS: un entier donnant la couleur de toutes les barres de        couleurs   contrairement a colors qui est en vecteur donnant le        couleur de chaque barre de couleur           NOREINITPLT: a actier si on ne veut pas que les variables        d environnemet  p   x   y   z soient reinitialisees par la        procedure reinitplt     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:       Si NOREINITPLT n est pas ective toutes les variables        d environnemet  p   x   y   z sont reinitialisees par la        procedure reinitplt     RESTRICTIONS:     EXAMPLE:          IDL  sbar_plot  indgen 10 small    2 2 2 rempli        IDL  sbar_plot  indgen 10 small    2 2 3 noerase        IDL   ps     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999          PRO sbar_plot  Values  COLORS   colors  NOREINITPLT   noreinitplt  _extra   ex      compile_opt idl2  strictarrsubs    common   1  je reinitialise l environnememt graphique  les variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  je place le dessin a l ecran comme sur le postcript     IF chkstru ex   overplot EQ 0 THEN placedessin   autre  _extra   ex   3  je fais mon joli dessin     if n_elements COLORS  NE 0 then BEGIN       if n_elements COLORS  EQ n_elements Values  then col   colors          ELSE col   replicate colors 0  n_elements Values     ENDIF ELSE col   congrid indgen d n_colors   256  n_elements Values       bar_plot  Values  background    p background  colors   col                  xstyle   1  ystyle   1  _extra   ex   4  je termine le dessin     terminedessin  _extra ex      return end");
-a[255] = new Array("./ToBeReviewed/PLOTS/DESSINE/scontour.html", "scontour.pro", "", "          NAME:scontour  super contour      PURPOSE: meme chose que contour mais compatible avec l ensemble de   l environnement  common pro est inclu      CATEGORY:dessine     CALLING SEQUENCE: scontour  z   x  y       INPUTS:cd IDL contour     KEYWORD PARAMETERS:      meme que ceux de bar_plot avec en plus:        NOREINITPLT: a actier si on ne veut pas que les variables        d environnemet  p   x   y   z soient reinitialisees par la        procedure reinitplt     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:        IDL  z   dist 100          IDL  scontour  z  nlevels 10 small 1 2 1 xstyle 1 ystyle 1        IDL   ps     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999         PRO scontour  x  y  z  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  je reinitialise l environnememt graphique  les variables  x   y et  p :    if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  je place le dessin a l ecran comme sur le postcript    if ex contains norease and c_orientation keywords we force ex noerase   0   IF chkstru ex   overplot  EQ 0 THEN placedessin   autre  _extra   ex   fiddle when noerase is used with c_orentation    call contour with  nodata to get the graphic envoronment  then force   noerase   0 and overplot   1   IF size ex   type  EQ 8 THEN BEGIN   check if noerase is used with c_orentation     alltags   strlowcase tag_names ex      dummy   where alltags EQ  noerase  count1      dummy   where alltags EQ  c_orientation  count2      IF count1 count2 NE 0 THEN BEGIN        case n_params  OF         1:contour  x   nodata  _EXTRA   ex         2:contour  x  y   nodata  _EXTRA   ex         3:contour  x  y  z   nodata  _EXTRA   ex       endcase       ex noerase   0       ex   get_extra overplot  _extra   ex        noerase_orientation   1     ENDIF    ENDIF    3  je fais mon joli dessin    case n_params  OF     1:contour  x  xstyle   1  ystyle   1  _EXTRA   ex     2:contour  x  y  xstyle   1  ystyle   1  _EXTRA   ex     3:contour  x  y  z  xstyle   1  ystyle   1  _EXTRA   ex   ENDCASE   fiddle when noerase is used with c_orentation  draw the contour axis   IF keyword_set noerase_orientation   THEN BEGIN     ex noerase   1     ex overplot   0     case n_params  OF       1:contour  x  xstyle   1  ystyle   1   nodata  _EXTRA   ex       2:contour  x  y  xstyle   1  ystyle   1   nodata  _EXTRA   ex       3:contour  x  y  z  xstyle   1  ystyle   1   nodata  _EXTRA   ex     ENDCASE   ENDIF   4  je termine le dessin    terminedessin  _extra   ex     return end");
-a[256] = new Array("./ToBeReviewed/PLOTS/DESSINE/splot.html", "splot.pro", "", "          NAME:splot  super plot      PURPOSE: meme chose que plot mais compatible avec l ensemble de   l environnement  common pro est inclu      CATEGORY:dessine     CALLING SEQUENCE: PLOT   X  Y      INPUTS:cd IDL   plot     KEYWORD PARAMETERS:    meme que ceux de plot avec en plus:          NOREINITPLT: a actier si on ne veut pas que les variables        d environnemet  p   x   y   z soient reinitialisees par la        procedure reinitplt     OUTPUTS:       Si NOREINITPLT n est pas ective toutes les variables        d environnemet  p   x   y   z sont reinitialisees par la        procedure reinitplt     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:          IDL  splot  indgen 10 ystyle 1 small 1 2 1 portrait        IDL  splot   indgen 10 ystyle 1 small 1 2 2 noerase        IDL   ps     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999         PRO splot   x  y  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  je reinitialise l environnememt graphique  les variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  je place le dessin a l ecran comme sur le postcript     placedessin   autre  _extra   ex   3  je fais mon joli dessin     if n_elements y  EQ 0 then plot   x  xstyle   1  ystyle   1  _EXTRA   ex      ELSE plot   x  y  xstyle   1  ystyle   1  _EXTRA   ex   4  je termine le dessin     terminedessin  _extra ex       return end");
-a[257] = new Array("./ToBeReviewed/PLOTS/DESSINE/tvplus.html", "tvplus.pro", "", "          NAME: tvplus     PURPOSE: enhanced version of tvscl     CATEGORY: quick exploration of 2D arrays      CALLING SEQUENCE: tvplus z2d  cellsize      INPUTS:         z2d: 2D array to visualize        cellsize:  optional  this is the size  in pixel  of the square      representing 1 array element  By default  this size is computed      automatically in order that the size of the plotting window do      not exceed the screen size  If the user specify a large value      of cellsize that forces tvplus to create a window larger than      the screen  a  scrolling window  will be displayed instead of a      regular window  Unfortunately the nice fonctionnalities of tvplus      are not coded for  scrolling window  case      KEYWORD PARAMETERS:           BOTTOM: The lowest color index of the colors to be loaded in         the bar  default is 0            C_NAN: The color number that should be used for the NaN values          default value is  d n_colors  1 e6  the test to find the masked value is ge         abs mask 10  This is necessary to avoid the rounding errors           MIN and MAX: scalars used to specify the min and max values         of the color bar  default is from 0 to  d n_colors  tvplus  dist 100      MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          18 12 98   Aug 2005: quick cleaning   english         PRO tvplus  z2d  cellsize  BOTTOM   bottom  C_MASK   c_mask  C_NAN   c_nan  WINDOW   window                 MIN   min  MAX   max  MASK   mask  OFFSET   offset  NOUSEINFOS   NOUSEINFOS                 NCOLORS   ncolors  NOINTERP   nointerp  _EXTRA   ex       compile_opt idl2  strictarrsubs     IF n_elements z2d  EQ 0 THEN return   arr   reform float z2d      check the size of the input array      if  size arr 0  NE 2 then begin     ras   report Input array must have only 2 dimensions and not   strtrim size arr   n_dimensions  1      return   endif     def of ncolmax  bottom  topcol et ncolors     ncolmax    d n_colors  arr     truemin   min   ENDIF ELSE truemin   min arr    if n_elements max  NE 0 then BEGIN      arr   arr  floor x cellsize   floor y cellsize   floor x cellsize   floor y cellsize   floor x2 cellsize   floor y2 cellsize     size arr 2 cellsize 1          x     x  x2    x    x sort x          y     y  y2    y    y sort y          IF keyword_set OFFSET  THEN offset    x 0  y 0 offset ELSE offset    x 0  y 0          tvplus  z2d x 0 :x 1  y 0 :y 1    WINDOW   window  MIN   min  MAX   max                     MASK   mask  C_MASK   c_mask  C_NAN   c_nan   NOUSEINFOS  OFFSET   OFFSET                     NCOLORS   ncolors  NOINTERP   nointerp  BOTTOM   bottom  _EXTRA   ex         return       END       ELSE:     endcase   ENDWHILE      x   xenvsauve    y   yenvsauve    p   penvsauve    x range   1 0  nx cellsize 5 offset 0     y range   1 0  ny cellsize 5 offset 1      return end");
-a[258] = new Array("./ToBeReviewed/PLOTS/DIVERS/addaxe.html", "addaxe.pro", "", "          NAME:addaxe     PURPOSE:ajoute un axe qd on fait une section oblique ds pltz  pltt   ou plt1d     CATEGORY:autour de pltz  pltt et plt1d     CALLING SEQUENCE:addaxe  type  posfenetre      INPUTS:endpoints:coordonnees des extremites de  a section          type: un string de 2 characteres specifiant qule type de plot   on fait           posfenetre: ler vecteur  p posotion correspondant a  a          position du cadre de la partie dessin du plot      KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr            PRO addaxe  endpoints  type  posfenetre  _EXTRA   ex     compile_opt idl2  strictarrsubs    common      IF strpos type   x  NE  1 THEN BEGIN       IF endpoints 1  EQ endpoints 3  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lonaxe          formeaxe1    lataxe          titreaxe    latitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    j index        ENDELSE       range    endpoints 1  endpoints 3        if endpoints 2  LT endpoints 0  THEN range   reverse range     ENDIF ELSE BEGIN       IF endpoints 0  EQ endpoints 2  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lataxe          formeaxe1    lonaxe          titreaxe    longitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    i index        ENDELSE       range    endpoints 0  endpoints 2        if endpoints 3  LT endpoints 1  THEN range   reverse range     ENDELSE    if type EQ  yt  then BEGIN       axis yaxis 0 ytickformat formeaxe0 color 0 ystyle   1  _EXTRA   ex       axis yaxis 1 ytickformat formeaxe1 color 0 ystyle   1 ytitle titreaxe  yrange   range  _EXTRA   ex    ENDIF ELSE BEGIN       axis xaxis 0 xtickformat formeaxe0 color 0 xstyle   1 _EXTRA   ex       axis xaxis 1 xtickformat formeaxe1 color 0 xstyle   1 xtitle titreaxe  xrange   range  _EXTRA   ex    ENDELSE       return end");
-a[259] = new Array("./ToBeReviewed/PLOTS/DIVERS/autoscale.html", "autoscale.pro", "", "          NAME: autoscale     PURPOSE: on donne un min et un max et la procedure renvoie le   contour intevalle qui va bien et la valeur des labels      CATEGORY: autour de CONTOUR     CALLING SEQUENCE: autoscale  min  max  ci      INPUTS: min et max: 2 reels specifiants entre quel min et quel max   on veut tracer un contour     KEYWORD PARAMETERS: none     OUTPUTS: ci et evenuellement levels  ci est un reel qui donne le   contour intevalle  A utiliser ds CONTOUR avlec le mot clef LEVEL      COMMON BLOCKS:     SIDE EFFECTS:      CI est un multiple de l unite en unite log de 10     force le nombre de contour a etre pair      RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: G  Roullet   aout 99  gr lodyc jussieu fr            PRO autoscale  min  max  ci      estimation d un premier CI  notez la presence du floor  arrondi inferieur    ce CI est un multiple de l unite en unite log de 10        compile_opt idl2  strictarrsubs       ci    max min 20      ci   10 floor alog10 ci       n   0     ci0   ci       coef    2  2 5  5  10      test differents CI  contour intervales  i e  1  2  2 5  5 et 10   jusqu a ce que le nombre de contours soit inferieur a 30        WHILE ceil max min ci  GE 30 DO BEGIN            ci   ci0 coef n            n   n 1     ENDWHILE       min   floor min ci 2 ci 2     max   ceil max ci 2 ci 2          nlevels   round max min ci            force le nombre de contour a etre pair       IF nlevels MOD 2 EQ 1 THEN BEGIN            nlevels   nlevels 1           max   max ci     END    END     ");
-a[260] = new Array("./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html", "axis4pltz.pro", "", "          NAME:axis4pltz     PURPOSE:compute the mask and the axis for a vertical section     CATEGORY:     CALLING SEQUENCE:      INPUTS:mask: 3d mask          glam  gphi: 2d longitudes and latitudes          z:1d depth     KEYWORD PARAMETERS:          XXAXIS to get the xaxis we need to use in pltbase          ZZAXIS to get the yaxis we need to use in pltbase            Others: see pltz      OUTPUTS:     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         June 24  2002          PRO axis4pltz  type  mask  glam  gphi  z  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF        define the mask used for this section     if mask 0  NE  1 AND  size mask 0  NE 2 then begin     if type EQ  xz  then mask   total mask  2    1       ELSE mask   total mask  1    1   endif     define xxaxis and yyaxis the axis used for this section     nx    size glam 1    CASE  size gphi 0  OF     1:ny    size gphi 1      2:ny    size gphi 2    ENDCASE   CASE  size z 0  OF     1:nz    size z 1      2:nz    size z 2    ENDCASE     if type eq  yz  then BEGIN      IF  size gphi 0  EQ 1 then xxaxis   gphi ELSE BEGIN        IF keyword_set key_irregular  THEN BEGIN          cln    where gphi EQ max gphi 0          xxaxis   reform gphi cln MOD nx          ENDIF ELSE xxaxis   reform gphi 0        ENDELSE     if keyword_set sin  then xxaxis   sin pi 180 xxaxis      if  size z 0  EQ 1 THEN zzaxis   z ELSE zzaxis   z   ENDIF ELSE BEGIN     xxaxis   glam  0      if  size z 0  EQ 1 then zzaxis   z ELSE zzaxis   z   ENDELSE      on projette l axe z dans  0 1      if not keyword_set zratio  then zratio   2 3   if zoom ge profmax then zratio   1    if zoom LT profmax then begin     mp   projsegment profmin  zoom   0  zratio   mp      zzaxis where zzaxis LE zoom    mp 0 zzaxis where zzaxis LE zoom mp 1      mp   projsegment zoom  profmax   zratio  1   mp      zzaxis where zzaxis GE zoom    mp 0 zzaxis where zzaxis GE zoom mp 1    ENDIF ELSE BEGIN     mp   projsegment profmin  profmax   0  1   mp      zzaxis   mp 0 zzaxis mp 1    ENDELSE    to draw from bottom to top  avoid using cell_fill    CASE size zzaxis   n_dimensions  OF     1:zzaxis   reverse zzaxis       2:zzaxis   reverse zzaxis  2     ENDCASE   if mask 0  NE  1 then mask   reverse mask  2     return end");
-a[261] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", "          NAME:barrecouleur     PURPOSE:surcouche de colorbar     CATEGORY:delestage de l ecriture de plt  pltz  pltt     CALLING SEQUENCE:barrecouleur     SIDE EFFECTS: passer tous les arguments que l on veut grace a _extra     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          23 12 98         PRO barrecouleur  colnumb  clbinf  clbsup  clbdiv                       NOCOLORBAR   nocolorbar  CB_TITLE   cb_title                       NOFILL   nofill  COLOR_c   color_c                       min   min  max   max  divisions   divisions                       CB_SUBTITLE   cb_subtitle  POST   post  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     if keyword_set min  then clbinf   min   if keyword_set max  then clbsup   min   if keyword_set divisions  THEN  clbdiv   divisions   nocolorbar   keyword_set nocolorbar    keyword_set nofill                     keyword_set color_c          def_myuniquetmpdir     IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used        colorbarparam    colnumb:colnumb  clbinf:clbinf                           clbsup:clbsup  clbdiv:clbdiv     ENDIF ELSE BEGIN       save  colnumb  clbinf  clbsup  clbdiv               file   myuniquetmpdir    4colorbar dat     ENDELSE      if keyword_set nocolorbar  then return       ancienx    x    ancieny    y    ancienp    p    reinitplt     x style   1     y style   1        colorbar  cb_color   0  cb_charsize   ancienp charsize            pscolor   keyword_set post  division   clbdiv            min   clbinf  max   clbsup            cb_title   cb_title  discret   colnumb  _extra   ex       x  ancienx     y  ancieny     p  ancienp      return end");
-a[262] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", "          NAME:checkfield     PURPOSE:en entree de plt  pltz  pltt et plt1d  verifie que le   champ donne a bien une taille compatible avec le domaine et fait au   besoin les moyennes pour ressortir en fin de fonction un tableau 2d   si on fait un plot du type:  xy   xz   xt   yz   yt   zt  ou un   tableau 1d si on fait un plot du type  x   y   z   t      CATEGORY:en entree de plt  pltz  pltt et plt1d     CALLING SEQUENCE:res checkfield field  procedure       INPUTS:          filed: un champ recomdant aux criteres de litchamp pro  cf           IDL xhelp litchamp      KEYWORD PARAMETERS:               WDEPTH: to specify that the field is at W depth instad of T            depth  automatically activated if vargrid eq  W      OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         08 02 2000       FUNCTION err_1d  type  n1  name  n2     compile_opt idl2  strictarrsubs     return  report Error in     type     type plot with a 1D input array:                         the number of elements of the input vector  strtrim n1  1                           is not equal to     name      strtrim n2  1   simple  END   FUNCTION err_2d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 2D input array:                         the array dimensions     tostr sz 1:2      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END   FUNCTION err_3d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 3D input array:                         the array dimensions     tostr sz 1:3      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END     FUNCTION checkfield  field  procedure  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  NOQUESTION   noquestion  VECTEUR   vecteur  WDEPTH   wdepth  _EXTRA   ex       compile_opt idl2  strictarrsubs     include commons  cm_4mesh  cm_4cal  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     I1  lecture du champ     if n_elements field  EQ 0 then return  report field undefined    arr   litchamp field    first check   IF n_elements arr  EQ 1 THEN BEGIN     if arr EQ  1 then         return  report Error: input array    1  Maybe the reading did ont perform well   simple        ELSE return  report Error: input array is a scalar   simple         ENDIF   nan   total finite arr   nan    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1     jpk 1        nzt   lastzt   firstzt   1     ENDELSE      updateold   ENDIF   make the automatic definition of type for pltz if type is not specified    IF type EQ  z  AND procedure EQ  pltz  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz    make the automatic definition of type for pltt if type is not specified    IF type EQ  unkownpltt  AND procedure EQ  pltt  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt      verification de la taille du tableau d entree et de la valeur de type     grille   1   1   1   1  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz  WDEPTH   wdepth     basic checks     CASE 1 OF     nx EQ 1: IF strpos type   x  NE  1 THEN return  report Error: impossible to make a     type     type plot with nx   1    simple      ny EQ 1: IF strpos type   y  NE  1 THEN return  report Error: impossible to make a     type     type plot with ny   1    simple      nz EQ 1: IF strpos type   z  NE  1 THEN return  report Error: impossible to make a     type     type plot with nz   1    simple      jpt EQ 1: IF strpos type   t  NE  1 THEN return  report Error: impossible to make a     type     type plot with jpt   1    simple      ELSE:   ENDCASE     is the size of the array compatible with teh domain      arr   fitintobox temporary arr  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz      sz   size arr    case sz 0  of       0:return  arr       1:BEGIN       nele   n_elements arr        case type of          t :if jpt NE nele THEN return  err_1d type  nele   jpt  jpt           x :IF  nx NE nele THEN return  err_1d type  nele    nx   nx           y :IF  ny NE nele THEN return  err_1d type  nele    ny   ny           z :IF  nz NE nele THEN return  err_1d type  nele    nz   nx          ELSE:return  report Error:                                    Impossible to make a  type  plot with a 1D array   simple        ENDCASE     END        2:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    y    xy array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    z    x y z array             sz 1  EQ nx AND sz 2  EQ jpt:direc    t    xt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         end          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    x    xy array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    z     x yz array             sz 1  EQ ny AND sz 2  EQ jpt:direc    t    yt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    x    x y z array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    y     x yz array             sz 1  EQ nz AND sz 2  EQ jpt:direc    t    zt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ jpt:direc    x    xt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ jpt:direc    y     x yt array             nx EQ 1 AND ny EQ 1 AND sz 1  EQ nz AND sz 2  EQ jpt:direc    z     x y zt array             ELSE:return  err_2d type  sz  nx  ny  nz            ENDCASE         END          xy :IF sz 1  NE nx OR sz 2  ne  ny THEN return  err_2d type  sz  nx  ny  nz    xy array          xz :IF sz 1  NE nx OR sz 2  ne  nz THEN return  err_2d type  sz  nx  ny  nz    xz array          yz :IF sz 1  NE ny OR sz 2  NE  nz THEN return  err_2d type  sz  nx  ny  nz    yz array          xt :IF sz 1  NE nx OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    xt array          yt :IF sz 1  NE ny OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    yt array          zt :IF sz 1  NE nz OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    zt array       ENDCASE     END        3:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    yz    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt    x y zt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    yt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xz    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt     x yzt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xy    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yt     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xt    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xy    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yz     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xz    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xy :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    z    xyz array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    t    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    y    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t    x y zt             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          yz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    x    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t     x yzt             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          xt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    y    xyt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          yt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    x    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          zt :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    x    x y zt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    y     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             ENDCASE         END        ENDCASE      END        4:BEGIN        CASE type OF          x :direc    yzt           y :direc    xzt           z :direc    xyt           t :direc    xyz           xy :direc    zt           xz :direc    yt           yz :direc    xt           xt :direc    yz           yt :direc    xz           zt :direc    xy        ENDCASE      END   ENDCASE     IF keyword_set direc  THEN BEGIN     IF strpos direc   t  NE  1 OR strpos type   t  NE  1 THEN         arr   grossemoyenne temporary arr  direc  boxzoom   localbox                               NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex        ELSE arr   moyenne temporary arr  direc  boxzoom   localbox                            NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex    ENDIF           RETURN  arr END");
-a[263] = new Array("./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html", "checktypeminmax.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr            PRO checktypeminmax  procedure  TYPE   type  MIN   min  MAX   max  XY   xy                          XZ   xz  YZ   yz  XT   XT  YT   YT  ZT   zt                          TT   tt  XX   xx  YY   yy  ZZ   zz                          XINDEX   xindex  YINDEX   yindex                          ENDPOINTS   endpoints  _extra   ex       compile_opt idl2  strictarrsubs    common      case size type   type  of       0:       7:       ELSE:BEGIN          vraimin   type          case size min   type  of             0:BEGIN                 min   vraimin                type   0             END             7:BEGIN                 type   min                min   vraimin             end             ELSE:BEGIN                case size max   type  of                   0:BEGIN                      max   min                      min   vraimin                      type   0                   END                   7:BEGIN                       type   max                      max   min                      min   vraimin                   end                   ELSE:BEGIN                      rien   report Probleme dans la definition des arguments en entree de                                         procedure   chkwidget                       return                   end                endcase             end          endcase       end    endcase      if keyword_set xy  then type    xy     if keyword_set xz  then type    xz     if keyword_set yz  then type    yz     if keyword_set xt  then type    xt     if keyword_set yt  then type    yt     if keyword_set zt  then type    zt     if keyword_set tt  then type    t     if keyword_set xx  then type    x     if keyword_set yy  then type    y     if keyword_set zz  then type    z       if keyword_set type  then begin      if type EQ  plt  then type          if type EQ  pltz  then type          if type EQ  pltt  then type          if type EQ  plt1d  then type        endif     determination du type de plot que l on veut faire      if NOT keyword_set type  then BEGIN       case procedure of          plt :type    xy           pltz :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz            ENDIF ELSE type    z          END          pltt :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              lat2   max endpoints 1  endpoints 3              if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt            ENDIF ELSE type    unkownpltt          END          plt1d :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    x  else type    y            ENDIF ELSE BEGIN             type                 WHILE type NE  x  AND type NE  y  AND type NE  z  DO BEGIN               type   xquestion Quel type de plot 1D voulez vous faire  x y z ou t                                       chkwidget                type   strlowcase type              endwhile           ENDELSE         END       endcase     ENDIF      WHILE type NE  xy  AND type NE  xz  AND type NE  yz          AND type NE  xt  AND type NE  yt  AND type NE  zt          AND type NE  t  AND type NE  x  AND type NE  y          AND type NE  z  AND type NE  unkownpltt  DO BEGIN       type   xquestion What kind of plot do you want to do  xy xz yz xt yt zt t x y z                                 chkwidget        type   strlowcase type      ENDWHILE               return   end");
-a[264] = new Array("./ToBeReviewed/PLOTS/DIVERS/determineminmax.html", "determineminmax.pro", "", "          NAME:determineminmax     PURPOSE:determiner le min et le max d un tableau masque     CATEGORY: delestage de l ecriture de plt  pltz  pltt     CALLING SEQUENCE:determineminmax  tab  mask  vraimin  vraimax     INPUTS:           tab: le tableau dont il faut determiner le min et le max         mask: le tableau de masque      KEYWORD PARAMETERS:           minin et maxin deux scalaire qui s il ne sont pas definits         prennent la valeur de vraimin et vraimax            ZEROMIDDLE: fo force the middle of the colorbar to be equal         to 0  force max max abs min max  and min max      OUTPUTS:           vraimin et vraimax: le min et le max du tableau     COMMON BLOCKS:  common pro     SIDE EFFECTS:degarde si le champ est constant sur la mer     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98         PRO determineminmax  tab  mask  vraimin  vraimax  glam  gphi  MAXIN   maxin  MININ   minin  INTERVALLE   intervalle  usetri   usetri  ZEROMIDDLE   zeromiddle  _extra   ex     compile_opt idl2  strictarrsubs    common       type de grille verticale:   if vargrid EQ  W  then nz   nzw ELSE nz   nzt   liste des points mer   if  size mask 0  EQ 3 then mer   mask    0      ELSE mer   mask   si key_irregular eq 1  on masque aussi les points qui ne rentrent   pas ds le domaine geographique definit par lon1 lon2 lat1 lat2   if keyword_set key_irregular  AND n_elements glam  NE 0 AND n_elements gphi  NE 0 then begin     dom     where glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2      if dom 0  NE  1 then mer dom    0   endif     mer   where mer eq 1      if mer 0  eq  1 then begin     ras   report Il n y a que de la terre sur le dessin      vraimax   0     vraimin   0     maxin   vraimax 1     minin   vraimin 1     usetri   0     return   endif   ma et mi : max et min sur les points mer   vraimax   max tab mer  min   vraimin  _extra   ex    sameminmax   testvar var   minin  EQ testvar var   maxin     if n_elements maxin  EQ 0 OR sameminmax then maxin   vraimax   if n_elements minin  EQ 0 OR sameminmax then BEGIN      if keyword_set intervalle  then minin   floor vraimin intervalle intervalle       ELSE minin   vraimin   endif   if vraimin eq vraimax then BEGIN     IF size vraimin   type  EQ 1 THEN vraimin   fix vraimin      question    Warning: constant filed  same value everywhere :     strtrim vraimin  2     Shall we make the plot      answer   report question   default_no   question      if answer then begin       maxin   vraimax 1       minin   vraimin 1     endif ELSE tab    1   ENDIF   IF keyword_set zeromiddle  THEN BEGIN       maxin   max abs minin  maxin        minin    maxin   ENDIF     return end");
-a[265] = new Array("./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html", "givewindowsize.pro", "", "FUNCTION givewindowsize       include commons     compile_opt idl2  strictarrsubs    cm_4ps IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew ENDIF        dimensions   get_screen_size RESOLUTION resolution     coef   floor 1 resolution 0     if NOT keyword_set windowsize_scale  then BEGIN      windowsize_scale   1       IF NOT keyword_set key_forgetold  THEN BEGIN       updateold      ENDIF     ENDIF     coef   windowsize_scale   coef       mipgsz   min page_size  max   mapgsz        xsize   coef    mipgsz key_portrait   mapgsz 1 key_portrait      ysize   coef    mipgsz 1 key_portrait    mapgsz key_portrait       return   xsize  ysize  end");
-a[266] = new Array("./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html", "meridienparallele.pro", "", "          NAME:meridienparallele     PURPOSE:trace certains medidiens ou paralles     CATEGORY:     CALLING SEQUENCE:meridienparallele  coupe     INPUTS:coupe: le type de dessin que l on traite     COMMON BLOCKS:  common pro     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98         PRO meridienparallele  coupe     compile_opt idl2  strictarrsubs    common      case coupe of        xy :BEGIN           if lon1 lt 180 and lon2 gt 180 then             plot   180 180 lat1 lat2 noerase color 0          if lon1 lt 0 and lon2 gt 0 then             plot   0 0 lat1 lat2 noerase color 0          if lon1 lt 360 and lon2 gt 360 then             plot   360 360 lat1 lat2 noerase color 0          if lat1 lt 0 and lat2 gt 0 then             plot   lon1 lon2 0 0 noerase color 0       END     endcase     return end");
-a[267] = new Array("./ToBeReviewed/PLOTS/DIVERS/placecolor.html", "placecolor.pro", "", "          NAME:PLACECOLOR     PURPOSE:permet de tracer la colorbar independammment d un graphe     CATEGORY:graph     CALLING SEQUENCE:placecolor pos     INPUTS:  pos:vecteur de 4 elements donnant les coordonnees du coin en bas   a gauche et de celui en haut a droite  en cm  ds lequel on veut faire la   barre de couleur     KEYWORD PARAMETERS: tous ceux de colorbar pro      par defaut trace une barre de couleur du meme type que celle presente ds plt   et pltz  si max  min et divisions ne sont pas stipulees alors max sup min inf   et divisions div     OUTPUTS:     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:utilisable que pour les POSTCRIPT effectues avec plein2dessin     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   7 5 98         pro placecolor  pos  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4ps    IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew    ENDIF        xsave    x    ysave    y    psave    p      reinitplt   z   invert    pos 1 pos    mipgsz   min page_size  max   mapgsz     if key_portrait eq 1 then begin       pos 0 pos 0 mipgsz         pos 1 pos 1 mapgsz           pos 2 pos 2 mipgsz        pos 3 pos 3 mapgsz        endif else begin       pos 0 pos 0 mapgsz           pos 1 pos 1 mipgsz           pos 2 pos 2 mapgsz           pos 3 pos 3 mipgsz        ENDELSE      def_myuniquetmpdir      IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used         colnumb   colorbarparam colnumb       clbinf   colorbarparam clbinf        clbsup   colorbarparam clbsup       clbdiv   colorbarparam clbdiv      ENDIF ELSE BEGIN       file   myuniquetmpdir    4colorbar dat        IF file_test file  THEN BEGIN          restore  file                  if size ex   type  EQ 8 then BEGIN              if  where tag_names ex  EQ  MIN 0  NE  1 then clbinf   ex MIN             if  where tag_names ex  EQ  MAX 0  NE  1 then clbsup   ex MAX             if  where tag_names ex  EQ  DIVISIONS 0  NE  1 then clbdiv   ex DIVISIONS          ENDIF            COLORBAR  COLOR   0  DIVISIONS   clbdiv  DISCRET   colnumb               cb_color   0  POSITION   pos  MAX   clbsup               MIN   clbinf  cb_charsize    p charsize               _extra   ex       ENDIF    ENDELSE       x   xsave     y   ysave     p   psave      return end");
-a[268] = new Array("./ToBeReviewed/PLOTS/DIVERS/placedessin.html", "placedessin.pro", "", "          NAME:placedessin     PURPOSE: mise en place du dessin   ouverture de la fenetre ou du PS     CATEGORY: pour alleger les programmes plt  pltz  pltt      CALLING SEQUENCE: placedessin  typedessin posfenetre  posbar     INPUTS:     typedessin: une chaine de charactere specifiant quelle procedure     appelle placedessin:  plt   pltz   pltt      KEYWORD PARAMETERS: pleins  ce de CALIBRE de WINDOW             LCT: intier designant le numero de la palette de couleur que         l on veut utiliser pour les plot       OUTPUTS:           posfenetre: un vecteur de 4 elements contenant la position de         cadre contenant les legendes   le graphe en coordonnes         normalises  Rq: pour positionner le dessin il faut apres         l appelle de calibre faire  p position posfenetre           posbar: cf posfentre mais pour la barre de couleur  meme         remarque pour positionner la barre de couleur   p position posbar       COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999         PRO placedessin  typedessin  posfenetre  posbar  BARMARGES   barmarges                      NOCOLORBAR   nocolorbar  NOFILL   nofill  COLOR_c   color_c                      CONTOUR   contour                      VECTEUR   vecteur  PORTRAIT   portrait  LANDSCAPE   landscape                      SMALL   small  MARGES   marges  MAP   map                      REMPLI   REMPLI  POST   post  WINDOW   window                      ENDPOINTS   endpoints  TYPE   type  BASICMARGES   basicmarges                      NOERASE   noerase  LCT   lct  DIREC   direc  CB_TITLE   cb_title  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4ps  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     1  determination de la taille des marges  unite nbre de lignes ou colonnes    a gauche  a droite  en bas  en haut   ATTENTION ds margebar le dernier element est le coint en haut a droite au   lieu de la marge en haut     if n_elements typedessin  EQ 0 then typedessin    autre    if keyword_set basicmarges  then begin     marge   1 6  2  4  3      if keyword_set marges  THEN marge   marge marges     margebar   1 marge 0 1  marge 1 1   marge 2 8   marge 2 6      if keyword_set barmarges  then margebar   margebar barmarges   ENDIF ELSE BEGIN      nocolorbar   keyword_set nocolorbar    keyword_set nofill    keyword_set color_c        case typedessin of        plt :marge   1 6  2  4  3         pltt :marge   1 6 4 type EQ  xt  2  4  4         pltz :marge   1 6  2  4  3        else:marge   1 6  2  4  3      ENDCASE     if keyword_set marges  THEN marge   marge marges     if NOT keyword_set barmarges  then barmarges   replicate 0  4      barmarges 3     barmarges 3      margebar   1 marge 0 1  marge 1 1  2  4 barmarges     marge   marge 0  0  4  0 keyword_set cb_title      IF keyword_set direc  THEN         marge   marge 0  0  2  0 strlowcase direc  NE  t      marge   marge 0  0  2  0 keyword_set contour      marge   marge 0  0  2  0 keyword_set vecteur      if n_elements lon1  NE 0 and n_elements lon2  NE 0         and n_elements lat1  NE 0 and n_elements lat2  NE 0 then begin       if keyword_set type  then           marge   marge 0  3 type EQ  yt  AND lon1 NE lon2  0                            2 type NE  yt  AND lat1 NE lat2 keyword_set endpoints          ELSE marge   marge 0  0  0  2 lat1 NE lat2 keyword_set endpoints      endif     marge   marge 0  0  2 margebar 3  0 1 keyword_set nocolorbar    ENDELSE     portrair ou landscape     IF NOT keyword_set noerase  THEN BEGIN      CASE 1 OF       n_elements portrait  NE 0:key_portrait   portrait       n_elements landscape  NE 0:key_portrait   1 landscape       ELSE:     ENDCASE   ENDIF      Quel type de rapport d aspect  sera ecrase si YXASPECT existe      case typedessin of      plt :yaspect   1 lat2 lat1 lon2 lon1       pltt :yaspect   1       pltz :yaspect    5     ELSE:yaspect   1    endcase     2  calcul de  p position   cf calibre pro        IF NOT keyword_set small  then small    1  1  1      if keyword_set map  then rempli   1     calibre  yaspect  marge  margebar  small  posfenetre  posbar  REMPLI   rempli  _extra   ex      p position   posfenetre     3  ouverture de la fenetre graphique ou du postscript     case 1 of   cas du premier dessin sur un postcript     keyword_set post  AND  d name ne  PS :openps  _extra   ex   cas du premier dessin sur un ecran     keyword_set post  EQ 0 AND keyword_set noerase  EQ 0         AND  d name ne  PS  AND  d name ne  Z :BEGIN       if not keyword_set window  then window   0   pour l utilisation de  ps   oups et de  vzoom       if lmgr demo  EQ 0 then BEGIN   on est en mode demo          if  journal NE 0 then journal   on ferme le journal s il est ouvert         homedir   isadirectory io   homedir  title    Bad definition of homedir          def_myuniquetmpdir         journal  myuniquetmpdir idlsave pro    on en ouvre un nouveau         help   recall_commands  output   listecommande   on recupere la derniere commande         listecommande   strmid strcompress listecommande 1  2          journal  listecommande   on l ecrit dans le journal       ENDIF       windsize   givewindowsize        window  window  xsize   windsize 0  ysize   windsize 1   retain   2  _extra   ex   qd on utilise des couleurs codees sur 24 bit  je n arrive pas a stipuler la couleur du   fond d une fenetre a l aide de  p background  je suis oblige de faire cette bidouille             if  d n_colors gt 256 then begin               device  decomposed 1                p background ffffff x               plot 0 0   nodata  xstyle   4  ystyle   4               device  decomposed 0            endif     END     ELSE:   endcase     if n_elements lct  NE 0 then lct  lct  _extra   ex      return end");
-a[269] = new Array("./ToBeReviewed/PLOTS/DIVERS/projsegment.html", "projsegment.pro", "", "        NAME: projsegment     PURPOSE: projecte lineairement un segment un vecteur dont les bornes   sont  a b  sur un vecteur dont les bornes sont  c d      CATEGORY: caculs a 2 francs     CALLING SEQUENCE: res projsegment vecteur  bornes       INPUTS: vecteur: un vecteur dont le premier element doit etre le   plus petit element et le dernier doit etre le plus grand            bornes: les nouvelles bornes du vecteur      KEYWORD PARAMETERS:              MP: activer ce motcle pour que la fonction retourne un           vecteur de 2 elements qui sont les coefficient m et p de la           projection lineaire y mx p utilisee pour passer du segment            a b  au segment  c d      OUTPUTS:un vecteurs dont les nouvelles bornes sont specifiees par   bornes     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:          IDL  a indgen 9       IDL  print  a             0       1       2       3       4       5       6       7       8     IDL  print  projsegment a 0 80              0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 0 80               0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 80 0               80      70      60      50      40      30      20      10      0     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          24 6 1999       FUNCTION projsegment  vecteur  bornes  MP   mp       compile_opt idl2  strictarrsubs      a1   float vecteur 0     b1   float vecteur n_elements vecteur 1     a2   float bornes 0     b2  float  bornes 1     if a1 EQ b1 then return   1    m    b2 a2 b1 a1     p   a2 m a1      if keyword_set mp  then return   m  p  ELSE return  m vecteur p   end");
-a[270] = new Array("./ToBeReviewed/PLOTS/DIVERS/restoreatt.html", "restoreatt.pro", "", "          NAME:restoreatt     PURPOSE:permet de reattribuer les variables globales associees a un   champ qd on donne une stucture cree par ex par saveatt pro      CATEGORY:allegement d ecriture     CALLING SEQUENCE:restoreatt  structure     INPUTS:une structure comme celle que lit litchamp            cf  IDL  xhelp litchamp      COMMON BLOCKS:  common pro     SIDE EFFECTS: change la valeur des variables globales attributs   d un champ: vargrid  varname  varunit  vardate  varexp   valmask    et time     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999         PRO restoreatt  struct     compile_opt idl2  strictarrsubs    common      nomelements   tag_names struct     for i   0  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :vargrid   strupcase struct i            n :varname   struct i            u :varunit   struct i            e :varexp   struct i            m :valmask   struct i            d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                vardate     time series                 time   struct i              ENDELSE          end          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure   C cf  IDL  xhelp   litchamp           end       endcase    endfor      return end");
-a[271] = new Array("./ToBeReviewed/PLOTS/DIVERS/rotation.html", "rotation.pro", "", "    NAME:               ROTATION      PURPOSE:         Rotate two vectors by a specified amount          CALLING SEQUENCE:         ROTATION X Y DEG NX NY         INPUTS:               X Y   :orignal data point pairs                   DEG   :degrees to rotate          OUTPUTS:         Nx  Ny   rotated point pairs          MODIFICATION HISTORY:         Jeff Bennett  U of Colorado    PRO ROTATION X Y DEG NX NY     compile_opt idl2  strictarrsubs   ang deg dtor   convert to polar coordinates for rotation r   sqrt x x   y y  theta   r 0   get angle in for loop so that zero radii will be left as zero angle for i   0 n_elements r 1 do   if r i  ne 0 then theta i    atan y i x i    range from  pi to  pi    add rotation angle theta   theta   ang    convert back to rectangular coordinates  now rotated nx   r   cos theta  ny   r   sin theta    return end");
-a[272] = new Array("./ToBeReviewed/PLOTS/DIVERS/saveatt.html", "saveatt.pro", "", "          NAME:saveatt     PURPOSE:permet de mettre dans une structure les attributs qui peuvent   etre associes a une variable      CATEGORY:allegement d ecriture     CALLING SEQUENCE:res saveatt      OUTPUTS:      une stucture de la forme:            n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask l:niveau      COMMON BLOCKS:  common pro     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999         FUNCTION saveatt     compile_opt idl2  strictarrsubs    common    return   n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask  end");
-a[273] = new Array("./ToBeReviewed/PLOTS/DIVERS/terminedessin.html", "terminedessin.pro", "", "          NAME:terminedessin     PURPOSE:termnine le dessin si besion est qd c est un postcsript      CATEGORY:mise en forme et allegement de l ecrityre de plt  pltz et pltt     CALLING SEQUENCE:terminedessin     INPUTS:     KEYWORD PARAMETERS:POST et SMALL cf l aide de plt     OUTPUTS:     COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          3 6 1999         PRO terminedessin  POST   post  SMALL   small  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      if keyword_set post  then BEGIN       if keyword_set small  then         if total small  NE            page_margins 2 page_margins 0 total page_size              page_margins 1 page_margins 3  then return       closeps       printps    endif    return end");
-a[274] = new Array("./ToBeReviewed/PLOTS/LABEL/label.html", "label.pro", "", "          NAME:label     PURPOSE:permet de choisir le stype de label que l on veut utiliser   lors d un contour     CATEGORY:graphique     CALLING SEQUENCE:pro label cas min max ncontour level_z2d     INPUTS:  cas numero du type de label que l on veut tracer  min et max   valeures min et max entre lesquelles on veut faire   des contours     KEYWORD PARAMETERS:    INTERVALLE: valeur d un intervalle entre deux isolignes  par defaut   est calcule pour tracer 20 isolighnes  Dans tous les cas ce not cle   doit etre retourne pour pouvoir avoir une belle legende  Si les   niveaux ne comportent pas d intevalle regulier  le mettre a  1    NLEVEL: nombre de contours a dessiner  par defaut  20  actif si   LABEL 0 ou nest pas specifie      OUTPUTS:  ncontour nombre de contour a tracer  level_z2d vecteur contenant les valeurs des contours que l on trace         colnumb: un vecteur contenant le numero des couleurs qui serviront a                 remplir entre les contours      COMMON BLOCKS:  common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   7 5 98         pro label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel              INTERVALLE intervalle  STRICTFILL   strictfill     compile_opt idl2  strictarrsubs    common    if  d name EQ  PS  OR  d name EQ  Z  then BEGIN       old_dname    d name       thisOS    VERSION OS_FAMILY       thisOS   STRMID thisOS  0  3        thisOS   STRUPCASE thisOS        CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE        p BACKGROUND d n_colors 1   ncontour          level_z2d    min    max min findgen Ncontour Ncontour           colnumb      ncoul findgen Ncontour Ncontour ncoul 2 ncontour           intervalle   level_z2d 1 level_z2d 0        end       1: begin  un certain nombre de label en partant du min jusqu au plus pres de max avec   un pas fixe par intervalle          ncontour    fix max min intervalle           ncontour   1   ncontour          level_z2d   min   intervalle findgen Ncontour            colnumb     ncoul findgen Ncontour Ncontour ncoul 2 ncontour           max level_z2d Ncontour 1 intervalle       end   label pour faire les memes sss que dessier        2: begin          lct  63  file    palette tbl           level_z2d     20  25  30  31  32  33  33 5  34 25 findgen 16           ncontour 23          colnumb      findgen 23 1          masx   37 75          intervalle    1          return       end       3: begin   lecture intervalles   palette dans fichier GMT           label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  colnumb        end       else: begin          ras   report Le numero de label demande n existe pas        end    ENDCASE    if keyword_set strictfill  then begin       ncontour   ncontour 1       level_z2d    level_z2d  max        colnumb    colnumb  ncoul 1     endif    return end");
-a[275] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "   Id: label_date pro 134 2006 07 07 10:19:08Z navarro       Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       NAME:  LABEL_DATE     PURPOSE:  This function labels axes with dates and times      CATEGORY:  Plotting      CALLING SEQUENCE:  To set up:  dummy   LABEL_DATE DATE_FORMAT string   To use:  PLOT  x  y  XTICKFORMAT LABEL_DATE      INPUTS:  No explicit user defined inputs  When called from the plotting  routines  the input parameters are  Axis  Index  Value      KEYWORD PARAMETERS:  DATE_FORMAT: a format string which may contain the following:          M for month  3 character abbr           N for month  2 digit abbr           D for day of month           Y for 4 digit year           Z for last two digits of year        For time:          H for Hours  2 digits           I for mInutes  2 digits           S for Seconds  2 digits            is         Other characters are passed directly thru        For example   M  D   Y  prints DEC 11  1993          M  2Y  yields DEC 93          D M  yields 11 DEC          D N Y  yields 11 12 1993          M C Y  yields DEC on the top line  1993 on         the bottom  C is the new line graphic command     MONTHS:      The names of the months  a twelve element string array        If omitted  use Jan  Feb    Dec     OFFSET:      An optional starting offset of the plot   Unfortunately  single precision floating point is not accurate  enough to properly represent Julian times   This offset  which  may be double precision  contains an offset that is added to  all x values  before conversion to Julian date and time     OUTPUTS:  The date string to be plotted      COMMON BLOCKS:  LABEL_DATE_COM      RESTRICTIONS:  Only one date axis may be simultaneously active      PROCEDURE:  Straightforward            For an alternative way to label a plot axis with dates  refer to         the C  format code accepted within format strings  applicable via         the  XYZ TICKFORMAT keywords   This new format code was          introduced in IDL 5 2      EXAMPLE:  For example  to plot from Jan 1  1993  to July 12  1994:    Start_date   julday 1  1  1993     End_date   julday 7  12  1994     Dummy   LABEL_DATE DATE_FORMAT N D    Simple mm dd    x   findgen end_date 1   start_date    start_date  Time axis    PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1     Plot with X axis style set to exact      Example with times:  For example  to plot from 3PM  Jan 1  1993  to 5AM  Jan 3   1993:  Start_date   Julday 1 1 1993     Also starting offset  Start_time    3 12 24           Starting_time less offset  End_time    Julday 1 3 1993    Start_date    5 24   Ending          date time   offset  note that the order of operations is                   important to avoid loss of precision   Dummy   LABEL_DATE DATE_FORMAT D  M C H: I     offset Start_date         MMM NN  HH:MM format  x   findgen 20     End_time   Start_time    19   start_time  Time axis  PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1     MODIFICATION HISTORY:  DMS  RSI April  1993 Written   DMS  RSI March  1997 Added Time format     FUNCTION LABEL_DATE  axis  index  x  DATE_FORMAT   format  MONTHS   months                  OFFSET  offs  _EXTRA   ex     compile_opt idl2  strictarrsubs   COMMON label_date_com  fmt  month_chr  offset  if keyword_set format  then begin  Save format string      if n_elements offs  ne 0 then offset   double offs  else offset   0 0d0     if keyword_set months  then month_chr   months       else month_chr    Jan Feb Mar   Apr   May   Jun   Jul                           Aug   Sep   Oct   Nov   Dec      fmt   format     return  0 endif  if n_elements month_chr  ne 12 or n_elements fmt  le 0     or n_elements offset  eq 0 then     message  Not initialized   x1   x   offset caldat  long x1  month  day  year  _EXTRA   ex Get the calendar date from julian frac   x1   long x1              time of day  from 0 to 1   n   strlen fmt  out      for i 0  n 1 do begin            Each format character      c   strmid fmt  i  1         The character      if c eq   then begin         i   i   1         c   strmid fmt  i  1     The function         case c of format character               M  : out   out   month_chr month 1               N  : out   out   string format i2 2  month               D  : out   out   string format i2 2  day               Y  : out   out   string format i4  year               Z  : out   out   string format i2 2  year  mod 100               H  : out   out   string format i2 2  floor 24 frac               I  : out   out   string format i2 2  floor 1440   frac mod 60               S  : out   out   string format i2 2  86400L   frac mod 60                : out   out                 else : message   Illegal character in date format string:  fmt         endcase     endif else out   out   c endfor return  out end");
+a[246] = new Array("./ToBeReviewed/MATRICE/colle.html", "colle.pro", "", "     file_comments    This concatenation function exist in IDL so long    as we do not try to stick with a dimension superior or equal at 4         categories utilities      param a0  in required       param a1  in required       param a2  in required       param a3  in required       param a4  in required       param a5  in required       param a6  in required       param a7  in required       param a8  in required       param a9  in required       param a10  in required       param a11  in required       param a12  in required       param a13  in required       param a14  in required       param a15  in required       param a16  in required       param a17  in required       param a18  in required       param a19  in required       param a20  in required       keyword SAUVE mot cle qui force a sauvegarder le tableau de           pointeur et les tableaux a coller       returns res matrice resultat      examples IDL  print  colle replicate 1 2 2 2 indgen 2 2 2 2                      1       1                  1       1                  0       1                  2       3                    1       1                  1       1                  4       5                  6       7      history Sebastien Masson  smasson lodyc jussieu fr                          13 1 98      version  Id: colle pro 134 2006 07 07 10:19:08Z navarro       FUNCTION colle  a0  a1  a2  a3  a4  a5  a6  a7  a8  a9  a10  a11  a12  a13  a14  a15  a16  a17  a18  a19  a20  SAUVE   sauve     compile_opt idl2  strictarrsubs      res    1     We put in place ptrtab and direc in function of input arguments      case 1 of       n_params  EQ 2:BEGIN       case where we directly give the pointer array          ptrtab   a0          direc   a1          if NOT keyword_set sauve  then undefine  a0   on recuperate the number of array to be pasted           nbretab    size ptrtab 1        end       n_params  GT 2:BEGIN   on recuperate the number of array to be pasted           nbretab   n_params 1          bidon   execute direc   a strtrim n_params 1  2    We write the pointer array whose each element point on an array           ptrtab ptrarr nbretab allocate_heap           for n   0 nbretab 1 do begin             bidon   execute ptrtab n a strtrim n  2              if NOT keyword_set sauve  then bidon   execute undefine  a strtrim n  2           endfor          sauve   0       end       ELSE:    endcase     case on the direct s value       case direc of       1:BEGIN                     we paste following the dimension 1          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        2:BEGIN                     we paste following the dimension 2          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        3:BEGIN                     we paste following the dimension 3          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END       ELSE:BEGIN    We transpose res in order to put the dimension to be pasted number 1   To this  we contain the permuter vector which give the place that dimension    in the transposed matrix must take          siz    size ptrtab 0 0           if siz LT direc then              ptrtab 0    reform ptrtab 0   size ptrtab 0 1:siz  replicate 1  direc siz   over           permute   indgen size ptrtab 0 0           permute 0    direc 1          permute direc 1    0          res   transpose ptrtab 0  permute           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN   we paste following the dimension 1on colle suivant la dimension 1             if  size ptrtab n 0  LT direc then                 ptrtab n    reform ptrtab n   size ptrtab n 1:siz  replicate 1  direc siz                          res    temporary res  transpose ptrtab n  permute              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR          res   transpose temporary res  permute        END    ENDCASE       if NOT keyword_set sauve  then undefine  ptrtab sortie:    return   res      END     ");
+a[247] = new Array("./ToBeReviewed/PLOTS/DESSINE/bar_plot.html", "bar_plot.pro", "", "        file_comments    Create a bar graph  or overplot on an existing one       categories    Graphics      param Values  in required     A vector containing the values to be represented by the bars    Each element in VALUES corresponds to a single bar in the   output       keyword BASELINES    A vector  the same size as VALUES  that contains the   base value associated with each bar   If not specified    a base value of zero is used for all bars       keyword COLORS    A vector  the same size as VALUES  containing the color index   to be used for each bar   If not specified  the colors are   selected based on spacing the color indices as widely as   possible within the available colors  specified by D N_COLORS       keyword BARNAMES    A string array  containing one string label per bar    If the bars are vertical  the labels are placed beneath   them   If horizontal  rotated  bars are specified  the labels   are placed to the left of the bars       keyword TITLE    A string containing the main title to for the bar plot       keyword XTITLE    A string containing the title for the X axis       keyword YTITLE    A string containing the title for the Y axis       keyword BASERANGE    A floating point scalar in the range 0 0 to 1 0  that   determines the fraction of the total available plotting area    in the direction perpendicular to the bars  to be used    If not specified  the full available area is used       keyword BARWIDTH    A floating point value that specifies the width of the bars   in units of  nominal bar width   The nominal bar width is   computed so that all the bars  and the space between them    set by default to 20  of the width of the bars  will fill the   available space  optionally controlled with the BASERANGE   keyword       keyword BARSPACE    A scalar that specifies  in units of  nominal bar width    the spacing between bars   For example  if BARSPACE is 1 0    then all bars will have one bar width of space between them    If not specified  the bars are spaced apart by 20  of the bar   width       keyword BAROFFSET    A scalar that specifies the offset to be applied to the   first bar  in units of  nominal bar width   This keyword   allows  for example  different groups of bars to be overplotted   on the same graph   If not specified  the default offset is   equal to BARSPACE       keyword OUTLINE    If set  this keyword specifies that an outline should be   drawn around each bar       keyword OVERPLOT    If set  this keyword specifies that the bar plot should be   overplotted on an existing graph       keyword BACKGROUND    A scalar that specifies the color index to be used for   the background color   By default  the normal IDL background   color is used       keyword ROTATE    If set  this keyword indicates that horizontal rather than   vertical bars should be drawn   The bases of horizontal bars   are on the left   Y  axis and the bars extend to the right       examples By using the overplotting capability  it is relatively easy to create  stacked bar charts  or different groups of bars on the same graph     For example  if ARRAY is a two dimensional array of 5 columns and 8  rows  it is natural to make a plot with 5 bars  each of which is a  stacked  composite of 8 sections   First  create a 2D COLORS array   equal in size to ARRAY  that has identical color index values across  each row to ensure that the same item is represented by the same color  in all bars     With ARRAYS and COLORS defined  the following code fragment  illustrates the creation of stacked bars  note that the number of rows  and columns is arbitrary :    Y RANGE    0 ymax    Scale range to accommodate the total bar lengths   BASE   INTARR NROWS   FOR I   0  NROWS 1 DO BEGIN     BAR_PLOT  ARRAY I  COLORS COLORS I  BASELINES BASE                  BARWIDTH 0 75  BARSPACE 0 25  OVER I GT 0      BASE   BASE   ARRAY I   ENDFOR    To plot each row of ARRAY as a clustered group of bars within the same  graph  use the BASERANGE keyword to restrict the available plotting  region for each set of bars   The sample code fragment below  illustrates this method:    FOR I   0  NROWS 1 DO       BAR_PLOT  ARRAY I  COLORS COLORVECT  BARWIDTH 0 8 BARSPACE 0 2          BAROFFSET I 1 0 BARSPACE NCOLS  OVER I GT 0  BASERANGE 0 19    where NCOLS is the number of columns in ARRAY  and COLORVECT is a  vector containing the color indices to be used for each group of  bars    In this example  each group uses the same set of colors  but  this could easily be changed       history August 1990  T J  Armitage  RSI  initial programming   Replacement  for PLOTBAR and OPLOTBAR routines written by William Thompson     September 1990  Steve Richards  RSI  changed defaults to improve the  appearance of the bar plots in the default mode  Included  spacing the bars slightly       Id: bar_plot pro 134 2006 07 07 10:19:08Z navarro       pro bar_plot values baselines baselines colors colors barnames barnames              title title xtitle xtitle ytitle ytitle baserange baserange              barwidth barwidth barspace barspace baroffset baroffset              outline outline overplot overplot background background              rotate rotate  _EXTRA   ex     compile_opt idl2  strictarrsubs   if  n_params d  eq 0  then begin   Print call   return if no parameters   print bar_test values baselines baselines colors colors barnames barnames    print  title title xtitle xtitle ytitle ytitle baserange baserange      print  barwidth barwidth barspace barspace baroffset baroffset      print  outline outline overplot overplot background background      print  rotate rotate    return endif  nbars n_elements values  Determine number of bars   Baselines  bars extend from baselines through values  default 0 if not keyword_set baselines  then baselines intarr nbars    Default colors spaced evenly in current color table if not keyword_set colors  then      colors fix d n_colors float nbars indgen nbars 0 5    Labels for the individual bars  none by default if not keyword_set barnames  then barnames strarr nbars      Main title if not keyword_set title  then title    Centered title under X axis if not keyword_set xtitle  then xtitle    Title for Y axis if not keyword_set ytitle  then ytitle    Fraction  0 1  of full X range to use if not keyword_set baserange  then baserange 1 0   Space betw  bars  taken from nominal bar widths  default is none If not keyword_set barspace  then barspace 0 2   Bar width scaling factor  relative to nominal if not keyword_set barwidth  then barwidth 1 0   barspace   barspace   nbars   Initial X offset  in scaled bar widths  default is none if not keyword_set baroffset  then baroffset barspace barwidth   Outline of bars  default is none outline   keyword_set outline    Overplot  do not erase the existing display  default is to create new plot overplot   keyword_set overplot    Background color index  defaults to 0  usually black  if not specified if not keyword_set background  then background 0   Rotate  make horizontal bars  default is vertical bars rotate   keyword_set rotate   mnB   MIN baselines  MAX mxB   NAN  mnV   MIN values  MAX mxV   NAN  range mnB  mxV        Maximum of bases   values  if  rotate  then begin     Horizontal bars    if  x range 0  eq 0  and  x range 1  eq 0      Determine range for X axis       then xrange range         else xrange x range     Or  use range specified    if  y range 0  eq 0  and  y range 1  eq 0      Plot will calculate       then                                           defaults for X  but not         yrange    0  n_elements values              for Ys  so fill in here        else           yrange y range     Axis perpend  to bars    yticks 1     Suppress ticks in plot    ytickname strarr 2       xticks 0    xtickname strarr 1  endif else begin     Vertical bars    if  y range 0  eq 0  and  y range 1  eq 0      Determine range for Y axis       then yrange range         else yrange y range                 Or  use range specified    xrange x range     Axis perpend  to bars    xticks 1     Suppress ticks in plot    xtickname strarr 2       yticks 0    ytickname strarr 1  endelse if  overplot eq 0  then      Create new plot  no data plot values nodata title title xtitle xtitle ytitle ytitle       noerase overplot xrange xrange yrange yrange xticks xticks       xtickname xtickname yticks yticks ytickname ytickname       xstyle 1 ystyle 1 data background background  _EXTRA   ex if  rotate  then begin     Horizontal bars    base_win y window     Window range in Y    scal_fact x s     Scaling factors    tick_scal_fact y s     Tick scaling factors endif else begin     Vertical bars    base_win x window     Window range in X    scal_fact y s     Scaling factors    tick_scal_fact x s     Tick scaling factors endelse winrange baserange base_win 1 base_win 0     Normal  window range barsize barwidth winrange nbars     Normal  bar width winoffset base_win 0 baroffset barsize     Normal  first offset bases scal_fact 0 scal_fact 1 baselines     Baselines  in normal coor  normal scal_fact 0 scal_fact 1 values     Values  in normal coor  barstart indgen nbars barsize barspace winrange nbars   Coor  at left edges tickv winoffset barstart 0 5 barsize     Tick coor   centered  for i 0 nbars 1 do begin     Draw the bars    width winoffset barstart i barstart i         Compute bar width       barstart i barsize barstart i barsize     length bases i normal i normal i bases i    Compute bar length    if  rotate  then begin     Horizontal bars       x length     X axis is  length  axis       y width     Y axis is  width  axis    endif else begin     Vertical bars       x width     X axis is  width  axis       y length     Y axis is  length  axis    endelse    polyfill x y color colors i normal     Polyfill with color    if  outline  then plots x y normal     Outline using  p color endfor  tickv tickv tick_scal_fact 0 tick_scal_fact 1    Locations of the ticks if  rotate  then      Label the bars  Y axis    axis yaxis 0 ystyle 1 yticks nbars 1 ytickv tickv ytickname barnames      yticklen 0 0   else      Label the bars  X axis    axis xaxis 0 xstyle 1 xticks nbars 1 xtickv tickv xtickname barnames      xticklen 0 0 return end");
+a[248] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt.html", "plt.pro", "", "             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  a structure respecting all criterions specified by           litchamp pro  cf  IDL  xhelp litchamp         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        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       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    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   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       keyword LABMAP    Corresponds to label keywords of map_set  Defaut         definition is labmap 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  param2  param3  param4  REALCONT   realcont  CONTOUR   contour              INTERVALLE   intervalle  INV   inv  GRIDTYPE   gridtype  BOXZOOM   boxzoom              CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel              STYLE   style  CONTMAX   contmax  CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel              VECTEUR   vecteur  MAP   map  MININ   minin  MAXIN   maxin              CONT_NOFILL   cont_nofill              USETRI   usetri  NOTRI   notri  MASKFILL   maskfill              DUPLICATE   duplicate  STRICTFILL   strictfill  OVERPLOT   overplot              DECIMATETRI   decimatetri   LABMAP   labmap  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     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   if keyword_set vecteur  AND  NOT keyword_set gridtype  then BEGIN     vargrid   litchamp tab1   grid      if vargrid eq   then BEGIN       vargrid   xquestion What is the grid associated to the data to contour   T   chkwidget        vargrid   strupcase vargrid      endif   ENDIF     I2  Reading of the field and checkup      if keyword_set boxzoom  AND n_elements contour  ne 4  then BEGIN     savedbox   1b     saveboxparam   boxparam4plt dat    END   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   checktypeminmax   plt  TYPE   type  MIN   min  MAX   max  _extra   ex   z2d   checkfield tab1   plt  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  VECTEUR   vecteur  _extra   ex     if z2d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat      return   ENDIF   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 field    do we have a triangulation      wehavetri   triangles_list 0  NE  1     the triangulation must be used to draw the continents   if we make a map  are we periodic and nx jpi       CASE strupcase vargrid  OF        T :nx   nxt        W :nx   nxt        U :nx   nxu        V :nx   nxv        F :nx   nxf     ENDCASE     mapperio   keyword_set map keyword_set key_periodic nx eq jpi       usetri    wehavetri wehavetri holeintri mapperio keyword_set key_irregular    2 notri    ENDIF     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 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 field    if keyword_set profond        OR  usetri EQ 0 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri NE 2 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx           lasty  lastz   forplt  _extra   ex   ENDIF ELSE BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx  lasty           lastz  TRI   trifield   forplt  _extra   ex   ENDELSE     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     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   We do an autoscale if needed    if autoscale then autoscale  min  max  intervalle       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       placedessin   plt  posfenetre  posbar         CONTOUR   contour  VECTEUR   vecteur  MAP   map  DIREC   direc  _extra   ex       III  Covering of the drawing  labels style axis            III1  Choice of labels     if keyword_set intervalle  AND NOT keyword_set label  then label   1   if keyword_set label  eq 0 then cas   0 else cas   label   label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel         INTERVALLE   intervalle  strictfill   strictfill     III2  Choice of style     if not keyword_set style  then style   0   style  style  level_z2d  linestyle  thick   if keyword_set inv  then colnumb   reverse colnumb      III3  Definition of axis     if NOT keyword_set overplot  THEN axe   xy  _EXTRA   ex         IV  Drawing         extrapolation of field on lands and setup of min  max values     if keyword_set nan  then begin     z2d where masknan EQ 0    max   ENDIF ELSE masknan   1   filling the mask values   we fill only masknan or we fill mask masknan    IF keyword_set nan  AND keyword_set cont_nofill  THEN       z2d   remplit z2d  nite   1 vargrid NE  T  AND vargrid NE  W                        mask   masknan  _extra   ex       ELSE z2d   remplit z2d  nite    1    vargrid NE  T  AND vargrid NE  W                                         keyword_set nan                           1 keyword_set cont_nofill                           1 n_elements maskfill  NE 0                      mask   mask masknan  _extra   ex    IF keyword_set strictfill  EQ 0 AND n_elements maskfill  EQ 0 then       z2d   min   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   temporary z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1 mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values      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             OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  then BEGIN     trifield   triangule tmask firstx:lastx  firsty:lasty  firstz                               coinmonte   coinmontemask                              coindescend   coindescendmask                              keep_cont   cont_nofill  _extra   ex      indicezoommask    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF   triangulation for nan mask   if keyword_set nan  then BEGIN     trinan   triangule masknan   keep_cont                            coinmonte   coinmontenan                            coindescend   coindescendnan      indicezoomnan    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF    IF n_elements twin_corners_up  EQ 0 THEN coinmontemask    1 ELSE coinmontemask   twin_corners_up    IF n_elements twin_corners_dn  EQ 0 THEN coindescendmask     1 ELSE coindescendmask   twin_corners_dn   if vargrid EQ  T  OR vargrid EQ  W  then BEGIN      glammsk   glam     gphimsk   gphi 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           coinmonte   coinmontemask  coindescend   coindescendmask           _EXTRA   ex   ENDELSE     IV1  Choice of type of drawing      typetrace    classique    if keyword_set map  AND key_onearth then BEGIN    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      map_lat   map 0      map_lon   map 1      map_rot   map 2      if chkstru ex   TITLE  then begin       maptitre   ex title        ex title         endif     map_set  map_lat  map_lon  map_rot  _extra   ex  position   posfenetre   iso           limit    lat1  lon1  lat2  lon2   noborder     if n_elements maptitre  ne 0 then ex title   maptitre     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      if n_elements trinan  GE 2 then BEGIN        trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex        if trinan 0  EQ  1 then undefine  trinan     endif   ENDIF ELSE BEGIN   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   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        if n_elements trinan  GE 2 then trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex      ENDIF   endelse     IV2  Contours and coloring     if keyword_set duplicate   then BEGIN   pour marina uniquement ATTENTION C EST TRES MAL CODE     lon   glam  0      decalage   max lon min lon lon shift lon  1 n_elements lon 1       x range 1     x range 1 duplicate 1 decalage     for i   1  duplicate 1 do BEGIN       z2d    z2d  z2d        gphi    gphi  gphi        mask    mask  mask        gphimsk    gphimsk  gphimsk        glam    glam  glam i decalage        glammsk    glammsk  glammsk      ENDFOR   endif   save  glam  gphi  trifield  file    tri dat    if keyword_set decimatetri  then BEGIN     tempsdeux   systime 1         To key_performance     IF n_elements trimsk  EQ 0 THEN trimsk   trifield     Verts   transpose temporary glam   temporary gphi                              temporary z2d      Conn    replicate 3  1  n_elements trifield 3  trifield      Result   mesh_decimate temporary verts   temporary Conn                                 Connout  vertices   Vertsout                                percent_vertices   decimatetri      connout   reform connout  4   n_elements connout 4   over       trifield    temporary connout 1:3        glam   reform Vertsout 0        gphi   reform Vertsout 1        z2d   reform Vertsout 2        undefine  Vertsout     print   temps decimatetri  systime 1 tempsdeux    ENDIF   pltbase  z2d  glam  gphi         mask  glammsk  gphimsk  trichamp   trifield  trimsk   trimsk   forplt         level_z2d  colnumb  contour   contour  usetri   usetri  realcont   realcont         overplot   keyword_set overplot keyword_set map          c_linestyle   linestyle  c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  cont_nofill   cont_nofill  nan   nan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         coinmontenan   coinmontenan  coindescendnan   coindescendnan         indicezoommask   indicezoommask  indicezoomnan   indicezoomnan         masknan   masknan  trinan   trinan  _extra   ex     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     contour    mietma: mi  ma  unit:varunit  inter:intervalle    je renvoie le min  le max et l unite     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     plt  contour  contmin  contmax  CONTOUR   pourlegende   NOERASE           USETRI   usetri           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style           NLEVEL   contnlevel  DUPLICATE   duplicate  STRICTFILL   strictfill           MASKFILL   maskfill  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       V  Small functions           V1  Possible add of vectors in double exposure      if keyword_set vecteur  then BEGIN      oldattributs   saveatt      ajoutvect  vecteur  vectlegende  _extra   ex     restoreatt  oldattributs   ENDIF     if keyword_set overplot  then GOTO  fini     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  To trace IDL s continents     if keyword_set realcont  then BEGIN   si noease est passe de _extra  on s assure qu il est a 1     if chkstru ex   NOERASE  then begin       oldnoerase   ex noerase       ex noerase   1     ENDIF     if chkstru ex   coast_thick  then mlinethick   ex coast_thick ELSE mlinethick   1     if chkstru ex   coast_color  then mcolor   ex coast_color ELSE mcolor   0     IF NOT keyword_set map  THEN         map_set  0   lon1 lon2 2  MOD 360  0  position   posfenetre            limit    lat1  lon1  lat2  lon2   NOERASE   noborder  color   0           _extra   ex     if realcont NE 2 AND NOT keyword_set cont_nofill  then BEGIN       if chkstru ex   cont_color  then cntcol   ex coast_color         ELSE cntcol    d n_colors   1     255       map_continents   fill_continents  color   cntcol  _extra   ex   noerase     ENDIF     map_continents   continents  color   mcolor  MLINETHICK   mlinethick   noerase  _extra   ex     if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase   ENDIF     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    To keep frame s axes in black     if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   coast_color   endif     case typetrace of      classique :         plot   0   0   nodata   noerase  color   0  xstyle   1  ystyle   1  _extra   ex      projection : BEGIN        if chkstru ex   NOERASE  then begin         oldnoerase   ex noerase         ex noerase   1       endif       if chkstru ex   SUBTITLE  then  p subtitle   ex SUBTITLE       if n_elements maptitre  ne 0 then ex title   maptitre       map_set  map_lat  map_lon  map_rot  _extra   ex   iso  limit    lat1  lon1  lat2  lon2             NOERASE   noborder  title    p title  color   0           map_proj_info  numproj   current           map_proj_info  numproj  name   nomproj           if nomproj EQ  Mercator  OR nomproj EQ  Cylindrical  OR nomproj EQ  LambertConic             OR nomproj EQ  Gnomic  OR nomproj EQ  AlbersEqualAreaConic               OR nomproj EQ  TransverseMercator  OR nomproj EQ  MillerCylindrical               OR nomproj EQ  LambertConicEllipsoid  then map_grid  box_axes 1 latdel 10 londel 10             ELSE map_grid  charsize   0 75   label latalign   1 lonalign             1 latdel   10 londel   30       IF n_elements labmap  EQ 0 THEN labmap   1       map_grid  charsize   0 75  label   labmap  latalign   1  lonalign   1  latdel   10  londel   30  color   0  _extra   ex       if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase     end   endcase     V5  Colorbar      colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       VI  Possible print      fini:   terminedessin  _extra   ex     sortie:   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat    if keyword_set key_performance  NE 0 THEN print   temps plt  systime 1 tempsun        return end  ");
+a[249] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt1d.html", "plt1d.pro", "", "         file_comments   Trace 1d graphes: x y z  or t but in this case  we recall directly pltt       categories   Graphics      param TAB  in required     The field whose we want to make the hovmoller map can be 2 kind of thing:  1  An array which can be:              2d  3d or 4d:  array xy  xyz  xyt or xyzt  In this case  the array will pass             in moyenne or grossemoyenne to be averaged and becomme  an array 1d                1d:Nevertheless  the type must be specified in order to we know which trace             it is about  To have a correct caption  respecify the  xctraction zone via BOXZOOM          2  a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contained in the structure             respecting criterions of case 1        param PARAM2  in required     Min value we want to consider in the contour s drawing    Note: could also be the type of plot: x y z         param PARAM3  in optional default min max of tab  on ocean points     Max value we want to consider in the contour s drawing    Note: if param2 is defined as  x y z  then param3 is used to define the min  see param2       param PARAM4  in optional default max of tab  on ocean points     Type of plot  can be only  x y z  for plt1d    Note: if param2 is defined as  xy  then param4 is used to define the max  see param3       keyword BOXZOOM   Vector indicating the geographique zone  3d  on which the extraction of the field must    be done to do the hovmoeller     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  vert1  vert2    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 vert1 vert2 are global variables defined at the last domdef       keyword COL1d     OBSOLETE Color number when we make a trace 1d by default  0 It is better to use the    keyword COLOR used by plot       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates       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 OV1D   Allow the double exposure of an 1d curve to a precedent 1d trace       keyword REVERSE_X    To invert the x axis  so as the drawing       keyword REVERSE_Y    To invert the y axis  so as the drawing       keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword STY1D     OBSOLETE    Number of the style used when we make a 1d drawing  We should better use the    keyword LINESTYLE which is tho one of the plot  Beware  this keyword is still    useful if we want to d bars instead of curves  put sty1d bar       keyword TYPEIN   allows to specify the type of hovmoller we want to do                xt yt zt t      with help of a keyword rather than the argument type  If the argument andthe    keyword are specified in the same time  it is the value specified by the    keyword which is retained       keyword _EXTRA    used to pass your keywords      history    creation 24 6 99 Eric Guilyardi     a partir routine pltt de Sebastien Masson    8 7 1999 Sebastien Masson  smasson lodyc jussieu fr     inspection des travaux finis   8 2 2000 Sebastien Masson: checkfield      version     Id            pro plt1d  tab  param2  param3  param4  BOXZOOM   boxzoom  SIN   sin                MININ   minin  MAXIN   maxin  TYPEIN   typein  ENDPOINTS   endpoints                COL1D   col1d  STY1D   sty1d  OV1D   ov1d  X   x  Y   y  Z   z  TT   tt                REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SWITCHXY   switchxy                _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance     1st part: initialization small calculations          verification of the type s value       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   if keyword_set tt  then typein    t    if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   endif     checktypeminmax   plt1d  TYPE   type  MIN   min  MAX   max  ENDPOINTS   endpoints         XX   keyword_set x  YY   keyword_set y  ZZ   keyword_set z     if type EQ  t  then BEGIN     pltt  tab  type  min  max  BOXZOOM   boxzoom  SIN   sin  TYPEIN   typein           COL1D   col1d  STY1D   sty1d  OV1D   ov1d  ENDPOINTS   endpoints  _extra   ex     return   endif     I2  reinitialization   p x y    Comment: We do not reinitializate when we call back plt1d     if NOT keyword_set ov1d  then reinitplt     I1  Reading of the field      if  keyword_set boxzoom  OR keyword_set endpoints  THEN BEGIN      savedbox   1b      saveboxparam   boxparam4plt1d dat     ENDIF     if keyword_set endpoints  then begin     section  tab  z1d  glam  gphi  ENDPOINTS   endpoints  TYPE   type           BOXZOOM   boxzoom  DIREC   direc     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       z   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       z   gdept firstzt:lastzt        nz   nzt     ENDELSE   ENDIF ELSE BEGIN      z1d   checkfield tab   plt1d  TYPE   type  BOXZOOM   boxzoom                          direc   direc  _extra   ex      grille  mask  glam  gphi  gdep  nx  ny  nz   ENDELSE   if z1d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      return endif   We build the mask  For this  the array must be hidden  Automaticaly done at valmask    value if we pass in moyenne or grossemoyenne    mask   fltarr n_elements z1d    if n_elements valmask  EQ 0 then valmask   1e20   nan   total finite z1d   nan     1   if keyword_set nan  then begin     notanum   where finite z1d  EQ 0      z1d notanum    0     mask where z1d LT valmask 10    1     z1d notanum     values f_nan   ENDIF ELSE mask where z1d LT valmask 10    1     determination of the min and of the max after the average     nan   total finite z1d   nan    1   determineminmax  z1d  mask  mi  ma  MININ   min  MAXIN   max  nan   nan  INTERVALLE   intervalle  _extra   ex   if z1d 0  EQ  1 THEN return       if NOT keyword_set ov1d  THEN placedessin   autre  posfenetre  posbar  contour   contour  DIREC   direc  endpoints   endpoints  _extra   ex       2nd part: Drawing       definition of the abscisse and ordinate vectors    The triangulation is defined in order to the drawing be done from the    left bottom to the right up  So the matrix have to be shown like this     from which some transpose and reverse       case type of      y : begin       yy   z1d       IF  size gphi 0  EQ 1 then xx   gphi ELSE BEGIN          IF keyword_set key_irregular  THEN BEGIN            cln    where gphi EQ max gphi 0            xx   reform gphi cln MOD nx            ENDIF ELSE xx   reform gphi 0          ENDELSE       if keyword_set sin  then xx   sin pi 180 xx        min0   lat1   max0   lat2     END      x :begin       yy   z1d       xx   glam  0        min0   lon1   max0   lon2     END       z :begin       yy   reverse gdep  1        xx   reverse z1d  1        min0   0   max0   0       case n_elements boxzoom  of         0: y range    vert1  vert2          1: y range    0  boxzoom          2: y range   boxzoom         4: y range    vert1  vert2          5: y range    0  boxzoom 4          6: y range   boxzoom 4:5        endcase       if NOT keyword_set ov1d  then  y range   reverse y range      END    ENDCASE          definition of axes        if keyword_set integrationtps  then axe  type  time 0  time jpt 1  SIN   sin  _extra   ex        ELSE axe  type  SIN   sin   if NOT keyword_set ov1d  then axe  type  SIN   sin       drawing       if type EQ  z  then begin     idx   where xx NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  x range    min abs max min 5  max abs max min 5          ELSE  x range    min  max      ENDIF   ENDIF ELSE BEGIN      idx   where yy NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  y range    min abs max min 5  max abs max min 5          ELSE  y range    min  max      ENDIF   ENDELSE      if NOT keyword_set ov1d  then BEGIN      legende  mi  ma  type  CONTOUR   contour  DIREC   direc  ENDPOINTS   endpoints  _EXTRA   ex     ENDIF   IF keyword_set switchxy   THEN BEGIN     tmp   xx     xx   yy     yy   temporary tmp      if NOT keyword_set ov1d  then BEGIN        tmp    x        x    y        y   temporary tmp      ENDIF   ENDIF   if NOT keyword_set ov1d  then BEGIN      if keyword_set reverse_x  then  x range   reverse x range      if keyword_set reverse_y  then  y range   reverse y range    ENDIF     xx   xx idx    yy   yy idx    if  not keyword_set col1d  then col1d   0   if keyword_set sty1d  then BEGIN  If we want to make bars     IF strlowcase strtrim sty1d  EQ  bar  then begin        y range    y range 0 y range 1 y range 0 05   y range 1         bar_plot  yy  background    d n_colors 1    255             baselines   replicate y range 0  n_elements yy  barnames                 colors      replicate col1d  n_elements yy   outline       if n_elements ex  NE 0 then BEGIN    To have a black frame         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF       plot   0   0   noerase   nodata  _extra   ex       GOTO  fini     ENDIF    ENDIF     if NOT keyword_set ov1d  then BEGIN        plot  xx  yy  color   col1d  linestyle   sty1d  thick   2  title     subtitle     _extra   ex     if n_elements ex  NE 0 then BEGIN    To have a 0 colored frame and trace a line at y 0       if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE   0       if  where tag_names ex  EQ  THICK 0  NE  1 then ex THICK   0     ENDIF     plot   x range   0  0   noerase   nodata           xstyle   1 4 keyword_set endpoints  AND                          type EQ  x  AND lat1 NE lat2  OR  type EQ  y  AND lon1 NE lon2            ystyle   1  _extra   ex   Add of an axis in the case where we use endpoints     if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex   Trace a line at x 0     plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex   ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex       3rd part: Possible print      fini:   terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun          return end  ");
+a[250] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltbase.html", "pltbase.pro", "", "             file_comments   Overlayer contour to trace a field which can be mask     Elementary brick of plt  pltz et pltt       categories graphic      param Z2D  in required    The table to trace      param X  in required    Axis  Vector or array of the same size that z2d  This is the coordinate of z2d on x       param Y  in required    Axis  Vector or array of the same size that z2d  This is the coordinate of z2d on y       param MASK  in required    It is the array who mask z2d  with 0s on points we want to mask and 1s on others     If z2d is not masked  put this argument equal to 1       param XM  in required    Axis of the mask  Vector or array of the same size that mask     This is the coordinate of mask on x       param YM  in required    Axis of the mask  Vector or array of the same size that mask     This is the coordinate of mask on y       param LEVELS  in optional    Vectors which contain levels needed at the contour     If it is not given  we take 20 levels between the min and the max         param COLORS  in optional    Vectors which contain colors needed at the contour     If it is not given  we take 20 levels between the min and the max       keyword COLORTRICHAMP    The color we want to use to draw the triangulation which is used to make contours of the field       keyword COLORTRIMASK    The color we want to use to draw the triangulation which is used to make contours of the mask       keyword COLOR_C    To draw the contour in color instead of in black   with filling in color       keyword  CONT_NOFILL    Activate it not to fill the point mask to let them transparent     Comment: Nevertheless  we trace mask s contour       keyword CONT_COLOR    The color of the continent  defaut value is           d n_colors   1   white      keyword  DESSTRICHAMP    To draw the triangulation which is used to make field s contours        keyword  DESSTRIMASK    To draw the triangulation which is used to make mask s contours        keyword  FORPLT    To activate if we want that the drawing of coast be realized by tracecote rather than tracemask       keyword I_COLORS    It is a vector specifing the colors to use to trace contours     It is the same thing that c_colors which act on contours       keyword MORE    Number to give to avoid style s bugs:      Out of range subscript encountered:        Execution halted at:  PLTBASE           151               By default more 10 If the bug still exist  increase the value of more      The explanation and the justification of this method do not have scientific bases yet       keyword  NOFILL   To make just isolines       keyword  NOCONTOUR   To make just colors       keyword  UNSUR2 To trace one isoline on two       keyword UNLABSUR    Is an integer n  specifying we only label one contour on two      keyword CONTOUR    To be used since plt  pltz or pltt   Have a look on these routines       keyword _EXTRA    Used to pass your keywords      uses   common pro      restrictions   In the case of z2d  x and y are arrays of same size  we hate to put them as vectors: z2d  x  y       history    Sebastien Masson  smasson lodyc jussieu fr        8 2 2000 check if the tri array is not equal to    1  allow contour with out using a triangulation        version    Id       todo seb L 172   173           PRO pltbase  z2d  x  y  mask  xm  ym  levels  colors  UNSUR2   unsur2  CONTOUR   contour                  NOCONTOUR   nocontour  NOFILL   nofill                  TRICHAMP   trichamp  TRIMSK   trimsk                  REALCONT   realcont  NAN   nan  usetri   usetri                  COLORTRICHAMP   colortrichamp  COLORTRIMASK   colortrimask                  COLORTRINAN   colortrinan                  COLORPOINTS   colorpoints  DRAWPOINTS   drawpoints                  TH_TRICHAMP   th_trichamp  TH_TRIMASK   th_trimask                  DESSTRICHAMP   desstrichamp  DESSTRIMASK   desstrimask                  DESSTRINAN   desstrinan  COLOR_C   color_c                  I_COLORS   i_colors   CONT_COLOR   CONT_COLOR                  CONT_NOFILL   cont_nofill  UNLABSUR   unlabsur                  COINMONTEMASK   coinmontemask  COINDESCENDMASK   coindescendmask                  COINMONTENAN   coinmontenan  COINDESCENDNAN   coindescendnan                  INDICEZOOMMASK   indicezoommask  INDICEZOOMNAN   indicezoomnan                  MASKNAN   masknan  TRINAN   trinan                  FORPLT   forplt  REALSECTION   realsection                  MORE   more  EXCHANGE_XY   exchange_xy                  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       Explanation concerning contour  This keyword is activated when we trace a    colored contour different from the one with black trait    If it is activated  case n_elements contour  NE 0  we pass 2 time in pltbase:     1  We trace colors then we leave  it is the case:           n_elements contour  NE 0 AND n_elements contour  NE 4      2  We trace contours in traits then continents  it is the case:            n_elements contour  NE 0 AND n_elements contour  EQ 4        tempsun   systime 1             To key_performance   if n_elements mask  EQ 0 then mask   1b   if n_elements masknan  EQ 0 then masknan   1b   IF total mask  EQ n_elements z2d  THEN mask   1b     If levels and colors aren t given     if n_params  EQ 4 then        label  0  min z2d mask  max z2d mask  ncontour  levels  colors   attention bidouille inexplicable pour que tout se passe bien avec les   postcript ds pltz    if n_elements contour  LE 4 AND  x type EQ 0 THEN       plot   0   0  xstyle   5  ystyle   5   nodata   noerase  title     subtitle         Is cell_fill is a part of _extra  we desactive it if it is nt equal to 2     IF chkstru ex   CELL_FILL  THEN BEGIN      cell_fill   ex CELL_FILL     if ex CELL_FILL NE 2 then ex CELL_FILL   0   ENDIF ELSE cell_fill   0            I  Filling of contours in palette colors      if NOT keyword_set more  then more   10   if NOT keyword_set nofill  AND NOT keyword_set color_c  then begin     if n_elements contour  NE 4 THEN BEGIN        if usetri EQ 2 then BEGIN         IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels  c_color   colors                noerase   fill  TRIANGULATION   trichamp  _extra   ex         ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels  c_color   colors   noerase                fill  _extra   ex        ENDELSE     ENDIF   ENDIF   if n_elements contour  NE 0 AND n_elements contour  NE 4 THEN GOTO  fini    IF chkstru ex   C_ORIENTATION  THEN ex   extractstru ex   C_ORIENTATION    IF chkstru ex   C_SPACING  THEN ex   extractstru ex   C_SPACING    IF chkstru ex   C_COLORS  THEN ex   extractstru ex   C_COLORS      II  Drawing of contours in traits     if n_elements contour  EQ 4 OR n_elements contour  EQ 0 THEN BEGIN     we put the masked values to NaN       IF  n_elements mask  GT 1 OR n_elements masknan  GT 1          AND NOT keyword_set cont_nofill  THEN BEGIN         tonan   where mask masknan  EQ 0  count        tonan   where remplit mask masknan  nite   1  mask   mask masknan                                  basique  fillval   0                                 fillxdir   keyword_set realsection  EQ 0  count        IF count NE 0 THEN z2d temporary tonan     values f_nan     ENDIF        We do not pass if we have to make differents contours    In the case of unsur2 is activated  we reduce levels     if NOT keyword_set nocontour  then begin       IF keyword_set unsur2  THEN levels   levels where zeroun n_elements levels    eq 1    Is unlabsur activated   Does C_LABEL passed via _EXTRA        if keyword_set unlabsur  THEN IF chkstru ex   C_LABELS  THEN           ex C_LABELS   1 indgen n_elements ex C_LABELS  MOD unlabsur    1      Not to fill when cell_fill is imposed        IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   0         CASE 1 OF         keyword_set color_c :c_colors   colors         keyword_set i_colors :c_colors   i_colors         ELSE:       ENDCASE         IF usetri EQ 2 THEN BEGIN          IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  TRIANGULATION   trichamp  _extra   ex       ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  _extra   ex       ENDELSE     ENDIF     III  Filling of colored continents        IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   cell_fill   1     IF chkstru ex   LEVELS  THEN ex   extractstru ex   LEVELS      IF chkstru ex   NODATA  THEN ex   extractstru ex   NODATA      IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255         If there is points at NaN    We trace points in white at NaN bafore drawing coasts with a trait        if keyword_set trinan  THEN BEGIN       IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size masknan 2        IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size masknan 1 y       contour   1b masknan  fltarr more   x  fltarr more               y  fltarr more  levels   0 5   overplot   fill             c_colors   cont_color  TRIANGULATION   trinan  _extra   ex       IF keyword_set forplt  THEN           completecointerre  COINMONTE   coinmontenan             COINDESCEND   coindescendnan  INDICEZOOM   indicezoomnan             CONT_COLOR   cont_color  _EXTRA   ex         ELSE fillcornermask  x  0  y 0    COINMONTE   coinmontenan             COINDESCEND   coindescendnan  CONT_COLOR   cont_color  _extra   ex     ENDIF     Filling of continents       if keyword_set realcont  then if realcont EQ 1 then mask   1b     if n_elements mask  NE 1 then BEGIN   If mask 1 we gap it          if NOT keyword_set cont_nofill  then BEGIN     mask filling           case 1 of           keyword_set realsection :drawsectionbottom  mask  xm  ym                 CONT_NOFILL   cont_nofill  CONT_COLOR   cont_color  _EXTRA   ex           usetri GE 1:BEGIN             if n_elements trimsk  eq 0 then trimsk   trichamp             IF size xm   N_DIMENSIONS  EQ 1 THEN xm   xm replicate 1   size mask 2              IF size ym   N_DIMENSIONS  EQ 1 THEN ym   replicate 1   size mask 1 ym             contour   1b mask  fltarr more   xm  fltarr more                     ym  fltarr more  LEVELS   0 5   OVERPLOT   FILL                   C_COLORS   cont_color  TRIANGULATION   trimsk  _extra   ex             IF keyword_set forplt  THEN                 completecointerre  COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  INDICEZOOM   indicezoommask                   CONT_COLOR   cont_color  _EXTRA   ex               ELSE fillcornermask  xm  0  ym 0    COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  CONT_COLOR   cont_color  _extra   ex           END           ELSE:BEGIN              IF size xm   n_dimensions  EQ 2 THEN xm   xm  0              IF size ym   n_dimensions  EQ 2 THEN ym   reform ym 0                contour  1b mask  xm  ym  LEVELS   0 5   OVERPLOT                    FILL  C_COLORS   cont_color  _EXTRA   ex           END         ENDCASE       ENDIF                       NOT keyword_set cont_nofill      IV  Trace coast in traits         case 1 of         keyword_set realsection  AND NOT keyword_set cont_nofill :               keyword_set realsection  AND keyword_set cont_nofill :             drawsectionbottom  mask  xm  ym               CONT_NOFILL   cont_nofill  _extra   ex          keyword_set forplt  AND  map projection GT 0 OR key_irregular              OR keyword_set nan :tracecote  _extra   ex         ELSE:tracemask  mask  xm  ym  _extra   ex       endcase                         ENDIF                         n_elements mask  NE 1   ENDIF     draw the triangulations     if keyword_set desstrichamp  then       dessinetri  trichamp  x  y  color   colortrichamp  thick   th_trichamp   if keyword_set desstrimask  then       dessinetri  trimsk  xm  ym  color   colortrimask  thick   th_trimask   if keyword_set desstrinan  then       dessinetri  trinan  x  y  color   colortrinan   if keyword_set drawpoints  then       tracegrille  x  y  color   colorpoints     fini:   IF keyword_set key_performance  THEN print   temps pltbase  systime 1 tempsun     return end");
+a[251] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltsc.html", "pltsc.pro", "", "       todo seb     PRO  pltsc tab1 tab2  min1  max1  min2  max2  varname2  BOXZOOM   boxzoom               COL1D col1d STY1D sty1d OV1D ov1d  _extra   ex     scatter plot  inspired from plt1d        compile_opt idl2  strictarrsubs        include common  cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      Comment: We do not reinitializate when we call back pltsc    if NOT keyword_set ov1d  then reinitplt      reduce data xyzt domain     if keyword_set boxzoom  then BEGIN       Case 1 Of        N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0         N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1         N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2         N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4         N_Elements Boxzoom  Eq 6:bte   Boxzoom        Else: Begin          ras   report Wrong Definition of Boxzoom            return        End      endcase      savedbox   1b      saveboxparam   boxparam4pltsc dat       domdef  bte  GRIDTYPE   vargrid    ENDIF    extract indexes to plot     indexm   where tab1 LE valmask 10     tab1   tab1 indexm     tab2   tab2 indexm      npts    size indexm 1     deal with  min and max of plot    IF finite min1  EQ 0 THEN min1   min tab1     IF finite max1  EQ 0 THEN max1   max tab1     IF finite min2  EQ 0 THEN min2   min tab2     IF finite max2  EQ 0 THEN max2   max tab2         init plot if not overlay        IF NOT keyword_set ov1d  THEN placedessin   yfx  posfenetre  posbar        contour   contour  _extra   ex    yy   tab1    xx   tab2    axis range     x range    min2 abs max2 min2 5 max2 abs max2 min2 5      y range    min1 abs max1 min1 5 max1 abs max1 min1 5      IF  NOT keyword_set sty1d  THEN sty1d   0    IF  NOT keyword_set col1d  THEN col1d   0    IF  NOT keyword_set ov1d  THEN  BEGIN        legende  min1  max1   yfx  VARNAME2   varname2  NPTS   npts  _EXTRA   ex          plot xx yy  background   255  psym   sty1d 1  color col1d  thick 2            title     subtitle    _extra   ex        if n_elements ex  NE 0 then BEGIN    To have a 0 colored frame and trace a line at y 0          if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE  0        ENDIF        plot   x range   0  0   noerase   nodata  xstyle   1  ystyle   1  _extra   ex   trace a line at x 0       plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex    ENDIF ELSE oplot xx yy color col1d linestyle sty1d thick 2  _extra   ex       3rd part: Possible print     fini:    terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4pltsc dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun           return end  ");
+a[252] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltt.html", "pltt.pro", "", "         file_comments    Trace hovmoller graphs: xt yt zt t      categories Graphics      param TAB  in required     The field whose we want to make the hovmoller map can be 2 kind of thing:  1  An array which can be:              3d or 4d: array   xt yt zt t  The last component is the time  In this case  the array will               pass in grossemoyenne to be averaged and become an 1d or 2d array               2d: If the array is already 2d  it is not modified  beware  lands must               be masked at the value valmask  and nevertheless type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM               1d: only for traces of the  t  type  Nevertheless  type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM          2  a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contained in the structure             respecting criterions of case 1         PARAM:          MAX: valeur maximum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le max de tableau  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 tableau  sur les pts   mer            DATMIN: c est la borne inf de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd            DATMAX: c est la borne max de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd       keyword BOXZOOM   Vector indicating the geographique zone  3d  on which the extraction of the field must    be done to do the hovmoeller     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  vert1  vert2    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 vert1 vert2 are global variables defined at the last domdef       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 pltt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword EXCHANGE_XY   Allows to invert axes        keyword FILTER   Apply a slippery average of width FILTER       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        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        keyword COL1d    OBSOLETE Color number when we make a trace 1d by default  0 It is better to use the    keyword COLOR used by plot       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 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 OV1D    Allows to overprint a 1d curve over a precedent 1d drawing       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 STY1D     OBSOLETE    Number of the style used when we make a 1d drawing  We should better use the    keyword LINESTYLE which is tho one of the plot  Beware  this keyword is still    useful if we want to d bars instead of curves  put sty1d bar       keyword TREND_TYPE   Modify field by calling trends pro      keyword TYPEIN   allows to specify the type of hovmoller we want to do                xt yt zt t      with help of a keyword rather than the argument type  If the argument andthe    keyword are specified in the same time  it is the value specified by the    keyword which is retained       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   27 5 98                         Jerome Vialard  adapting plt to hovmoller drawing                          2 7 98                         Sebastien Masson 14 8 98  continents barres                          15 1 98   Adaptation for arrays 3 and 4d to the average be done in pltt rather than during the reading                          Sebastien Masson 14 8 98                          7 1999                          Eric Guilyardi 29 7 99 FILTER  TREND_TYPE                          REPEAT_C                          Sebastien Masson 08 02 2000 checkfield and                         usetri keyword        version     Id       todo seb: L 24   36  L 426   427  L  492   493         pro pltt tab giventype givenmin givenmax datmin datmax BOXZOOM   boxzoom  CONTOUR contour             ENDPOINTS endpoints INTERVALLE intervalle INV inv              CONTINTERVALLE contintervalle LABEL label CONTLABEL contlabel             STYLE style  CONTMAX contmax             CONTMIN contmin NLEVEL nlevel CONTNLEVEL contnlevel             COL1D col1d STY1D sty1d  MININ   minin  MAXIN   maxin             OV1D ov1d  FILTER   filter  TREND_TYPE   trend_type             REPEAT_C   repeat_c  TYPEIN   typein  XT   XT  YT   YT  ZT   zt              TT   tt  STRICTFILL   strictfill  OVERPLOT   overplot              EXCHANGE_XY   exchange_xy              _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            For key_performance     I2  reinitialization   p x y    Comment: we do not reinitializate when we call back plt in loop to use contour       if n_elements contour  ne 4 AND NOT keyword_set overplot        AND NOT keyword_set ov1d  then reinitplt     I1  Reading of the field       if  keyword_set boxzoom  OR keyword_set endpoints         AND n_elements contour  ne 4 THEN BEGIN      savedbox   1b      saveboxparam   boxparam4pltt dat     ENDIF    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 minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin    if keyword_set typein  then BEGIN        if size type   type  NE 7 AND size type   type  NE 0 then begin          if n_elements min  NE 0 then max   min          min   type       endif       type   typein     ENDIF      checktypeminmax   pltt  TYPE   type  MIN   min  MAX   max          XT   XT  YT   YT  ZT   zt  TT   tt  ENDPOINTS   endpoints  _extra   ex      if keyword_set endpoints  then begin       section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type             BOXZOOM   boxzoom  DIREC   direc       nx   n_elements glam         ny   nx       if strupcase vargrid  EQ  W  then begin          z   gdepw firstzw:lastzw           nz   nzw       ENDIF ELSE BEGIN          z   gdept firstzt:lastzt           nz   nzt       ENDELSE    ENDIF ELSE BEGIN        z2d   checkfield tab   pltt  TYPE   type  BOXZOOM   boxzoom                            direc   direc  _extra   ex        if z2d 0  EQ  1 then BEGIN          IF keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat          return       endif       grille  mask  glam  gphi  gdep  nx  ny nz    ENDELSE     Calculation of trend anomaly following TREND_TYPE       IF NOT keyword_set trend_type  THEN trend_type   0     IF trend_type GT 0 THEN z2d   trends z2d  trend_type  type       Filtering of fields in the  t  case         IF type EQ  t  AND keyword_set filter  THEN BEGIN        print       Applying a running mean filter of width  string filter  format    I3        z2d   smooth z2d  filter        z2d 0:filter 2 1    0        z2d size z2d 1 filter 2 1: size z2d 1 1    0     ENDIF       Repetition of the temporal series       IF NOT keyword_set repeat_c  THEN repeat_c   1     temps   time 0:jpt 1     IF repeat_c GT 1 THEN BEGIN       taille size z2d        CASE taille 0  OF          1: z2d   reform z2d replicate 1  repeat_c  taille 1 repeat_c           2: BEGIN             z2d   z2d replicate 1  repeat_c              z2d   reform z2d  taille 1  taille 2 repeat_c   over           END           ELSE:        ENDCASE       temps    temps   lindgen jpt REPEAT_c 1 1 temps 1 temps 0 temps jpt 1     ENDIF       Selection of graphic s type        taille size z2d     case taille 0  of       2 : typdes 2d        1 : begin          z1d z2d          typdes 1d           if keyword_set OV1D  then begin             yy   z2d             if n_elements datmin  NE 0 then tempsmin   date2jul datmin                ELSE tempsmin   temps 0    on shift l axe du temps pour des questions de precision sur les   dates du calendier julien en long qui sont passes en float ds les axes             xx   temps tempsmin              x range x range tempsmin              x tickv x tickv tempsmin   We do a false plot to apply these changes              plot 0   0 noerase xstyle 5  ystyle   5  title     subtitle     ytitle     xtitle                 goto  trace1d          endif       end   endcase   We build the mask  For that  the table must be masked  automaticaly done at the    value valmask if we pass in moyenne or grossemoyenne     nan   total finite z2d nan   z2d  not very nice when xgridstyle 2    same if xticklen 0 5  not very nice in the middle    so we draw   the top  right  axis by hand using axis          if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF         plot   0   0   nodata   noerase  _extra   ex             xstyle   1 4 keyword_set endpoints  AND type EQ  xt  AND lat1 NE lat2 8 type EQ  yt  OR type EQ  zt              ystyle   1 4 keyword_set endpoints  AND type EQ  yt 8 type EQ  xt    call axis for the missing axis        IF type EQ  xt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  YTICKNAME 0  NE  1 then             ex YTICKNAME   replicate    n_elements ex YTICKNAME          axis  yaxis   1  ystyle   1  yticklen   0               ytickname   replicate     y ticks 1  _extra   ex       ENDIF       IF  type EQ  yt  OR type EQ  zt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 then             ex XTICKNAME   replicate    n_elements ex XTICKNAME         axis  xaxis   1  xstyle   1  xticklen   0             xtickname   replicate     x ticks 1  _extra   ex       ENDIF   ajout d un axe ds le cas ou l on utilise endpoints       if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     color bar         colnumb   colnumb 0:ncontour 1 keyword_set strictfill        barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                         position   posbar  _extra   ex      endif     1d   trace1d:    if  typdes eq  1d  then begin       if  not keyword_set col1d  then col1d   0       if keyword_set sty1d  then BEGIN  if we want to make bars          IF strlowcase strtrim sty1d  EQ  bar  then begin              y range    y range 0 y range 1 y range 0 05 y range 1               bar_plot  yy  background    d n_colors 1   not very nice when xgridstyle 2  same if   xticklen 0 5  not very nice in the middle       so we draw the top axis by hand using axis           if n_elements ex  NE 0 then BEGIN    To have a black frame             if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          ENDIF          plot   0   0   nodata   noerase                xstyle   1 8 1 keyword_set exchange_xy                 ystyle   1 8 keyword_set exchange_xy  _extra   ex   call axis for the missing axis           if n_elements ex  NE 0 then BEGIN    force tickname to blank array             if  where tag_names ex  EQ  YTICKNAME 0  NE  1 AND keyword_set exchange_xy  then ex YTICKNAME   replicate    n_elements ex YTICKNAME              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 AND NOT keyword_set exchange_xy  then ex XTICKNAME   replicate    n_elements ex XTICKNAME           ENDIF          if keyword_set exchange_xy  then  axis  yaxis   1  ystyle   1                yticklen   0  ytickname   replicate     y ticks 1  _extra   ex            ELSE axis  xaxis   1  xstyle   1  xticklen   0                xtickname   replicate     x ticks 1  _extra   ex        ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex    endif fini:     we reput time axis in IDL julian days and not in julian days count from tempsmin       if type EQ  xt  then BEGIN         y range y range tempsmin         y tickv y tickv tempsmin    ENDIF ELSE BEGIN         x range x range tempsmin        x tickv x tickv tempsmin    ENDELSE   We do a false plot to these values are considerated    plot   0   0   nodata   noerase  xstyle   5  ystyle   5          title     subtitle     ytitle     xtitle           3rd part: possible print        terminedessin  _extra   ex    if keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps pltt  systime 1 tempsun           return end  ");
+a[253] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltz.html", "pltz.pro", "", "             file_comments    Trace vertical graphs       categories    Graphics      param TAB    The field whose we want to make a vertical cut can be 2 kind of thing:           1  An 2d or 3d array             If the field is 2d  indicate  with the keyword BOXZOOM  geographic delineations of the boxzoom             If the field is 3d  we extract the section on we average possibly before to do the plot            2   a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contin in the structure must be 2 or 3d  See case 1      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 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 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 ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        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       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      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        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 SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       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 WDEPTH    To specify that the field is at W depth instead of T    depth  automatically activated if vargrid eq  W       keyword XZ   Force to make a cut following xz      keyword YZ   Force to make a cut following yz      keyword ZOOM    Depth where i can make our maximum zoom  By default 200m or max depth if it is inferior at 200m      uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr    7 1999   Sebastien Masson 08 02 2000 checkfield and   notri keyword       version    Id       todo seb L 20   26  L 215   221           pro pltz  tab  giventype  givenmin  givenmax  BOXZOOM   boxzoom  CONTOUR   contour               ENDPOINTS   endpoints  INTERVALLE   intervalle  INV   inv  ZRATIO   zratio               CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel               STYLE   style  CONTMAX   contmax  SIN   sin  TYPEIN   typein               CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel               NOTRI   notri  USETRI   usetri  FILLXDIR   fillxdir               ZOOM   zoom  XZ   xz  YZ   yz  MININ   minin  MAXIN   maxin               STRICTFILL   strictfill  OVERPLOT   overplot  MASKFILL   maskfill               WDEPTH   wdepth  REALSECTION   realsection               _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             For key_performance       1st part: initialization small calculations      Comment: we do not reinitializate when we call back plt in loop to use contour    if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt     if n_elements contour  ne 4 THEN saveboxparam   boxparam4pltz dat       Reading of the field      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 minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if n_elements realsection  EQ 0 then realsection   1   IF n_elements usetri  EQ 0 THEN BEGIN     IF n_elements notri  NE 0 THEN usetri   2 notri ELSE usetri   1   ENDIF   no need of triangulation   IF usetri EQ 1 AND keyword_set realsection  THEN usetri   0   did we specify the type     if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   ENDIF      checktypeminmax   pltz  TYPE   type  MIN   min  MAX   max         XZ   xz  YZ   yz  ENDPOINTS   endpoints  _extra   ex     if keyword_set endpoints  then begin     section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type          BOXZOOM   boxzoom  DIREC   direc  WDEPTH   wdepth  _extra   ex     if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       gdep   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       gdep   gdept firstzt:lastzt        nz   nzt     ENDELSE     mask   z2d LE valmask 10    ENDIF ELSE BEGIN     z2d   checkfield tab   pltz  TYPE   type  BOXZOOM   boxzoom                          DIREC   direc  WDEPTH   wdepth  _extra   ex      if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     IF realsection EQ 1 THEN grille  mask  glam  gphi  gdep  nx  ny  nz  ifpltz   type  WDEPTH   wdepth       ELSE grille  mask  glam  gphi  gdep  nx  ny  nz  WDEPTH   wdepth   ENDELSE   stop     profmax    y range 0    profmin    y range 1    if not keyword_set zoom  then zoom   200   zoom   zoom 0    IF zoom LT profmin THEN zoom   profmax   if zoom GE vert2 then zoom   profmax   construction of the mask and of the axis   axis4pltz  type  mask  glam  gphi  gdep  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   to draw from bottom to top  avoid using cell_fill    z2d   reverse z2d  2      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      nan   total finite z2d   nan   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1b mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values  find the coordinates of the mask        if  where mask EQ 0 0  EQ  1 AND NOT keyword_set nan  then notri   1     if keyword_set notri  then trifield    1       ELSE trifield   triangule mask basic    if  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  THEN       trifield   triangule mask   basic      IF NOT keyword_set endpoints   THEN BEGIN     if keyword_set nan  then trinan   triangule masknan   basic  coinmonte   coinmontenan  coindescend   coindescendnan      decoupeterre  mask  glammsk  gphimsk  gdepmsk  type   type  WDEPTH   wdepth  REALSECTION   realsection     axis4pltz  type  mask  glammsk  gphimsk  gdepmsk  XXAXIS   xmask  ZZAXIS   zmask  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   ENDIF ELSE BEGIN     xmask   xxaxis     zmask   zzaxis   ENDELSE      if  usetri GE 1 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN      IF keyword_set realsection  THEN trimsk   triangule mask   basic        ELSE trimsk   triangule mask   basic  coinmonte   coinmontemask                                 coindescend   coindescendmask    ENDIF          dessin en lui meme     pltbase  z2d  xxaxis  zzaxis  mask  xmask  zmask         level_z2d  colnumb  overplot   overplot         contour   contour  trichamp   trifield  trimsk   trimsk          c_linestyle   linestyle         c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  unsur2   unsur2         masknan   masknan  trinan   trinan         coinmontenan   coinmontenan  coindescendnan   coindescendnan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         REALSECTION   realsection  USETRI   usetri  _extra   ex     recall of pltz in loop when contour is activated     if n_elements contour  eq 4 then BEGIN   It is the second time I pass in pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    I send back the min  the max and the unity     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     pltz  contour  contmin  contmax  CONTOUR   pourlegende  ZRATIO   zratio           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style   noerase            NLEVEL   contnlevel  ZOOM   zoom  BOXZOOM   boxzoom  ENDPOINTS   endpoints           STRICTFILL   strictfill  REALSECTION   realsection  MASKFILL   maskfill           USETRI   usetri  WDEPTH   wdepth  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       3rd part: drawing of the frame  caption  colorbar      if keyword_set overplot  then BEGIN       y range     zoom  profmin    We get back on physic coordinates     plot   0   0   nodata   noerase  title     subtitle     xstyle   5  ystyle   5     GOTO  fini   endif     Caption   dysplay of them     legende  mi  ma  type  CONTOUR   pourlegende  INTERVALLE   intervalle  DIREC   direc  endpoints   endpoints  _EXTRA   ex   if type eq  yz  then xaxe    lataxe  else xaxe    lonaxe    if keyword_set sin  OR NOT key_onearth then xaxe       Frame applied by default   plot   xxaxis 0  xxaxis n_elements xxaxis 1   zratio   zratio   noerase         xstyle   1 4 keyword_set endpoints  AND  type EQ  xz  AND lat1 NE lat2  OR  type EQ  yz  AND lon1 NE lon2          xtickformat   xaxe  _extra   ex   Add of an axis in the case of we use endpoints   if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     Y axis in 1 or 2 part     if n_elements ex  NE 0 then BEGIN    To do not put title anymore     if  where tag_names ex  EQ  TITLE 0  NE  1 then ex TITLE         To do not put subtitle anymore     if  where tag_names ex  EQ  SUBTITLE 0  NE  1 then ex SUBTITLE         To have just one ytitle     if  where tag_names ex  EQ  YTITLE 0  NE  1 then BEGIN        ytitle   ex YTITLE       ex YTITLE           endif   ENDIF   htotal   posfenetre 3 posfenetre 1    hzoom   1 zratio htotal   if zoom LT profmax then       plot   0   0   nodata   noerase  ystyle   1  yrange    profmax  zoom 0 001          position   posfenetre 0  0  0   hzoom  _extra   ex  title     subtitle     ytitle          y range     zoom  profmin      We get back in physic coordinates    plot   0   0   nodata   noerase  ystyle   1  _extra   ex         title     subtitle     ytitle     position   posfenetre 0  htotal hzoom  0  0      to write the ytitle      if  d name EQ  PS  then       xs    max page_size  min   mi 1 key_portrait    mi key_portrait d x_px_cm     ELSE xs    d x_size   if n_elements ytitle  NE 0 then  y title   ytitle   charsize   chkstru ex   ycharsize   extract    if charsize EQ  1 then charsize    p charsize   IF chkstru ex   charsize  THEN ex charsize   charsize   if chkstru ex   ytitle   extract  NE   then       decalage   string format    e10 3  profmax    decalage   float strmid decalage  strpos decalage   e 1    posy   posfenetre 1 1 htotal 2   posx   posfenetre 0 decalage 3 d x_ch_size charsize xs   xyouts  posx  posy   y title   normal  orientation   90  color   0  ALIGNMENT    5  charsize   charsize  _extra   ex      colorbar     colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       4th part: possible print     fini:   terminedessin  _extra   ex         sortie:   restoreboxparam   boxparam4pltz dat      if keyword_set key_performance  NE 0 THEN print   temps pltz  systime 1 tempsun    return end   ");
+a[254] = new Array("./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html", "sbar_plot.pro", "", "             file_comments    Same thing that bar_plot but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS: cd IDL bar_plot      keyword COLORS    A vector  the same size as VALUES  containing the color index   to be used for each bar   If not specified  the colors are   selected based on spacing the color indices as widely as   possible within the available colors  specified by D N_COLORS       keyword COLORS    Is an integer giving color of all colorbars   contrarily to colors    which is a vector giving the color of each colorbar       keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt      keyword _EXTRA   used to pass your keyword      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  sbar_plot  indgen 10 small    2 2 2 rempli        IDL  sbar_plot  indgen 10 small    2 2 3 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999      version    Id             PRO sbar_plot  Values  COLORS   colors  NOREINITPLT   noreinitplt  _extra   ex      compile_opt idl2  strictarrsubs    common   1  I reinitialize the graphic environment  variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  I place the drawing on the screen like on the postscript     IF chkstru ex   overplot EQ 0 THEN placedessin   autre  _extra   ex   3  Drawing     if n_elements COLORS  NE 0 then BEGIN       if n_elements COLORS  EQ n_elements Values  then col   colors          ELSE col   replicate colors 0  n_elements Values     ENDIF ELSE col   congrid indgen d n_colors   256  n_elements Values       bar_plot  Values  background    p background  colors   col                  xstyle   1  ystyle   1  _extra   ex   4  End of drawing     terminedessin  _extra ex      return end");
+a[255] = new Array("./ToBeReviewed/PLOTS/DESSINE/scontour.html", "scontour.pro", "", "             File_comments   Same thing that contour but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS:cd IDL contour      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      examples        IDL  z   dist 100          IDL  scontour  z  nlevels 10 small 1 2 1 xstyle 1 ystyle 1        IDL   ps      history Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999       version    Id            PRO scontour  x  y  z  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  variables  x   y et  p :    if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript    if ex contains norease and c_orientation keywords we force ex noerase   0   IF chkstru ex   overplot  EQ 0 THEN placedessin   autre  _extra   ex   fiddle when noerase is used with c_orentation    call contour with  nodata to get the graphic environment  then force   noerase   0 and overplot   1   IF size ex   type  EQ 8 THEN BEGIN   check if noerase is used with c_orentation     alltags   strlowcase tag_names ex      dummy   where alltags EQ  noerase  count1      dummy   where alltags EQ  c_orientation  count2      IF count1 count2 NE 0 THEN BEGIN        case n_params  OF         1:contour  x   nodata  _EXTRA   ex         2:contour  x  y   nodata  _EXTRA   ex         3:contour  x  y  z   nodata  _EXTRA   ex       endcase       ex noerase   0       ex   get_extra overplot  _extra   ex        noerase_orientation   1     ENDIF    ENDIF    3  je fais mon joli dessin    case n_params  OF     1:contour  x  xstyle   1  ystyle   1  _EXTRA   ex     2:contour  x  y  xstyle   1  ystyle   1  _EXTRA   ex     3:contour  x  y  z  xstyle   1  ystyle   1  _EXTRA   ex   ENDCASE   fiddle when noerase is used with c_orentation  draw the contour axis   IF keyword_set noerase_orientation   THEN BEGIN     ex noerase   1     ex overplot   0     case n_params  OF       1:contour  x  xstyle   1  ystyle   1   nodata  _EXTRA   ex       2:contour  x  y  xstyle   1  ystyle   1   nodata  _EXTRA   ex       3:contour  x  y  z  xstyle   1  ystyle   1   nodata  _EXTRA   ex     ENDCASE   ENDIF   4  End of drawing   terminedessin  _extra   ex     return end");
+a[256] = new Array("./ToBeReviewed/PLOTS/DESSINE/splot.html", "splot.pro", "", "            file_comments    Same thing that plot but compatible with the whole environnement  common pro inclued       categories graphics      INPUTS:cd IDL   plot      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  splot  indgen 10 ystyle 1 small 1 2 1 portrait        IDL  splot   indgen 10 ystyle 1 small 1 2 2 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id            PRO splot   x  y  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  les variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript     placedessin   autre  _extra   ex   3  Drawing    if n_elements y  EQ 0 then plot   x  xstyle   1  ystyle   1  _EXTRA   ex      ELSE plot   x  y  xstyle   1  ystyle   1  _EXTRA   ex   4  End of drawing     terminedessin  _extra ex       return end");
+a[257] = new Array("./ToBeReviewed/PLOTS/DESSINE/tvplus.html", "tvplus.pro", "", "             file_comments   Enhanced version of tvscl      categories quick exploration of 2D arrays      INPUTS:       param Z2D  in required    2D array to visualize      param CELLSIZE  in optiona    This is the size  in pixel  of the square   representing 1 array element  By default  this size is computed   automatically in order that the size of the plotting window do   not exceed the screen size  If the user specify a large value   of cellsize that forces tvplus to create a window larger than   the screen  a  scrolling window  will be displayed instead of a   regular window  Unfortunately the nice fonctionnalities of tvplus   are not coded for  scrolling window  case       keyword BOTTOM   The lowest color index of the colors to be loaded in   the bar  default is 0       keyword C_NAN   The color number that should be used for the NaN values    default value is  d n_colors  1 e6  the test to find the masked value is ge   abs mask 10  This is necessary to avoid the rounding errors      keyword MIN    Scalar used to specify the min value of the color bar  default is 0      keyword MAX   Scalar used to specify the max value of the color bar  default is  d n_colors  tvplus  dist 100       history   Sebastien Masson  smasson lodyc jussieu fr                          18 12 98   Aug 2005: quick cleaning   english      version    Id            PRO tvplus  z2d  cellsize  BOTTOM   bottom  C_MASK   c_mask  C_NAN   c_nan  WINDOW   window                 MIN   min  MAX   max  MASK   mask  OFFSET   offset  NOUSEINFOS   NOUSEINFOS                 NCOLORS   ncolors  NOINTERP   nointerp  _EXTRA   ex       compile_opt idl2  strictarrsubs     IF n_elements z2d  EQ 0 THEN return   arr   reform float z2d      check the size of the input array      if  size arr 0  NE 2 then begin     ras   report Input array must have only 2 dimensions and not   strtrim size arr   n_dimensions  1      return   endif     def of ncolmax  bottom  topcol et ncolors     ncolmax    d n_colors  arr     truemin   min   ENDIF ELSE truemin   min arr    if n_elements max  NE 0 then BEGIN      arr   arr  floor x cellsize   floor y cellsize   floor x cellsize   floor y cellsize   floor x2 cellsize   floor y2 cellsize     size arr 2 cellsize 1          x     x  x2    x    x sort x          y     y  y2    y    y sort y          IF keyword_set OFFSET  THEN offset    x 0  y 0 offset ELSE offset    x 0  y 0          tvplus  z2d x 0 :x 1  y 0 :y 1    WINDOW   window  MIN   min  MAX   max                     MASK   mask  C_MASK   c_mask  C_NAN   c_nan   NOUSEINFOS  OFFSET   OFFSET                     NCOLORS   ncolors  NOINTERP   nointerp  BOTTOM   bottom  _EXTRA   ex         return       END       ELSE:     endcase   ENDWHILE      x   xenvsauve    y   yenvsauve    p   penvsauve    x range   1 0  nx cellsize 5 offset 0     y range   1 0  ny cellsize 5 offset 1      return end");
+a[258] = new Array("./ToBeReviewed/PLOTS/DIVERS/addaxe.html", "addaxe.pro", "", "             file_comments   Add an axis when we do an oblique section in pltz  pltt   or plt1d      categories   graphic      param ENDPOINTS  in required    Coordonnees of extremities of the section       param TYPE  in required    A string of two characters specifying the type of plot we do      param POSFENETRE  in required    The vector  p position corresponding to the frame position of    the drawing part of the plot       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id            PRO addaxe  endpoints  type  posfenetre  _EXTRA   ex     compile_opt idl2  strictarrsubs    common      IF strpos type   x  NE  1 THEN BEGIN       IF endpoints 1  EQ endpoints 3  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lonaxe          formeaxe1    lataxe          titreaxe    latitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    j index        ENDELSE       range    endpoints 1  endpoints 3        if endpoints 2  LT endpoints 0  THEN range   reverse range     ENDIF ELSE BEGIN       IF endpoints 0  EQ endpoints 2  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lataxe          formeaxe1    lonaxe          titreaxe    longitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    i index        ENDELSE       range    endpoints 0  endpoints 2        if endpoints 3  LT endpoints 1  THEN range   reverse range     ENDELSE    if type EQ  yt  then BEGIN       axis yaxis 0 ytickformat formeaxe0 color 0 ystyle   1  _EXTRA   ex       axis yaxis 1 ytickformat formeaxe1 color 0 ystyle   1 ytitle titreaxe  yrange   range  _EXTRA   ex    ENDIF ELSE BEGIN       axis xaxis 0 xtickformat formeaxe0 color 0 xstyle   1 _EXTRA   ex       axis xaxis 1 xtickformat formeaxe1 color 0 xstyle   1 xtitle titreaxe  xrange   range  _EXTRA   ex    ENDELSE       return end");
+a[259] = new Array("./ToBeReviewed/PLOTS/DIVERS/autoscale.html", "autoscale.pro", "", "             file_comments    We give a min and a max  and the procedure send back    the good contour interval and labels s value       categories    graphic      param MIN  in required    A reel number specifying above what value we want to trace a contour      param MAX  in required    A reel number specifying below what value we want to trace a contour      param CI   out    It is a reel number giving the contour interval  Use it in CONTOUR with the keyword LEVEL       restrictions   CI is a multiple of the unity in unity log of 10    It force the number of contour to be even       history   G  Roullet   aout 99  gr lodyc jussieu fr       version    Id            PRO autoscale  min  max  ci      Estimation of a first CI  notice the presence of the floor  Inferior round    This CI is a multiple of the unity in unity log of 10        compile_opt idl2  strictarrsubs       ci    max min 20      ci   10 floor alog10 ci       n   0     ci0   ci       coef    2  2 5  5  10      We test differents CI  contour intervals  i e  1  2  2 5  5 and 10   until the number of contour is inferior to 30        WHILE ceil max min ci  GE 30 DO BEGIN            ci   ci0 coef n            n   n 1     ENDWHILE       min   floor min ci 2 ci 2     max   ceil max ci 2 ci 2          nlevels   round max min ci            We force the number of contour to be even       IF nlevels MOD 2 EQ 1 THEN BEGIN            nlevels   nlevels 1           max   max ci     END    END     ");
+a[260] = new Array("./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html", "axis4pltz.pro", "", "             file_comments   compute the mask and the axis for a vertical section      param MASK  in required     3d mask              param GLAM  in required    2d longitude        param GPHI  in required    2d latitude      param Z  in required    1d depth      keyword XXAXIS    to get the xaxis we need to use in pltbase            keyword ZZAXIS    to get the yaxis we need to use in pltbase      keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      keyword _EXTRA   used to pass your keywords       Others: see pltz         history   Sebastien Masson  smasson lodyc jussieu fr                         June 24  2002      version    Id             PRO axis4pltz  type  mask  glam  gphi  z  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF        define the mask used for this section     if mask 0  NE  1 AND  size mask 0  NE 2 then begin     if type EQ  xz  then mask   total mask  2    1       ELSE mask   total mask  1    1   endif     define xxaxis and yyaxis the axis used for this section     nx    size glam 1    CASE  size gphi 0  OF     1:ny    size gphi 1      2:ny    size gphi 2    ENDCASE   CASE  size z 0  OF     1:nz    size z 1      2:nz    size z 2    ENDCASE     if type eq  yz  then BEGIN      IF  size gphi 0  EQ 1 then xxaxis   gphi ELSE BEGIN        IF keyword_set key_irregular  THEN BEGIN          cln    where gphi EQ max gphi 0          xxaxis   reform gphi cln MOD nx          ENDIF ELSE xxaxis   reform gphi 0        ENDELSE     if keyword_set sin  then xxaxis   sin pi 180 xxaxis      if  size z 0  EQ 1 THEN zzaxis   z ELSE zzaxis   z   ENDIF ELSE BEGIN     xxaxis   glam  0      if  size z 0  EQ 1 then zzaxis   z ELSE zzaxis   z   ENDELSE      We project the z axis in  0 1      if not keyword_set zratio  then zratio   2 3   if zoom ge profmax then zratio   1    if zoom LT profmax then begin     mp   projsegment profmin  zoom   0  zratio   mp      zzaxis where zzaxis LE zoom    mp 0 zzaxis where zzaxis LE zoom mp 1      mp   projsegment zoom  profmax   zratio  1   mp      zzaxis where zzaxis GE zoom    mp 0 zzaxis where zzaxis GE zoom mp 1    ENDIF ELSE BEGIN     mp   projsegment profmin  profmax   0  1   mp      zzaxis   mp 0 zzaxis mp 1    ENDELSE    to draw from bottom to top  avoid using cell_fill    CASE size zzaxis   n_dimensions  OF     1:zzaxis   reverse zzaxis       2:zzaxis   reverse zzaxis  2     ENDCASE   if mask 0  NE  1 then mask   reverse mask  2     return end");
+a[261] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", "             file_comments   Overlayeur of colorbar      categories   utilities      restrictions pass all argument we want thanks to _extra      history   Sebastien Masson  smasson lodyc jussieu fr                          23 12 98      version    Id       todo seb: mettre les keyword et les param         PRO barrecouleur  colnumb  clbinf  clbsup  clbdiv                       NOCOLORBAR   nocolorbar  CB_TITLE   cb_title                       NOFILL   nofill  COLOR_c   color_c                       min   min  max   max  divisions   divisions                       CB_SUBTITLE   cb_subtitle  POST   post  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     if keyword_set min  then clbinf   min   if keyword_set max  then clbsup   min   if keyword_set divisions  THEN  clbdiv   divisions   nocolorbar   keyword_set nocolorbar    keyword_set nofill                     keyword_set color_c          def_myuniquetmpdir     IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used        colorbarparam    colnumb:colnumb  clbinf:clbinf                           clbsup:clbsup  clbdiv:clbdiv     ENDIF ELSE BEGIN       save  colnumb  clbinf  clbsup  clbdiv               file   myuniquetmpdir    4colorbar dat     ENDELSE      if keyword_set nocolorbar  then return       ancienx    x    ancieny    y    ancienp    p    reinitplt     x style   1     y style   1        colorbar  cb_color   0  cb_charsize   ancienp charsize            pscolor   keyword_set post  division   clbdiv            min   clbinf  max   clbsup            cb_title   cb_title  discret   colnumb  _extra   ex       x  ancienx     y  ancieny     p  ancienp      return end");
+a[262] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", "FUNCTION err_1d  type  n1  name  n2     compile_opt idl2  strictarrsubs     return  report Error in     type     type plot with a 1D input array:                         the number of elements of the input vector  strtrim n1  1                           is not equal to     name      strtrim n2  1   simple  END   FUNCTION err_2d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 2D input array:                         the array dimensions     tostr sz 1:2      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END   FUNCTION err_3d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 3D input array:                         the array dimensions     tostr sz 1:3      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END              file_comments   In input of plt  pltz  pltt and plt1d  it check that the field give    a size compatible with the domain and  if needed  average to give us    a 2d array if we make a plot of the type:  xy   xz   xt   yz   yt       zt  or a 1d array if we make a plot of the type:  x   y   z   t       categories   graphic       param FIELD  in required    A field respecting litchamp pro s criterions  See IDL xhelp litchamp       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 WDEPTH   to specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W        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 DIREC         uses    common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         08 02 2000      version    Id       todo seb: mettre les param              FUNCTION checkfield  field  procedure  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  NOQUESTION   noquestion  VECTEUR   vecteur  WDEPTH   wdepth  _EXTRA   ex       compile_opt idl2  strictarrsubs     include commons  cm_4mesh  cm_4cal  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     I1  Reading of the field     if n_elements field  EQ 0 then return  report field undefined    arr   litchamp field    first check   IF n_elements arr  EQ 1 THEN BEGIN     if arr EQ  1 then         return  report Error: input array    1  Maybe the reading did ont perform well   simple        ELSE return  report Error: input array is a scalar   simple         ENDIF   nan   total finite arr   nan    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1     jpk 1        nzt   lastzt   firstzt   1     ENDELSE      updateold   ENDIF   make the automatic definition of type for pltz if type is not specified    IF type EQ  z  AND procedure EQ  pltz  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz    make the automatic definition of type for pltt if type is not specified    IF type EQ  unkownpltt  AND procedure EQ  pltt  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt      verification of the input array size and the value of the type     grille   1   1   1   1  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz  WDEPTH   wdepth     basic checks     CASE 1 OF     nx EQ 1: IF strpos type   x  NE  1 THEN return  report Error: impossible to make a     type     type plot with nx   1    simple      ny EQ 1: IF strpos type   y  NE  1 THEN return  report Error: impossible to make a     type     type plot with ny   1    simple      nz EQ 1: IF strpos type   z  NE  1 THEN return  report Error: impossible to make a     type     type plot with nz   1    simple      jpt EQ 1: IF strpos type   t  NE  1 THEN return  report Error: impossible to make a     type     type plot with jpt   1    simple      ELSE:   ENDCASE     is the size of the array compatible with teh domain      arr   fitintobox temporary arr  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz      sz   size arr    case sz 0  of       0:return  arr       1:BEGIN       nele   n_elements arr        case type of          t :if jpt NE nele THEN return  err_1d type  nele   jpt  jpt           x :IF  nx NE nele THEN return  err_1d type  nele    nx   nx           y :IF  ny NE nele THEN return  err_1d type  nele    ny   ny           z :IF  nz NE nele THEN return  err_1d type  nele    nz   nx          ELSE:return  report Error:                                    Impossible to make a  type  plot with a 1D array   simple        ENDCASE     END        2:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    y    xy array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    z    x y z array             sz 1  EQ nx AND sz 2  EQ jpt:direc    t    xt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         end          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    x    xy array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    z     x yz array             sz 1  EQ ny AND sz 2  EQ jpt:direc    t    yt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    x    x y z array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    y     x yz array             sz 1  EQ nz AND sz 2  EQ jpt:direc    t    zt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ jpt:direc    x    xt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ jpt:direc    y     x yt array             nx EQ 1 AND ny EQ 1 AND sz 1  EQ nz AND sz 2  EQ jpt:direc    z     x y zt array             ELSE:return  err_2d type  sz  nx  ny  nz            ENDCASE         END          xy :IF sz 1  NE nx OR sz 2  ne  ny THEN return  err_2d type  sz  nx  ny  nz    xy array          xz :IF sz 1  NE nx OR sz 2  ne  nz THEN return  err_2d type  sz  nx  ny  nz    xz array          yz :IF sz 1  NE ny OR sz 2  NE  nz THEN return  err_2d type  sz  nx  ny  nz    yz array          xt :IF sz 1  NE nx OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    xt array          yt :IF sz 1  NE ny OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    yt array          zt :IF sz 1  NE nz OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    zt array       ENDCASE     END        3:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    yz    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt    x y zt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    yt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xz    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt     x yzt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xy    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yt     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xt    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xy    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yz     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xz    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xy :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    z    xyz array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    t    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    y    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t    x y zt             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          yz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    x    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t     x yzt             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          xt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    y    xyt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          yt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    x    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          zt :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    x    x y zt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    y     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             ENDCASE         END        ENDCASE      END        4:BEGIN        CASE type OF          x :direc    yzt           y :direc    xzt           z :direc    xyt           t :direc    xyz           xy :direc    zt           xz :direc    yt           yz :direc    xt           xt :direc    yz           yt :direc    xz           zt :direc    xy        ENDCASE      END   ENDCASE     IF keyword_set direc  THEN BEGIN     IF strpos direc   t  NE  1 OR strpos type   t  NE  1 THEN         arr   grossemoyenne temporary arr  direc  boxzoom   localbox                               NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex        ELSE arr   moyenne temporary arr  direc  boxzoom   localbox                            NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex    ENDIF           RETURN  arr END");
+a[263] = new Array("./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html", "checktypeminmax.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr       todo seb         PRO checktypeminmax  procedure  TYPE   type  MIN   min  MAX   max  XY   xy                          XZ   xz  YZ   yz  XT   XT  YT   YT  ZT   zt                          TT   tt  XX   xx  YY   yy  ZZ   zz                          XINDEX   xindex  YINDEX   yindex                          ENDPOINTS   endpoints  _extra   ex       compile_opt idl2  strictarrsubs    common      case size type   type  of       0:       7:       ELSE:BEGIN          vraimin   type          case size min   type  of             0:BEGIN                 min   vraimin                type   0             END             7:BEGIN                 type   min                min   vraimin             end             ELSE:BEGIN                case size max   type  of                   0:BEGIN                      max   min                      min   vraimin                      type   0                   END                   7:BEGIN                       type   max                      max   min                      min   vraimin                   end                   ELSE:BEGIN                      rien   report Probleme dans la definition des arguments en entree de                                         procedure   chkwidget                       return                   end                endcase             end          endcase       end    endcase      if keyword_set xy  then type    xy     if keyword_set xz  then type    xz     if keyword_set yz  then type    yz     if keyword_set xt  then type    xt     if keyword_set yt  then type    yt     if keyword_set zt  then type    zt     if keyword_set tt  then type    t     if keyword_set xx  then type    x     if keyword_set yy  then type    y     if keyword_set zz  then type    z       if keyword_set type  then begin      if type EQ  plt  then type          if type EQ  pltz  then type          if type EQ  pltt  then type          if type EQ  plt1d  then type        endif     determination du type de plot que l on veut faire      if NOT keyword_set type  then BEGIN       case procedure of          plt :type    xy           pltz :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz            ENDIF ELSE type    z          END          pltt :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              lat2   max endpoints 1  endpoints 3              if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt            ENDIF ELSE type    unkownpltt          END          plt1d :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    x  else type    y            ENDIF ELSE BEGIN             type                 WHILE type NE  x  AND type NE  y  AND type NE  z  DO BEGIN               type   xquestion Quel type de plot 1D voulez vous faire  x y z ou t                                       chkwidget                type   strlowcase type              endwhile           ENDELSE         END       endcase     ENDIF      WHILE type NE  xy  AND type NE  xz  AND type NE  yz          AND type NE  xt  AND type NE  yt  AND type NE  zt          AND type NE  t  AND type NE  x  AND type NE  y          AND type NE  z  AND type NE  unkownpltt  DO BEGIN       type   xquestion What kind of plot do you want to do  xy xz yz xt yt zt t x y z                                 chkwidget        type   strlowcase type      ENDWHILE               return   end");
+a[264] = new Array("./ToBeReviewed/PLOTS/DIVERS/determineminmax.html", "determineminmax.pro", "", "             file_comments   Determine the min and the max of a mask array      categories    Lightening of the writting of plt  pltz and pltt      param TAB  in required    The array whose we determine the min and the max      param MASK  in required    The mask array       keyword MININ    It is a scalar which  if it is not defined  take the value of VRAIMIN      keyword MAXIN    It is a scalar which  if it is not defined  take the value of VRAIMAX      keyword ZEROMIDDLE    Force the middle of the colorbar to be equal   to 0  force max max abs min max  and min max        keyword _EXTRA   used to pass your keywords      keyword USETRI   To force using triangulation        param VRAIMIN  out    The min of the array      param VRAIMAX  out    The max of the array      uses   Common pro      restrictions   Look if the field is constant on the sea      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id       todo seb: manque les param glam et gphi           PRO determineminmax  tab  mask  vraimin  vraimax  glam  gphi  MAXIN   maxin  MININ   minin  INTERVALLE   intervalle  usetri   usetri  ZEROMIDDLE   zeromiddle  _extra   ex     compile_opt idl2  strictarrsubs    common       Type o fthe vertical grid:   if vargrid EQ  W  then nz   nzw ELSE nz   nzt   liste des points mer   if  size mask 0  EQ 3 then mer   mask    0      ELSE mer   mask   If key_irregular eq 1  we mask also points which are not in the geographic    domain defined by lon1 lon2 lat1 lat2   if keyword_set key_irregular  AND n_elements glam  NE 0 AND n_elements gphi  NE 0 then begin     dom     where glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2      if dom 0  NE  1 then mer dom    0   endif     mer   where mer eq 1      if mer 0  eq  1 then begin     ras   report Il n y a que de la terre sur le dessin      vraimax   0     vraimin   0     maxin   vraimax 1     minin   vraimin 1     usetri   0     return   endif   ma and mi : max and min on ocean points   vraimax   max tab mer  min   vraimin  _extra   ex    sameminmax   testvar var   minin  EQ testvar var   maxin     if n_elements maxin  EQ 0 OR sameminmax then maxin   vraimax   if n_elements minin  EQ 0 OR sameminmax then BEGIN      if keyword_set intervalle  then minin   floor vraimin intervalle intervalle       ELSE minin   vraimin   endif   if vraimin eq vraimax then BEGIN     IF size vraimin   type  EQ 1 THEN vraimin   fix vraimin      question    Warning: constant filed  same value everywhere :     strtrim vraimin  2     Shall we make the plot      answer   report question   default_no   question      if answer then begin       maxin   vraimax 1       minin   vraimin 1     endif ELSE tab    1   ENDIF   IF keyword_set zeromiddle  THEN BEGIN       maxin   max abs minin  maxin        minin    maxin   ENDIF     return end");
+a[265] = new Array("./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html", "givewindowsize.pro", "", "");
+a[266] = new Array("./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html", "meridienparallele.pro", "", "             file_comments   Trace some meridians or parallel      categories   graphic      param COUPE The type of drawing we treat      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id            PRO meridienparallele  coupe     compile_opt idl2  strictarrsubs    common      case coupe of        xy :BEGIN           if lon1 lt 180 and lon2 gt 180 then             plot   180 180 lat1 lat2 noerase color 0          if lon1 lt 0 and lon2 gt 0 then             plot   0 0 lat1 lat2 noerase color 0          if lon1 lt 360 and lon2 gt 360 then             plot   360 360 lat1 lat2 noerase color 0          if lat1 lt 0 and lat2 gt 0 then             plot   lon1 lon2 0 0 noerase color 0       END     endcase     return end");
+a[267] = new Array("./ToBeReviewed/PLOTS/DIVERS/placecolor.html", "placecolor.pro", "", "             file_comments   allows to trace the independently from a graph   By default  trace a color bar of the same type tahn the one present in plt   and pltz  If max  min and divisions are not stipulated  then max sup min inf   and divisions div       categories   graphic      param POS   Vecteur composed by 4 elements giving coordinates of the left bottom    corner and of the right up one  in cm  in which we want to do the color bar      keyword _extra   used to pass your keywords      uses   common pro      restrictions   Only usable for POSTCRIPTs effectuated with plein2dessin      history   Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version    Id            pro placecolor  pos  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4ps    IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew    ENDIF        xsave    x    ysave    y    psave    p      reinitplt   z   invert    pos 1 pos    mipgsz   min page_size  max   mapgsz     if key_portrait eq 1 then begin       pos 0 pos 0 mipgsz         pos 1 pos 1 mapgsz           pos 2 pos 2 mipgsz        pos 3 pos 3 mapgsz        endif else begin       pos 0 pos 0 mapgsz           pos 1 pos 1 mipgsz           pos 2 pos 2 mapgsz           pos 3 pos 3 mipgsz        ENDELSE      def_myuniquetmpdir      IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used         colnumb   colorbarparam colnumb       clbinf   colorbarparam clbinf        clbsup   colorbarparam clbsup       clbdiv   colorbarparam clbdiv      ENDIF ELSE BEGIN       file   myuniquetmpdir    4colorbar dat        IF file_test file  THEN BEGIN          restore  file                  if size ex   type  EQ 8 then BEGIN              if  where tag_names ex  EQ  MIN 0  NE  1 then clbinf   ex MIN             if  where tag_names ex  EQ  MAX 0  NE  1 then clbsup   ex MAX             if  where tag_names ex  EQ  DIVISIONS 0  NE  1 then clbdiv   ex DIVISIONS          ENDIF            COLORBAR  COLOR   0  DIVISIONS   clbdiv  DISCRET   colnumb               cb_color   0  POSITION   pos  MAX   clbsup               MIN   clbinf  cb_charsize    p charsize               _extra   ex       ENDIF    ENDELSE       x   xsave     y   ysave     p   psave      return end");
+a[268] = new Array("./ToBeReviewed/PLOTS/DIVERS/placedessin.html", "placedessin.pro", "", "             file_comments    Putting into place of the drawing  opening of the window or of the PS      categories    Utilities      param TYPEDESSIN   It is a chain or characteres specifying what procedure is called by PLACEDESSIN:  plt   pltz  or  pltt       keyword LANDSCAPE    Force the page or the window on the screen to be in lenthened position       keyword LCT    Is an integer designating the number of the palette of color we want to use for the plot        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    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   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       keyword NOCOLORBAR    We active it if we do not want the colorbar      keyword NOFILL    We active it if we only want contours in black and white with a white background       keyword NOERASE    We active it to make a drawing without creating a new frame       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated        keyword PORTRAIT    Force the page or the window to be in standing position       keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword REMPLI    Force the drawing to occupy the whole space defined by small       keyword WINDOW   Number of the window on which we want to do the graph  Allow to open several windows     By default  we open  IDL0       keyword CB_TITLE    The colorbar s title      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 ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        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 DIREC    t   x   y   z   xys   xz   yz   xyz   xt   yt   zt   xyt           xzt   yzt   xyzt  Direction on which do averages       keyword _EXTRA   Used to pass your keywords       keyword COLOR_C    To draw the contour in color instead of in black   with filling in color       param POSFENETRE  out    It is a vector composed by 4 elements containing the position of the frame    containing captions and the graph in normalized coorinates     Comment: To position the drawing  we have to do  p position posfenetre    after the call of the caliber      param POSBAR  out    Like POSFENETRE but for the color bar     Same comment to position the color bar   p position posbar      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999      version    Id            PRO placedessin  typedessin  posfenetre  posbar  BARMARGES   barmarges                      NOCOLORBAR   nocolorbar  NOFILL   nofill  COLOR_c   color_c                      CONTOUR   contour                      VECTEUR   vecteur  PORTRAIT   portrait  LANDSCAPE   landscape                      SMALL   small  MARGES   marges  MAP   map                      REMPLI   REMPLI  POST   post  WINDOW   window                      ENDPOINTS   endpoints  TYPE   type  BASICMARGES   basicmarges                      NOERASE   noerase  LCT   lct  DIREC   direc  CB_TITLE   cb_title  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4ps  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     1  Determination of the size of margins  unity number of lines or columns    to the left  to the right  up and down    BEWARE in margebar  the last element is the right up corner    instead of the up margin     if n_elements typedessin  EQ 0 then typedessin    autre    if keyword_set basicmarges  then begin     marge   1 6  2  4  3      if keyword_set marges  THEN marge   marge marges     margebar   1 marge 0 1  marge 1 1   marge 2 8   marge 2 6      if keyword_set barmarges  then margebar   margebar barmarges   ENDIF ELSE BEGIN      nocolorbar   keyword_set nocolorbar    keyword_set nofill    keyword_set color_c        case typedessin of        plt :marge   1 6  2  4  3         pltt :marge   1 6 4 type EQ  xt  2  4  4         pltz :marge   1 6  2  4  3        else:marge   1 6  2  4  3      ENDCASE     if keyword_set marges  THEN marge   marge marges     if NOT keyword_set barmarges  then barmarges   replicate 0  4      barmarges 3     barmarges 3      margebar   1 marge 0 1  marge 1 1  2  4 barmarges     marge   marge 0  0  4  0 keyword_set cb_title      IF keyword_set direc  THEN         marge   marge 0  0  2  0 strlowcase direc  NE  t      marge   marge 0  0  2  0 keyword_set contour      marge   marge 0  0  2  0 keyword_set vecteur      if n_elements lon1  NE 0 and n_elements lon2  NE 0         and n_elements lat1  NE 0 and n_elements lat2  NE 0 then begin       if keyword_set type  then           marge   marge 0  3 type EQ  yt  AND lon1 NE lon2  0                            2 type NE  yt  AND lat1 NE lat2 keyword_set endpoints          ELSE marge   marge 0  0  0  2 lat1 NE lat2 keyword_set endpoints      endif     marge   marge 0  0  2 margebar 3  0 1 keyword_set nocolorbar    ENDELSE     Portrait or landscape     IF NOT keyword_set noerase  THEN BEGIN      CASE 1 OF       n_elements portrait  NE 0:key_portrait   portrait       n_elements landscape  NE 0:key_portrait   1 landscape       ELSE:     ENDCASE   ENDIF      What type of aspect rapport  it will be crushed if YXASPECT exist      case typedessin of      plt :yaspect   1 lat2 lat1 lon2 lon1       pltt :yaspect   1       pltz :yaspect    5     ELSE:yaspect   1    endcase     2  calculation of  p position   see calibre pro        IF NOT keyword_set small  then small    1  1  1      if keyword_set map  then rempli   1     calibre  yaspect  marge  margebar  small  posfenetre  posbar  REMPLI   rempli  _extra   ex      p position   posfenetre     3  opening of the graphic window or of the postscript     case 1 of   case of the first drawing on a postcript     keyword_set post  AND  d name ne  PS :openps  _extra   ex   case of the first drawing on a screen     keyword_set post  EQ 0 AND keyword_set noerase  EQ 0         AND  d name ne  PS  AND  d name ne  Z :BEGIN       if not keyword_set window  then window   0   For the using of  ps oups et de  vzoom       if lmgr demo  EQ 0 then BEGIN   Are we in the demo mode          if  journal NE 0 then journal   We close te journal if it is open         homedir   isadirectory io   homedir  title    Bad definition of homedir          def_myuniquetmpdir         journal  myuniquetmpdir idlsave pro    We open a new one         help   recall_commands  output   listecommande   We recuperate the last command         listecommande   strmid strcompress listecommande 1  2          journal  listecommande   We write it in the journal       ENDIF       windsize   givewindowsize        window  window  xsize   windsize 0  ysize   windsize 1   retain   2  _extra   ex   When we used colors which are coded on 24bit  we can not stipulate the background color    of a window thanks to  p background  so we have to to this:            if  d n_colors gt 256 then begin               device  decomposed 1                p background ffffff x               plot 0 0   nodata  xstyle   4  ystyle   4               device  decomposed 0            endif     END     ELSE:   endcase     if n_elements lct  NE 0 then lct  lct  _extra   ex      return end");
+a[269] = new Array("./ToBeReviewed/PLOTS/DIVERS/projsegment.html", "projsegment.pro", "", "             file_comments   project linearly a segment  a vector whose boundaries are  a b  on    a vector whose boundaries are  c d       categories   calculation      param VECTEUR   A vector whose the first element must be the smallest one and the last must be the biggest one       param BORNES    New boundaries of the vector       keyword MP   Activate this keyword to the function send back this a vector of 2    elements which are the m and p of the linear projection y mx p used    to pass from the  a b  segment to the  c d  segment       returns    A vector whose new boudaries are specified by BORNES       examples          IDL  a indgen 9       IDL  print  a             0       1       2       3       4       5       6       7       8     IDL  print  projsegment a 0 80              0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 0 80               0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 80 0               80      70      60      50      40      30      20      10      0      history   Sebastien Masson  smasson lodyc jussieu fr                          24 6 1999      version    Id            FUNCTION projsegment  vecteur  bornes  MP   mp       compile_opt idl2  strictarrsubs      a1   float vecteur 0     b1   float vecteur n_elements vecteur 1     a2   float bornes 0     b2  float  bornes 1     if a1 EQ b1 then return   1    m    b2 a2 b1 a1     p   a2 m a1      if keyword_set mp  then return   m  p  ELSE return  m vecteur p   end");
+a[270] = new Array("./ToBeReviewed/PLOTS/DIVERS/restoreatt.html", "restoreatt.pro", "", "             file_comments   Allows to reattribuate global variables associated with a field    when we give a stucture created by saveatt pro by example       categories    Utilities      param STRUCT  in required    a structure like the one who read litchamp            See IDL  xhelp litchamp       uses   common pro      restrictions   Change the value if global variables attribute of a field: vargrid     varname  varunit  vardate  varexp   valmask and time       history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id            PRO restoreatt  struct     compile_opt idl2  strictarrsubs    common      nomelements   tag_names struct     for i   0  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :vargrid   strupcase struct i            n :varname   struct i            u :varunit   struct i            e :varexp   struct i            m :valmask   struct i            d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                vardate     time series                 time   struct i              ENDELSE          end          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure   C cf  IDL  xhelp   litchamp           end       endcase    endfor      return end");
+a[271] = new Array("./ToBeReviewed/PLOTS/DIVERS/rotation.html", "rotation.pro", "", "       file_comments   Rotate two vectors by a specified amount           param X  in required    orignal data point pairs      param Y  in required    orignal data point pairs                 param DEG  in required    degrees to rotate           param NX  out    rotated point pairs        param NY  out    rotated point pairs           history   Jeff Bennett  U of Colorado      version    Id       PRO ROTATION X Y DEG NX NY     compile_opt idl2  strictarrsubs   ang deg dtor   convert to polar coordinates for rotation r   sqrt x x   y y  theta   r 0   get angle in for loop so that zero radii will be left as zero angle for i   0 n_elements r 1 do   if r i  ne 0 then theta i    atan y i x i    range from  pi to  pi    add rotation angle theta   theta   ang    convert back to rectangular coordinates  now rotated nx   r   cos theta  ny   r   sin theta    return end");
+a[272] = new Array("./ToBeReviewed/PLOTS/DIVERS/saveatt.html", "saveatt.pro", "", "             file_comments   Allows to put in a structure attributes which can be associated with a variable       categories   utilities      returns    A structure of the form:            n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask l:niveau       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id            FUNCTION saveatt     compile_opt idl2  strictarrsubs    common    return   n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask  end");
+a[273] = new Array("./ToBeReviewed/PLOTS/DIVERS/terminedessin.html", "terminedessin.pro", "", "             file_comments   End the drawing if needed when it is a postscript       categories   utilities  graphic      keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated       keyword _EXTRA    Used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          3 6 1999      version    Id            PRO terminedessin  POST   post  SMALL   small  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      if keyword_set post  then BEGIN       if keyword_set small  then         if total small  NE            page_margins 2 page_margins 0 total page_size              page_margins 1 page_margins 3  then return       closeps       printps    endif    return end");
+a[274] = new Array("./ToBeReviewed/PLOTS/LABEL/label.html", "label.pro", "", "             file_comments   Allows to choose the type of the label we want to use at the time of a contour       categories   graphic      param CAS  in required    Number of the type of the label we want to trace      param MIN  in required     Smallest value for the drawing of the contour       param MAX  in required    Biggest value for the drawing of the contour       keyword INTERVALLE   Value of an interval betwenn two isolines  By default  it is calculated to    draw 20 isolines  In all cases  this keyword must be returnedt have a nice   caption  If levels do not contain regular intervals  put it at  1       keyword NLEVEL   Number of contour to be drawn  By default  20  Active if LABEL 0 or is not specified       param NCONTOUR  out    Number of contour to be drawn        param LEVEL_Z2D  out    Vector containing values of contours we draw       param COLNUMB  out    Vector containing the number of colors which will serve to fill contours       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version     Id            pro label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel              INTERVALLE intervalle  STRICTFILL   strictfill     compile_opt idl2  strictarrsubs    common    if  d name EQ  PS  OR  d name EQ  Z  then BEGIN       old_dname    d name       thisOS    VERSION OS_FAMILY       thisOS   STRMID thisOS  0  3        thisOS   STRUPCASE thisOS        CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE        p BACKGROUND d n_colors 1   ncontour          level_z2d    min    max min findgen Ncontour Ncontour           colnumb      ncoul findgen Ncontour Ncontour ncoul 2 ncontour           intervalle   level_z2d 1 level_z2d 0        end       1: begin   a certain number of label from the min to the nearest possible to the   max with a constant step by interval          ncontour    fix max min intervalle           ncontour   1   ncontour          level_z2d   min   intervalle findgen Ncontour            colnumb     ncoul findgen Ncontour Ncontour ncoul 2 ncontour           max level_z2d Ncontour 1 intervalle       end   label to do same sss than dessier        2: begin          lct  63  file    palette tbl           level_z2d     20  25  30  31  32  33  33 5  34 25 findgen 16           ncontour 23          colnumb      findgen 23 1          masx   37 75          intervalle    1          return       end       3: begin   Readinf of intervals   palette in the file GMT           label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  colnumb        end       else: begin          ras   report Le numero de label demande n existe pas        end    ENDCASE    if keyword_set strictfill  then begin       ncontour   ncontour 1       level_z2d    level_z2d  max        colnumb    colnumb  ncoul 1     endif    return end");
+a[275] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "    Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited          file_comments   This function labels axes with dates and times       categories   Plotting       param AXIS  in required       param INDEX  in required       param X  in required       keyword DATE_FORMAT   a format string which may contain the following:    M for month  3 character abbr     N for month  2 digit abbr     D for day of month     Y for 4 digit year     Z for last two digits of year     For time:    H for Hours  2 digits     I for mInutes  2 digits     S for Seconds  2 digits      is      Other characters are passed directly thru    For example   M  D   Y  prints DEC 11  1993    M  2Y  yields DEC 93    D M  yields 11 DEC    D N Y  yields 11 12 1993    M C Y  yields DEC on the top line  1993 on   the bottom  C is the new line graphic command       keyword MONTHS   The names of the months  a twelve element string array    If omitted  use Jan  Feb    Dec       keyword OFFSET   An optional starting offset of the plot    Unfortunately  single precision floating point is not accurate   enough to properly represent Julian times   This offset  which   may be double precision  contains an offset that is added to   all x values  before conversion to Julian date and time       uses   LABEL_DATE_COM       restrictions   Only one date axis may be simultaneously active       examples   For example  to plot from Jan 1  1993  to July 12  1994:   Start_date   julday 1  1  1993    End_date   julday 7  12  1994    Dummy   LABEL_DATE DATE_FORMAT N D    Simple mm dd   x   findgen end_date 1   start_date    start_date  Time axis   PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1    Plot with X axis style set to exact      Example with times:  For example  to plot from 3PM  Jan 1  1993  to 5AM  Jan 3   1993:  Start_date   Julday 1 1 1993     Also starting offset  Start_time    3 12 24           Starting_time less offset  End_time    Julday 1 3 1993    Start_date    5 24   Ending          date time   offset  note that the order of operations is                   important to avoid loss of precision   Dummy   LABEL_DATE DATE_FORMAT D  M C H: I     offset Start_date         MMM NN  HH:MM format  x   findgen 20     End_time   Start_time    19   start_time  Time axis  PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1      history  DMS  RSI April  1993 Written   DMS  RSI March  1997 Added Time format      Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: label_date pro 134 2006 07 07 10:19:08Z navarro         FUNCTION LABEL_DATE  axis  index  x  DATE_FORMAT   format  MONTHS   months                  OFFSET  offs  _EXTRA   ex     compile_opt idl2  strictarrsubs   COMMON label_date_com  fmt  month_chr  offset  if keyword_set format  then begin  Save format string      if n_elements offs  ne 0 then offset   double offs  else offset   0 0d0     if keyword_set months  then month_chr   months       else month_chr    Jan Feb Mar   Apr   May   Jun   Jul                           Aug   Sep   Oct   Nov   Dec      fmt   format     return  0 endif  if n_elements month_chr  ne 12 or n_elements fmt  le 0     or n_elements offset  eq 0 then     message  Not initialized   x1   x   offset caldat  long x1  month  day  year  _EXTRA   ex Get the calendar date from julian frac   x1   long x1              time of day  from 0 to 1   n   strlen fmt  out      for i 0  n 1 do begin            Each format character      c   strmid fmt  i  1         The character      if c eq   then begin         i   i   1         c   strmid fmt  i  1     The function         case c of format character               M  : out   out   month_chr month 1               N  : out   out   string format i2 2  month               D  : out   out   string format i2 2  day               Y  : out   out   string format i4  year               Z  : out   out   string format i2 2  year  mod 100               H  : out   out   string format i2 2  floor 24 frac               I  : out   out   string format i2 2  floor 1440   frac mod 60               S  : out   out   string format i2 2  86400L   frac mod 60                : out   out                 else : message   Illegal character in date format string:  fmt         endcase     endif else out   out   c endfor return  out end");
 a[276] = new Array("./ToBeReviewed/PLOTS/LABEL/label_gmt.html", "label_gmt.pro", "", "    Apply GMT palette into IDL color intervals system   PRO label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  coul     compile_opt idl2  strictarrsubs    common  com_eg     IF pal_type NE  2dom  THEN BEGIN      color defined in lec_pal_gmt pro        ncontour   ncont_gmt       level_z2d   levels_gmt       coul   coul_gmt       max   max_gmt       intervalle     1     ENDIF ELSE BEGIN           grey_shade palette  case 1 in label        IF finite min  EQ 0 THEN read    Grey shade needs a min max :  min  max       ncontour    fix max min intervalle        level_z2d   min   intervalle findgen Ncontour         max level_z2d Ncontour 1 intervalle        print        Number of contour intervals  plotting min   max   ncontour  min  max       print               color index        IF idx_pal EQ 0 THEN BEGIN              build palette          red   lonarr 99           red    255          red 50:98    long 100 float grey_shade 100 255            IF field origin EQ  diff  THEN BEGIN                      difference plot : lighter below first negative interval             red 51:98    long 100 float grey_shade_2 100 255              red 1:48    long 100 float grey_shade 100 255              red 50    255           ENDIF              first color black            last   white          red    0  red           red 99    255            gray scale          green   red          blue   red           tvlct  red  green  blue        ENDIF           mid_index   max where level_z2d LE fldatt mid        coul   findgen Ncontour 49 mid_index  2     ENDELSE    END ");
-a[277] = new Array("./ToBeReviewed/PLOTS/LABEL/lataxe.html", "lataxe.pro", "", "          NAME:LATAXE     PURPOSE:fonction appelee par  XYZ TICKFORMAT  cf l help pour voir           comment l utiliser  pour labeller les axes en latitude      CATEGORY:graphe     CALLING SEQUENCE: XYZ TICKFORMAT lataxe      INPUTS:fournis  et imposes  automatiquement par IDL: axis  index  value:  Axis is the axis number: 0 for X axis  1 for Y axis  2 for Z axis   Index is the tick mark index which starts at 0   Value is the default tick mark value  a floating point number    KEYWORD PARAMETERS:     OUTPUTS:un string  utilise automatiquement pour labeller     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format des labels         FUNCTION lataxe  axis  index  value     on ramenne value ds le segment  0 180      compile_opt idl2  strictarrsubs      lat value mod 360    if lat lt 0 then lat lat 360    if lat gt 180 then lat lat 180   format des labels:    case 1 of       lat EQ round lat :fmt    i4        10 lat EQ round 10 lat :fmt    f6 1        ELSE:fmt    f7 2     endcase   on ecrit le label    if lat le 90 and lat ne 0 then nom string lat      format fmt N     if lat gt 90              then nom string 180 lat  format fmt S     if lat eq  0              then nom string lat      format fmt       return  nom end ");
-a[278] = new Array("./ToBeReviewed/PLOTS/LABEL/lonaxe.html", "lonaxe.pro", "", "          NAME:LONAXE     PURPOSE:fonction appelee par  XYZ TICKFORMAT  cf l help pour voir           comment l utiliser  pour labeller les axes en longitude      CATEGORY:graphe     CALLING SEQUENCE: XYZ TICKFORMAT lonaxe      INPUTS:fournis  et imposes  automatiquement par IDL: axis  index  value:  Axis is the axis number: 0 for X axis  1 for Y axis  2 for Z axis   Index is the tick mark index which starts at 0   Value is the default tick mark value  a floating point number    KEYWORD PARAMETERS:     OUTPUTS:un string  utilise automatiquement pour labeller     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format des labels         FUNCTION lonaxe  axis  index  value     on ramenne value ds le segment  0 360      compile_opt idl2  strictarrsubs      lon value mod 360    if lon lt 0 then lon lon 360   format des labels:    case 1 of       lon EQ round lon :fmt    i4        10 lon EQ round 10 lon :fmt    f6 1        ELSE:fmt    f7 2     endcase   on ecrit le label    if lon lt 180 then nom string lon      format fmt E     if lon gt 180 then nom string 360 lon  format fmt W     if lon eq 180 then nom string lon      format fmt       return  nom end ");
-a[279] = new Array("./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html", "ajoutvect.pro", "", "          NAME:ajoutvect     PURPOSE:surimprimme des vecteur sur un champ tarce par plt     CATEGORY:grafique     CALLING SEQUENCE:ajoutvect vecteur      INPUTS:  vecteur: une structure a 2 elements contenant les 2 matrices U  et V des valeurs de la composante zonale et meridienne du  champ de vecteurs a tracer          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     KEYWORD PARAMETERS:    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     VECTMIN norme minimun des vecteurs a tracer     VECTMAX norme minimun des vecteurs a tracer      OUTPUTS:     COMMON BLOCKS:  common pro      SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   10 3 1999                         11 6 1999 compatibilite avec NAN et la lecture                         des structures          pro ajoutvect vecteur  vectlegende  UNVECTSUR unvectsur VECTMIN vectmin  VECTMAX vectmax  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance        u   litchamp vecteur 0     u   checkfield u   plt  TYPE    xy   NOQUESTION     v   litchamp vecteur 1     v   checkfield v   plt  TYPE    xy   NOQUESTION        on recupere les eventuelles info sur les champs      grilleu   litchamp vecteur 0   grid     if grilleu EQ   then grilleu    U     grillev   litchamp vecteur 1   grid     if grillev EQ   then grillev    V      IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ grillev THEN interpolle    0 ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     on trouve les points que u et v ont en communs      if interpolle then begin       indicexu    lindgen jpi firstxu:firstxu nxu 1        indicexv    lindgen jpi firstxv:firstxv nxv 1        indicex   inter indicexu  indicexv        indiceyu    lindgen jpj firstyu:firstyu nyu 1        indiceyv    lindgen jpj firstyv:firstyv nyv 1        indicey   inter indiceyu  indiceyv        nx   n_elements indicex         ny   n_elements indicey        indice2d   lindgen jpi  jpj        indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction de u et v sur le domaine qui convient         case 1 of           size u 0  NE 2 OR  size v 0  NE 2: return           size u 1  EQ nxu AND  size u 2  EQ nyu AND              size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              if nxu NE nx then                if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                 IF nxv NE nx THEN                if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                IF nyu NE ny THEN                if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny               IF nyv NE ny THEN                if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny           END           size u 1  EQ jpi AND  size u 2  EQ jpj AND              size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN              u   u indice2d              v   v indice2d           END          ELSE:BEGIN              ras   report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs              return          end       endcase     on reform u et v pour s assurer qu aucune dimension n a ete ecrasee         if ny EQ 1 then begin          u   reform u  nx  ny           v   reform v  nx  ny        endif     construction de u et v aux pts T         a u 0        u u shift u 1 0 2        if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a       a v 0        v v shift v 0 1 2        if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution du mask et des tableau de longitude et latitude   on recupere la grille complette pour etablir un grand mask etendu ds les 4   directions pour couvrir les points pour lesquels un pt terre a ete pris en   compte  faire un petit dessin          vargrid T        msku    umask indice2d jpi jpj firstzt        mskv    vmask indice2d jpi jpj firstzt        glam   glamt indice2d        gphi   gphit indice2d        if ny EQ 1 then begin          msku   reform msku  nx  ny           mskv   reform mskv  nx  ny             glam   reform glam  nx  ny             gphi   reform gphi  nx  ny        endif     on masque u et v le long des cotes  la on l on ne peut pas calculer   la moyenne      extention du mask       u   u msku shift msku 1 0        v   v mskv shift mskv 0 1     ENDIF ELSE BEGIN        u   u tmask firstxt:lastxt firstyt:lastyt firstzt        v   v tmask firstxt:lastxt firstyt:lastyt firstzt        indice2d   lindgen jpi  jpj        indice2d   indice2d firstxt:lastxt  firstyt:lastyt        nx   nxt       ny   nyt    endelse    tabnorme sqrt u 2 v 2     nan   where finite u   nan  EQ 1     if nan 0  NE  1 then u nan    1e5    nan   where finite v   nan  EQ 1     if nan 0  NE  1 then v nan    1e5    if keyword_set vectmin  then BEGIN        toosmall where tabnorme lt vectmin        if toosmall 0  NE  1 then begin          u toosmall    1e5          v toosmall    1e5       ENDIF    endif    if keyword_set vectmax  then BEGIN       toobig where tabnorme gt vectmax        if toobig 0  NE  1 then begin          u toobig    1e5          v toobig    1e5       ENDIF    ENDIF     remise d une grande valeur sur tous les points pour lesquelles on ne   put faire le calcul      if interpolle then t2   msku shift msku 1 0 mskv shift mskv 0 1       ELSE t2   tmask firstxt:lastxt firstyt:lastyt firstzt     if NOT keyword_set key_periodic  OR nx NE jpi then t2 0   0     t2 0 0     terre where t2 eq 0     if terre 0  ne  1 then begin       u terre 1e5       v terre 1e5    ENDIF     tracer qu un vecteur sur      if keyword_set unvectsur  then BEGIN     indx est un vecteur contenant les numero des colonnes a selectionner    indy est un vecteur contenant les numero des lignes a selectionner        if n_elements unvectsur  EQ 1 then begin          indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 0  eq 0        ENDIF ELSE BEGIN           indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 1  eq 0        ENDELSE   a partir de indx et indy on va construire un tableau d indices 2d   qui donnera les indices des points intersections des colonnes   specifiee par indx        indicereduit   indx replicate 1 n_elements indy nx replicate 1 n_elements indx indy   on reduit les tableaux qui vont etre passes a vecteur        u   u indicereduit        v   v indicereduit        tabnorme   tabnorme indicereduit       endif           if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     trace des vecteurs      vecteur  u  v  tabnorme  indice2d  indicereduit  missing 1e5  _extra   ex     on complete la legende      if terre 0  ne  1 then mini   min tabnorme where t2 eq 1  max   maxi   nan       ELSE mini   min tabnorme  max   maxi   nan         if litchamp vecteur 0   u  NE   then       vectlegende    minmax: mini  maxi  unite:litchamp vecteur 0   u       ELSE vectlegende    minmax: mini  maxi  unite:varunit    sortie:    if keyword_set key_performance  NE 0 THEN print   temps ajoutvect  systime 1 tempsun     return end  ");
-a[280] = new Array("./ToBeReviewed/PLOTS/VECTEUR/vecteur.html", "vecteur.pro", "", "          NAME:vecteur     PURPOSE: trace des vecteurs  meme situees sur une grille tordue  sur   n importe quelle projection  de telle sorte que tous les vecteurs   aient une norme comparable sur le dessin  en clair  un vecteur qui   doit faire 1cm le fait quelque soit la projection et sa position sur   la sphere       CATEGORY:trace de vecteur     CALLING SEQUENCE:vecteur  composanteu  composantev  normevecteur  indice2d  reduitindice2d      INPUTS: COMPOSANTEU et COMPOSANTEV: ce sont les composantes des   vecteurs a tracer  Ces tableaux 2d ont la meme dimension que   reduitindice2d  cf apres          INDICE2D: indice permettant de passer d un tableau jpi jpj au         zoom surlequel on fait le dessin          REDUITINDICE2D: indice permettant de passer d un tableau         definit par indice2d au tableau pourlequel on a reelement des         vecteurs a tracer  en clair: c est par ex qd on ne trace par exemple         que un vecteur sur 2      KEYWORD PARAMETERS:          CMREF: la longeur en cm sur le papier que diot faire la fleche        de norme normeref  par defaut ajuste au dessin et compris entre         5 et 1 5 cm          MISSING: la valeur d une missing value  ne pas utilisder ce        mot cle  fixe a 1e5 par ajoutvect pro                NORMEREF: la norme de la fleche de reference  par defaut on        essaie de faire qqch qui colle pas trop mal           VECTCOLOR: la couleur de la fleche  Par defaut noir  couleur 0           VECTTHICK  l epaissuer de la fleche  par defaut 1           VECTREFPOS: vecteur de 2 elements specifiant la position en        coordonnees DATA du debut du vecteur de reference  Par defaut        en bas a droite du dessin           VECTREFFORMAT: format a utiliser pour specifier la norme du        vecteur de reference            NOVECTREF: pour supprimer l affichage du vecteur de reference      OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:    Creation : 13 02 98 G  Roullet  grlod lodyc jussieu fr     Modification : 14 01 99 realise la transformation    spheriquecartesien G  Roullet                   12 03 99 verification de la routine G  Roullet    8 11 1999:    G  Roullet et Sebastien Masson  smasson lodyc jussieu fr     adaptation pour les zoom  reverification traitement separe de la    direction et de la norme des vecteurs  mots cles NORMEREF et CMREF           FUNCTION cv_cm2normal  angle     donne la longeur en coordonnes normales d un trait ortiente de   angle par rapport a l axe des x et qui doit faire 1 cm sur le   dessin    angle peut etre un tableau        compile_opt idl2  strictarrsubs    common   quelle est la longeur en coordonnees normales d un trait qui fera 1   cm sur le parier et qui est parallele a x    mipgsz   min page_size  max   mapgsz     sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait     sizeyfeuille   mapgsz key_portrait mipgsz 1 key_portrait     cm_en_normal   1 sizexfeuille      si le rapport d aspect de la fenetre n est pas egale a 1  la    longeur en coordonees normalise d un trait de 1cm varie suivant    l angle polaire de ce trait       aspect   sizexfeuille sizeyfeuille    cm_en_normal   cm_en_normal sqrt  1  aspect 2 1 sin angle 2        return  cm_en_normal END   PRO normalise  u  v  w     normalise le vecteur       compile_opt idl2  strictarrsubs      IF n_elements w  NE 0 THEN BEGIN        norme   sqrt u 2 v 2 w 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind        w ind    w ind norme ind     ENDIF ELSE BEGIN       norme   sqrt u 2 v 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind     ENDELSE  END PRO vecteur  composanteu  composantev  normevecteur  indice2d  reduitindice2d                  CMREF   cmref  MISSING   missing  NORMEREF   normeref                  VECTCOLOR   vectcolor  VECTTHICK   vectthick  VECTREFPOS   vectrefpos                  VECTREFFORMAT   vectrefformat  NOVECTREF   novectref  _extra   extra     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance        taille   size composanteu     nx   taille 1     ny   taille 2     if n_elements reduitindice2d  EQ 0 then reduitindice2d   lindgen nx  ny     zu   composanteu    zv   composantev    norme   normevecteur    taille   size indice2d     nxgd   taille 1     nygd   taille 2       msk   replicate 1  nx  ny     if keyword_set missing  then terre   where abs zu  GE missing 10  ELSE terre    1    if terre 0  NE  1  then BEGIN        msk terre    0       zu terre    0       zv terre    0       norme terre    0    ENDIF     Etape 1:      etant donne la direction et le sens que le vecteur a sur la   sphere  il faut se debrouiller pour determiner cette direction et le   sens qu aura le vecteur sur l ecran ou la feuille une fois qu il   aura ete projete      En theorie: sur la sphere  un vecteur en un point donne a pour   direction la tangente au cercle qui passe par le centre de la terre   et par le vecteur  Donc trouver la direction une fois la projection   faite ds le plan 2d  c est trouver la tangente a la courbe   representant la projection du cercle sur le plan 2d au point   representant la projection du point de depart de la shere sur le   plan 2d      En pratique on ne connait pas la definition de la courbe que donne   la projection d un cercle alors trouver sa tangente en un point      Ce que l on fait:   Ds un repere cartesien 3d           a  on trouve les coordonnees du point T  debut de la fleche          situe sur la shere          b  pour chaque point T on determine les directions locales         definies par la grille en ce point et auxquelles se rapportent         les coordonnes  u v  du vecteur  Ces directions locales sont         definies par les gradiants des glam et gphi  Une fois ces         directions obtenues  on les considere comme orthogonales et en         les normant on construit un repere orthonormal  nu nv  auquel se         rapporte les coordonnes  u v  du vecteur  Ds le repere         cartesien 3d de depart  le vecteur est definit par:         V u nu v nv  ou V  nu et nv sont des vecteurs 3d et u et v des         scalaires          c  pour approximer la tangente au cercle par la corde definie         par le debut et la fin de la fleche  on va normaliser V puis         le diviser par 100          d  ceci nous permet de determiner les coordonnees ds le repere         cartesien 3d des extremites de la corde  on les passe en         coordonnes sphereriques de facon a recuperer les positions en         latitude longitude de ces points sur la sphere          e  on passe les coordonnees de ces points en coordonnees         normalise puis en corrdonnes polaire de facon a trouver         l angle et la direction qu ils determinent sur le dessin        etape 1  a        coordonnes du point T  debut de la fleche  en coordonnes sheriques    glam   glamt indice2d reduitindice2d     gphi   gphit indice2d reduitindice2d      coordonnes du point T  debut de la fleche  dans le repere cartesien   on utilise comme shere  une shere de rayon 1       radius   replicate 1 nx ny     coord_sphe   transpose   glam   gphi   radius       r   cv_coord from_sphere coord_sphe to_rect degrees       x0   reform r 0    nx  ny     y0   reform r 1    nx  ny     z0   reform r 2    nx  ny      etape 1  b      Construction du vecteur nu  resp  nv  vecteur norme porte par   l axe des points u i j  et u i 1 j   resp v i j  et v i j 1    qui definissent pour chaque point sur la shere les directions locales   associee a u et v  ces vecteurs definissent un repere orthonorme   local     ces vecteurs sont construits dans un repere cartesien  cv_coord    on a choisit un rayon de la terre unite  unit      definition de nu    radius   replicate 1 nxgd nygd     IF finite glamu 0 gphiu 0  NE 0 THEN        coord_sphe   transpose   glamu indice2d   gphiu indice2d   radius         ELSE coord_sphe   transpose   glamf indice2d   gphit indice2d   radius       r   cv_coord from_sphere coord_sphe to_rect degrees    coordonnes de points de la grille u en cartesien    ux   reform r 0    nxgd  nygd     uy   reform r 1    nxgd  nygd     uz   reform r 2    nxgd  nygd    calcul de nu     nux   ux shift ux  1  0     nuy   uy shift uy  1  0     nuz   uz shift uz  1  0    conditions aux limites    if NOT keyword_set key_periodic  OR nxgd NE jpi then begin       nux 0      nux 1          nuy 0      nuy 1          nuz 0      nuz 1       ENDIF   reduction de la grille    nux   nux reduitindice2d     nuy   nuy reduitindice2d     nuz   nuz reduitindice2d    definition de nv    IF finite glamv 0 gphiv 0  NE 0 THEN      coord_sphe   transpose   glamv indice2d   gphiv indice2d   radius         ELSE coord_sphe   transpose   glamt indice2d   gphif indice2d   radius                       r   cv_coord from_sphere coord_sphe to_rect degrees    coordonnes de points de la grille v en cartesien    vx   reform r 0    nxgd  nygd     vy   reform r 1    nxgd  nygd     vz   reform r 2    nxgd  nygd    calcul de nv     nvx   vx shift vx  0  1     nvy   vy shift vy  0  1     nvz   vz shift vz  0  1    conditions aux limites    nvx  0    nvx  1     nvy  0    nvy  1     nvz  0    nvz  1    reduction de la grille    nvx   nvx reduitindice2d     nvy   nvy reduitindice2d     nvz   nvz reduitindice2d      normalisation      normalise  nux  nuy  nuz    normalise  nvx  nvy  nvz     etape 1  c      coordonnes du vecteur V ds le repere cartesion      direcx   zu nux   zv nvx    direcy   zu nuy   zv nvy    direcz   zu nuz   zv nvz   normalisation du vecteur v    normalise  direcx  direcy  direcz   on divise par 100     direcx   direcx 100     direcy   direcy 100     direcz   direcz 100      etape 1  d    coordonnees de la pointe de la fleche dans le repere cartesien     x1   x0   direcx    y1   y0   direcy    z1   z0   direcz    coordonnees de la pointe en spherique     coord_rect   transpose   x1   y1   z1       r   cv_coord from_rect coord_rect to_sphere degrees     glam1   reform r 0    nx  ny     gphi1   reform r 1    nx  ny       modif des glam tout se passe bien au niveau de la ligne de   changement de date attention  il ne faut pas couper les fleches   qui sortent de la fenetre    test: si il sort du cadre mais qu avec un   360 il y rentre on le   modifie       ind   where glam1 LT  x range 0  AND glam1 360  LE  x range 1     if ind 0  NE  1 then glam1 ind    glam1 ind 360     ind   where glam1 GT  x range 1  AND glam1 360  GE  x range 0     if ind 0  NE  1 then glam1 ind    glam1 ind 360      ind   where glam LT  x range 0  AND glam 360  LE  x range 1     if ind 0  NE  1 then glam ind    glam ind 360     ind   where glam  GT  x range 1  AND glam 360  GE  x range 0     if ind 0  NE  1 then glam ind    glam ind 360        etape 1  e       r   convert_coord glam gphi data to_normal      x0   r 0                      coordonnes normales du debut de la fleche    y0   r 1                              r   convert_coord glam1 gphi1 data to_normal      x1   r 0                      coordonnes normales de la fin de la fleche  avant scaling     y1   r 1                           tests pour eviter que des fleches soient dessineees hors du domaine      out   where x0 LT  p position 0  OR x0 GT  p position 2                    OR y0 LT  p position 1  OR y0 GT  p position 3     if out 0  NE  1 THEN x0 out     values f_nan     suivant les projections  il peu y a voir des points a nan qd on   passe en coordonnes normales  on supprime ces points       nan   finite x0 y0 x1 y1     number   where nan EQ 1     x0   x0 number    x1   x1 number     y0   y0 number    y1   y1 number     msk   msk number     norme   norme number      on definit le vecteur direction dans le repere normalise      dirx   x1 x0    diry   y1 y0     on passe en polaire pour recuperer l angle qui etait le but de   toute la partie 1        dirpol   cv_coord from_rect   transpose   dirx   diry     to_polar     dirpol   msk dirpol 0        2eme etape      maintenant on s occupe de la norme      Mise a l echelle automatique      if NOT keyword_set cmref  then BEGIN        mipgsz   min page_size  max   mapgsz        sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait        sizexfeuille   10 sizexfeuille       cmref   5   floor sizexfeuille 10    15       cmref   cmref 10     ENDIF    if NOT keyword_set normeref  then BEGIN       value   max norme        puissance10   10 floor alog10 value        normeref   puissance10 floor value puissance10     endif    cm   1 normeref cmref     on modifie le tableau norme de facon a ce que un element qui a la   valeur cm soit represente par un trait de longueur 1cm sur le   papier    norme contient la norme des vecteur que l on veut dessiner      norme   1 1 cm norme cv_cm2normal dirpol        3eme etape    maintenant qu on a l angle et la norme  et bien on recupere les   coordonnes en rectangulaire et on dessine les fleches       r   cv_coord from_polar   transpose   dirpol   norme     to_rect     composantex   r 0       composantey   r 1         x1   x0 composantex    y1   y0 composantey     c est parti pour le trace        if NOT KEYWORD_SET vectcolor  then vectcolor   0     points   where msk EQ 1     IF points 0  NE  1 THEN arrow  x0 points  y0 points  x1 points  y1 points   norm         hsize    2  COLOR   vectcolor  THICK   vectthick      Dessine une fleche en bas a droite de la figure en guise de legende      if NOT keyword_set novectref  then BEGIN       dx   cmref cv_cm2normal 0    longuer du vecteur de reference en coordonnes normalisees        if keyword_set vectrefformat  then          normelegende   strtrim string normeref  format   vectrefformat  1            ELSE normelegende   strtrim normeref  1            if keyword_set vectrefpos  then begin          r   convert_coord vectrefpos data   to_normal           x0   r 0           y0   r 1        ENDIF ELSE BEGIN          x0    x window 1 dx          r   convert_coord d x_ch_size   d y_ch_size   device   to_normal           dy   3 r 1 p charsize          y0    y window 0 dy       ENDELSE        arrow  x0  y0  x0 dx  y0   norm  hsize    2  color   0       xyouts  x0  y0  normelegende   norm  align   1  charsize    p charsize  color   0     endif         if keyword_set key_performance  NE 0 THEN print   temps vecteur  systime 1 tempsun         return END     ");
-a[281] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "   Id: velovect pro 134 2006 07 07 10:19:08Z navarro       Copyright  c  1983 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited          NAME:  VELOVECT     PURPOSE:  Produce a two dimensional velocity field plot     A directed arrow is drawn at each point showing the direction and   magnitude of the field                     CATEGORY:  Plotting  two dimensional      CALLING SEQUENCE:  VELOVECT  U  V   X  Y      INPUTS:  U: The X component of the two dimensional field     U must be a two dimensional array     V: The Y component of the two dimensional field   Y must have  the same dimensions as X   The vector at point  i j  has a   magnitude of:    U i j 2   V i j 2 0 5    and a direction of:    ATAN2 V i j U i j      OPTIONAL INPUT PARAMETERS:    X: Optional abcissae values   X must be a vector with a length   equal to the first dimension of U and V     Y: Optional ordinate values   Y must be a vector with a length  equal to the first dimension of U and V      KEYWORD INPUT PARAMETERS:  COLOR: The color index used for the plot     DOTS: Set this keyword to 1 to place a dot at each missing point    Set this keyword to 0 or omit it to draw nothing for missing  points   Has effect only if MISSING is specified     LENGTH: Length factor   The default of 1 0 makes the longest  U V   vector the length of a cell            MISSING: Missing data value   Vectors with a LENGTH greater  than MISSING are ignored            OVERPLOT: Set this keyword to make VELOVECT  overplot   That is  the                 current graphics screen is not erased  no axes are drawn  and                 the previously established scaling remains in effect       Note:   All other keywords are passed directly to the PLOT procedure  and may be used to set option such as TITLE  POSITION    NOERASE  etc    OUTPUTS:  None      COMMON BLOCKS:  None      SIDE EFFECTS:  Plotting on the selected device is performed   System  variables concerning plotting are changed      RESTRICTIONS:  None      PROCEDURE:  Straightforward   Unrecognized keywords are passed to the PLOT  procedure        MODIFICATION HISTORY:  DMS  RSI  Oct  1983   For Sun  DMS  RSI  April  1989   Added TITLE  Oct  1990   Added POSITION  NOERASE  COLOR  Feb 91  RES   August  1993   Vince Patrick  Adv  Visualization Lab  U  of Maryland   fixed errors in math   August  1993  DMS  Added _EXTRA keyword inheritance   January  1994  KDB  Fixed integer math which produced 0 and caused              divide by zero errors   December  1994  MWR  Added _EXTRA inheritance for PLOTS and OPLOT   June  1995  MWR  Removed _EXTRA inheritance for PLOTS and changed   OPLOT to PLOTS          September  1996  GGS  Changed denominator of x_step and y_step vars           February  1998  DLD   Add support for CLIP and NO_CLIP keywords          June  1998  DLD   Add support for OVERPLOT keyword      PRO VELOVECT U V X Y  Missing   Missing  Length   length  Dots   dots             Color color  CLIP clip  NOCLIP noclip  OVERPLOT overplot  _EXTRA extra     compile_opt idl2  strictarrsubs           on_error 2                       Return to caller if an error occurs         s   size u          t   size v          if s 0  ne 2 then begin  baduv:   message   U and V parameters must be 2D and same size                  endif         if total abs s 0:2 t 0:2  ne 0 then goto baduv           if n_params 0  lt 3 then x   findgen s 1  else                   if n_elements x  ne s 1  then begin badxy:                  message   X and Y arrays have incorrect size                          endif         if n_params 1  lt 4 then y   findgen s 2  else                   if n_elements y  ne s 2  then goto badxy           if n_elements missing  le 0 then missing   1 0e30         if n_elements length  le 0 then length   1 0          mag   sqrt u 2 v 2               magnitude                   Subscripts of good elements         nbad   0                          of missing points         if n_elements missing  gt 0 then begin                 good   where mag lt missing                   if keyword_set dots  then bad   where mag ge missing  nbad          endif else begin                 good   lindgen n_elements mag          endelse          ugood   u good          vgood   v good          x0   min x                       get scaling         x1   max x          y0   min y          y1   max y   x_step x1 x0 s 1 1 0      Convert to float  Integer math  y_step y1 y0 s 2 1 0      could result in divide by 0   maxmag max max abs ugood x_step max abs vgood y_step   sina   length    ugood maxmag   cosa   length    vgood maxmag            if n_elements title  le 0 then title                plot to get axes            if n_elements color  eq 0 then color    p color         if n_elements noclip  eq 0 then noclip   1         x_b0 x0 x_step  x_b1 x1 x_step  y_b0 y0 y_step  y_b1 y1 y_step         if  not keyword_set overplot  then begin           if n_elements position  eq 0 then begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endif else begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endelse         endif         if n_elements clip  eq 0 then               clip    x crange 0 y crange 0 x crange 1 y crange 1            r    3                           len of arrow head         angle   22 5    dtor             Angle of arrowhead         st   r   sin angle               sin 22 5 degs   length of head         ct   r   cos angle            for i 0 n_elements good 1 do begin      Each point                 x0   x good i  mod s 1          get coords of start   end                 dx   sina i                  x1   x0   dx                 y0   y good i    s 1                  dy   cosa i                  y1   y0   dy  xd x_step  yd y_step                 plots x0 x1 x1 ct dx xd st dy yd xd     x1 x1 ct dx xd st dy yd xd                           y0 y1 y1 ct dy yd st dx xd yd     y1 y1 ct dy yd st dx xd yd                          color color clip clip noclip noclip  _EXTRA   extra                 endfor         if nbad gt 0 then                Dots for missing                  PLOTS  x bad mod s 1  y bad   s 1  psym 3  color color                           clip clip noclip noclip  _EXTRA   extra end");
-a[282] = new Array("./ToBeReviewed/PLOTS/axe.html", "axe.pro", "", "          NAME:axe     PURPOSE:gerre les axes pour les differents dessins crees par plt    pltz et pltt     CATEGORY:environnement graphique     CALLING SEQUENCE:axe coupe tempsmin tempsmax      INPUTS:          coupe: un string qui designe le type de coupe auquel doit de          raporter les axes que l on cree  par ex:  xy xt             tempsmin et tempsmax: ds le cas ou l on fait une coupe          contenant la dimension temps  il faut specifier le debut et          la fin de l axe des temps en jours julien      KEYWORD PARAMETERS:  SIN active qd on trace en sinus de la latitude            SEPDATE: string separant les differents constituants de la          date  Par defaut c est un retour a la ligne qd on fait un           yt   zt  ou  t  dans les autres cas c est un blanc              DIGITSYEAR 2 to use  Z format  2 digits  to code years          instead of  Y format  See help of label_date for more          informations on  Z and  Y      OUTPUTS:les variables globales d environnement graphique:  x  et  y      COMMON BLOCKS:  common pro     SIDE EFFECTS:modifie  x  et  y      RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         Eric Guilyardi types x y z   amelioration de                         l axe temporel         PRO axe  coupe tempsmin tempsmax  REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SIN   sin  SEPDATE   sepdate  DIGITSYEAR   digitsyear  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance     gestion des ticks de l axe des temps ds le ces ou tempsmin et   tempsmax sont definits      divday   0    if n_params  EQ 3 then BEGIN         if keyword_set sepdate  then sep   sepdate ELSE          if coupe EQ  yt  OR coupe EQ  zt  OR coupe EQ  t  then sep    C  ELSE sep               caldat tempsmin  mmin  dmin  ymin  hmin  mnmin  smin  _EXTRA   ex       caldat tempsmax  mmax  dmax  ymax  hmax  mnmax  smax  _EXTRA   ex   format used for the year  2 or 4 5 digits        IF NOT keyword_set digitsyear  THEN digitsyear   4       IF digitsyear EQ 2 THEN fmtyr    Z  ELSE fmtyr    Y          if ymax EQ ymin then BEGIN          if mmin ne mmax then BEGIN   meme annee mais plusieurs mois             nticks   mmax mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              tminor   6             datfmt    M sep fmtyr   on verifie que les labels rentrent bien entre tempsmin et tempsmax              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom    cas particulier ou l on est a cheval sur 2 mois             if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          ENDIF ELSE BEGIN    meme annee et meme mois             IF dmax dmin 1 GT 4 THEN BEGIN   more than 4 days                nticks   dmax dmin 1                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              ENDIF ELSE BEGIN      less than 4 days : divday ticks per day                divday   4                nticks    dmax dmin divday   1                ticknom   fltarr nticks                 for d   0 nticks 1 do                   ticknom d    julday mmin  d divday dmin  ymin  _EXTRA   ex                     d MOD divday float divday                 tminor   2                datfmt    H:00              ENDELSE           ENDELSE        ENDIF ELSE BEGIN    plusieurs annees          CASE 1 OF          ymax ymin 1 LE 10: BEGIN   freq   1    tminor   12   datfmt    M sep fmtyr   end          ymax ymin 1 LE 20: BEGIN   freq   2    tminor   6   datfmt    M sep fmtyr   end          ymax ymin 1 LE 50: BEGIN   freq   5    tminor   5   datfmt    M sep fmtyr   end          ymax ymin 1 LE 100: BEGIN   freq   10    tminor   10   datfmt   fmtyr   end          ymax ymin 1 LE 1000: BEGIN   freq   50    tminor   5   datfmt   fmtyr   end          ELSE : BEGIN   freq   100    tminor   50   datfmt    Y    end          ENDCASE           nticks   floor ymax ymin freq 1          IF floor ymin freq  NE  ymin freq THEN             yminf    floor ymin freq 1 freq ELSE              yminf    floor ymin freq freq          ticknom   lonarr nticks           for y   0  nticks 1 do ticknom y    julday 1  1  yminf y freq  _EXTRA   ex    on verifie que les labels rentrent bien entre tempsmin et tempsmax           ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1           nticks   n_elements ticknom    cas particulier ou l on est a cheval sur 2 annees          if nticks LE 1 then begin             nticks    mmax 12 mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom              tminor   6             datfmt    M sep fmtyr   cas particulier ou l on est a cheval sur 2 mois             if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          endif       ENDELSE        toto   label_date 0  0  0  DATE_FORMAT   datfmt  _EXTRA   ex        if chkstru ex   DATE_FORMAT  then ex DATE_FORMAT        ENDIF      definition des parametres des axes au cas par cas      case coupe of        xy :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range lat2 lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  x tickformat lonaxe           IF key_onearth THEN  y tickformat lataxe        END        yz :BEGIN           if keyword_set reverse_x  then  x range lat2 lat1  ELSE  x range lat1 lat2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0           if keyword_set sin  then BEGIN   nombre de ticks par defaut             plot   0   0   noerase   nodata  xtick_get   xaxe   on augmente ce nombre pour qu il soit autour de 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    on recupere l axex pour ce nouveau nombre de ticks             plot   0   0 xticks   ticks   noerase   nodata  xtick_get   xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           endif       end        xz :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0        end        xt  : begin          if keyword_set reverse_x  then  x range    lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range tempsmax  tempsmin tempsmin            ELSE  y range tempsmin tempsmax tempsmin          IF key_onearth THEN  x tickformat lonaxe             result   LABEL_DATE DATE_FORMAT    M sep fmtyr              y tickformat LABEL_DATE            y tickname   LABEL_DATE 1  0 ticknom _EXTRA   ex             y ticklen 1            y gridstyle 2           y ticks nticks 1           y tickv ticknom tempsmin           y minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        yt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if keyword_set reverse_y  then  y range lat2  lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  y tickformat lataxe            x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        zt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1             x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        t  : BEGIN          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin           x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        x  : begin           x range lon1 lon2           IF key_onearth THEN  x tickformat lonaxe        END        y  : begin          if keyword_set sin  then BEGIN   nombre de ticks par defaut             plot   0   0   nodata   noerase  xstyle   5  ystyle   5  xtick_get   xaxe   on augmente ce nombre pour qu il soit autour de 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    on recupere l axex pour ce nouveau nombre de ticks             plot   0   0 xticks   ticks nodata noerase xstyle 5 ystyle 5 xtick_get xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           ENDIF ELSE  x range lat1 lat2           IF key_onearth THEN  x tickformat lataxe        END        z  : begin            if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1              if keyword_set reverse_y  then  y range gdep 0  gdep n_elements gdep 1               ELSE  y range gdep n_elements gdep 1  gdep 0        END     endcase    if keyword_set key_performance  THEN print   temps axe  systime 1 tempsun     return end");
-a[283] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", "          NAME:legende pro     PURPOSE:fournit les legendes     CATEGORY:graph annexe     CALLING SEQUENCE:legende  mi ma coupe title subtitle xtitle ytitle     INPUTS:mi et ma: le max et le min du dessin  cf plt pro et pltz pro    coupe caractere de 2 lettres donnant le type de coupe  par ex: xz      KEYWORD PARAMETERS:    TITRE: chaine de caracteres qui doit etre le titre du dessin  Par   defaut le titre est le nom vairmer du champ           ENDPOINTS:utilise qd on fait des coupes veticales en diagonale     OUTPUTS:le titre  sous titre titre de x et titre de y     COMMON BLOCKS:  common pro     SIDE EFFECTS: l utilisation de la variable globale langage permet   de changer de langue ou de facon de legender facilement  On peut   facilement personnaliser la chose en rajoutant un cas au case sur la   valeur de langage      RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   14 8 98                         Eric Guilyardi  ericg lodyc jussieu fr  GB version  11 6 99         pro legende mi ma coupe CONTOUR   contour ENDPOINTS   endpoints  DIREC   direc                 VECTLEGENDE   vectlegende                 INTERVALLE   intervalle  TYPE_YZ   type_yz  VARNAME2   varname2                 NPTS   npts  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance      grille   1   1   1  gdep  nx  ny  nz     English legends      fmt_mm    f12 2     fmt_bt    f7 1     colorf        contourf    Contour plot     vecteurf    Vector norm       expf        datef            fieldf            depthf            endpointsf    Diag  Section     zonalf        IF key_onearth THEN latintf    latitudes in   ELSE latintf    j index in      timintf    time in      onf            depthf2    Depth  m     Meridf    Zonal Mean       IF key_onearth THEN lonintf    longitudes in   ELSE lonintf    i in      hovxt    XT plot        diaghovxt    Diag  XT plot        depintf    depths in      timef    Time     hovyt    YT plot        diaghovyt    Diag  YT plot        hovzt    ZT plot        hovt        IF key_onearth THEN lontitle    Longitude  ELSE lontitle    i index     IF key_onearth THEN lattitle    Latitude  ELSE lattitle    j index         vertz   depthf2    legniv     m     IF keyword_set TYPE_YZ  THEN BEGIN      IF type_yz EQ  hPa  THEN vertz    hPa        IF type_yz EQ  hPa  THEN legniv     hPa      ENDIF      Start legende       definition et complement eventuelle de  p subtitle      if n_elements varunit  ne 0 then unite varunit  else unite      p subtitle colorf unite : Min   strtrim string format fmt_mm mi  2        Max   strtrim string format fmt_mm ma  2     if keyword_set intervalle  then BEGIN       if intervalle NE  1 then           p subtitle p subtitle  Int   strtrim string format fmt_mm intervalle  2     endif    if size contour   type  EQ 8 then BEGIN   c est une structure       unite contour 1         p subtitle p subtitle C  contourf unite           : Min   strtrim string format fmt_mm contour 0 0  2           Max   strtrim string format fmt_mm contour 0 1  2        if contour inter NE  1  then           p subtitle p subtitle  Int   strtrim string format fmt_mm contour inter  2     ENDIF    if size vectlegende   type  EQ 8  then begin       unite vectlegende 1         p subtitle p subtitle C  vecteurf unite           : Min   strtrim string format fmt_mm vectlegende 0 0  2           Max   strtrim string format fmt_mm vectlegende 0 1  2     endif     mise en forme des dimensions du sous domaine      la1 strtrim string format fmt_bt  lat1  2     la2 strtrim string format fmt_bt  lat2  2     lo1 strtrim string format fmt_bt  lon1  2     lo2 strtrim string format fmt_bt  lon2  2     pr1 strtrim string format fmt_bt  vert1  2     pr2 strtrim string format fmt_bt  vert2  2      gestion de la date      if n_elements vardate  EQ 0 then vardate        if NOT keyword_set direc  then direc        if strpos direc   t  NE  1 then begin       svardate   strtrim vairdate time 0  1     strtrim vairdate time jpt 1  1     ENDIF ELSE svardate   vardate     case sur le cas auquel s applique la legende      case coupe of        xy :begin                   if strupcase vargrid  EQ  W  then firstz   firstzw           ELSE firstz   firstzt         if strpos direc   z  EQ  1 AND firstz NE 0  then BEGIN           prof   strtrim round gdep 0  1             p title   expf varexp datef svardate fieldf varname depthf prof legniv         ENDIF ELSE  p title   expf varexp datef svardate fieldf varname          x title   lontitle          y title   lattitle       end         xz :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim ny  1           IF long n  LE 3 THEN zonalf    Section              if keyword_set endpoints  AND lat1 NE lat2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE              p title   zonalf varexp datef svardate fieldf varname           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF           y title   depthf2       end         yz :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx  1           IF long n  LE 3 THEN meridf              if keyword_set endpoints  AND lon1 NE lon2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE              p title   meridf varexp datef svardate fieldf varname           y title   vertz           x title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF       end         xt :begin           IF keyword_set npts  THEN n   strtrim npts  1           if keyword_set endpoints  AND lat1 NE lat2 then              p title   diaghovxt varexp fieldf varname ELSE             p title        hovxt varexp fieldf varname          IF  time size time 0 1    time 0  GE 10 THEN  y title   timef           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF       end         yt :begin           IF keyword_set npts  THEN n   strtrim npts  1            if keyword_set endpoints  AND lon1 NE lon2 then              p title   diaghovyt varexp fieldf varname ELSE             p title        hovyt varexp fieldf varname          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef           y title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF       end         zt :begin           IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny  1            p title   hovzt varexp fieldf varname           y title   depthf2          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef       end        t :begin           IF keyword_set npts  THEN n   strtrim npts  1  ELSE BEGIN               if keyword_set integration3d  then n strtrim nx ny nz  1  ELSE n strtrim nx ny  1            ENDELSE            p title   hovt varexp fieldf varname           y title   varname          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef       end        x :begin                       IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim ny nz  1           if keyword_set endpoints  AND lat1 NE lat2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE             p title               varexp datef svardate fieldf varname           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF           y title   varname       end        y :begin                       IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx nz  1           if keyword_set endpoints  AND lon1 NE lon2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE             p title               varexp datef svardate fieldf varname           x title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF           y title   varname       end        z :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny  1            p title   varexp datef svardate fieldf varname           y title   depthf2           x title   varname       end        yfx : BEGIN          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny nz  1            p title   varexp datef svardate varunit           x title   varname2           y title   varname       END        else:    ENDCASE    if keyword_set direc  then BEGIN       if strpos direc   x  NE  1 then           p subtitle   lonintf lo1   lo2 onf strtrim nx  1  points    C   p subtitle       if strpos direc   y  NE  1 then BEGIN          if strpos p subtitle    EQ  1 then              p subtitle   latintf la1   la2 onf strtrim ny  1  points    C p subtitle            ELSE  p subtitle   latintf la1   la2 onf strtrim ny  1  points    p subtitle       ENDIF       if strpos direc   z  NE  1 AND  nz NE 1 OR coupe NE  xy  then BEGIN           if strpos p subtitle    EQ  1 then              p subtitle   depintf pr1   pr2 onf strtrim nz  1  points    C p subtitle            ELSE  p subtitle   depintf pr1   pr2 onf strtrim nz  1  points    p subtitle       ENDIF    ENDIF    if keyword_set endpoints  AND coupe NE  yt  AND lat1 NE lat2 then  p title    p title C C         if keyword_set key_performance  THEN print   temps legende  systime 1 tempsun     return end");
-a[284] = new Array("./ToBeReviewed/PLOTS/plotsym.html", "plotsym.pro", "", "    NAME:    plotsym   PURPOSE:    function to make plotting symbols much easier    Usage:     plot x y psym plotsym circle scale 2 fill      CATEGORY:     Graphics      Keywords:    circle    circle symbol    triangle   triangle symbol    diamond   diamond symbold    box   box symbol    line   line symbol    scale   scales the symbol    angle   angle the symbol should be rotated    _extra   extra keywords for usersym   These are thick  color and fill     Written by:   Ronn Kling   Ronn Kling Consulting   7038 Westmoreland Dr    Warrenton  VA 20187   klingrl juno com   copyright 1999  all rights reserved    function plotsym  circle circle  triangle triangle  diamond diamond                      angle angle  box box  line line  scale scale                      _extra extra     compile_opt idl2  strictarrsubs   if not keyword_set scale  then scale 1 0 if not keyword_set angle  then angle 0 0  if keyword_set circle  then begin   theta   findgen 30 29 360  endif else if keyword_set triangle  then begin   theta    30 90 210   30  endif else if keyword_set diamond  then begin   theta    0 90 180 270 0  endif else if keyword_set box  then begin   theta    315 45 135 225 315  endif else if keyword_set line  then begin   theta    180 0  endif  theta   theta   angle x   cos theta    dtor    scale y   sin theta    dtor    scale  usersym  x y  _extra extra return 8 end");
-a[285] = new Array("./ToBeReviewed/PLOTS/reinitplt.html", "reinitplt.pro", "", "          NAME: REINITPLT     PURPOSE: This procedure will reinitialise all or a selection   ofthe system plot variables     CATEGORY: Plot Utility     CALLING SEQUENCE: clearplt all clear the  p   x   y   z   clearplt x z clear the  x and  z variables   clearplt x only clear the  x variable  clearplt x invert clear all except the  x      INPUTS:   KEYWORDS:  x y z p  clear the appropriate variable  all  clear all  this is equivalent to  x y z p  invert  invert the logic  Clear all unselected variables     Therefore  clearplt all invert  does nothing      OUTPUTS: none     COMMON BLOCKS:  common pro   SIDE EFFECTS:  The sytem plot variables are changed      MODIFICATION HISTORY:  Written by: Trevor Harris  Physics Dept  University of Adelaide   July  1990            Sebastien Masson 7 5 98           pro reinitplt  all all x x y y z z p p  invert invert       compile_opt idl2  strictarrsubs    clearx   0  cleary   0  clearz   0  clearp   0  if  keyword_set x  then clearx   1  if  keyword_set y  then cleary   1  if  keyword_set z  then clearz   1  if  keyword_set p  then clearp   1  if  keyword_set all                or  not keyword_set x  and not keyword_set y  and                   not keyword_set z  and not keyword_set p  then begin      clearx   1  cleary   1  clearz   1  clearp   1  endif   if  keyword_set invert  then begin  clearx   not clearx  cleary   not cleary  clearz   not clearz  clearp   not clearp  endif   if  clearx  then begin                  x charsize 0                  x GRIDSTYLE 0                  X MARGIN 10 3             X MINOR 0                  X OMARGIN 0 0                   x region 0           X RANGE 0                  x STYLE 5                   x tick 1                  x TICKFORMAT                   x TICKLEN 0                  x tickname                   x ticks 0                  X TICKV 0 X TICKV 1   x title                   x TYPE 0  endif  if  cleary  then begin                  y charsize 0                  y GRIDSTYLE 0                  Y MARGIN 10 3             Y MINOR 0                  Y OMARGIN 0 0                   y region 0           Y RANGE 0                  y STYLE 5                   y tick 1                  y TICKFORMAT                   y TICKLEN 0                  y tickname                   y ticks 0                  Y TICKV 0 Y TICKV 1   y title                   y TYPE 0  endif  if  clearz  then begin                  z charsize 0                  z GRIDSTYLE 0                  Z MARGIN 10 3             Z MINOR 0                  Z OMARGIN 0 0                   z region 0           Z RANGE 0                  z STYLE 1                   z tick 1                  z TICKFORMAT                   z TICKLEN 0                  z tickname                   z ticks 0                  Z TICKV 0 Z TICKV 1   z title                   z TYPE 0  endif  if  clearp  then begin  p BACKGROUND d n_colors 1    255  p CHARSIZE 1   p CHARTHICK 0   p LINESTYLE 0   p MULTI replicate 0 5   p NOERASE 0   p POSITION 0   p region 0                   p title   p subtitle   p ticklen 0 02                  p thick 0 1                  p color 0  endif  return  end      ");
-a[286] = new Array("./ToBeReviewed/PLOTS/style.html", "style.pro", "", "          NAME:style     PURPOSE:choisit la facon de tracer les isolignes     CATEGORY:graphique     CALLING SEQUENCE:style labstyle level_z2d linestyle thick     INPUTS:labstyle: nombre auquel se refaire le styel de trace choisit   level_z2d:vecteur contenant les valeures des isolignes a tracer     KEYWORD PARAMETERS:     OUTPUTS:  linestyle:vecteur utilise pour definir le style des  isocontours         rq: pour memoire:  Index Linestyle   0 Solid   1 Dotted   2 Dashed   3 Dash Dot   4 Dash Dot Dot Dot   5 Long Dashes   thick:vecteur definissant l epaisseur de l isoligne      COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr            pro style labstyle level_z2d linestyle thick     compile_opt idl2  strictarrsubs      case labstyle of       0: begin  serie: deux lignes continues fines  une ligne continue grasse          thick 1 1 2           linestyle 0           return       end       1: begin  serie: avant le mileu des levels: tiret fin  apres trait continu fin    si le mileu est dessine il est en trait continu gras          impair n_elements level_z2d 2 fix n_elements level_z2d 2           a replicate 0 fix n_elements level_z2d 2           b replicate 1 fix n_elements level_z2d 2           c replicate 2 fix n_elements level_z2d 2                    if impair then begin             thick b 2 b              linestyle c 0 a           endif else begin             thick 0              linestyle c a           endelse          return       end       2: begin  serie: avant le seuil  definit en repondant a une question : tiret fin    apres trait continu fin  si le seuil est dessine il est en trait continu gras          seuil xquestion Quelle est la limite tirets trait continu   0           seuil   float seuil           rien where level_z2d lt seuil n           a replicate 0 n_elements level_z2d n           c replicate 2 n                    if seuil eq level_z2d n  then begin             thick replicate 1 n 2 replicate 1 n_elements level_z2d 1 n              linestyle c a           endif else begin             thick 0              linestyle c a           endelse          return       end       3: begin          n   n_elements level_z2d           seuil   level_z2d 1 n 2            thick   intarr n           thick indgen n 4 4    1          thick indgen n 4 4 1    1          thick indgen n 4 4 2    2          thick indgen n 4 4 3    1           linestyle   intarr n           linestyle indgen n 4 4    3          linestyle indgen n 4 4 1    0          linestyle indgen n 4 4 2    0          linestyle indgen n 4 4 3    0           labels   intarr n           labels indgen n 2 2    1          labels n 2    0           return       end       4: begin   trait continu gras pour 0          seuil   1 e 6          thick replicate 5   n_elements level_z2d           linestyle 0           rien where abs level_z2d max abs level_z2d  LT seuil           if rien 0  NE  1 then thick rien 0    3       end       else: begin          ras   report Le numero de labstyle demande n existe pas           stop       end    endcase    return end");
-a[287] = new Array("./ToBeReviewed/PLOTS/symbols.html", "symbols.pro", "", "    NAME:             SYMBOLS              PURPOSE:             Create custom plotting symbols              CALLING SEQUENCE:       SYMBOLS SYMBOL_NUMBER SCALE         INPUTS:   SYMBOL_NUMBER:                     1   open circle                  2   filled circle                  3   arrow pointing right                  4   arrow pointing left                  5   arrow pointing up                  6   arrow pointing down                  7   arrow pointing up and left  45 degrees    8   arrow pointing down and left   9   arrow pointing down and right    10   arrow pointing up and right    11 through 18 are bold versions of 3 through 10   19   horizontal line   20   box   21   diamond   22   triangle   30   filled box   31   filled diamond   32   filled triangle      SCALE   size of symbols       KEYWORD PARAMETERS:     COLOR   color of symbols     SIDE EFFECTS:                The desired symbol is stored in the user buffer and       will be plotted if  P PSYM   8      MODIFICATION HISTORY:     Jeff Bennett  U of Colorado  198    pro symbols nsym scale color col     compile_opt idl2  strictarrsubs   on_error 2 fill   0 case 1 of       nsym le 2 :   begin                          circles                        for large scales increase number of points for res                        if scale ge 4 then a   findgen 25  else                         a   findgen 13                        a   a    3 14159   6         0   12 or 24  pi 6                       xarr   cos a                        yarr   sin a                        if nsym eq 2 then fill   1                     end       nsym ge 3 nsym le 18 :   begin            arrow heads                       xarr   fltarr 5                        yarr   xarr                       xarr 1    10                        xarr 2    6                        yarr 2    2                         nsyms greater than 10 should be filled arrows                       if nsym gt 10 then begin                          xarr 3    6                            xarr 4    10                           yarr 3     2                           fill   1                       endif else begin                          xarr 3    10                           xarr 4    6                           yarr 4     2                        endelse                       case 1 of                           nsym eq 3 : dummy   0b                           nsym eq 4 : xarr    1 xarr                           nsym eq 11 nsym eq 12 : begin                             xarr   extrac xarr 0 11                              yarr   extrac yarr 0 11                              yarr 6    0 5                             xarr 7    6                             yarr 7    0 5                             xarr 8    6                             yarr 8     0 5                             yarr 9     0 5                             if nsym eq 12 then begin                                rotation xarr yarr 180 nx ny                                xarr   nx                                yarr   ny                             endif                                                      end                           nsym eq 5 nsym eq 13 : begin                             temp   xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym eq 6 nsym eq 14 : begin                             temp    1 xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym ge 7 nsym le 10                                nsym ge 15 nsym le 18 : begin                             case 1 of                                   nsym eq 7 nsym eq 15 : deg   45                                   nsym eq 8 nsym eq 16 : deg   135                                   nsym eq 9 nsym eq 17 : deg   225                                   nsym eq 10 nsym eq 18 : deg   315                             endcase                             rotation xarr yarr deg nx ny                             xarr   nx                             yarr   ny                                                   end    end nsym ge 7                       endcase                                    end     nsym between 3 and 18       nsym eq 20 nsym eq 21 nsym eq 30 nsym eq 31 :  begin                       xarr   fltarr 5    3                       yarr   xarr                       xarr 1     3                        xarr 2     3                        yarr 2     3                        yarr 3     3                        if  nsym eq 21 nsym eq 31  then begin                          rotation xarr yarr 45 nx ny                          nx   0 70   nx      shrink the x direction                          xarr   nx                          yarr   ny                       endif                       if nsym ge 30 then fill   1                                    end     nsym 20 21 30 31       nsym eq 22 nsym eq 32 :  begin   side length 6  0 at centroid                       yarr   fltarr 4    6 4                        xarr   fltarr 4    6 2                        xarr 1    6 2                        xarr 2    0                        yarr 2    6 sqrt 3 2    6 4                        if nsym eq 32 then fill   1                                     end      else:                          begin                       xarr   fltarr 2    1                       yarr   xarr   0                        xarr 1     1                                      end endcase   xarr   xarr   scale yarr   yarr   scale    set symbol buffer if keyword_set col  then usersym xarr yarr fill fill color col else     usersym xarr yarr fill fill   return end");
+a[277] = new Array("./ToBeReviewed/PLOTS/LABEL/lataxe.html", "lataxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in latitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id            FUNCTION lataxe  axis  index  value     We put back value in the segment  0 180      compile_opt idl2  strictarrsubs      lat value mod 360    if lat lt 0 then lat lat 360    if lat gt 180 then lat lat 180   format of labels:    case 1 of       lat EQ round lat :fmt    i4        10 lat EQ round 10 lat :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lat le 90 and lat ne 0 then nom string lat      format fmt N     if lat gt 90              then nom string 180 lat  format fmt S     if lat eq  0              then nom string lat      format fmt       return  nom end ");
+a[278] = new Array("./ToBeReviewed/PLOTS/LABEL/lonaxe.html", "lonaxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in longitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id            FUNCTION lonaxe  axis  index  value     We put back value in the segment  0 360      compile_opt idl2  strictarrsubs      lon value mod 360    if lon lt 0 then lon lon 360   format of labels:    case 1 of       lon EQ round lon :fmt    i4        10 lon EQ round 10 lon :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lon lt 180 then nom string lon      format fmt E     if lon gt 180 then nom string 360 lon  format fmt W     if lon eq 180 then nom string lon      format fmt       return  nom end ");
+a[279] = new Array("./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html", "ajoutvect.pro", "", "             file_comments   Overprint vectors in a field traced by plt       categories   graphic      param VECTEUR  in required    It is a structure with 2 elements containing we 2 matrixes U and V of    values of the zonal and meridian component of the fiel of vectors to    be traced         For ex:         vecteur matriceu:lec unsurface matricev:lec vnsurface          rq:the name of elements of  vector does not have any importance          vecteur u:lec unsurface v:lec vnsurface  goes well too       keyword UNVECTSUR   It is a scalar n or an array with 2 elements  n1 n2    In the first case  we will trace a vector on n following x and y    In the second case  we will trace a vector on n1 following x and a    vector n2 following n2     Comments: To trace all vectors following y and one vector on two    following x  put unvectsur 2 1       keyword VECTMIN  in required    Minimum norme of vectors to be traced       keyword VECTMAX  in required    Maximum norme of vectors to be traced       keyword _EXTRA   Used to pass your keywords       uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr   10 3 1999                         11 6 1999 compatibilite avec NAN et la lecture                         des structures       version    Id              pro ajoutvect vecteur  vectlegende  UNVECTSUR unvectsur VECTMIN vectmin  VECTMAX vectmax  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        u   litchamp vecteur 0     u   checkfield u   plt  TYPE    xy   NOQUESTION     v   litchamp vecteur 1     v   checkfield v   plt  TYPE    xy   NOQUESTION        We recuperate possible informations on fields      grilleu   litchamp vecteur 0   grid     if grilleu EQ   then grilleu    U     grillev   litchamp vecteur 1   grid     if grillev EQ   then grillev    V      IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ grillev THEN interpolle    0 ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     We find common points between u and v      if interpolle then begin       indicexu    lindgen jpi firstxu:firstxu nxu 1        indicexv    lindgen jpi firstxv:firstxv nxv 1        indicex   inter indicexu  indicexv        indiceyu    lindgen jpj firstyu:firstyu nyu 1        indiceyv    lindgen jpj firstyv:firstyv nyv 1        indicey   inter indiceyu  indiceyv        nx   n_elements indicex         ny   n_elements indicey        indice2d   lindgen jpi  jpj        indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of u and v on the appropriated domain         case 1 of           size u 0  NE 2 OR  size v 0  NE 2: return           size u 1  EQ nxu AND  size u 2  EQ nyu AND              size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              if nxu NE nx then                if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                 IF nxv NE nx THEN                if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                IF nyu NE ny THEN                if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny               IF nyv NE ny THEN                if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny           END           size u 1  EQ jpi AND  size u 2  EQ jpj AND              size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN              u   u indice2d              v   v indice2d           END          ELSE:BEGIN              ras   report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs              return          end       endcase     We reshape u and v to make sure that none dimension has been erased          if ny EQ 1 then begin          u   reform u  nx  ny           v   reform v  nx  ny        endif     construction of u and v at points T         a u 0        u u shift u 1 0 2        if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a       a v 0        v v shift v 0 1 2        if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of longitude and latitude arrays    We recuperate the complete grid to establish a big mask extensive    in the four directions to cover points for which a land point has    been considerated  do a small drawing          vargrid T        msku    umask indice2d jpi jpj firstzt        mskv    vmask indice2d jpi jpj firstzt        glam   glamt indice2d        gphi   gphit indice2d        if ny EQ 1 then begin          msku   reform msku  nx  ny           mskv   reform mskv  nx  ny             glam   reform glam  nx  ny             gphi   reform gphi  nx  ny        endif     We mask u and v et v the long of coasts  the place where we    can not calculate the average       extention of the mask       u   u msku shift msku 1 0        v   v mskv shift mskv 0 1     ENDIF ELSE BEGIN        u   u tmask firstxt:lastxt firstyt:lastyt firstzt        v   v tmask firstxt:lastxt firstyt:lastyt firstzt        indice2d   lindgen jpi  jpj        indice2d   indice2d firstxt:lastxt  firstyt:lastyt        nx   nxt       ny   nyt    endelse    tabnorme sqrt u 2 v 2     nan   where finite u   nan  EQ 1     if nan 0  NE  1 then u nan    1e5    nan   where finite v   nan  EQ 1     if nan 0  NE  1 then v nan    1e5    if keyword_set vectmin  then BEGIN        toosmall where tabnorme lt vectmin        if toosmall 0  NE  1 then begin          u toosmall    1e5          v toosmall    1e5       ENDIF    endif    if keyword_set vectmax  then BEGIN       toobig where tabnorme gt vectmax        if toobig 0  NE  1 then begin          u toobig    1e5          v toobig    1e5       ENDIF    ENDIF     Put back of a big value on all points for which we can do the calculation       if interpolle then t2   msku shift msku 1 0 mskv shift mskv 0 1       ELSE t2   tmask firstxt:lastxt firstyt:lastyt firstzt     if NOT keyword_set key_periodic  OR nx NE jpi then t2 0   0     t2 0 0     terre where t2 eq 0     if terre 0  ne  1 then begin       u terre 1e5       v terre 1e5    ENDIF     trace only one vector one two      if keyword_set unvectsur  then BEGIN     indx is a vector containing number of columns to be selected    indy is a vector containing number of lines to be selected        if n_elements unvectsur  EQ 1 then begin          indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 0  eq 0        ENDIF ELSE BEGIN           indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 1  eq 0       ENDELSE   From indx and indy  we will construct an array which will give indexes   of intersections points of columns specified by indx        indicereduit   indx replicate 1 n_elements indy nx replicate 1 n_elements indx indy   We reduce arrays which will be passed to vecteur        u   u indicereduit        v   v indicereduit        tabnorme   tabnorme indicereduit       endif           if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     Drawing of vectors       vecteur  u  v  tabnorme  indice2d  indicereduit  missing 1e5  _extra   ex     We complete the caption       if terre 0  ne  1 then mini   min tabnorme where t2 eq 1  max   maxi   nan       ELSE mini   min tabnorme  max   maxi   nan         if litchamp vecteur 0   u  NE   then       vectlegende    minmax: mini  maxi  unite:litchamp vecteur 0   u       ELSE vectlegende    minmax: mini  maxi  unite:varunit    sortie:    if keyword_set key_performance  NE 0 THEN print   temps ajoutvect  systime 1 tempsun     return end  ");
+a[280] = new Array("./ToBeReviewed/PLOTS/VECTEUR/vecteur.html", "vecteur.pro", "", "FUNCTION cv_cm2normal  angle     Give the lenth in normal coordinates of a trait oriented of an angle   by rapport at the x axis and which must do 1 cm on the drawing    Angle can be an array           compile_opt idl2  strictarrsubs    common   What is the lenth in normal coordinates of a trait which will do 1 cm   on the paper an which is parallel to x    mipgsz   min page_size  max   mapgsz     sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait     sizeyfeuille   mapgsz key_portrait mipgsz 1 key_portrait     cm_en_normal   1 sizexfeuille     If the aspect rapport of the window is not equal to 1  the lenth in   normalized coordinates of  a trait of 1 cm vary following the polar   angle of this trait       aspect   sizexfeuille sizeyfeuille    cm_en_normal   cm_en_normal sqrt  1  aspect 2 1 sin angle 2        return  cm_en_normal END   PRO normalise  u  v  w     normalize the vector       compile_opt idl2  strictarrsubs      IF n_elements w  NE 0 THEN BEGIN        norme   sqrt u 2 v 2 w 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind        w ind    w ind norme ind     ENDIF ELSE BEGIN       norme   sqrt u 2 v 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind     ENDELSE  END              file_comments   Trace vectors  even if they are on a deformed grid  on any projection    In this way  all vectors have a comparable norme on the drawing  to be   clear  a vector which measure 1 cm measure it  no matter the projection   and is position on the sphere       categories    graphic       param COMPOSANTEU  in required    It is the u component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param COMPOSANTEV  in required    It is the v component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param INDICE2D   in required    It in an index allowing to to pass from an jpi or jpj array to the zoom    on which we do the drawing       param REDUITINDICE2D  in required    It is an index allowing to pass from an array defined by indice2d to the    array for which we really have vectors to be traced  to be clear  it is    for example when we trace only one vector on two       keyword CMREF   The lenth in cm that must measure the arrow normed normeref  By default     it is ajusted t othe drawing and included between  5 and 1 5 cm       keyword MISSING   The value of a missing value  Do not use this keyword  Fixed at 1e5 by    ajoutvect pro            keyword NORMEREF    The norme of the reference arrow       keyword VECTCOLOR   The color of the arrow  Black by default  color 0        keyword VECTTHICK   The thick of the arrow  1 by default       keyword VECTREFPOS   Vector composed of 2 elements specifing the position on DATA coordinates    from de begining of the reference vector  By default at the right bottom    of the drawing       keyword VECTREFFORMAT   The format to be used to specify the norme of the reference vector       keyword NOVECTREF   To delete the display of the reference vector        keyword _EXTRA   Used to pass your keywords       uses    common pro      history    Creation : 13 02 98 G  Roullet  grlod lodyc jussieu fr     Modification : 14 01 99 realise la transformation    spheriquecartesien G  Roullet                   12 03 99 verification de la routine G  Roullet    8 11 1999:    G  Roullet et Sebastien Masson  smasson lodyc jussieu fr     adaptation pour les zoom  reverification traitement separe de la    direction et de la norme des vecteurs  mots cles NORMEREF et CMREF       version    Id             PRO vecteur  composanteu  composantev  normevecteur  indice2d  reduitindice2d                  CMREF   cmref  MISSING   missing  NORMEREF   normeref                  VECTCOLOR   vectcolor  VECTTHICK   vectthick  VECTREFPOS   vectrefpos                  VECTREFFORMAT   vectrefformat  NOVECTREF   novectref  _extra   extra     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        taille   size composanteu     nx   taille 1     ny   taille 2     if n_elements reduitindice2d  EQ 0 then reduitindice2d   lindgen nx  ny     zu   composanteu    zv   composantev    norme   normevecteur    taille   size indice2d     nxgd   taille 1     nygd   taille 2       msk   replicate 1  nx  ny     if keyword_set missing  then terre   where abs zu  GE missing 10  ELSE terre    1    if terre 0  NE  1  then BEGIN        msk terre    0       zu terre    0       zv terre    0       norme terre    0    ENDIF     Stage 1:      Given that the directions and the sense that the vector has on the sphere     we have to try to determinate this direction and the sense that the vector    will have on the screen once it will have been projected      In theory: on the sphere  a vector in a given point has for direction the    tangent at the circle passing by the center of the Earth and by the vector     So  find the direction once the projection is done  it is find the tangent   to the curve representing the projection of the circle on the 2d plan at the    point representing the projection of the starting point of the shere on the    2d plan       In practice we do no know the definition of the curve given by the projection    of a circle so find its tangente in a point      What we do:   In a 3d cartesian reference          a  We find coorinates of the point T  starting of the arrow  situed          on the sphere          b  To each point T  we determine local directions defined by the grid         on this point and on which coordinates  u v  of the vector refer to          These local directions are defined by gradients of glam and gphi  Once         we have obtain these directions  we considare them like orthogonal and         by norming them  we build an orthonormal reference  nu nv  on which         coordinates  u v  of the vector refer to  In the starting 3d cartesian         reference  the vector is defined by:         V u nu v nv          where V  nu and nv are 3d vectors and u and v are scalars          c  To approximate the tangente to the circle by the chord defined by         the beginning and the ending of the arrow  we will normalize V  and         then divide it by 100          d  This allows us to determine coordinates of extremities of the chord         in the 3d cartesian reference  We pass them in spherical coordinates in         order to recuperate latitude and longitude position of these points on         the sphere          e  We pass coordinates of these points in normalized coordinates  then         in polar coordinates in order to find the angle and the direction they         dertermine on the drawing        Stage 1  a        coordinates of the point T  beginning of the arrow  in spherical coordinates     glam   glamt indice2d reduitindice2d     gphi   gphit indice2d reduitindice2d      Coordinates of the point T  beginning of the arrow  in the cartesian reference    For the sphere  we use a sphere with a radius of 1       radius   replicate 1 nx ny     coord_sphe   transpose   glam   gphi   radius       r   cv_coord from_sphere coord_sphe to_rect degrees       x0   reform r 0    nx  ny     y0   reform r 1    nx  ny     z0   reform r 2    nx  ny      Stage 1  b      Construction of a vector nu  resp  nv  vectr normed carried by the axis of   points u i j  and u i 1 j   resp v i j  and v i j 1  which define  for each   point on the sphere  local directions associated with u and v  These vectors   define a local orthonormal reference     These vectors are built in a cartesian reference  cv_coord  We have choose a    unity radius of the Earth  unit      definition of nu    radius   replicate 1 nxgd nygd     IF finite glamu 0 gphiu 0  NE 0 THEN        coord_sphe   transpose   glamu indice2d   gphiu indice2d   radius         ELSE coord_sphe   transpose   glamf indice2d   gphit indice2d   radius       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid u in cartesian     ux   reform r 0    nxgd  nygd     uy   reform r 1    nxgd  nygd     uz   reform r 2    nxgd  nygd    calculation of nu     nux   ux shift ux  1  0     nuy   uy shift uy  1  0     nuz   uz shift uz  1  0    conditions at extremities     if NOT keyword_set key_periodic  OR nxgd NE jpi then begin       nux 0      nux 1          nuy 0      nuy 1          nuz 0      nuz 1       ENDIF   reduction of the grid    nux   nux reduitindice2d     nuy   nuy reduitindice2d     nuz   nuz reduitindice2d    definition of nv    IF finite glamv 0 gphiv 0  NE 0 THEN      coord_sphe   transpose   glamv indice2d   gphiv indice2d   radius         ELSE coord_sphe   transpose   glamt indice2d   gphif indice2d   radius                       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid in cartesian     vx   reform r 0    nxgd  nygd     vy   reform r 1    nxgd  nygd     vz   reform r 2    nxgd  nygd    calcul of nv     nvx   vx shift vx  0  1     nvy   vy shift vy  0  1     nvz   vz shift vz  0  1    conditions at extremities    nvx  0    nvx  1     nvy  0    nvy  1     nvz  0    nvz  1    reduction of the grid    nvx   nvx reduitindice2d     nvy   nvy reduitindice2d     nvz   nvz reduitindice2d      normalization      normalise  nux  nuy  nuz    normalise  nvx  nvy  nvz     Stage 1  c      coordinates of the vector V in the cartesian reference      direcx   zu nux   zv nvx    direcy   zu nuy   zv nvy    direcz   zu nuz   zv nvz   normalization of the vector V    normalise  direcx  direcy  direcz   on divide by 100    direcx   direcx 100     direcy   direcy 100     direcz   direcz 100      Stege 1  d    coordinates of the point of the arrow in the cartesian reference      x1   x0   direcx    y1   y0   direcy    z1   z0   direcz    coordinates of the point of the arrow in spherical coordinates      coord_rect   transpose   x1   y1   z1       r   cv_coord from_rect coord_rect to_sphere degrees     glam1   reform r 0    nx  ny     gphi1   reform r 1    nx  ny       modification of glams  Everything take place at the level of the line   of changing of date  BEWARE  do not cut arrow which goes out of the   window    test: If it goes out of the frame  but  thanks to   360  it come in    we modify it      ind   where glam1 LT  x range 0  AND glam1 360  LE  x range 1     if ind 0  NE  1 then glam1 ind    glam1 ind 360     ind   where glam1 GT  x range 1  AND glam1 360  GE  x range 0     if ind 0  NE  1 then glam1 ind    glam1 ind 360      ind   where glam LT  x range 0  AND glam 360  LE  x range 1     if ind 0  NE  1 then glam ind    glam ind 360     ind   where glam  GT  x range 1  AND glam 360  GE  x range 0     if ind 0  NE  1 then glam ind    glam ind 360        Stage 1  e       r   convert_coord glam gphi data to_normal      x0   r 0                      normal coordinates of the beginning of the array     y0   r 1                              r   convert_coord glam1 gphi1 data to_normal      x1   r 0                      normal coordinates of the ending of the array  Before scaling     y1   r 1                           tests to avoid that arrows be drawing out of the domain       out   where x0 LT  p position 0  OR x0 GT  p position 2                    OR y0 LT  p position 1  OR y0 GT  p position 3     if out 0  NE  1 THEN x0 out     values f_nan     Following projections  there may are points at NaN when we pass in normal coordinates     We delete these points       nan   finite x0 y0 x1 y1     number   where nan EQ 1     x0   x0 number    x1   x1 number     y0   y0 number    y1   y1 number     msk   msk number     norme   norme number      We define the vector direction in the normalize reference       dirx   x1 x0    diry   y1 y0    We pass in polar coordinates to recuperate the angle which wasb the goal of all the first stage        dirpol   cv_coord from_rect   transpose   dirx   diry     to_polar     dirpol   msk dirpol 0        Stage 2     Now we take care of the norme      Automatic putting at the scale       if NOT keyword_set cmref  then BEGIN        mipgsz   min page_size  max   mapgsz        sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait        sizexfeuille   10 sizexfeuille       cmref   5   floor sizexfeuille 10    15       cmref   cmref 10     ENDIF    if NOT keyword_set normeref  then BEGIN       value   max norme        puissance10   10 floor alog10 value        normeref   puissance10 floor value puissance10     endif    cm   1 normeref cmref     We modify the array norme to an element having the value cm be represented    by a trait of lenght 1 cm on the paper  Norme contain the norme of vectors    we want to draw       norme   1 1 cm norme cv_cm2normal dirpol        Stage 3   Now that we have the angle and the norme  we recuperate coordinates in    rectangular and we draw arrows       r   cv_coord from_polar   transpose   dirpol   norme     to_rect     composantex   r 0       composantey   r 1         x1   x0 composantex    y1   y0 composantey     Drawing      if NOT KEYWORD_SET vectcolor  then vectcolor   0     points   where msk EQ 1     IF points 0  NE  1 THEN arrow  x0 points  y0 points  x1 points  y1 points   norm         hsize    2  COLOR   vectcolor  THICK   vectthick      Draw an arrow at the right bottom of the drawing as a caption       if NOT keyword_set novectref  then BEGIN       dx   cmref cv_cm2normal 0    Lenght of the vector of reference in normalzed coordinates        if keyword_set vectrefformat  then          normelegende   strtrim string normeref  format   vectrefformat  1            ELSE normelegende   strtrim normeref  1            if keyword_set vectrefpos  then begin          r   convert_coord vectrefpos data   to_normal           x0   r 0           y0   r 1        ENDIF ELSE BEGIN          x0    x window 1 dx          r   convert_coord d x_ch_size   d y_ch_size   device   to_normal           dy   3 r 1 p charsize          y0    y window 0 dy       ENDELSE        arrow  x0  y0  x0 dx  y0   norm  hsize    2  color   0       xyouts  x0  y0  normelegende   norm  align   1  charsize    p charsize  color   0     endif         if keyword_set key_performance  NE 0 THEN print   temps vecteur  systime 1 tempsun         return END     ");
+a[281] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "          file_comments   Produce a two dimensional velocity field plot      A directed arrow is drawn at each point showing the direction and    magnitude of the field                      categories   Plotting  two dimensional         param U  in required    The X component of the two dimensional field      U must be a two dimensional array       param V  in required    The Y component of the two dimensional field   Y must have   the same dimensions as X   The vector at point  i j  has a    magnitude of:    U i j 2   V i j 2 0 5     and a direction of:    ATAN2 V i j U i j       param X  in optional    Optional abcissae values   X must be a vector with a length    equal to the first dimension of U and V       param Y  in optional    Optional ordinate values   Y must be a vector with a length   equal to the first dimension of U and V       keyword COLOR   The color index used for the plot       keyword DOTS   Set this keyword to 1 to place a dot at each missing point     Set this keyword to 0 or omit it to draw nothing for missing   points   Has effect only if MISSING is specified       keyword LENGTH   Length factor   The default of 1 0 makes the longest  U V    vector the length of a cell       keyword MISSING    Missing data value   Vectors with a LENGTH greater   than MISSING are ignored       keyword OVERPLOT   Set this keyword to make VELOVECT  overplot   That is  the   current graphics screen is not erased  no axes are drawn  and   the previously established scaling remains in effect        keyword CLIP       keyword NOCLIP      keyword _EXTRA   Used to pass your keywords       restrictions    Plotting on the selected device is performed   System   variables concerning plotting are changed    Note:   All other keywords are passed directly to the PLOT procedure  and may be used to set option such as TITLE  POSITION    NOERASE  etc       history  DMS  RSI  Oct  1983   For Sun  DMS  RSI  April  1989   Added TITLE  Oct  1990   Added POSITION  NOERASE  COLOR  Feb 91  RES   August  1993   Vince Patrick  Adv  Visualization Lab  U  of Maryland   fixed errors in math   August  1993  DMS  Added _EXTRA keyword inheritance   January  1994  KDB  Fixed integer math which produced 0 and caused              divide by zero errors   December  1994  MWR  Added _EXTRA inheritance for PLOTS and OPLOT   June  1995  MWR  Removed _EXTRA inheritance for PLOTS and changed   OPLOT to PLOTS          September  1996  GGS  Changed denominator of x_step and y_step vars           February  1998  DLD   Add support for CLIP and NO_CLIP keywords          June  1998  DLD   Add support for OVERPLOT keyword      Copyright  c  1983 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: velovect pro 134 2006 07 07 10:19:08Z navarro         PRO VELOVECT U V X Y  Missing   Missing  Length   length  Dots   dots             Color color  CLIP clip  NOCLIP noclip  OVERPLOT overplot  _EXTRA extra     compile_opt idl2  strictarrsubs           on_error 2                       Return to caller if an error occurs         s   size u          t   size v          if s 0  ne 2 then begin  baduv:   message   U and V parameters must be 2D and same size                  endif         if total abs s 0:2 t 0:2  ne 0 then goto baduv           if n_params 0  lt 3 then x   findgen s 1  else                   if n_elements x  ne s 1  then begin badxy:                  message   X and Y arrays have incorrect size                          endif         if n_params 1  lt 4 then y   findgen s 2  else                   if n_elements y  ne s 2  then goto badxy           if n_elements missing  le 0 then missing   1 0e30         if n_elements length  le 0 then length   1 0          mag   sqrt u 2 v 2               magnitude                   Subscripts of good elements         nbad   0                          of missing points         if n_elements missing  gt 0 then begin                 good   where mag lt missing                   if keyword_set dots  then bad   where mag ge missing  nbad          endif else begin                 good   lindgen n_elements mag          endelse          ugood   u good          vgood   v good          x0   min x                       get scaling         x1   max x          y0   min y          y1   max y   x_step x1 x0 s 1 1 0      Convert to float  Integer math  y_step y1 y0 s 2 1 0      could result in divide by 0   maxmag max max abs ugood x_step max abs vgood y_step   sina   length    ugood maxmag   cosa   length    vgood maxmag            if n_elements title  le 0 then title                plot to get axes            if n_elements color  eq 0 then color    p color         if n_elements noclip  eq 0 then noclip   1         x_b0 x0 x_step  x_b1 x1 x_step  y_b0 y0 y_step  y_b1 y1 y_step         if  not keyword_set overplot  then begin           if n_elements position  eq 0 then begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endif else begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endelse         endif         if n_elements clip  eq 0 then               clip    x crange 0 y crange 0 x crange 1 y crange 1            r    3                           len of arrow head         angle   22 5    dtor             Angle of arrowhead         st   r   sin angle               sin 22 5 degs   length of head         ct   r   cos angle            for i 0 n_elements good 1 do begin      Each point                 x0   x good i  mod s 1          get coords of start   end                 dx   sina i                  x1   x0   dx                 y0   y good i    s 1                  dy   cosa i                  y1   y0   dy  xd x_step  yd y_step                 plots x0 x1 x1 ct dx xd st dy yd xd     x1 x1 ct dx xd st dy yd xd                           y0 y1 y1 ct dy yd st dx xd yd     y1 y1 ct dy yd st dx xd yd                          color color clip clip noclip noclip  _EXTRA   extra                 endfor         if nbad gt 0 then                Dots for missing                  PLOTS  x bad mod s 1  y bad   s 1  psym 3  color color                           clip clip noclip noclip  _EXTRA   extra end");
+a[282] = new Array("./ToBeReviewed/PLOTS/axe.html", "axe.pro", "", "             file_comments   Manage axes for the different drawings created by plt    pltz and pltt      categories    Graphic environment      param COUPE   It is a string designating the type of cut to which the axes we create    must report  For example:  xy xt       param TEMPSMIN  in required    In the case where we do cut containing the time dimension  we have    to specify the beginning of the time s axis in julian days       param TEMPSMAX  in required    In the case where we do cut containing the time dimension  we have    to specify the end of the time s axis in julian days       keyword SIN    activated when we trace in sinus of the latitude      keyword SEPDATE   string separating the diff rent constituents of the date  By default     it is a return to the linewhen we do a  yt   zt  or a  t     In the other cases  it is a blank        keyword DIGITSYEAR    2 to use  Z format  2 digits  to code years   instead of  Y format  See help of label_date for more   informations on  Z and  Y       keyword _EXTRA    used to pass your keywords       uses   common pro      restrictions   It modify  x  and  y       history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         Eric Guilyardi types x y z   amelioration de                         l axe temporel      version    Id            PRO axe  coupe tempsmin tempsmax  REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SIN   sin  SEPDATE   sepdate  DIGITSYEAR   digitsyear  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance     Management of ticks of the time axis in the case of TEMPSMIN    and TEMPSMAX are definied      divday   0    if n_params  EQ 3 then BEGIN         if keyword_set sepdate  then sep   sepdate ELSE          if coupe EQ  yt  OR coupe EQ  zt  OR coupe EQ  t  then sep    C  ELSE sep               caldat tempsmin  mmin  dmin  ymin  hmin  mnmin  smin  _EXTRA   ex       caldat tempsmax  mmax  dmax  ymax  hmax  mnmax  smax  _EXTRA   ex   format used for the year  2 or 4 5 digits        IF NOT keyword_set digitsyear  THEN digitsyear   4       IF digitsyear EQ 2 THEN fmtyr    Z  ELSE fmtyr    Y          if ymax EQ ymin then BEGIN          if mmin ne mmax then BEGIN   Same year but several monthes             nticks   mmax mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              tminor   6             datfmt    M sep fmtyr   We check that labels are betwenn TEMPSMIN and TEMPSMAX              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom    Particular case where we are overlap two monthes             if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          ENDIF ELSE BEGIN    Same year and same month             IF dmax dmin 1 GT 4 THEN BEGIN   more than 4 days                nticks   dmax dmin 1                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              ENDIF ELSE BEGIN      less than 4 days : divday ticks per day                divday   4                nticks    dmax dmin divday   1                ticknom   fltarr nticks                 for d   0 nticks 1 do                   ticknom d    julday mmin  d divday dmin  ymin  _EXTRA   ex                     d MOD divday float divday                 tminor   2                datfmt    H:00              ENDELSE           ENDELSE        ENDIF ELSE BEGIN    Several years          CASE 1 OF          ymax ymin 1 LE 10: BEGIN   freq   1    tminor   12   datfmt    M sep fmtyr   end          ymax ymin 1 LE 20: BEGIN   freq   2    tminor   6   datfmt    M sep fmtyr   end          ymax ymin 1 LE 50: BEGIN   freq   5    tminor   5   datfmt    M sep fmtyr   end          ymax ymin 1 LE 100: BEGIN   freq   10    tminor   10   datfmt   fmtyr   end          ymax ymin 1 LE 1000: BEGIN   freq   50    tminor   5   datfmt   fmtyr   end          ELSE : BEGIN   freq   100    tminor   50   datfmt    Y    end          ENDCASE           nticks   floor ymax ymin freq 1          IF floor ymin freq  NE  ymin freq THEN             yminf    floor ymin freq 1 freq ELSE              yminf    floor ymin freq freq          ticknom   lonarr nticks           for y   0  nticks 1 do ticknom y    julday 1  1  yminf y freq  _EXTRA   ex    We check that labels are betwenn TEMPSMIN and TEMPSMAX           ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1           nticks   n_elements ticknom    Particular case where we are overlap two monthes          if nticks LE 1 then begin             nticks    mmax 12 mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom              tminor   6             datfmt    M sep fmtyr    Particular case where we are overlap two monthes            if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          endif       ENDELSE        toto   label_date 0  0  0  DATE_FORMAT   datfmt  _EXTRA   ex        if chkstru ex   DATE_FORMAT  then ex DATE_FORMAT        ENDIF      Definition of axes parameters case by case      case coupe of        xy :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range lat2 lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  x tickformat lonaxe           IF key_onearth THEN  y tickformat lataxe        END        yz :BEGIN           if keyword_set reverse_x  then  x range lat2 lat1  ELSE  x range lat1 lat2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0           if keyword_set sin  then BEGIN   number of ticks by default             plot   0   0   noerase   nodata  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks   noerase   nodata  xtick_get   xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           endif       end        xz :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0        end        xt  : begin          if keyword_set reverse_x  then  x range    lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range tempsmax  tempsmin tempsmin            ELSE  y range tempsmin tempsmax tempsmin          IF key_onearth THEN  x tickformat lonaxe             result   LABEL_DATE DATE_FORMAT    M sep fmtyr              y tickformat LABEL_DATE            y tickname   LABEL_DATE 1  0 ticknom _EXTRA   ex             y ticklen 1            y gridstyle 2           y ticks nticks 1           y tickv ticknom tempsmin           y minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        yt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if keyword_set reverse_y  then  y range lat2  lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  y tickformat lataxe            x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        zt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1             x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        t  : BEGIN          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin           x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        x  : begin           x range lon1 lon2           IF key_onearth THEN  x tickformat lonaxe        END        y  : begin          if keyword_set sin  then BEGIN   Number of ticks by default             plot   0   0   nodata   noerase  xstyle   5  ystyle   5  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks nodata noerase xstyle 5 ystyle 5 xtick_get xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           ENDIF ELSE  x range lat1 lat2           IF key_onearth THEN  x tickformat lataxe        END        z  : begin            if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1              if keyword_set reverse_y  then  y range gdep 0  gdep n_elements gdep 1               ELSE  y range gdep n_elements gdep 1  gdep 0        END     endcase    if keyword_set key_performance  THEN print   temps axe  systime 1 tempsun     return end");
+a[283] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", "             file_comments   Provide caption      categories   graphic  annex      param MI  in required    The min of the drawing       param MA  in required    The max of the plot      param COUPE   Charactere containing two letters giving the type of the cut   for example:  xz       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 ENDPOINTS   Used when we do vertical cuts in diagonal       keyword _EXTRA   used to pass your keywords       uses   common pro      restrictions   The use of the global variable langage allows to change the language and the caption easily       history    Sebastien Masson  smasson lodyc jussieu fr   14 8 98                         Eric Guilyardi  ericg lodyc jussieu fr  GB version  11 6 99      version    Id            pro legende mi ma coupe CONTOUR   contour ENDPOINTS   endpoints  DIREC   direc                 VECTLEGENDE   vectlegende                 INTERVALLE   intervalle  TYPE_YZ   type_yz  VARNAME2   varname2                 NPTS   npts  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance      grille   1   1   1  gdep  nx  ny  nz     English legends      fmt_mm    f12 2     fmt_bt    f7 1     colorf        contourf    Contour plot     vecteurf    Vector norm       expf        datef            fieldf            depthf            endpointsf    Diag  Section     zonalf        IF key_onearth THEN latintf    latitudes in   ELSE latintf    j index in      timintf    time in      onf            depthf2    Depth  m     Meridf    Zonal Mean       IF key_onearth THEN lonintf    longitudes in   ELSE lonintf    i in      hovxt    XT plot        diaghovxt    Diag  XT plot        depintf    depths in      timef    Time     hovyt    YT plot        diaghovyt    Diag  YT plot        hovzt    ZT plot        hovt        IF key_onearth THEN lontitle    Longitude  ELSE lontitle    i index     IF key_onearth THEN lattitle    Latitude  ELSE lattitle    j index         vertz   depthf2    legniv     m     IF keyword_set TYPE_YZ  THEN BEGIN      IF type_yz EQ  hPa  THEN vertz    hPa        IF type_yz EQ  hPa  THEN legniv     hPa      ENDIF      Start legende       definition and possible complement of  p subtitle      if n_elements varunit  ne 0 then unite varunit  else unite      p subtitle colorf unite : Min   strtrim string format fmt_mm mi  2        Max   strtrim string format fmt_mm ma  2     if keyword_set intervalle  then BEGIN       if intervalle NE  1 then           p subtitle p subtitle  Int   strtrim string format fmt_mm intervalle  2     endif    if size contour   type  EQ 8 then BEGIN   it is a structure        unite contour 1         p subtitle p subtitle C  contourf unite           : Min   strtrim string format fmt_mm contour 0 0  2           Max   strtrim string format fmt_mm contour 0 1  2        if contour inter NE  1  then           p subtitle p subtitle  Int   strtrim string format fmt_mm contour inter  2     ENDIF    if size vectlegende   type  EQ 8  then begin       unite vectlegende 1         p subtitle p subtitle C  vecteurf unite           : Min   strtrim string format fmt_mm vectlegende 0 0  2           Max   strtrim string format fmt_mm vectlegende 0 1  2     endif     Shapping of subdomain  s dimensions  auquel s applique la legende     la1 strtrim string format fmt_bt  lat1  2     la2 strtrim string format fmt_bt  lat2  2     lo1 strtrim string format fmt_bt  lon1  2     lo2 strtrim string format fmt_bt  lon2  2     pr1 strtrim string format fmt_bt  vert1  2     pr2 strtrim string format fmt_bt  vert2  2      Management of the date  auquel s applique la legende     if n_elements vardate  EQ 0 then vardate        if NOT keyword_set direc  then direc        if strpos direc   t  NE  1 then begin       svardate   strtrim vairdate time 0  1     strtrim vairdate time jpt 1  1     ENDIF ELSE svardate   vardate     case on the caes where the caption is applied  auquel s applique la legende     case coupe of        xy :begin                   if strupcase vargrid  EQ  W  then firstz   firstzw           ELSE firstz   firstzt         if strpos direc   z  EQ  1 AND firstz NE 0  then BEGIN           prof   strtrim round gdep 0  1             p title   expf varexp datef svardate fieldf varname depthf prof legniv         ENDIF ELSE  p title   expf varexp datef svardate fieldf varname          x title   lontitle          y title   lattitle       end         xz :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim ny  1           IF long n  LE 3 THEN zonalf    Section              if keyword_set endpoints  AND lat1 NE lat2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE              p title   zonalf varexp datef svardate fieldf varname           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF           y title   depthf2       end         yz :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx  1           IF long n  LE 3 THEN meridf              if keyword_set endpoints  AND lon1 NE lon2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE              p title   meridf varexp datef svardate fieldf varname           y title   vertz           x title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF       end         xt :begin           IF keyword_set npts  THEN n   strtrim npts  1           if keyword_set endpoints  AND lat1 NE lat2 then              p title   diaghovxt varexp fieldf varname ELSE             p title        hovxt varexp fieldf varname          IF  time size time 0 1    time 0  GE 10 THEN  y title   timef           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF       end         yt :begin           IF keyword_set npts  THEN n   strtrim npts  1            if keyword_set endpoints  AND lon1 NE lon2 then              p title   diaghovyt varexp fieldf varname ELSE             p title        hovyt varexp fieldf varname          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef           y title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF       end         zt :begin           IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny  1            p title   hovzt varexp fieldf varname           y title   depthf2          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef       end        t :begin           IF keyword_set npts  THEN n   strtrim npts  1  ELSE BEGIN               if keyword_set integration3d  then n strtrim nx ny nz  1  ELSE n strtrim nx ny  1            ENDELSE            p title   hovt varexp fieldf varname           y title   varname          IF  time size time 0 1    time 0  GE 10 THEN  x title   timef       end        x :begin                       IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim ny nz  1           if keyword_set endpoints  AND lat1 NE lat2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE             p title               varexp datef svardate fieldf varname           x title   lontitle          if keyword_set endpoints  AND lat1 EQ lat2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lataxe 0  0  lat1  1  ELSE  x title    x title  at j index  strtrim lat1  1           ENDIF           y title   varname       end        y :begin                       IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx nz  1           if keyword_set endpoints  AND lon1 NE lon2 then              p title   endpointsf varexp datef svardate fieldf varname ELSE             p title               varexp datef svardate fieldf varname           x title   lattitle          if keyword_set endpoints  AND lon1 EQ lon2 then BEGIN             IF key_onearth THEN  x title    x title  at  strtrim lonaxe 0  0  lon1  1  ELSE  x title    x title  at i index  strtrim lon1  1           ENDIF           y title   varname       end        z :begin          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny  1            p title   varexp datef svardate fieldf varname           y title   depthf2           x title   varname       end        yfx : BEGIN          IF keyword_set npts  THEN n   strtrim npts  1  ELSE n strtrim nx ny nz  1            p title   varexp datef svardate varunit           x title   varname2           y title   varname       END        else:    ENDCASE    if keyword_set direc  then BEGIN       if strpos direc   x  NE  1 then           p subtitle   lonintf lo1   lo2 onf strtrim nx  1  points    C   p subtitle       if strpos direc   y  NE  1 then BEGIN          if strpos p subtitle    EQ  1 then              p subtitle   latintf la1   la2 onf strtrim ny  1  points    C p subtitle            ELSE  p subtitle   latintf la1   la2 onf strtrim ny  1  points    p subtitle       ENDIF       if strpos direc   z  NE  1 AND  nz NE 1 OR coupe NE  xy  then BEGIN           if strpos p subtitle    EQ  1 then              p subtitle   depintf pr1   pr2 onf strtrim nz  1  points    C p subtitle            ELSE  p subtitle   depintf pr1   pr2 onf strtrim nz  1  points    p subtitle       ENDIF    ENDIF    if keyword_set endpoints  AND coupe NE  yt  AND lat1 NE lat2 then  p title    p title C C         if keyword_set key_performance  THEN print   temps legende  systime 1 tempsun     return end");
+a[284] = new Array("./ToBeReviewed/PLOTS/plotsym.html", "plotsym.pro", "", "       file_comments   function to make plotting symbols much easier        categories   Graphic       Keyword circle    circle symbol       Keyword TRIANGLE   triangle symbol       Keyword DIAMOND    diamond symbold       Keyword BOX   box symbol       Keyword LINE   line symbol       Keyword SCALE   scales the symbol       Keyword ANGLE   angle the symbol should be rotated       Keyword _EXTRA   extra keywords for usersym   These are thick  color and fill      history   Written by:   Ronn Kling   Ronn Kling Consulting   7038 Westmoreland Dr    Warrenton  VA 20187   klingrl juno com   copyright 1999  all rights reserved      version    Id        function plotsym  circle circle  triangle triangle  diamond diamond                      angle angle  box box  line line  scale scale                      _extra extra     compile_opt idl2  strictarrsubs   if not keyword_set scale  then scale 1 0 if not keyword_set angle  then angle 0 0  if keyword_set circle  then begin   theta   findgen 30 29 360  endif else if keyword_set triangle  then begin   theta    30 90 210   30  endif else if keyword_set diamond  then begin   theta    0 90 180 270 0  endif else if keyword_set box  then begin   theta    315 45 135 225 315  endif else if keyword_set line  then begin   theta    180 0  endif  theta   theta   angle x   cos theta    dtor    scale y   sin theta    dtor    scale  usersym  x y  _extra extra return 8 end");
+a[285] = new Array("./ToBeReviewed/PLOTS/reinitplt.html", "reinitplt.pro", "", "             file_comments   This procedure will reinitialise all or a selection    ofthe system plot variables      categories   plot Utility         keyword X   clear the appropriate variable      keyword Y   clear the appropriate variable        keyword Z    clear the appropriate variable       keyword P   clear the appropriate variable      keyword ALL    Clear all  this is equivalent to  x y z p      keyword INVERT   Invert the logic  Clear all unselected variables    Therefore  clearplt all invert  does nothing       uses   common pro       restrictions   The sytem plot variables are changed       history   Written by: Trevor Harris  Physics Dept  University of Adelaide   July  1990      Sebastien Masson 7 5 98      version    Id            pro reinitplt  all all x x y y z z p p  invert invert       compile_opt idl2  strictarrsubs    clearx   0  cleary   0  clearz   0  clearp   0  if  keyword_set x  then clearx   1  if  keyword_set y  then cleary   1  if  keyword_set z  then clearz   1  if  keyword_set p  then clearp   1  if  keyword_set all                or  not keyword_set x  and not keyword_set y  and                   not keyword_set z  and not keyword_set p  then begin      clearx   1  cleary   1  clearz   1  clearp   1  endif   if  keyword_set invert  then begin  clearx   not clearx  cleary   not cleary  clearz   not clearz  clearp   not clearp  endif   if  clearx  then begin                  x charsize 0                  x GRIDSTYLE 0                  X MARGIN 10 3             X MINOR 0                  X OMARGIN 0 0                   x region 0           X RANGE 0                  x STYLE 5                   x tick 1                  x TICKFORMAT                   x TICKLEN 0                  x tickname                   x ticks 0                  X TICKV 0 X TICKV 1   x title                   x TYPE 0  endif  if  cleary  then begin                  y charsize 0                  y GRIDSTYLE 0                  Y MARGIN 10 3             Y MINOR 0                  Y OMARGIN 0 0                   y region 0           Y RANGE 0                  y STYLE 5                   y tick 1                  y TICKFORMAT                   y TICKLEN 0                  y tickname                   y ticks 0                  Y TICKV 0 Y TICKV 1   y title                   y TYPE 0  endif  if  clearz  then begin                  z charsize 0                  z GRIDSTYLE 0                  Z MARGIN 10 3             Z MINOR 0                  Z OMARGIN 0 0                   z region 0           Z RANGE 0                  z STYLE 1                   z tick 1                  z TICKFORMAT                   z TICKLEN 0                  z tickname                   z ticks 0                  Z TICKV 0 Z TICKV 1   z title                   z TYPE 0  endif  if  clearp  then begin  p BACKGROUND d n_colors 1    255  p CHARSIZE 1   p CHARTHICK 0   p LINESTYLE 0   p MULTI replicate 0 5   p NOERASE 0   p POSITION 0   p region 0                   p title   p subtitle   p ticklen 0 02                  p thick 0 1                  p color 0  endif  return  end      ");
+a[286] = new Array("./ToBeReviewed/PLOTS/style.html", "style.pro", "", "             file_comments    Choose the way to trace isolines       categories   graphic      param LABSTYLE  in required    Number to which the style of drawing choosen refer to       param LEVEL_Z2D  in required    Vector containing values of isolignes to be traced       param LINESTYLE  out    Vector used to define the isocontour s style         Comment: remenber:  Index Linestyle   0 Solid   1 Dotted   2 Dashed   3 Dash Dot   4 Dash Dot Dot Dot   5 Long Dashes        param THICK  out    Vector defining the thick of the isoline       history   Sebastien Masson  smasson lodyc jussieu fr       version    Id            pro style labstyle level_z2d linestyle thick     compile_opt idl2  strictarrsubs      case labstyle of       0: begin  series: Two thin continuous lines  one boldface continuous line          thick 1 1 2           linestyle 0           return       end       1: begin  series: Before the middle of levels: thin dash  Then thin continuous trait    If the middle of the drawing is drawn  it is in boldface continuous trait           impair n_elements level_z2d 2 fix n_elements level_z2d 2           a replicate 0 fix n_elements level_z2d 2           b replicate 1 fix n_elements level_z2d 2           c replicate 2 fix n_elements level_z2d 2                    if impair then begin             thick b 2 b              linestyle c 0 a           endif else begin             thick 0              linestyle c a           endelse          return       end       2: begin  series: Before the sill  defined by answering to a question : thin dash    Then thin continuous trait  If the sill is drawn  it is in boldface continuous trait           seuil xquestion Quelle est la limite tirets trait continu   0           seuil   float seuil           rien where level_z2d lt seuil n           a replicate 0 n_elements level_z2d n           c replicate 2 n                    if seuil eq level_z2d n  then begin             thick replicate 1 n 2 replicate 1 n_elements level_z2d 1 n              linestyle c a           endif else begin             thick 0              linestyle c a           endelse          return       end       3: begin          n   n_elements level_z2d           seuil   level_z2d 1 n 2            thick   intarr n           thick indgen n 4 4    1          thick indgen n 4 4 1    1          thick indgen n 4 4 2    2          thick indgen n 4 4 3    1           linestyle   intarr n           linestyle indgen n 4 4    3          linestyle indgen n 4 4 1    0          linestyle indgen n 4 4 2    0          linestyle indgen n 4 4 3    0           labels   intarr n           labels indgen n 2 2    1          labels n 2    0           return       end       4: begin   Boldface continuous trait           seuil   1 e 6          thick replicate 5   n_elements level_z2d           linestyle 0           rien where abs level_z2d max abs level_z2d  LT seuil           if rien 0  NE  1 then thick rien 0    3       end       else: begin          ras   report Le numero de labstyle demande n existe pas           stop       end    endcase    return end");
+a[287] = new Array("./ToBeReviewed/PLOTS/symbols.html", "symbols.pro", "", "       file_comments   Create custom plotting symbols       param NSYM  in required                      1   open circle                  2   filled circle                  3   arrow pointing right                  4   arrow pointing left                  5   arrow pointing up                  6   arrow pointing down                  7   arrow pointing up and left  45 degrees    8   arrow pointing down and left   9   arrow pointing down and right    10   arrow pointing up and right    11 through 18 are bold versions of 3 through 10   19   horizontal line   20   box   21   diamond   22   triangle   30   filled box   31   filled diamond   32   filled triangle       param SCALE  in required    size of symbols        keyword COLOR   color of symbols      restrictions   The desired symbol is stored in the user buffer and    will be plotted if  P PSYM   8       history   Jeff Bennett  U of Colorado  198       version    Id      pro symbols nsym scale color col     compile_opt idl2  strictarrsubs   on_error 2 fill   0 case 1 of       nsym le 2 :   begin                          circles                        for large scales increase number of points for res                        if scale ge 4 then a   findgen 25  else                         a   findgen 13                        a   a    3 14159   6         0   12 or 24  pi 6                       xarr   cos a                        yarr   sin a                        if nsym eq 2 then fill   1                     end       nsym ge 3 nsym le 18 :   begin            arrow heads                       xarr   fltarr 5                        yarr   xarr                       xarr 1    10                        xarr 2    6                        yarr 2    2                         nsyms greater than 10 should be filled arrows                       if nsym gt 10 then begin                          xarr 3    6                            xarr 4    10                           yarr 3     2                           fill   1                       endif else begin                          xarr 3    10                           xarr 4    6                           yarr 4     2                        endelse                       case 1 of                           nsym eq 3 : dummy   0b                           nsym eq 4 : xarr    1 xarr                           nsym eq 11 nsym eq 12 : begin                             xarr   extrac xarr 0 11                              yarr   extrac yarr 0 11                              yarr 6    0 5                             xarr 7    6                             yarr 7    0 5                             xarr 8    6                             yarr 8     0 5                             yarr 9     0 5                             if nsym eq 12 then begin                                rotation xarr yarr 180 nx ny                                xarr   nx                                yarr   ny                             endif                                                      end                           nsym eq 5 nsym eq 13 : begin                             temp   xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym eq 6 nsym eq 14 : begin                             temp    1 xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym ge 7 nsym le 10                                nsym ge 15 nsym le 18 : begin                             case 1 of                                   nsym eq 7 nsym eq 15 : deg   45                                   nsym eq 8 nsym eq 16 : deg   135                                   nsym eq 9 nsym eq 17 : deg   225                                   nsym eq 10 nsym eq 18 : deg   315                             endcase                             rotation xarr yarr deg nx ny                             xarr   nx                             yarr   ny                                                   end    end nsym ge 7                       endcase                                    end     nsym between 3 and 18       nsym eq 20 nsym eq 21 nsym eq 30 nsym eq 31 :  begin                       xarr   fltarr 5    3                       yarr   xarr                       xarr 1     3                        xarr 2     3                        yarr 2     3                        yarr 3     3                        if  nsym eq 21 nsym eq 31  then begin                          rotation xarr yarr 45 nx ny                          nx   0 70   nx      shrink the x direction                          xarr   nx                          yarr   ny                       endif                       if nsym ge 30 then fill   1                                    end     nsym 20 21 30 31       nsym eq 22 nsym eq 32 :  begin   side length 6  0 at centroid                       yarr   fltarr 4    6 4                        xarr   fltarr 4    6 2                        xarr 1    6 2                        xarr 2    0                        yarr 2    6 sqrt 3 2    6 4                        if nsym eq 32 then fill   1                                     end      else:                          begin                       xarr   fltarr 2    1                       yarr   xarr   0                        xarr 1     1                                      end endcase   xarr   xarr   scale yarr   yarr   scale    set symbol buffer if keyword_set col  then usersym xarr yarr fill fill color col else     usersym xarr yarr fill fill   return end");
 a[288] = new Array("./ToBeReviewed/POSTSCRIPT/calibre.html", "calibre.pro", "", "          NAME: calibre     PURPOSE:a partir d un rapport d aspect et des valeurs  en ligne de   characteres  des differentes marges  calcul posfenetre et posbar qui   servent a placer le dessin et la barre de couleur grace a    p position sur une feuille ou   sur une sortie ecran dont la fenetre a les memes proportions     CATEGORY: positionnement du graphe     CALLING SEQUENCE:       calibre  rapportyx marge margebar  smalldraw posfenetre  posbar      INPUTS:  rapportyx: rapport d echelle entre la longueur de l axe des  y et celle des x  par ex pour une carte xy          rapportyx lat2 lat1 lon2 lon1     marge: vecteur de 4 elements contenant la taille des marges a gauche    a droite  en bas et en haut devant entourer le graphe  tout est   mesure en lignes de characteres    margebar: vecteur de 4 elements contenant la taille des marges a gauche    a droite  en bas et  ATTENTION  le dernier element est cette fois ci   la position de coin en haut a droite  devant entourer la barre de   couleur  tout est mesure en lignes de characteres           smalldraw: 2 possiblites               un vecteur de 4 elements donnant  en portrait ou   en landscape  la position de cadre ds lequel doit rentrer le   dessin  cette position est donne par les coordonnes des 2 coins du   cadre: en bas a gauche et en haut a droite  elle s exprime tjs    pour un postscript ou une sortie ecran  en cm  l origine etant le   coin en bas a gauche                un vecteur de 3 elements donnant le nombre de colonnes a   faire de le dessin  le nombre de lignes et enfin le numero de la   case que doit occuper le dessin  cf matlab  par ex pour faire 6   dessin en 2 colonnes et 3 lignes et occuper la 4 eme case  small 2 3 4      KEYWORD PARAMETERS:    REMPLI:oblige le dessin a occuper l espace maximum definit   par smalldraw sans resperter le rapport y sur x     YXASPECT: force le rapport y sur x a prendre la valeur   rapportyx yxaspect  ce mot cle est utile ds deux cas:      1  yxaspect 1 : oblige rapportyx a etre bien respecte sinon           calibre se reserve le droit de changer un peu celui ci dans           le cas ou le rapport d aspect de small dessin est trop           different de celui de smalldraw      2  yxaspect n : multiplie par n le rapport d aspect donne par           defaut par ex ds plt  rapportyx est calcule pour que le           repere soit orthonorme  pour avoir un repere ou l axe des y           est 2 fois plus dilate que celui des y YXASPECT 2           PORTRAIT et LANDSCAPE: mots cles plus utilises mais tjs fonctionnels     OUTPUTS:         posfenetre: un vecteur de 4 elements contenant la position de         cadre contenant les legendes   le graphe en coordonnes         normalises  Rq: pour positionner le dessin il faut apres         l appelle de calibre faire  p position posfenetre           posbar: cf posfentre mais pour la barre de couleur  meme         remarque pour positionner la barre de couleur   p position posbar     COMMON BLOCKS:  common pro      SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr   11 12 98         pro calibre  rapportyx  marge  margebar  smalldraw  posfenetre  posbar                  REMPLI   rempli  YXASPECT   yxaspect  PORTRAIT   portrait                  LANDSCAPE   lanscape  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            pour key_performance      if keyword_set portrait  then key_portrait 1    if keyword_set landscape  then key_portrait 0    if keyword_set yxaspect  then begin       rapportyx rapportyx yxaspect        test2 0    endif else begin       yxaspect 1        test2 1     ENDELSE        mipgsz   min page_size  max   mapgsz      choix de Landscape ou Portrait      if n_elements key_portrait  eq 0  then begin       if rapportyx ge 1 then key_portrait 1       if rapportyx lt 1 then key_portrait 0    endif     si smalldraw est compte comme ds matlab      if n_elements smalldraw  EQ 3  then begin       if n_elements page_margins  EQ 0 then page_margins    1  1  1  1        smalldraw   long smalldraw        nbrecol   smalldraw 0        nbrelig   smalldraw 1        numero   smalldraw 2 1       numlig   numero nbrecol       numcol   numero numlig nbrecol       bas   mipgsz key_portrait mapgsz 1 key_portrait         cote   mapgsz key_portrait mipgsz 1 key_portrait         poscol   page_margins 0 findgen nbrecol 1 1 bas page_margins 0 page_margins 1 nbrecol        poslig   cote page_margins 3 findgen nbrelig 1 1 cote page_margins 2 page_margins 3 nbrelig        smalldraw    poscol numcol  poslig numlig 1  poscol numcol 1  poslig numlig     endif     determination de la taille des characteres  p charsize       nombre_de_mots_ds_titre   60      p charsize 1 smalldraw 2 smalldraw 0 d x_px_cm          nombre_de_mots_ds_titre   d y_ch_size     if  p charsize gt 1 then  p charsize 1     transfert de marge en cm      cm 1 d x_px_cm    marge 1  marge    d y_ch_size    p charsize   cm    margebar 1  margebar    d y_ch_size    p charsize   cm     definition de la portion de feuille ou on dessine      if key_portrait eq 0 then begin       big smalldraw 2 smalldraw 0        small smalldraw 3 smalldraw 1     endif else begin       small smalldraw 2 smalldraw 0        big smalldraw 3 smalldraw 1     endelse    if key_portrait eq 0 then       rapportmax 1 small marge 3 marge 1 big marge 2 marge 0       else rapportmax 1 small marge 2 marge 0 big marge 3 marge 1      si yxaspect n est pas specifie on modifie la valeur de rapportyx pour que   ca colle un peu plus aux proportions de la feuille      if rapportyx le rapportmax then begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap ge 5  and rap lt 6  then rapportyx rapportyx 1 5          if rap ge 6  and rap lt 7  then rapportyx rapportyx 2           if rap ge 7  and rap lt 8  then rapportyx rapportyx 2 5          if rap ge 8  then rapportyx rapportyx 3        endif    endif else begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap lt 1 5  and rap ge 1 6  then rapportyx rapportyx 1 5          if rap lt 1 6  and rap ge 1 7  then rapportyx rapportyx 2           if rap lt 1 7  and rap ge 1 8  then rapportyx rapportyx 2 5          if rap lt 1 8  then rapportyx rapportyx 3        endif    endelse     dans le cas ou on fait un Landscape:      if key_portrait eq 0 then begin              if keyword_set rempli  then begin          xs big          ys small       endif else begin          if rapportyx le rapportmax then begin             xs big             ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt small then begin                xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1                 ys small             endif          endif else begin             xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1              ys small             if xs gt big then begin                xs big                ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small ys 2 smalldraw 1        yoff 1 big xs 2 xs mapgsz smalldraw 2        a 1 mapgsz yoff mapgsz       b 1 xoff mipgsz       c a 1 xs mapgsz       d b 1 ys mipgsz    endif       dans le cas ou on fait un portrait:      else begin              if keyword_set rempli  then begin          xs small          ys big       endif else begin          if rapportyx le rapportmax then begin             xs small             ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt big then begin                xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1                 ys big             endif          endif else begin             xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1              ys big             if xs gt small then begin                xs small                ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small xs 2 smalldraw 0        yoff 1 big ys 2 smalldraw 1        a 1 xoff mipgsz       b 1 yoff mapgsz       c a 1 xs mipgsz       d b 1 ys mapgsz       xset   xoff       yset   yoff    endelse      bas mapgsz 1 key_portrait mipgsz key_portrait    cote mipgsz 1 key_portrait mapgsz key_portrait    posfenetre a b c d  marge 0 bas  marge 2 cote                              marge 1 bas marge 3 cote      posbar a b c d  margebar 0 bas  margebar 2 cote                          margebar 1 bas ys margebar 3 cote        if keyword_set key_performance  THEN print   temps calibre  systime 1 tempsun     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF        return end");
 a[289] = new Array("./ToBeReviewed/POSTSCRIPT/chcolps.html", "chcolps.pro", "", "PRO format_colortable_hexa  table     compile_opt idl2  strictarrsubs        tvlct  r  g  b   get      z   strarr 256      y   strarr 256      for k 0 255 do z k 00 strtrim string r k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string g k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string b k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2           table    strlowcase y   END   PRO build_table  tableout     Fabrique le bloc de colortable       compile_opt idl2  strictarrsubs        format_colortable_hexa  table       tableout   strarr 25       tableout 0     COLORTAB  def       END    PRO chcolps  n1  n2  file  PALIT1   palit1  PALIT2   palit2     Modifie les couleurs d un fichier postscript     Creation : G  Roullet 1999       recupere les palettes       compile_opt idl2  strictarrsubs       lct  n1     IF keyword_set palit1  THEN palit  palit1     tvlct  red  green  blue   get      lct  n2     IF keyword_set palit2  THEN palit  palit2     tvlct  red1  green1  blue1   get           filein   file     fileout   file new           openr  numin  filein   get_lun     openw  numout  fileout   get_lun     ligne         nl   0     colortab   0     Scan le fichier       WHILE NOT eof numin  DO BEGIN            readf  numin  ligne  format    A            nl   nl 1     Replace setrgbcolor statements             pos   strpos ligne   setrgbcolor            IF pos NE  1 THEN BEGIN                  r   round float strmid ligne  pos 18  6 255                  g   round float strmid ligne  pos 12  6 255                  b   round float strmid ligne  pos 6  6 255                            ind   where r EQ red AND g EQ green AND b EQ blue                  ind   ind 0                  IF ind 0  NE  1 THEN BEGIN                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDIF ELSE BEGIN                        print   erreur ligne :  nl                       dist   abs r red abs g green abs b blue                        ind    where dist EQ min dist 0                        ind   ind 0                         print   je trouve              long r  g  b                         print   je remplace par    red ind  green ind  blue ind                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDELSE            ENDIF                 Replace COLORTAB             pos   strpos ligne   COLORTAB            IF pos NE  1 THEN BEGIN                  build_table  table                 n   0                 colortab   1           ENDIF             IF colortab THEN BEGIN                 ligne   table n                  n   n 1                 IF n EQ 24 THEN colortab   0           ENDIF      Ecrit le fichier de sorti             printf  numout  ligne  format    A      ENDWHILE      close  numin     close  numout     free_lun  numin     free_lun  numout      spawn   gs  fileout  END  ");
@@ -294,21 +294,21 @@
 a[292] = new Array("./ToBeReviewed/STATISTICS/a_timecorrelate.html", "a_timecorrelate.pro", "", "    NAME:         A_TIMECORRELATE     PURPOSE:         Same function as A_CORRELATE but accept array  until 4         dimension  for input and do the autocorrelation or the         autocovariance along the time dimension which must be the last         one of the input array            This function computes the autocorrelation Px L  or autocovariance         Rx L  of a sample population X as a function of the lag  L      CATEGORY:         Statistics      CALLING SEQUENCE:         Result   a_timecorrelate X  Lag      INPUTS:         X:    an Array which last dimension is the time dimension os         size n          LAG:    A scalar or n element vector  in the interval  n 2   n 2                of type integer that specifies the absolute distance s  between                indexed elements of X      KEYWORD PARAMETERS:         COVARIANCE:    If set to a non zero value  the sample autocovariance                        is computed            DOUBLE:        If set to a non zero value  computations are done in                        double precision arithmetic      EXAMPLE         Define an n element sample population            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            Compute the autocorrelation of X for LAG    3  0  1  3  4  8           lag    3  0  1  3  4  8            result   a_correlate x  lag            The result should be:            0 0146185  1 00000  0 810879  0 0146185   0 325279   0 151684      PROCEDURE:                               n L 1                            sigma   X k Xmean X k L Xmean                             k 0     correlation X L                               n 1                                                sigma   X k Xmean 2                              k 0                                                   n L 1                           sigma   X k Xmean X k L Xmean                            k 0     covariance X L                                        n       Where Xmean is the Time mean of the sample population     x x t 0 x t 1 x t n 1        REFERENCE:         INTRODUCTION TO STATISTICAL TIME SERIES         Wayne A  Fuller         ISBN 0 471 28715 6     MODIFICATION HISTORY:         24 2 2000 Sebastien Masson  smasson lodyc jussieu fr          Based on the A_CORRELATE procedure of IDL    FUNCTION TimeAuto_Cov  X  M  nT  Double   Double  zero2nan   zero2nan  Sample autocovariance function     compile_opt idl2  strictarrsubs      TimeDim   size X   n_dimensions     Xmean   TOTAL X  TimeDim  Double   Double    nT    if double then one   1 0d ELSE one   1 0    Xmean   Xmean replicate one  nT   M         case TimeDim of       1:res   TOTAL X 0:nT   M   1L    Xmean     X M:nT   1L    Xmean                        TimeDim  Double   Double        2:res   TOTAL X  0:nT   M   1L    Xmean                           X  M:nT   1L    Xmean                          TimeDim  Double   Double        3:res   TOTAL X    0:nT   M   1L    Xmean                           X    M:nT   1L    Xmean                          TimeDim  Double   Double        4:res   TOTAL X      0:nT   M   1L    Xmean                           X      M:nT   1L    Xmean                          TimeDim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    endif    RETURN  res  END  FUNCTION A_TimeCorrelate  X  Lag  COVARIANCE   Covariance  DOUBLE   Double     compile_opt idl2  strictarrsubs     Compute the sample autocorrelation or autocovariance of  Xt  Xt l   as a function of the lag  l      ON_ERROR  2     XDim   SIZE X   dimensions     XNDim   SIZE X   n_dimensions     nT   XDim XNDim 1                                   Check length     if nT lt 2 then       MESSAGE   Time axis of X array must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    SIZE X   type  eq 5          if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case XNDim of       1:if Double eq 0 then Auto   FLTARR nLag  else Auto   DBLARR nLag        2:if Double eq 0 then Auto   FLTARR XDim 0  nLag  else Auto   DBLARR XDim 0  nLag        3:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  nLag          else Auto   DBLARR XDim 0  XDim 1  nLag        4:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  XDim 2  nLag          else Auto   DBLARR XDim 0  XDim 1  XDim 2  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Autocorrelation        for k   0  nLag 1 do          case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan        endcase    endif else begin              Compute Autocovariance        for k   0  nLag 1 do           case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT       endcase    endelse     if Double eq 0 then RETURN  FLOAT Auto  else       RETURN  Auto  END");
 a[293] = new Array("./ToBeReviewed/STATISTICS/c_timecorrelate.html", "c_timecorrelate.pro", "", "    NAME:         C_TIMECORRELATE     PURPOSE:         This function computes the  time cross correlation  Pxy L  or         the  time cross covariance  between 2 arrays  this is some         kind of c_correlate but for multidimenstionals arrays  as a         function of the lag  L      CATEGORY:         Statistics      CALLING SEQUENCE:         Result   c_timecorrelate X  Y  Lag      INPUTS:         X:   an Array which last dimension is the time dimension of         size n  float or double            Y:    an Array which last dimension is the time dimension of         size n  float or double          LAG:    A scalar or n element vector  in the interval  n 2   n 2                of type integer that specifies the absolute distance s  between               indexed elements of X      KEYWORD PARAMETERS:         COVARIANCE:    If set to a non zero value  the sample cross                         covariance is computed            DOUBLE:        If set to a non zero value  computations are done in                        double precision arithmetic      EXAMPLE         Define two n element sample populations            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            y    2 31  2 76  3 02  3 13  3 72  3 88  3 97  4 39  4 34  3 95            Compute the cross correlation of X and Y for LAG    5  0  1  5  6  7           lag    5  0  1  5  6  7            result   c_timecorrelate x  y  lag            The result should be:            0 428246  0 914755  0 674547   0 405140   0 403100   0 339685      PROCEDURE:         FOR L 0                                   n L 1                                 sigma   X k Xmean Y k L Ymean                                  k 0     correlation X Y L                                 n 1                     n 1                        sqrt   sigma   X k Xmean 2 sigma   Y k Ymean 2                                 k 0                     k 0                                      n L 1                                 sigma   X k Xmean Y k L Ymean                                  k 0     covariance X Y L                                               n       FOR L 0                                    n L 1                                 sigma   X k L Xmean Y k Ymean                                  k 0     correlation X Y L                                 n 1                     n 1                        sqrt   sigma   X k Xmean 2 sigma   Y k Ymean 2                                 k 0                     k 0                                      n L 1                                 sigma   X k L Xmean Y k Ymean                                  k 0     covariance X Y L                                               n       Where Xmean and Ymean are the time means of the sample populations     x x t 0 x t 1 x t n 1  and y y t 0 y t 1 y t n 1      respectively          REFERENCE:         INTRODUCTION TO STATISTICAL TIME SERIES         Wayne A  Fuller         ISBN 0 471 28715 6     MODIFICATION HISTORY:           01 03 2000 Sebastien Masson  smasson lodyc jussieu fr          Based on the C_CORRELATE procedure of IDL           August 2003 Sebastien Masson          update according to the update made in C_CORRELATE by         W  Biagiotti and available in IDL 5 5    FUNCTION TimeCross_Cov  Xd  Yd  M  nT  Ndim  Double   Double  ZERO2NAN   zero2nan    Sample cross covariance function     compile_opt hidden      case Ndim OF       1:res   TOTAL Xd 0:nT   M   1L    Yd M:nT   1L                          Double   Double        2:res   TOTAL Xd  0:nT   M   1L    Yd  M:nT   1L                          Ndim  Double   Double        3:res   TOTAL Xd    0:nT   M   1L    Yd    M:nT   1L                          Ndim  Double   Double        4:res   TOTAL Xd      0:nT   M   1L    Yd      M:nT   1L                          Ndim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    ENDIF      RETURN  res  END  FUNCTION C_Timecorrelate  X  Y  Lag  Covariance   Covariance  Double   Double   Compute the sample cross correlation or cross covariance of   Xt  Xt l  and  Yt  Yt l  as a function of the lag  l      ON_ERROR  2     xsize   SIZE X     ysize   SIZE Y     nt   float xsize xsize 0     NDim   xsize 0      if total xsize 0:xsize 0  NE ysize 0:ysize 0  NE 0 then       MESSAGE   X and Y arrays must have the same size and the same dimensions    Check length     if nt lt 2 then       MESSAGE   Time dimension of X and Y arrays must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    Xsize Xsize 0 1  eq 5 or ysize ysize 0 1  eq 5      if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag    Deviations    if double then one   1 0d ELSE one   1 0    Ndim   size X   n_dimensions     Xd   TOTAL X  Ndim  Double   Double    nT    Xd   X   Xd replicate one   nT     Yd   TOTAL Y  Ndim  Double   Double    nT    Yd   Y   Yd replicate one   nT      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case NDim of       1:if Double eq 0 then  Cross   FLTARR nLag  else  Cross   DBLARR nLag        2:if Double eq 0 then  Cross   FLTARR Xsize 1  nLag  else  Cross   DBLARR Xsize 1  nLag        3:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  nLag        4:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  Xsize 3  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  Xsize 3  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Cross  Crossation        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN              case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                endcase          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double               endcase          ENDELSE         ENDFOR        div   sqrt TimeCross_Cov Xd  Xd  0L  nT  Ndim  Double   Double   zero2nan                        TimeCross_Cov Yd  Yd  0L  nT  Ndim  Double   Double   zero2nan         Cross   temporary Cross temporary div replicate one  nLag     endif else begin              Compute Cross Covariance        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN             case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDELSE        endfor    endelse     if Double eq 0 then RETURN  FLOAT Cross  else RETURN   Cross  END   ");
-a[294] = new Array("./ToBeReviewed/STRING/chkeywd.html", "chkeywd.pro", "", "          NAME: chkeywd  change keyword      PURPOSE: ds un string qui contient une commande a executer avec   EXECUTE par ex  On change la valeur d un des mot cle    Plus generalement  ds un string  on cherche la chaine de   chacarteres:   keywdname    et on change la valeur de       CATEGORY: pour bidouiller des commandes passees par execute     CALLING SEQUENCE: stringout chkeywd stringin  keywdname  keywdvalue       INPUTS:        stringin: un string        keywdname: un string designant le nom du mot clef a chercher         keywdvalue: nouvelle valeur du mot clef a considerer ds stringin     KEYWORD PARAMETERS:        pour chercher le mot cle  on cherche le premier signe   qui        suit la position de keywdname  on substitue        pardefaut tout le bout de string qui suit jusqu a la prochaine        virgule  avec les mots cles SEPARATOR et AFTER on peut modifier        cette decoupe du string:        SEPARATOR donne un chatactere avant  ou apres si AFTER est        active  lequel il faut chercher la virgule qui delimite le mot        cle ds le string  cf  les exemples     OUTPUTS:stringout stringin modifie si keywdname a ete trouve ds   stringin     COMMON BLOCKS:common pro     SIDE EFFECTS:          Si keywdvalue est un tableau  il sera convertit en vecteur      RESTRICTIONS:       attention cette fonction comporte des boucles  des if et des cases     ds tous les sens  Elle ne doit donc pas etre utilisee avec des     mots clefs de grosse taille  avec bcp d elements et avec des     elements etant de gros tableaux      le mot clef en entree ne doit pas contenir de Complex floating  de     structure  de Double precision complex  de Pointer  de Object     reference  de Unsigned Integer  de Unsigned Longword Integer  de     64 bit Integer  de Unsigned 64 bit Integer      EXAMPLE:       IDL  b ok 111  year 1997 1998 1999  age_capitaine 35      IDL  print  b     ok 111  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b ok c est bon      ok c est bon  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep after      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  b ok 111   year   age_capitaine      IDL  print  chkeywd b year c est bon      ok 111  year c est bon   age_capitaine     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999                        24 11 1999: adaptation pour les mots cles                        commencant par           FUNCTION chkeywd  stringin  keywdname  keywdvalue  SEPARATOR   separator  AFTER   after     compile_opt idl2  strictarrsubs       stringout   stringin    poskeywd   strpos strlowcase stringout  strlowcase keywdname     if poskeywd EQ  1 then return  stringout    while poskeywd NE  1 do BEGIN   changer un mot cle qui commence par  toto       if strmid stringout poskeywd 1 1  EQ   then BEGIN          ajoute   keywdname tostr keywdvalue           stringout   strmid stringout  0  poskeywd 1 ajoute strmid stringout poskeywd strlen keywdname             poskeywd   poskeywd strlen ajoute           poskeywd   strpos stringout  keywdname  poskeywd        ENDIF ELSE BEGIN    changer un mot cle qui commence par toto           posegal   strpos stringout    poskeywd           if posegal EQ  1 then return  stringout           if NOT keyword_set separator  then separator              posvirgule   strpos stringout  separator  posegal 1           if keyword_set after  then posvirgule   strpos stringout    posvirgule 1             ELSE posvirgule   rstrpos stringout    posvirgule 1           if posvirgule EQ  1 then posvirgule   strlen stringout             stringout   strmid stringout  0  posegal 1 tostr keywdvalue strmid stringout  posvirgule             poskeywd   strpos stringout  keywdname  posvirgule 1        ENDELSE     endwhile     return   stringout end");
-a[295] = new Array("./ToBeReviewed/STRING/delchr.html", "delchr.pro", "", "      NAME:         DELCHR   PURPOSE:         Delete all occurrences of a character from a text string    CATEGORY:   CALLING SEQUENCE:         new   delchr old  char    INPUTS:         old   original text string      in         char   character to delete      in   KEYWORD PARAMETERS:   OUTPUTS:         new   resulting string          out   COMMON BLOCKS:   NOTES:   MODIFICATION HISTORY:         R  Sterner   5 Jul  1988          Johns Hopkins Applied Physics Lab          RES 11 Sep  1989   converted to SUN          R  Sterner  27 Jan  1993   dropped reference to array      Copyright  C  1988  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt         FUNCTION DELCHR  OLD  C  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 2  or keyword_set hlp  then begin    print  Delete all occurrences of a character from a text string     print  new   delchr old  char     print    old   original text string      in     print    char   character to delete      in     print    new   resulting string          out     return   1  endif    B   BYTE OLD      convert string to a byte array   CB   BYTE C      convert char to byte   w   where b ne cb 0   if w 0  eq  1 then return        Nothing left   return  string b w      Return new string   END");
-a[296] = new Array("./ToBeReviewed/STRING/getfile.html", "getfile.pro", "", "      NAME:         GETFILE   PURPOSE:         Read a text file into a string array    CATEGORY:   CALLING SEQUENCE:         s   getfile f    INPUTS:         f   text file name       in   KEYWORD PARAMETERS:         Keywords:           ERROR err  error flag: 0 ok  1 file not opened              2 no lines in file             QUIET means give no error message            LINES n  Number of lines to read  def all              Much faster if number of lines is known              Automatic for IDL 5 6 or later             FIND search te file in the all  path directories  use           find pro    OUTPUTS:         s   string array         out   COMMON BLOCKS:   NOTES:   MODIFICATION HISTORY:         R  Sterner  20 Mar  1990         R  Sterner  1999 Apr 14   Added LINES n keyword          R  Sterner  2003 Aug 29   Automatic lines if IDL 5 6          R  Sterner  2003 Sep 02   Check if file exists first          R  Sterner  2003 Sep 04   Fixed error in number of lines in file          R  Sterner  2003 Oct 10   Fixed error when no lines          R  Sterner  2004 Jan 27   Fixed to work in IDL as old as vers 4            S  Masson  smasson lodyc jussieu fr  4 Feb 2002         search te file in the all  path directories  use find pro          when using  find keyword  Use spawn   cat  for unix os      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt         function getfile  filein  error err  help hlp  quiet quiet  lines lines  find   find     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Read a text file into a string array     print  s   getfile f     print    f   text file name       in     print    s   string array         out     print  Keywords:     print    ERROR err  error flag: 0 ok  1 file not opened     print      2 no lines in file     print     QUIET means give no error message     print    LINES n  Number of lines to read  def all     print      Much faster if number of lines is known     print      Automatic for IDL 5 6 or later     return   1  endif           if keyword_set find  then begin           file   find filein            file   file 0            if file EQ  NOT FOUND  then begin             print    Error in getfile: File  filein  not fouond              return   1           endif         ENDIF ELSE file   filein         if  version os_family EQ  unix  then begin           spawn   cat  file   res           if res 0  NE   then return  res ELSE return            endif                  if  version release 0  ge 5 5  then begin           f   call_function file_search  file  count   c   endif else begin    f   findfile file count c   endelse  if c eq 0 then begin    err   1    return   endif    if n_elements line  eq 0 and  version release 0  ge 5 6  then begin    lines   file_lines file     if lines eq 0 then begin      if not keyword_set quiet  then print  No lines in file       err   2      return 1    endif    minlines   0  endif else minlines 1    get_lun  lun  on_ioerror  err  openr  lun  file    if n_elements lines  ne 0 then begin    s   strarr lines     readf lun s  endif else begin    s          t        while not eof lun  do begin      readf  lun  t      s    s t     endwhile  endelse    close  lun  free_lun  lun  if n_elements s  eq minlines then begin    if not keyword_set quiet  then print  No lines in file     err   2    return 1  endif  if minlines eq 1 then s s 1:     err   0  return  s   err: if  err eq  168 then begin    if not keyword_set quiet  then print  Non standard text file format     free_lun  lun    return  s  endif  if not keyword_set quiet  then print       Error in getfile: File  file  not opened   free_lun  lun  err   1  return   1    end");
-a[297] = new Array("./ToBeReviewed/STRING/getwrd.html", "getwrd.pro", "", "      NAME:         GETWRD   PURPOSE:         Return the n th word from a text string    CATEGORY:   CALLING SEQUENCE:         wrd   getwrd txt  n   m    INPUTS:         txt   text string to extract from          in           The first element is used if txt is an array          n   word number to get  first   0   def   in         m   optional last word number to get       in   KEYWORD PARAMETERS:         Keywords:           LOCATION   l   Return word n string location            DELIMITER   d  Set word delimiter  def   space   tab             LAST means n is offset from last word   So n 0 gives             last word  n 1 gives next to last                If n 2 and m 0 then last 3 words are returned             NOTRIM suppresses whitespace trimming on ends            NWORDS n   Returns number of words in string    OUTPUTS:         wrd   returned word or words               out   COMMON BLOCKS:         getwrd_com   NOTES:         Note: If a NULL string is given  txt  then the last string               given is used   This saves finding the words again                If m   n wrd will be a string of words from word n to               word m   If no m is given wrd will be a single word                n n wrd will be a string of words from word n to     print       word m   If no m is given wrd will be a single word     print       n 0  Smaller of in and im    im   im   0   to zero     if  in gt lst  and  im gt lst  then return    Out of range     in   in   lst  Larger of in and im    im   im   lst   to be last     ll   loc in  Nth word start     return  strtrim strmid txtstr0 ll loc im loc in len im  2    endif    N   ABS NTH  Allow nth 0   IF N GT NWDS 1 THEN RETURN  out of range  null   ll   loc n  N th word position   IF NTH LT 0 THEN GOTO  NEG  Handle nth 0   IF MTH GT NWDS 1 THEN MTH   NWDS 1  Words to end     if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH  2    endelse   NEG: if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll 9999   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll 9999  2   endelse    END");
-a[298] = new Array("./ToBeReviewed/STRING/isnumber.html", "isnumber.pro", "", "      NAME:         ISNUMBER   PURPOSE:         Determine if a text string is a valid number    CATEGORY:   CALLING SEQUENCE:         i   isnumber txt   x    INPUTS:         txt   text string to test                       in   KEYWORD PARAMETERS:   OUTPUTS:         x   optionaly returned numeric value if valid   out         i   test flag:                                  out             0: not a number              1: txt is a long integer              2: txt is a float               1: first word of txt is a long integer               2: first word of txt is a float    COMMON BLOCKS:   NOTES:   MODIFICATION HISTORY:         R  Sterner   15 Oct  1986          Johns Hopkins Applied Physics Lab          R  Sterner  12 Mar  1990   upgraded          Richard Garrett  14 June  1992   fixed bug in returned float value          R  Sterner  1999 Nov 30   Fixed a bug found by Kristian Kjaer  Denmark     Copyright  C  1986  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt         function isnumber  txt0  x  help hlp     compile_opt idl2  strictarrsubs     if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Determine if a text string is a valid number     print  i   isnumber txt   x     print    txt   text string to test                       in     print    x   optionaly returned numeric value if valid   out     print    i   test flag:                                  out     print        0: not a number     print        1: txt is a long integer     print        2: txt is a float     print         1: first word of txt is a long integer     print         2: first word of txt is a float     return   1  endif    txt   strtrim txt0 2  trim blanks   x   0  define X     if txt eq   then return  0  null string not a number     sn   1  if nwrds txt  gt 1 then begin  get first word if more than one     sn    1    txt   getwrd txt 0   endif      f_flag   0  Floating flag   b   byte txt  Convert to byte array   if b 0  eq 45 then b b 1:  Drop leading       Kristian Kjaer  if b 0  eq 43 then b b 1:  Drop leading       bug fix   w   where b eq 43  cnt  Look for    if cnt gt 1 then return  0  Alow only 1   t   delchr txt  Drop it   w   where b eq 45  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   t   delchr t  Drop it   w   where b eq 46  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If one then floating   t   delchr t  Drop it   w   where b eq 101  cnt  Look for  e   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t e  Drop it   w   where b eq 69  cnt  Look for  E   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t E  Drop it   w   where b eq 100  cnt  Look for  d   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t d  Drop it   w   where b eq 68  cnt  Look for  D   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t D  Drop it     Allow only one  e   E   d  or  D      if total b eq 101 b eq 69 b eq 100 b eq 68  gt 1 then return 0  b   byte t     Allow no alphabetic characters     if total b ge 65  and  b le 122  ne 0 then return  0    c   strmid t 0 1   if  c lt  0  or  c gt  9  then return  0    First char not a digit     x   txt   0 0       Convert to a float   if f_flag eq 1 then return  2 sn       Was floating   if x eq long x  then begin    x   long x     return  sn  endif else begin    return  2 sn  endelse    end");
-a[299] = new Array("./ToBeReviewed/STRING/lenstr.html", "lenstr.pro", "", "    ROUTINE:         lenstr   USEAGE:          result lenstr str      input:    str             a single string or string array       output:    result          length of the string s  in normalized units                    the number of elements of RESULT matches the number of                     elements of STRING       procedure:                    This function returns the physical length of the                    string on the output device  not the number of                    characters   This is done by first switching to  X                     and writing the string s  with XYOUTS in graphics                    mode 5  which disables display to the screen but                    does not interfere with operation of XYOUTS   The                    WIDTH keyword parameter of XYOUTS is used to                    retrieve the physical length of the string s       author:  Paul Ricchiazzi                            7apr93             Institute for Computational Earth System Science             University of California  Santa Barbara    function lenstr str     compile_opt idl2  strictarrsubs      dsave d name     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE     p BACKGROUND d n_colors 1    255     p color 0    if  d n_colors gt 256 then  p background ffffff x     device get_graphics oldg set_graphics 5    if keyword_set charsize  eq 0 then charsize 1    nn n_elements str      case nn of        0:w 0        1:xyouts 0 0 device str width w        else:begin          w fltarr nn           for i 0 nn 1 do begin             xyouts 0 0 device str i width ww             w i ww          endfor       end    endcase     fac1 float d x_ch_size d x_vsize   ratio of char width to device1 width     device set_graphics oldg    set_plot dsave    IF dsave EQ  X  OR dsave EQ  MAC  OR dsave EQ  WIN  then BEGIN        p BACKGROUND d n_colors 1    255        p color 0       if  d n_colors gt 256 then  p background ffffff x    ENDIF     fac2 float d x_ch_size d x_vsize   ratio of char width to device2 width     return w fac2 fac1             string width adjusted for device width end ");
-a[300] = new Array("./ToBeReviewed/STRING/nwrds.html", "nwrds.pro", "", "      NAME:         NWRDS   PURPOSE:         Return the number of words in the given text string    CATEGORY:   CALLING SEQUENCE:         n   nwrds txt    INPUTS:         txt   text string to examine              in   KEYWORD PARAMETERS:         Keywords:           DELIMITER   d   Set delimiter character  def   space    OUTPUTS:         n   number of words found                 out   COMMON BLOCKS:   NOTES:         Notes: See also getwrd    MODIFICATION HISTORY:         R  Sterner   7 Feb  1985          Johns Hopkins University Applied Physics Laboratory          RES 4 Sep  1989   converted to SUN      Copyright  C  1985  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt           function nwrds txtstr  help hlp  delimiter delim     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Return the number of words in the given text string     print  n   nwrds txt     print    txt   text string to examine              in     print    n   number of words found                 out     print  Keywords:     print    DELIMITER   d   Set delimiter character  def   space     print  Notes: See also getwrd     return   1  endif    if strlen txtstr  eq 0 then return 0  A null string has 0 words   ddel       Default word delimiter is a space   if n_elements delim  ne 0 then ddel   delim   Use given word delimiter   tst    byte ddel 0  Delimiter as a byte value          tb   byte txtstr                                String to bytes          if ddel eq     then begin                       Check for tabs            w   where tb eq 9B  cnt                       Yes            if cnt gt 0 then tb w    32B                  Convert any to space          endif  x   tb ne tst  Locate words   x    0 x 0  Pad ends with delimiters     y    x shift x 1  eq 1  Look for word beginnings     n   fix total y  Count word beginnings     return  n    end");
-a[301] = new Array("./ToBeReviewed/STRING/putfile.html", "putfile.pro", "", "      NAME:         PUTFILE   PURPOSE:         Write a text file from a string array    CATEGORY:   CALLING SEQUENCE:         putfile  f  s   INPUTS:         f   text file name       in         s   string array         in   KEYWORD PARAMETERS:         Keywords:           ERROR err  error flag: 0 ok  1 invalid string array    OUTPUTS:   COMMON BLOCKS:   NOTES:   MODIFICATION HISTORY:         R  Sterner  20 Mar  1990         R  Sterner   4 Nov  1992   allowed scalar strings      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt         pro putfile  file  s  error err  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Write a text file from a string array     print  putfile  f  s     print    f   text file name       in     print    s   string array         in     print  Keywords:     print    ERROR err  error flag: 0 ok  1 invalid string array     return  endif           if lmgr demo  then begin            print   you are in Demo mode  It is impossible to write a file             return         endif     if size s   type  ne 7 then begin    print  Error in putfile: argument must be a string array     err   1    return  endif    get_lun  lun  openw  lun  file    for i   0  n_elements s 1 do begin    t   s i     if t eq   then t          printf  lun  t  endfor    close  lun  free_lun  lun  err   0  return    end");
-a[302] = new Array("./ToBeReviewed/STRING/str_size.html", "str_size.pro", "", "   Id: str_size pro 134 2006 07 07 10:19:08Z navarro       NAME:    STR_SIZE     PURPOSE:      The purpose of this function is to return the proper    character size to make a specified string a specifed    width in a window  The width is specified in normalized    coordinates  The function is extremely useful for sizing    strings and labels in resizeable graphics windows      CATEGORY:      Graphics Programs  Widgets      CALLING SEQUENCE:      thisCharSize   STR_SIZE thisSting  targetWidth      INPUTS:      thisString:  This is the string that you want to make a specifed       target size or width      OPTIONAL INPUTS:      targetWidth:  This is the target width of the string in normalized       coordinates in the current graphics window  The character       size of the string  returned as thisCharSize  will be       calculated to get the string width as close as possible to       the target width  The default is 0 25      KEYWORD PARAMETERS:      INITSIZE:  This is the initial size of the string  Default is 1 0       STEP:   This is the amount the string size will change in each step       of the interative process of calculating the string size        The default value is 0 05      OUTPUTS:      thisCharSize:  This is the size the specified string should be set       to if you want to produce output of the specified target       width  The value is in standard character size units where       1 0 is the standard character size      EXAMPLE:      To make the string  Happy Holidays  take up 30  of the width of    the current graphics window  type this:                   XYOUTS  0 5  0 5  ALIGN 0 5   Happy Holidays             CHARSIZE STR_SIZE Happy Holidays  0 3      MODIFICATION HISTORY:      Written by: David Fanning  17 DEC 96     Added a scaling factor to take into account the aspect ratio       of the window in determing the character size  28 Oct 97  DWF    FUNCTION STR_SIZE  string  targetWidth  INITSIZE initsize  STEP step     compile_opt idl2  strictarrsubs    ON_ERROR  1       Check positional parameters   np   N_PARAMS  CASE np OF    0: MESSAGE   One string parameter is required     1: targetWidth   0 25    ELSE: ENDCASE       Check keywords  Assign default values   IF N_ELEMENTS step  EQ 0 THEN step   0 05 IF N_ELEMENTS initsize  EQ 0 THEN initsize   1 0       Calculate a trial width   size   initsize XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth          CHARSIZE size   NORMAL       Size is perfect   IF thisWidth EQ targetWidth THEN RETURN  size   Float D Y_Size D X_Size       Initial size is too big   IF thisWidth GT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth LE targetWidth    RETURN  size   Float D Y_Size D X_Size ENDIF       Initial size is too small   IF thisWidth LT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth GT targetWidth    size   size   step   Need a value slightly smaller than target     RETURN  size   Float D Y_Size D X_Size ENDIF  END");
-a[303] = new Array("./ToBeReviewed/STRING/string2struct.html", "string2struct.pro", "", "    This is a really  really cool way to turn keywords into   a structure    function too_cool _extra extra     compile_opt idl2  strictarrsubs   return extra end      NAME:         stringToStructure     PURPOSE:         Takes an input string set up as keywords and returns an anonymous structure                  This is particularly useful for taking keywords entered by a user in a text                 field and passing then to other routines      CATEGORY:         Utility     CALLING SEQUENCE:         extra stringToStructure xrange 0 10 linestyle 2          plot findgen 100 _extra extra     INPUTS:         String set up as keywords  Keywords require a little special treatment  Such as         plot findgen 100 _extra stringToStructure title testing      KEYWORD PARAMETERS:           None     OUTPUTS:         This function returns the string as an anonymous structure  If an         error was found then this function returns a structure with a null field      COMMON BLOCKS:         None      EXAMPLE:         The code below creates a widget that uses this routine          pro tPlot event         widget_control event top get_uvalue field         widget_control field get_value strVal         extra   stringToStructure strVal          plot findgen 100 _extra extra         wshow         return         end           pro testWid          enter any keyword to plot and see how it works         base   widget_base col          field   cw_field base title test value ax 0 string          void   widget_button base value plot event_pro tPlot          widget_control base realize set_uvalue field         xmanager testWid base no_block         return         end     MODIFICATION HISTORY:         Written by:         RLK  Ronn Kling Consulting          ronn rlkling com         www rlkling com                 May  1999    function string2struct strVal     compile_opt idl2  strictarrsubs   r   execute extra   too_cool    strVal 0     if r   0 then user did not enter keywords correctly so  return a structure with a null field  if r eq 0 then begin   print Error in input string    return null:0  endif return extra end ");
-a[304] = new Array("./ToBeReviewed/STRING/strkeywd.html", "strkeywd.pro", "", "          NAME: strkeywd  string keywords      PURPOSE: traduit une sturcture en un string pouvant etre utilise   pour specifier des keywords ds l appelle d une fonction qd on   utilise execute  cf l exemple      CATEGORY: pour passer des mots cles avec execute       CALLING SEQUENCE:res strkeywd struct       INPUTS:struct: une structure     KEYWORD PARAMETERS:     OUTPUTS:un string compose de la facon suivante:           pour chaque element de la structure  on ecrit une partie du           string sous la forme:             nom_de_l element contennu de l element      COMMON BLOCKS:     SIDE EFFECTS:       Si un element de la structure contient un tableau  il sera     convertit en vecteur      RESTRICTIONS:       attention cette fonction comporte des boucles  des if et des cases     ds tous les sens  Elle ne doit donc pas etre utilisee avec des     structure de grosse taille  avec bcp d elements et avec des     elements etant de gros tableaux      la structure en entree ne doit pas contenir de Complex floating  de     structure  de Double precision complex  de Pointer  de Object     reference  de Unsigned Integer  de Unsigned Longword Integer  de     64 bit Integer  de Unsigned 64 bit Integer          EXAMPLE:     on cree une structure         IDL  b get_extra ok 111  year 1997 1998 1999  age_capitaine 35          IDL  help  b struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3    on met cette structure sous forme de string         IDL  a strkeywd b          IDL  print  a         AGE_CAPITAINE 35  OK 111  YEAR 1997 1998 1999    maintenant on peut utiliser le string a pour passer des mots cles ds   une fonction a l aide de execute          IDL  test execute c get_extra a          IDL  help  c struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         11 10 1999         FUNCTION strkeywd  struct     compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        tname   tag_names struct     if n_elements tname  EQ 0 then return         on s occupe du premier element      res   strlowcase tname 0 tostr struct 0     if n_elements tname  EQ 1 then return   res     on s occupe des autres elements      for n   1 n_elements tname 1 do res   res   strlowcase tname n tostr struct n       return   res end");
-a[305] = new Array("./ToBeReviewed/STRING/strrepl.html", "strrepl.pro", "", "   Id: strrepl pro 134 2006 07 07 10:19:08Z navarro         NAME:          STRREPL  function      PURPOSE:          replace one  or more  character s string s  in a string     CATEGORY:          string routines     CALLING SEQUENCE:          Result   STRREPL str  index  rchar      INPUTS:          STR   the string to be changed            INDEX   position of the character s  to be replaced or a          string to be changed in STR             RCHAR   replacement character string     KEYWORD PARAMETERS: none       OUTPUTS:          another string     SUBROUTINES:     REQUIREMENTS:     NOTES:          Known shortcoming: if index is an array  it must contain all          valid elements  only the first entry is checked      EXAMPLE:            Convert one letter into upper case            abc    abcdefghijklmnopqrstuvwxyz           print strrepl abc strpos abc m M               prints  abcdefghijklMnopqrstuvwxyz                 Use with strwhere function          a    abcabcabc           print strrepl a strwhere a a               prints   bc bc bc bc bc            IDL  print  strrepl a bc eeee          a eeee a eeee a eeee          IDL  print  strrepl a b 0000          a0000ca0000ca0000         IDL  print  strrepl a toto 0000          abcabcabc     MODIFICATION HISTORY:          mgs  02 Jun 1998: VERSION 1 00          sebastien Masson  smlod ipsl jussieu fr        Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strrepl      function strrepl str agument1 rchar     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return                                        convert strign and replace character to byte    BStr   byte str     new   byte rchar     if size agument1   type  EQ 7 then begin       old   byte agument1        index   strpos str  agument1        pos   index       while strpos str  agument1  pos 1  NE  1 do BEGIN          pos   strpos str  agument1  pos 1           index    index  pos        ENDWHILE   make sure index is in range       if  index 0  lt 0 OR index 0  ge n_elements BStr  THEN return Str    ENDIF ELSE BEGIN       index   agument1       if  index 0  lt 0 OR index 0  ge n_elements BStr  then return Str       old   BStr index 0     ENDELSE                                   replace indexed characters in string    nelenew   n_elements new     neleold   n_elements old     nindex   n_elements index     if nelenew neleold NE 1 then begin       if index 0  EQ 0 then          BStr    NEW   BStr index 0 neleold: n_elements BStr 1    ELSE          BStr    BStr 0:index 0 1  NEW   BStr index 0 neleold: n_elements BStr 1          if nindex EQ 1 then return string BStr        if nindex GT 2 then          for i   1  nindex 2 do          BStr    BStr 0:index i i nelenew neleold 1  NEW                    BStr index i i nelenew neleold neleold: n_elements BStr 1          BStr    BStr 0:index n_elements index 1 nindex 1 nelenew neleold 1  NEW      ENDIF ELSE BStr index    NEW                                   return result as string    return string BStr      end");
-a[306] = new Array("./ToBeReviewed/STRING/strright.html", "strright.pro", "", "   Id: strright pro 134 2006 07 07 10:19:08Z navarro         NAME:          STRRIGHT     PURPOSE:          return right subportion from a string     CATEGORY:          string handling      CALLING SEQUENCE:          res   STRRIGHT string  nlast      INPUTS:          STRING   the string to be searched            NLAST   the number of characters to be returned  Default             is 1  If NLAST is ge strlen STRING  the complete string             is returned      KEYWORD PARAMETERS:     OUTPUTS:          The portion of NLAST characters of STRING counted from the back      SUBROUTINES:     REQUIREMENTS:     NOTES:     EXAMPLE:          if  strright path  ne   then path   path         MODIFICATION HISTORY:          mgs  19 Nov 1997: VERSION 1 00       Copyright  C  1997  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strright      function strright s lastn     compile_opt idl2  strictarrsubs         on_error 2     return to caller       if  n_elements s  le 0  then return 1L       l   strlen s        if  n_elements lastn  le 0  then lastn   1     if lastn gt l then lastn   l       result   strmid s l lastn l        return result end");
-a[307] = new Array("./ToBeReviewed/STRING/strsci.html", "strsci.pro", "", "   Id: strsci pro 134 2006 07 07 10:19:08Z navarro         NAME:          STRSCI  function      PURPOSE:                                                           Given a number  returns a string of that          B          number in scientific notation format   e g  A x 10        CATEGORY:          String Utilities     CALLING SEQUENCE:          Result   STRSCI  DATA  keywords        INPUTS:          DATA        A floating point or integer number to be                       converted into a power of 10      KEYWORD PARAMETERS:          FORMAT      The format specification used in the string                       conversion for the mantissa  i e  the                        A  of  A x 10 B   Default is  f12 2                POT_ONLY   Will return only the  power of 10  part of the                       string  i e  the  10 B   Default is to return                       the entire string  e g   A x 10 B                MANTISSA_ONLY   return only mantissa of the string             SHORT   return 10 0 as  1  and 10 1 as  10              TRIM   don t insert blanks  i e  return Ax10 B      OUTPUTS:          None     SUBROUTINES:          None     REQUIREMENTS:          None     NOTES:          This function does not  evaluate  the format statement thoroughly          which can result in somewhat quirky strings  Example:          print strsci 9 999  results in  10 0x10 0 instead of  1 0x10 1             Need a better symbol than the  x  for the multiplier      EXAMPLE:          Result   STRSCI  2000000  format i1             print  result                                                                                6                prints 2 x 10 u6 n  which gets plotted as 2 x 10                     Result   STRSCI   0 0001            print  result                                                                       4                prints  1 00 x 10 u 4 n  which gets plotted as 1 00 x 10            Result   STRSCI  0d0  format f13 8             print  result                           prints  0 00000000        MODIFICATION HISTORY:          bmy  28 May 1998: VERSION 1 00            B               now returns string of the form A x 10          mgs  29 May 1998:               bug fix: now allows negative numbers               keyword MANTISSA_ONLY added               default format changed to f12 2          bmy  02 Jun 1998:               renamed to STRSCI  STRing SCIentific notation           mgs  03 Jun 1998:               added TRIM keyword          mgs  22 Sep 1998:               added SHORT keyword               modified handling of TRIM keyword          mgs  24 Sep 1998:               bug fix with SHORT flag          bmy   mgs  02 Jun 1999:               now can handle DATA 0 0 correctly               updated comments          mgs  03 Jun 1999:                can now also handle values lt 1                 and doesn t choke on arrays       Copyright  C  1998  1999 Bob Yantosca and Martin Schultz     Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to bmy io harvard edu   or mgs io harvard edu with subject  IDL routine strsci      function StrSci  Data  Format Format  POT_Only POT_Only                 MANTISSA_ONLY MANTISSA_ONLY SHORT SHORT TRIM TRIM     compile_opt idl2  strictarrsubs              Error checking   Keyword settings          on_error  2     if   n_elements  Data   eq 0   then begin       return       endif     if   not Keyword_Set  Format     then Format      f12 2      POT_Only        keyword_set  POT_Only           MANTISSA_Only   keyword_set  MANTISSA_Only      Short           Keyword_Set  Short              Trim            Keyword_Set  Trim                NDat   n_elements Data     Result   strarr NDat      for i 0 NDat 1 do begin                 If ABS  DATA     0 then we can proceed to take the common log          For DATA   0  place a   sign in front of the number               if   Abs  Data i    ne 0 0   then begin                take the common log and store in LOG10DATA          Log10Data   ALog10  Abs  Data i                       Boolean flag if data   0          sign     Data i  lt 0 0                   Compute the characteristic  int part             Add the 1d 6 to prevent roundoff errors          Characteristic   Fix  Log10Data   1 0d 6            if  Log10Data lt 0  then               Characteristic   Characteristic   1                 Compute the Mantissa  frac part  and take its antilog           Mantissa   Log10Data   Characteristic           Mantissa   10 0 Mantissa           print data i log10data mantissa characteristic format 3f24 14 i8                 String for the coefficient part              The coefficient is just antilog of the Mantissa            Add the minus sign if DATA   0 0          A   StrTrim  String  Mantissa  Format Format   2            if   Sign   then A       A                String for the power of 10 part          B    10 u    strtrim  string  Characteristic   2      n           if   Short   then begin             if   Characteristic eq 0   then B    1              if   Characteristic eq 1   then B    10           endif                composite string          Result i    A     x     B          if   Short AND B eq  1  then Result i    A                         If DATA   0  then we cannot take the common log  so return         zeroes for the result strings   Use the FORMAT string                endif else begin          A        String  0d0  Format Format            B        A          Result i    A           endelse                     Return result to calling program  depending on keyword settings          Eliminate blanks if TRIM keyword is set               if   POT_Only   then            Result i    B       if   MANTISSA_Only   then            Result i    A       if   Trim   then            Result i    StrCompress  Result i   Remove_All            endfor     if  n_elements Result  eq 1  then         Result   Result 0       return  Result  end");
-a[308] = new Array("./ToBeReviewed/STRING/strtok.html", "strtok.pro", "", "      NAME:         STRTOK   PURPOSE:         Retrieve portion of string up to token    CATEGORY:         text strings   CALLING SEQUENCE:         new   strtok  old  token     INPUTS:         old     String to be split   Contains text after    in  out                  token on output          token   Token to use in splitting old               in   KEYWORD PARAMETERS:          TRIM   set to remove leading blanks from old                   before returning           HELP   print useful message and exit    OUTPUTS:         new     portion of string up to token               out         old     portion of old after token                  out  in   COMMON BLOCKS:   SIDE EFFECTS:         Input parameter old is modified    NOTES:         Token may be one or more characters          If token is not found  returns old and sets old to     EXAMPLE:         If old is  foo44 bar  then strtok  old   44    would return          foo  and upon return  old will be left with   bar   If  TRIM         were set  old would be  bar  on return            If old xyz  then new strtok old a  would return with         new xyz  and old    THANKS:         To D  Linder who wrote GETTOK  part of the goddard library          upon which this is based    MODIFICATION HISTORY:          Id: strtok pro 134 2006 07 07 10:19:08Z navarro            Log: strtok pro v           Revision 1 3  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 2  1996 05 09 00:22:17  mcraig         Added built in help            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     RELEASE:          Name: Rel_1_2       COPYRIGHT:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details    FUNCTION Strtok  string  token                     TRIM trim  HELP Help     compile_opt idl2  strictarrsubs      Back to the caller if error occurs      On_error  2      IF  n_params  NE 2  OR keyword_set Help  THEN BEGIN          offset                 print  offset Retrieve portion of string up to token          print  offset new   strtok  old  token           print  offset Inputs:          print  offset offset old     String to be split   Contains text after    in  out          print  offset offset          token on output          print  offset offset token   Token to use in splitting old               in          print  offset Keywords:          print  offset offset TRIM   set to remove leading blanks from old           print  offset offset          before returning          print  offset offset HELP   print useful message and exit          print  offset Outputs:          print  offset offset new     portion of string up to token               out          print  offset offset old     portion of old after token                  out  in          print  offset Side effects:          print  offset offset Input parameter old is modified          print  offset Notes:          print  offset offset Token may be one or more characters          print  offset offset If token is not found  returns old and sets old to           print  offset Examples:          print  offset offset If old is  foo44 bar  then strtok  old   44    would return          print  offset offset    foo  and upon return  old will be left with   bar   If  TRIM          print  offset offset   were set  old would be  bar  on return            print  offset offset If old xyz  then new strtok old a  would return with          print  offset offset   new xyz  and old          return   1     ENDIF       pos   strpos string  token       IF  pos GE 0  THEN BEGIN         front   strmid string  0  pos           string   strmid string  pos   strlen token  strlen string          IF keyword_set trim  THEN string   strtrim string  1          return  front     ENDIF          front   string     string         return  front      END ");
-a[309] = new Array("./ToBeReviewed/STRING/strwhere.html", "strwhere.pro", "", "   Id: strwhere pro 134 2006 07 07 10:19:08Z navarro         NAME:          STRWHERE   function      PURPOSE:          return position  array  for occurence of a character in          a string     CATEGORY:          string tools     CALLING SEQUENCE:          pos   STRWHERE str  schar  Count        INPUTS:          STR   the string            SCHAR   the character to look for     KEYWORD PARAMETERS:          none      OUTPUTS:          COUNT    optional  The number of matches that were found             The function returns an index array similar to the           result of the where function     SUBROUTINES:     REQUIREMENTS:     NOTES:     EXAMPLE:          ind   strwhere abcabcabc a               returns   0  3  6       MODIFICATION HISTORY:          mgs  02 Jun 1998: VERSION 1 00          bmy  30 Jun 1998:   now returns COUNT  the number                               of matches that are found  this is                              analogous to the WHERE command        Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strwhere      function strwhere str schar Count     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return 1        convert to byte    BStr   byte Str     BSC     byte schar 0         Search for matches    Ind   where  Bstr eq BSC  Count         bmy   return where BStr eq BSC     return  Ind  end    ");
-a[310] = new Array("./ToBeReviewed/STRING/tostr.html", "tostr.pro", "", "          NAME: tostr  to string      PURPOSE: convertit un input en un string      CATEGORY:      CALLING SEQUENCE: res tostr input       INPUTS: input ne peut pas contenir ou etre de type:       Complex floating  structure  Double precision complex  Pointer  Object     reference  Unsigned Integer  Unsigned Longword Integer  64 bit     Integer  Unsigned 64 bit Integer      KEYWORD PARAMETERS: none     OUTPUTS: un string     COMMON BLOCKS:     SIDE EFFECTS:       Si un element de input contient un tableau  il sera     convertit en vecteur      RESTRICTIONS:       attention cette fonction comporte des boucles  des if et des cases     ds tous les sens  Elle ne doit donc pas etre utilisee avec des     inputs de grosse taille  avec bcp d elements et avec des     elements etant de gros tableaux    EXAMPLE:      IDL  help  tostr 1 tostr a tostr indgen 4 tostr a jkfjo           STRING       1           STRING       a           STRING       0 1 2 3           STRING       a jkfjo       IDL  print  tostr c est bon c est bon        c est bon c est bon      MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999         FUNCTION tostr  input     compile_opt idl2  strictarrsubs       case 1 of       size input   type  LE 5:BEGIN           if size input   type  EQ 1 then input   long input           if n_elements input  EQ 1 then res   strtrim input  1             ELSE BEGIN              res    strtrim input 0  1              for i   1   n_elements input 1 do res   res strtrim input i  1              res   res           ENDELSE        END       size input   type  eq 7:BEGIN           if n_elements input  EQ 1 then BEGIN             sinput   strrepl input                  res    sinput           ENDIF ELSE BEGIN              res    strrepl input 0                  for i   1   n_elements input 1 do res   res strrepl input i                  res   res           ENDELSE        END       ELSE:BEGIN           ras   report la fonction tostr ne marche pas pour input qui est de type  size input   tname           res           END    ENDCASE     return  res end");
+a[294] = new Array("./ToBeReviewed/STRING/chkeywd.html", "chkeywd.pro", "", "             file_comments   In a string containing an order to executewith EXECUTE by example     We change the value of one of keywords    More generally  in a string  we look for the caracter chain:   keywdname      and we change the value of       categories   string  keywords         param STRINGIN  in required    it is a string      param KEYWDNAME  in required    it is a string designating the name of keyword to look for       param KEYWDVALUE  in required     The new value of the keyword to considerate in STRINGIN      keyword SEPARATOR   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword SEPARATOR we can modify the cut    of the string  SEPARATOR give a caractere before the one we have to    look for the comma which delimit the keyword in the string     see examples       keyword AFTER   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword AFTER we can modify the cut    of the string  AFTER give a caractere after the one we have to    look for the comma which delimit the keyword in the string     see examples       returns    stringout stringin modified if keywdname has been found in stringin      uses    common pro      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer          examples       IDL  b ok 111  year 1997 1998 1999  age_capitaine 35      IDL  print  b     ok 111  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b ok c est bon      ok c est bon  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep after      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  b ok 111   year   age_capitaine      IDL  print  chkeywd b year c est bon      ok 111  year c est bon   age_capitaine      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999                        24 11 1999: adaptation for keywords starting by         version    Id            FUNCTION chkeywd  stringin  keywdname  keywdvalue  SEPARATOR   separator  AFTER   after     compile_opt idl2  strictarrsubs       stringout   stringin    poskeywd   strpos strlowcase stringout  strlowcase keywdname     if poskeywd EQ  1 then return  stringout    while poskeywd NE  1 do BEGIN   change a keyword starting by  toto       if strmid stringout poskeywd 1 1  EQ   then BEGIN          ajoute   keywdname tostr keywdvalue           stringout   strmid stringout  0  poskeywd 1 ajoute strmid stringout poskeywd strlen keywdname             poskeywd   poskeywd strlen ajoute           poskeywd   strpos stringout  keywdname  poskeywd        ENDIF ELSE BEGIN    change a keyword sarting by toto           posegal   strpos stringout    poskeywd           if posegal EQ  1 then return  stringout           if NOT keyword_set separator  then separator              posvirgule   strpos stringout  separator  posegal 1           if keyword_set after  then posvirgule   strpos stringout    posvirgule 1             ELSE posvirgule   rstrpos stringout    posvirgule 1           if posvirgule EQ  1 then posvirgule   strlen stringout             stringout   strmid stringout  0  posegal 1 tostr keywdvalue strmid stringout  posvirgule             poskeywd   strpos stringout  keywdname  posvirgule 1        ENDELSE     endwhile     return   stringout end");
+a[295] = new Array("./ToBeReviewed/STRING/delchr.html", "delchr.pro", "", "         file_comments   Delete all occurrences of a character from a text string        categories      param OLD  in required    original text string        param C  in required    character to delete       keyword HELP      returns   new   resulting string        history         R  Sterner   5 Jul  1988          Johns Hopkins Applied Physics Lab          RES 11 Sep  1989   converted to SUN          R  Sterner  27 Jan  1993   dropped reference to array      Copyright  C  1988  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id           FUNCTION DELCHR  OLD  C  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 2  or keyword_set hlp  then begin    print  Delete all occurrences of a character from a text string     print  new   delchr old  char     print    old   original text string      in     print    char   character to delete      in     print    new   resulting string          out     return   1  endif    B   BYTE OLD      convert string to a byte array   CB   BYTE C      convert char to byte   w   where b ne cb 0   if w 0  eq  1 then return        Nothing left   return  string b w      Return new string   END");
+a[296] = new Array("./ToBeReviewed/STRING/getfile.html", "getfile.pro", "", "         file_comments   Read a text file into a string array       param filein  in required    text file name        Keyword ERROR    err  error flag: 0 ok  1 file not opened    2 no lines in file                keyword QUIET    means give no error message                keyword LINES    n  Number of lines to read  def all    Much faster if number of lines is known    Automatic for IDL 5 6 or later                keyword FIND    search te file in the all  path directories  use   find pro       keyword HELP       returns       history         R  Sterner  20 Mar  1990         R  Sterner  1999 Apr 14   Added LINES n keyword          R  Sterner  2003 Aug 29   Automatic lines if IDL 5 6          R  Sterner  2003 Sep 02   Check if file exists first          R  Sterner  2003 Sep 04   Fixed error in number of lines in file          R  Sterner  2003 Oct 10   Fixed error when no lines          R  Sterner  2004 Jan 27   Fixed to work in IDL as old as vers 4            S  Masson  smasson lodyc jussieu fr  4 Feb 2002         search te file in the all  path directories  use find pro          when using  find keyword  Use spawn   cat  for unix os      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id           function getfile  filein  error err  help hlp  quiet quiet  lines lines  find   find     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Read a text file into a string array     print  s   getfile f     print    f   text file name       in     print    s   string array         out     print  Keywords:     print    ERROR err  error flag: 0 ok  1 file not opened     print      2 no lines in file     print     QUIET means give no error message     print    LINES n  Number of lines to read  def all     print      Much faster if number of lines is known     print      Automatic for IDL 5 6 or later     return   1  endif           if keyword_set find  then begin           file   find filein            file   file 0            if file EQ  NOT FOUND  then begin             print    Error in getfile: File  filein  not fouond              return   1           endif         ENDIF ELSE file   filein         if  version os_family EQ  unix  then begin           spawn   cat  file   res           if res 0  NE   then return  res ELSE return            endif                  if  version release 0  ge 5 5  then begin           f   call_function file_search  file  count   c   endif else begin    f   findfile file count c   endelse  if c eq 0 then begin    err   1    return   endif    if n_elements line  eq 0 and  version release 0  ge 5 6  then begin    lines   file_lines file     if lines eq 0 then begin      if not keyword_set quiet  then print  No lines in file       err   2      return 1    endif    minlines   0  endif else minlines 1    get_lun  lun  on_ioerror  err  openr  lun  file    if n_elements lines  ne 0 then begin    s   strarr lines     readf lun s  endif else begin    s          t        while not eof lun  do begin      readf  lun  t      s    s t     endwhile  endelse    close  lun  free_lun  lun  if n_elements s  eq minlines then begin    if not keyword_set quiet  then print  No lines in file     err   2    return 1  endif  if minlines eq 1 then s s 1:     err   0  return  s   err: if  err eq  168 then begin    if not keyword_set quiet  then print  Non standard text file format     free_lun  lun    return  s  endif  if not keyword_set quiet  then print       Error in getfile: File  file  not opened   free_lun  lun  err   1  return   1    end");
+a[297] = new Array("./ToBeReviewed/STRING/getwrd.html", "getwrd.pro", "", "         file_comments   Return the n th word from a text string        categories      param TXTSTR  in required    text string to extract from    The first element is used if txt is an array       param NTH  in required    word number to get  first   0   def       param MTH  in required    optional last word number to get       keyword LOCATION     l   Return word n string location                keyword DELIMITER     d  Set word delimiter  def   space   tab                keyword LAST   means n is offset from last word   So n 0 gives   last word  n 1 gives next to last      If n 2 and m 0 then last 3 words are returned       keyword NOTRIM   suppresses whitespace trimming on ends        keyword NWORDS     n  Returns number of words in string        returns wrd   returned word or words       uses   getwrd_com       restrictions   If a NULL string is given  txt  then the last string   given is used   This saves finding the words again    If m   n wrd will be a string of words from word n to   word m   If no m is given wrd will be a single word    n n wrd will be a string of words from word n to     print       word m   If no m is given wrd will be a single word     print       n 0  Smaller of in and im    im   im   0   to zero     if  in gt lst  and  im gt lst  then return    Out of range     in   in   lst  Larger of in and im    im   im   lst   to be last     ll   loc in  Nth word start     return  strtrim strmid txtstr0 ll loc im loc in len im  2    endif    N   ABS NTH  Allow nth 0   IF N GT NWDS 1 THEN RETURN  out of range  null   ll   loc n  N th word position   IF NTH LT 0 THEN GOTO  NEG  Handle nth 0   IF MTH GT NWDS 1 THEN MTH   NWDS 1  Words to end     if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH  2    endelse   NEG: if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll 9999   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll 9999  2   endelse    END");
+a[298] = new Array("./ToBeReviewed/STRING/isnumber.html", "isnumber.pro", "", "         file_comments   Determine if a text string is a valid number       categories      param TXT0  in required    text string to test       param X  in required       keyword HELP      returns         x   optionaly returned numeric value if valid            i   test flag:                                               0: not a number              1: txt is a long integer              2: txt is a float               1: first word of txt is a long integer               2: first word of txt is a float        history         R  Sterner   15 Oct  1986          Johns Hopkins Applied Physics Lab          R  Sterner  12 Mar  1990   upgraded          Richard Garrett  14 June  1992   fixed bug in returned float value          R  Sterner  1999 Nov 30   Fixed a bug found by Kristian Kjaer  Denmark     Copyright  C  1986  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id           function isnumber  txt0  x  help hlp     compile_opt idl2  strictarrsubs     if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Determine if a text string is a valid number     print  i   isnumber txt   x     print    txt   text string to test                       in     print    x   optionaly returned numeric value if valid   out     print    i   test flag:                                  out     print        0: not a number     print        1: txt is a long integer     print        2: txt is a float     print         1: first word of txt is a long integer     print         2: first word of txt is a float     return   1  endif    txt   strtrim txt0 2  trim blanks   x   0  define X     if txt eq   then return  0  null string not a number     sn   1  if nwrds txt  gt 1 then begin  get first word if more than one     sn    1    txt   getwrd txt 0   endif      f_flag   0  Floating flag   b   byte txt  Convert to byte array   if b 0  eq 45 then b b 1:  Drop leading       Kristian Kjaer  if b 0  eq 43 then b b 1:  Drop leading       bug fix   w   where b eq 43  cnt  Look for    if cnt gt 1 then return  0  Alow only 1   t   delchr txt  Drop it   w   where b eq 45  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   t   delchr t  Drop it   w   where b eq 46  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If one then floating   t   delchr t  Drop it   w   where b eq 101  cnt  Look for  e   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t e  Drop it   w   where b eq 69  cnt  Look for  E   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t E  Drop it   w   where b eq 100  cnt  Look for  d   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t d  Drop it   w   where b eq 68  cnt  Look for  D   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t D  Drop it     Allow only one  e   E   d  or  D      if total b eq 101 b eq 69 b eq 100 b eq 68  gt 1 then return 0  b   byte t     Allow no alphabetic characters     if total b ge 65  and  b le 122  ne 0 then return  0    c   strmid t 0 1   if  c lt  0  or  c gt  9  then return  0    First char not a digit     x   txt   0 0       Convert to a float   if f_flag eq 1 then return  2 sn       Was floating   if x eq long x  then begin    x   long x     return  sn  endif else begin    return  2 sn  endelse    end");
+a[299] = new Array("./ToBeReviewed/STRING/lenstr.html", "lenstr.pro", "", "    ROUTINE:         lenstr   USEAGE:          result lenstr str      input:    str             a single string or string array       output:    result          length of the string s  in normalized units                    the number of elements of RESULT matches the number of                     elements of STRING       procedure:                    This function returns the physical length of the                    string on the output device  not the number of                    characters   This is done by first switching to  X                     and writing the string s  with XYOUTS in graphics                    mode 5  which disables display to the screen but                    does not interfere with operation of XYOUTS   The                    WIDTH keyword parameter of XYOUTS is used to                    retrieve the physical length of the string s       author:  Paul Ricchiazzi                            7apr93             Institute for Computational Earth System Science             University of California  Santa Barbara      todo seb       function lenstr str     compile_opt idl2  strictarrsubs      dsave d name     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE     p BACKGROUND d n_colors 1    255     p color 0    if  d n_colors gt 256 then  p background ffffff x     device get_graphics oldg set_graphics 5    if keyword_set charsize  eq 0 then charsize 1    nn n_elements str      case nn of        0:w 0        1:xyouts 0 0 device str width w        else:begin          w fltarr nn           for i 0 nn 1 do begin             xyouts 0 0 device str i width ww             w i ww          endfor       end    endcase     fac1 float d x_ch_size d x_vsize   ratio of char width to device1 width     device set_graphics oldg    set_plot dsave    IF dsave EQ  X  OR dsave EQ  MAC  OR dsave EQ  WIN  then BEGIN        p BACKGROUND d n_colors 1    255        p color 0       if  d n_colors gt 256 then  p background ffffff x    ENDIF     fac2 float d x_ch_size d x_vsize   ratio of char width to device2 width     return w fac2 fac1             string width adjusted for device width end ");
+a[300] = new Array("./ToBeReviewed/STRING/nwrds.html", "nwrds.pro", "", "         file_comments   Return the number of words in the given text string        categories      param TXTSTR     text string to examine       keyword DELIMITER     d   Set delimiter character  def   space        keyword HELP      returns   n   number of words found        restrictions   See also getwrd        history         R  Sterner   7 Feb  1985          Johns Hopkins University Applied Physics Laboratory          RES 4 Sep  1989   converted to SUN      Copyright  C  1985  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id             function nwrds txtstr  help hlp  delimiter delim     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Return the number of words in the given text string     print  n   nwrds txt     print    txt   text string to examine              in     print    n   number of words found                 out     print  Keywords:     print    DELIMITER   d   Set delimiter character  def   space     print  Notes: See also getwrd     return   1  endif    if strlen txtstr  eq 0 then return 0  A null string has 0 words   ddel       Default word delimiter is a space   if n_elements delim  ne 0 then ddel   delim   Use given word delimiter   tst    byte ddel 0  Delimiter as a byte value          tb   byte txtstr                                String to bytes          if ddel eq     then begin                       Check for tabs            w   where tb eq 9B  cnt                       Yes            if cnt gt 0 then tb w    32B                  Convert any to space          endif  x   tb ne tst  Locate words   x    0 x 0  Pad ends with delimiters     y    x shift x 1  eq 1  Look for word beginnings     n   fix total y  Count word beginnings     return  n    end");
+a[301] = new Array("./ToBeReviewed/STRING/putfile.html", "putfile.pro", "", "         file_comments   Write a text file from a string array        categories     INPUTS:    param FILE  in required      text file name       param S  in required      string array       keyword ERROR    err  error flag: 0 ok  1 invalid string array        history         R  Sterner  20 Mar  1990         R  Sterner   4 Nov  1992   allowed scalar strings      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id           pro putfile  file  s  error err  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Write a text file from a string array     print  putfile  f  s     print    f   text file name       in     print    s   string array         in     print  Keywords:     print    ERROR err  error flag: 0 ok  1 invalid string array     return  endif           if lmgr demo  then begin            print   you are in Demo mode  It is impossible to write a file             return         endif     if size s   type  ne 7 then begin    print  Error in putfile: argument must be a string array     err   1    return  endif    get_lun  lun  openw  lun  file    for i   0  n_elements s 1 do begin    t   s i     if t eq   then t          printf  lun  t  endfor    close  lun  free_lun  lun  err   0  return    end");
+a[302] = new Array("./ToBeReviewed/STRING/str_size.html", "str_size.pro", "", "       file_comments   The purpose of this function is to return the proper   character size to make a specified string a specifed   width in a window  The width is specified in normalized   coordinates  The function is extremely useful for sizing   strings and labels in resizeable graphics windows       categories   Graphics Programs  Widgets       param STRING  in required    This is the string that you want to make a specifed   target size or width       param TARGETWIDTH  in optional    This is the target width of the string in normalized   coordinates in the current graphics window  The character   size of the string  returned as thisCharSize  will be   calculated to get the string width as close as possible to   the target width  The default is 0 25       keyword INITSIZE     This is the initial size of the string  Default is 1 0       keyword STEP   This is the amount the string size will change in each step   of the interative process of calculating the string size    The default value is 0 05       returns    thisCharSize  This is the size the specified string should be set   to if you want to produce output of the specified target   width  The value is in standard character size units where   1 0 is the standard character size       examples   To make the string  Happy Holidays  take up 30  of the width of   the current graphics window  type this:       XYOUTS  0 5  0 5  ALIGN 0 5   Happy Holidays        CHARSIZE STR_SIZE Happy Holidays  0 3       history   Written by: David Fanning  17 DEC 96    Added a scaling factor to take into account the aspect ratio   of the window in determing the character size  28 Oct 97  DWF      version    Id: str_size pro 134 2006 07 07 10:19:08Z navarro        FUNCTION STR_SIZE  string  targetWidth  INITSIZE initsize  STEP step     compile_opt idl2  strictarrsubs    ON_ERROR  1       Check positional parameters   np   N_PARAMS  CASE np OF    0: MESSAGE   One string parameter is required     1: targetWidth   0 25    ELSE: ENDCASE       Check keywords  Assign default values   IF N_ELEMENTS step  EQ 0 THEN step   0 05 IF N_ELEMENTS initsize  EQ 0 THEN initsize   1 0       Calculate a trial width   size   initsize XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth          CHARSIZE size   NORMAL       Size is perfect   IF thisWidth EQ targetWidth THEN RETURN  size   Float D Y_Size D X_Size       Initial size is too big   IF thisWidth GT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth LE targetWidth    RETURN  size   Float D Y_Size D X_Size ENDIF       Initial size is too small   IF thisWidth LT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth GT targetWidth    size   size   step   Need a value slightly smaller than target     RETURN  size   Float D Y_Size D X_Size ENDIF  END");
+a[303] = new Array("./ToBeReviewed/STRING/string2struct.html", "string2struct.pro", "", "    This is a really  really cool way to turn keywords into   a structure    function too_cool _extra extra     compile_opt idl2  strictarrsubs   return extra end         file_comments   Takes an input string set up as keywords and returns an anonymous structure    This is particularly useful for taking keywords entered by a user in a text   field and passing then to other routines       categories   Utility      param STRVAL  IN REQUIRED    String set up as keywords  Keywords require a little special treatment  Such as   plot findgen 100 _extra stringToStructure title testing       RETURNS    This function returns the string as an anonymous structure  If an   error was found then this function returns a structure with a null field       examples         The code below creates a widget that uses this routine          pro tPlot event         widget_control event top get_uvalue field         widget_control field get_value strVal         extra   stringToStructure strVal          plot findgen 100 _extra extra         wshow         return         end           pro testWid          enter any keyword to plot and see how it works         base   widget_base col          field   cw_field base title test value ax 0 string          void   widget_button base value plot event_pro tPlot          widget_control base realize set_uvalue field         xmanager testWid base no_block         return         end      history         Written by:         RLK  Ronn Kling Consulting          ronn rlkling com         www rlkling com                 May  1999      version    Id       function string2struct strVal     compile_opt idl2  strictarrsubs   r   execute extra   too_cool    strVal 0     if r   0 then user did not enter keywords correctly so  return a structure with a null field  if r eq 0 then begin   print Error in input string    return null:0  endif return extra end ");
+a[304] = new Array("./ToBeReviewed/STRING/strkeywd.html", "strkeywd.pro", "", "             file_comments   Translate a sturcture in a string able to be used to specify keywords    in the calling of a function when we use EXECUTE  see example       categories        param STRUCT   a structure      returns   a string composed like following:   For each element of the structure  we write a part of the string as:             name_of_the_element content_of_the_element       restrictions   If an element of the structure contain an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer       examples   We create a structure         IDL  b get_extra ok 111  year 1997 1998 1999  age_capitaine 35          IDL  help  b struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3    We put this structure as a string         IDL  a strkeywd b          IDL  print  a         AGE_CAPITAINE 35  OK 111  YEAR 1997 1998 1999    Now we can use the string a to pass keywords in a function thanks to execute          IDL  test execute c get_extra a          IDL  help  c struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3       history   Sebastien Masson  smasson lodyc jussieu fr                         11 10 1999      version    Id            FUNCTION strkeywd  struct     compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        tname   tag_names struct     if n_elements tname  EQ 0 then return         on s occupe du premier element      res   strlowcase tname 0 tostr struct 0     if n_elements tname  EQ 1 then return   res     on s occupe des autres elements      for n   1 n_elements tname 1 do res   res   strlowcase tname n tostr struct n       return   res end");
+a[305] = new Array("./ToBeReviewed/STRING/strrepl.html", "strrepl.pro", "", "         file_comments    replace one  or more  character s string s  in a string      categories   string routines      param STR  in required    the string to be changed      param RCHAR  in required    replacement character string      returns   another string      restrictions    Known shortcoming: if index is an array  it must contain all   valid elements  only the first entry is checked       examples            Convert one letter into upper case            abc    abcdefghijklmnopqrstuvwxyz           print strrepl abc strpos abc m M               prints  abcdefghijklMnopqrstuvwxyz                 Use with strwhere function          a    abcabcabc           print strrepl a strwhere a a               prints   bc bc bc bc bc            IDL  print  strrepl a bc eeee          a eeee a eeee a eeee          IDL  print  strrepl a b 0000          a0000ca0000ca0000         IDL  print  strrepl a toto 0000          abcabcabc      history          mgs  02 Jun 1998: VERSION 1 00          sebastien Masson  smlod ipsl jussieu fr       version    Id: strrepl pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strrepl      function strrepl str agument1 rchar     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return                                        convert strign and replace character to byte    BStr   byte str     new   byte rchar     if size agument1   type  EQ 7 then begin       old   byte agument1        index   strpos str  agument1        pos   index       while strpos str  agument1  pos 1  NE  1 do BEGIN          pos   strpos str  agument1  pos 1           index    index  pos        ENDWHILE   make sure index is in range       if  index 0  lt 0 OR index 0  ge n_elements BStr  THEN return Str    ENDIF ELSE BEGIN       index   agument1       if  index 0  lt 0 OR index 0  ge n_elements BStr  then return Str       old   BStr index 0     ENDELSE                                   replace indexed characters in string    nelenew   n_elements new     neleold   n_elements old     nindex   n_elements index     if nelenew neleold NE 1 then begin       if index 0  EQ 0 then          BStr    NEW   BStr index 0 neleold: n_elements BStr 1    ELSE          BStr    BStr 0:index 0 1  NEW   BStr index 0 neleold: n_elements BStr 1          if nindex EQ 1 then return string BStr        if nindex GT 2 then          for i   1  nindex 2 do          BStr    BStr 0:index i i nelenew neleold 1  NEW                    BStr index i i nelenew neleold neleold: n_elements BStr 1          BStr    BStr 0:index n_elements index 1 nindex 1 nelenew neleold 1  NEW      ENDIF ELSE BStr index    NEW                                   return result as string    return string BStr      end");
+a[306] = new Array("./ToBeReviewed/STRING/strright.html", "strright.pro", "", "         file_comments   return right subportion from a string      categories   string handling        param S  in required    the string to be searched      param LASTN  in required    the number of characters to be returned  Default   is 1  If NLAST is ge strlen STRING  the complete string   is returned       returns   The portion of LASTN characters of S counted from the back       examples   if  strright path  ne   then path   path          history          mgs  19 Nov 1997: VERSION 1 00      version    Id: strright pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1997  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strright      function strright s lastn     compile_opt idl2  strictarrsubs         on_error 2     return to caller       if  n_elements s  le 0  then return 1L       l   strlen s        if  n_elements lastn  le 0  then lastn   1     if lastn gt l then lastn   l       result   strmid s l lastn l        return result end");
+a[307] = new Array("./ToBeReviewed/STRING/strsci.html", "strsci.pro", "", "         file_comments   Given a number  returns a string of that          B   number in scientific notation format   e g  A x 10         categories   String Utilities      param DATA  in required    A floating point or integer number to be   converted into a power of 10       keyword FORMAT   The format specification used in the string   conversion for the mantissa  i e  the    A  of  A x 10 B   Default is  f12 2         keyword POT_ONLY   Will return only the  power of 10  part of the   string  i e  the  10 B   Default is to return   the entire string  e g   A x 10 B         keyword MANTISSA_ONLY   return only mantissa of the string      keyword SHORT   return 10 0 as  1  and 10 1 as  10       keyword TRIM   don t insert blanks  i e  return Ax10 B       restrictions   This function does not  evaluate  the format statement thoroughly   which can result in somewhat quirky strings  Example:   print strsci 9 999  results in  10 0x10 0 instead of  1 0x10 1      Need a better symbol than the  x  for the multiplier       examples          Result   STRSCI  2000000  format i1             print  result                                                                                6                prints 2 x 10 u6 n  which gets plotted as 2 x 10                     Result   STRSCI   0 0001            print  result                                                                       4                prints  1 00 x 10 u 4 n  which gets plotted as 1 00 x 10            Result   STRSCI  0d0  format f13 8             print  result                           prints  0 00000000         history          bmy  28 May 1998: VERSION 1 00            B               now returns string of the form A x 10          mgs  29 May 1998:               bug fix: now allows negative numbers               keyword MANTISSA_ONLY added               default format changed to f12 2          bmy  02 Jun 1998:               renamed to STRSCI  STRing SCIentific notation           mgs  03 Jun 1998:               added TRIM keyword          mgs  22 Sep 1998:               added SHORT keyword               modified handling of TRIM keyword          mgs  24 Sep 1998:               bug fix with SHORT flag          bmy   mgs  02 Jun 1999:               now can handle DATA 0 0 correctly               updated comments          mgs  03 Jun 1999:                can now also handle values lt 1                 and doesn t choke on arrays      version    Id: strsci pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1998  1999 Bob Yantosca and Martin Schultz     Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to bmy io harvard edu   or mgs io harvard edu with subject  IDL routine strsci      function StrSci  Data  Format Format  POT_Only POT_Only                 MANTISSA_ONLY MANTISSA_ONLY SHORT SHORT TRIM TRIM     compile_opt idl2  strictarrsubs              Error checking   Keyword settings          on_error  2     if   n_elements  Data   eq 0   then begin       return       endif     if   not Keyword_Set  Format     then Format      f12 2      POT_Only        keyword_set  POT_Only           MANTISSA_Only   keyword_set  MANTISSA_Only      Short           Keyword_Set  Short              Trim            Keyword_Set  Trim                NDat   n_elements Data     Result   strarr NDat      for i 0 NDat 1 do begin                 If ABS  DATA     0 then we can proceed to take the common log          For DATA   0  place a   sign in front of the number               if   Abs  Data i    ne 0 0   then begin                take the common log and store in LOG10DATA          Log10Data   ALog10  Abs  Data i                       Boolean flag if data   0          sign     Data i  lt 0 0                   Compute the characteristic  int part             Add the 1d 6 to prevent roundoff errors          Characteristic   Fix  Log10Data   1 0d 6            if  Log10Data lt 0  then               Characteristic   Characteristic   1                 Compute the Mantissa  frac part  and take its antilog           Mantissa   Log10Data   Characteristic           Mantissa   10 0 Mantissa           print data i log10data mantissa characteristic format 3f24 14 i8                 String for the coefficient part              The coefficient is just antilog of the Mantissa            Add the minus sign if DATA   0 0          A   StrTrim  String  Mantissa  Format Format   2            if   Sign   then A       A                String for the power of 10 part          B    10 u    strtrim  string  Characteristic   2      n           if   Short   then begin             if   Characteristic eq 0   then B    1              if   Characteristic eq 1   then B    10           endif                composite string          Result i    A     x     B          if   Short AND B eq  1  then Result i    A                         If DATA   0  then we cannot take the common log  so return         zeroes for the result strings   Use the FORMAT string                endif else begin          A        String  0d0  Format Format            B        A          Result i    A           endelse                     Return result to calling program  depending on keyword settings          Eliminate blanks if TRIM keyword is set               if   POT_Only   then            Result i    B       if   MANTISSA_Only   then            Result i    A       if   Trim   then            Result i    StrCompress  Result i   Remove_All            endfor     if  n_elements Result  eq 1  then         Result   Result 0       return  Result  end");
+a[308] = new Array("./ToBeReviewed/STRING/strtok.html", "strtok.pro", "", "         file_comments   Retrieve portion of string up to token        categories   text strings      param STRING  in required    String to be split   Contains text after    in  out   token on output        param TOKEN  in required    Token to use in splitting old              keyword TRIM    set to remove leading blanks from old    before returning       keyword HELP   print useful message and exit        returns   new     portion of string up to token               out   old     portion of old after token                  out  in      restrictions   Input parameter old is modified    Token may be one or more characters    If token is not found  returns old and sets old to         examples         If old is  foo44 bar  then strtok  old   44    would return          foo  and upon return  old will be left with   bar   If  TRIM         were set  old would be  bar  on return            If old xyz  then new strtok old a  would return with         new xyz  and old       history          Log: strtok pro v           Revision 1 3  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 2  1996 05 09 00:22:17  mcraig         Added built in help            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     Thanks:         To D  Linder who wrote GETTOK  part of the goddard library          upon which this is based      Release:          Name: Rel_1_2       Copyright:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details       version    Id: strtok pro 134 2006 07 07 10:19:08Z navarro       FUNCTION Strtok  string  token                     TRIM trim  HELP Help     compile_opt idl2  strictarrsubs      Back to the caller if error occurs      On_error  2      IF  n_params  NE 2  OR keyword_set Help  THEN BEGIN          offset                 print  offset Retrieve portion of string up to token          print  offset new   strtok  old  token           print  offset Inputs:          print  offset offset old     String to be split   Contains text after    in  out          print  offset offset          token on output          print  offset offset token   Token to use in splitting old               in          print  offset Keywords:          print  offset offset TRIM   set to remove leading blanks from old           print  offset offset          before returning          print  offset offset HELP   print useful message and exit          print  offset Outputs:          print  offset offset new     portion of string up to token               out          print  offset offset old     portion of old after token                  out  in          print  offset Side effects:          print  offset offset Input parameter old is modified          print  offset Notes:          print  offset offset Token may be one or more characters          print  offset offset If token is not found  returns old and sets old to           print  offset Examples:          print  offset offset If old is  foo44 bar  then strtok  old   44    would return          print  offset offset    foo  and upon return  old will be left with   bar   If  TRIM          print  offset offset   were set  old would be  bar  on return            print  offset offset If old xyz  then new strtok old a  would return with          print  offset offset   new xyz  and old          return   1     ENDIF       pos   strpos string  token       IF  pos GE 0  THEN BEGIN         front   strmid string  0  pos           string   strmid string  pos   strlen token  strlen string          IF keyword_set trim  THEN string   strtrim string  1          return  front     ENDIF          front   string     string         return  front      END ");
+a[309] = new Array("./ToBeReviewed/STRING/strwhere.html", "strwhere.pro", "", "         file_comments   return position  array  for occurence of a character in a string      categories   string tools      param STR  in required    the string      param SCHAR  in required    the character to look for      returns COUNT  out optional    The number of matches that were found       The function returns an index array similar to the     result of the where function      examples          ind   strwhere abcabcabc a               returns   0  3  6        history          mgs  02 Jun 1998: VERSION 1 00          bmy  30 Jun 1998:   now returns COUNT  the number                               of matches that are found  this is                              analogous to the WHERE command       version    Id: strwhere pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strwhere      function strwhere str schar Count     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return 1        convert to byte    BStr   byte Str     BSC     byte schar 0         Search for matches    Ind   where  Bstr eq BSC  Count         bmy   return where BStr eq BSC     return  Ind  end    ");
+a[310] = new Array("./ToBeReviewed/STRING/tostr.html", "tostr.pro", "", "             file_comments   Convert an input in a string       categories       param INPUT  in required    input can not contain or be of the type of:       Complex floating  structure  Double precision complex  Pointer  Object     reference  Unsigned Integer  Unsigned Longword Integer  64 bit     Integer  Unsigned 64 bit Integer       returns   a string      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays        examples      IDL  help  tostr 1 tostr a tostr indgen 4 tostr a jkfjo           STRING       1           STRING       a           STRING       0 1 2 3           STRING       a jkfjo       IDL  print  tostr c est bon c est bon        c est bon c est bon       history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id            FUNCTION tostr  input     compile_opt idl2  strictarrsubs       case 1 of       size input   type  LE 5:BEGIN           if size input   type  EQ 1 then input   long input           if n_elements input  EQ 1 then res   strtrim input  1             ELSE BEGIN              res    strtrim input 0  1              for i   1   n_elements input 1 do res   res strtrim input i  1              res   res           ENDELSE        END       size input   type  eq 7:BEGIN           if n_elements input  EQ 1 then BEGIN             sinput   strrepl input                  res    sinput           ENDIF ELSE BEGIN              res    strrepl input 0                  for i   1   n_elements input 1 do res   res strrepl input i                  res   res           ENDELSE        END       ELSE:BEGIN           ras   report la fonction tostr ne marche pas pour input qui est de type  size input   tname           res           END    ENDCASE     return  res end");
 a[311] = new Array("./ToBeReviewed/STRUCTURE/chkstru.html", "chkstru.pro", "", "   Id: chkstru pro 134 2006 07 07 10:19:08Z navarro         NAME:          CHKSTRU   function      PURPOSE:          check validity of a structure and test if necessary          fields are contained     CATEGORY:          tools     CALLING SEQUENCE:          res CHKSTRU STRUCTURE FIELDS  VERBOSE       INPUTS:          STRUCTURE   the structure to be tested  If STRUCTURE is               not of type structure  the function will return 0            FIELDS   a string or string array with field names to                be contained in STRUCTURE  CHKSTRU returns 1  true                only if all field names are contained in STRUCTURE                The entries of FIELDS may be upper or lowercase      KEYWORD PARAMETERS:          INDEX   a named variable that will contain the indices of               the required field names in the structure  They can then               be assessed through structure index i    Index will               contain  1 for all fields entries that are not in the               structure              VERBOSE   set this keyword to return an error message                in case of an error              EXTRACT   set this keyword to extract a fields from the          structure    1 is return is fields or structure  are          incorrect      OUTPUTS:          CHKSTRU returns 1 if successful  otherwise 0      SUBROUTINES:     REQUIREMENTS:     NOTES:     EXAMPLE:          test     a:1  b:2  c:3            required    a c           if CHKSTRU test required  then print found a and c           IDL  print  CHKSTRU test b              1          IDL  print  CHKSTRU test b extract                  2     MODIFICATION HISTORY:          mgs  02 Mar 1998: VERSION 1 00          mgs  07 Apr 1998:   second parameter  FIELDS  now optional          12 Jan 2001: EXTRACT keyword by S  Masson  smasson lodyc jussieu fr         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine chkstru      function chkstru structure fields index index verbose verbose  extract   extract     compile_opt idl2  strictarrsubs             default index      index    1          first check number of parameters  must be at least 1       if  n_params  lt 1  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   invalid number of parameters              if keyword_set extract  THEN return 1 ELSE return 0           endif            check if the user really passed a structure        s   size structure       if  s 1 s 0  ne 8  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   No structure passed              if keyword_set extract  THEN return 1 ELSE return 0       endif          only one parameter: then we are finished      if  n_params  eq 1  then return 1            see if required field names are contained in the structure        and return indices of these fields        names   tag_names structure       index   intarr n_elements fields    1     default index to  not found        for i 0 n_elements fields 1 do begin          ind   where names eq strupcase fields i           if  ind 0  lt 0  then begin              if keyword_set verbose  then                   ras   report CHKSTRU:   Cannot find field  fields i               endif else index i    ind 0       endfor            check minimum value of index field:  1 indicates error      if keyword_set extract  then BEGIN         if index 0  NE  1 THEN return  structure index 0  ELSE return   1      ENDIF ELSE return min index  ge 0    end  ");
 a[312] = new Array("./ToBeReviewed/STRUCTURE/extractstru.html", "extractstru.pro", "", "          NAME:extractstru     PURPOSE:extrait des elements d une structure pour constituer une           nouvelle structure     CATEGORY: dibouille sur les structures     CALLING SEQUENCE: res   extractstru stru  liste       INPUTS:        stru: une structure        liste: un vecteur de string comportant les noms des elements de      stru a virer  par DEFAUT  ou a garder  si GARDE est active      KEYWORD PARAMETERS:         GARDE: specifie que la liste donnee concerne les elements de      stru a garder         VIRE: specifie que la liste donnee concerne les elements de      stru a virer  Ce mot cle est active par defaut     OUTPUTS:une stucture ou  1 en cas de pb     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS: none        liste peut contenir des noms d elements qui ne sont pas ds stru       le programme se debrouille avec     EXAMPLE:        IDL  extra get_extra ok  year 1999  age_capitaine 35        IDL  help  extra struct        Structure   3 tags  length 6  refs 1:         AGE_CAPITAINE   INT             35         OK              INT              1         YEAR            INT           1999      IDL  help  extractstru extra ok hhuihi YEAR stru        Structure   1 tags  length 2  refs 1:         AGE_CAPITAINE   INT             35      IDL  help  extractstru extra ok hhuihi YEAR garde stru        Structure   2 tags  length 4  refs 1:         OK              INT              1         YEAR            INT           1999     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         8 10 1999         FUNCTION extractstru  stru  liste  GARDE   garde  VIRE   vire     compile_opt idl2  strictarrsubs      if size stru   type  NE 8 then return    1    if size liste   type  NE 7 then return    1   cheking for garde and vire keywords    garde   keyword_set garde 1 keyword_set vire     vire   keyword_set vire 1 keyword_set garde   keyword_set vire  EQ garde       tname   tag_names stru     index   make_selection tname  strupcase liste   only_valid   quiet       if garde then BEGIN   on garde que la liste       if index 0  EQ  1 then return    1       if n_elements index  EQ n_elements tname  then return  stru       res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDIF ELSE BEGIN   on vire la liste       if n_elements index  EQ n_elements tname  then return    1       if index 0  EQ  1 then return  stru   on prend le complementaire de index pour obtenir les indices que   l on garde       index   different indgen n_elements tname  index        res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDELSE      return  res end");
Index: /trunk/SRC/Documentation/xmldoc/savesaxo.sh
===================================================================
--- /trunk/SRC/Documentation/xmldoc/savesaxo.sh	(revision 141)
+++ /trunk/SRC/Documentation/xmldoc/savesaxo.sh	(revision 142)
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/bin/bash -x
 # 
 # update :
Index: /trunk/SRC/ToBeReviewed/CALCULS/curl.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/curl.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/curl.pro	(revision 142)
@@ -3,48 +3,41 @@
 ;------------------------------------------------------------
 ;+
-; NAME:curl
-;
-; PURPOSE:calcule la composante verticale du rotationnel d''un champ
-; de vecteur horizontaux
-;
-; CATEGORY:calcule sur les matrices
-;
-; CALLING SEQUENCE:res=curl(u,v)
-;
-; INPUTS:
-;       u et v deux matrices representant les coordonnes d''un
-;       champ de vecteur
-;
-; KEYWORD PARAMETERS:
-;
-; OUTPUTS:res: une matrice 2d
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-; les matrices u et v peuvent de 2 a 4 dimensions.
-; attention pour distinger les differents configurations de u et v
-; (xy, xyz, xyt, xyzt), on regarde la variable du common 
-;        -time qui contient le calendrier en jour julien d''IDL auquel
-;        se rapportent u et v ansi que la variable 
-;        -jpt qui est le nombre de pas de temps a considerer ds time.
-; les tableaux u et v sont decoupes sur le meme domaine
-; geographique. A cause du decalage des grilles T, U, V et F il est
-; possiible que ces 2 tableaux n''aient pas la meme taille et se
-; repportent a des indices differents. Si tel est le cas les tableaux
-; sont redecoupes sur les indices qu'ils ont en commun et le dommaine
-; est redefinit pour qu'il colle a ces indices communs.
-; pour eviter ces redecoupes utiliser le mot cles /memeindice ds
-; domdef.pro
-;
-;
-; les points sur le bord du dessin sont mis a !values.f_nan 
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Guillaume Roullet (grlod@ipsl.jussieu.fr)
+;
+; @file_comments
+; Calculate the vertical component of the curl of a field of horizontal vectors
+;
+; @categories
+; Calculation on matrixes
+; 
+; @param UU
+; Matrix representing coordinates of a field of vectors
+;
+; @param VV 
+; Matrix representing coordinates of a field of vectors
+;
+; @returns RES
+; A 2d matrix
+;
+; @uses
+; common.pro
+;
+; @restrictions
+; U and V matrixes can be 2 or 4d.
+; Beware, to discern differents configuration of U and V (xy, xyz, xyt, xyzt), 
+; we look at the variable of the common 
+;        -time which contain the calendar in IDL julian days to which U and 
+; V refered to, in the same way as the variable 
+;        -jpt which is the number of time's step to consider in time.
+; U and V arrays ae cut in the same geographic domain. Because of the gap of 
+; T, U, V and F grids, it is possible that these two arrays hase not the same 
+; size and refered to different indexes. In this case, arrays are recut on 
+; common indexesand the domain is redifined to match with these common 
+; indexes. To avoid these recuts, use the keyword /memeindice in domdef.pro
+;
+;
+; Points on the drawing edge are at !values.f_nan 
+;
+; @history 
+; Guillaume Roullet (grlod@ipsl.jussieu.fr)
 ; 
 ;                      Sebastien Masson (smasson@lodyc.jussieu.fr)
@@ -53,4 +46,8 @@
 ;                      21/5/1999: valeurs manquantes a !values.f_nan
 ;periodicite 
+; 
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -62,5 +59,5 @@
 ;
 @common
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 ;
    IF finite(glamu[0])*finite(gphiu[0])*finite(glamv[0])*finite(gphiv[0]) EQ 0 THEN $
@@ -76,5 +73,5 @@
 
 ;------------------------------------------------------------
-; on trouve les points que u et v ont en communs
+; We find common points between U and V
 ;------------------------------------------------------------
    indicexu = (lindgen(jpi))[firstxu:firstxu+nxu-1]
@@ -95,5 +92,5 @@
          indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -117,5 +114,5 @@
          endcase
 ;------------------------------------------------------------
-; calcul du rotationnel
+; calculation of the curl
 ;------------------------------------------------------------
          coefu = (e1u[indice2d])[*]#replicate(1, nzt)
@@ -142,5 +139,5 @@
          psi = tabf*psi
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; Edging put at !values.f_nan
 ;------------------------------------------------------------
          if NOT keyword_set(key_periodic)  OR nx NE jpi then begin
@@ -155,5 +152,5 @@
          if terref[0] NE -1 then psi[temporary(terref)] = valmask
 ;------------------------------------------------------------
-; pour le trace graphique
+; For the graphic drawing
 ;------------------------------------------------------------
          domdef, (glagmt[indice2d])[0, 0], (glamu[indice2d])[nx-1, 0],(gphit[indice2d])[0, 0], (gphiv[indice2d])[0, ny-1], vert1, vert2, gridtype = ['t', 'f']
@@ -171,5 +168,5 @@
          indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -196,5 +193,5 @@
          endcase
 ;----------------------------------------------------------------------------
-; calcul du rotationnel
+; Calculation of the curl
 ;----------------------------------------------------------------------------
          coefu = e1u[indice2d]*(umask())[indice2d+jpi*jpj*firstzt]
@@ -214,5 +211,5 @@
          tabf = reform(tabf, nx, ny, jpt, /over)
 ;------------------------------------------------------------
-; calcul du rotationnel
+; Calculation of the curl
 ;------------------------------------------------------------
          zu = u*temporary(coefu)
@@ -222,5 +219,5 @@
          psi = tabf*psi
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          if NOT keyword_set(key_periodic) OR nx NE jpi then begin
@@ -255,5 +252,4 @@
          indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
 ;------------------------------------------------------------
          case 1 of
@@ -278,5 +274,5 @@
          endcase
 ;------------------------------------------------------------
-; calcul du rotationnel
+; Calculation of the curl
 ;------------------------------------------------------------
          coefu = e1u[indice2d]*(umask())[indice2d+jpi*jpj*firstzt]
@@ -295,5 +291,5 @@
 
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; Edging put at !values.f_nan
 ;------------------------------------------------------------
          if  NOT keyword_set(key_periodic) OR nx NE jpi then begin
@@ -308,5 +304,5 @@
          if terref[0] NE -1 then psi[temporary(terref)] = valmask
 ;------------------------------------------------------------
-; pour le trace graphique
+; for the graphic drawing
 ;------------------------------------------------------------
          domdef, (glamt[indice2d])[0, 0], (glamf[indice2d])[nx-1, 0],(gphit[indice2d])[0, 0], (gphif[indice2d])[0, ny-1], vert1, vert2, gridtype = ['t', 'f']
Index: /trunk/SRC/ToBeReviewed/CALCULS/depth2floatlevel.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/depth2floatlevel.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/depth2floatlevel.pro	(revision 142)
@@ -3,31 +3,28 @@
 ;------------------------------------------------------------
 ;+
-; NAME:depth2floatlevel
+; @file_comments
+; Rather comparable to depth2level but here, the calculated level is in float. 
+; For example, the level 5.4 correspond to a depth equal 
+; to gdep[5]+.4*(gdep[6]-gdep[5])
 ;
-; PURPOSE: assez comparable a depth2level mais ici le niveau calcule
-; est en float. Par ex le niveau 5.4 correspond a une profondeur egale
-; a gdep[5]+.4*(gdep[6]-gdep[5])
+; @categories 
+; Without loop.
 ;
-; CATEGORY: SANS BOUCLE
+; @param TAB {in}{required}
+; 2d depth array (or a structure respecting litchamp criterions)
 ;
-; CALLING SEQUENCE:res=depth2floatlevel(depth2d)
-; 
-; INPUTS: depth2d tableau 2d de profondeur (ou une structure repondant
-; aux criteres de litchamp)
+; @keyword NOMASK
+; To do not mask land points
 ;
-; KEYWORD PARAMETERS: 
-;       /NOMASK: pour ne pas masquer les points terres
+; @returns
+; An 2d array of float containing levels's values.
 ;
-; OUTPUTS: un tableau 2d de float contenant les valeurs des niveaux.
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions
+; Accept values at !values.f_nan and mask land points at valmask.
 ;
-; SIDE EFFECTS:accepte les vcaleurs a !values.f_nan et masque les
-; points terres a valmask.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
+; @examples
 ;    IDL> a=(jpk-1)/(1.*jpi*jpj)*findgen(jpi,jpj)
 ;    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
@@ -35,6 +32,11 @@
 ;  ->champ nul a 1e-6 pres
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history 
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      15/06/2000
+; 
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -45,5 +47,5 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; for key_performance
 @common
 ;------------------------------------------------------------
@@ -55,6 +57,6 @@
    levellow = depth2level(depthin, /lower, /nomask)
    depthlow = level2depth(levellow, /nomask)
-; calcule de la distance depthlow-depthup et gestion du cas ou cette
-; distance est nulle ou egale a !values.f_nan
+; calculate the distance depthlow-depthup and management of the case 
+; of this distance is null or eqal to !values.f_nan
    divi = depthlow-depthup
    nan = where(finite(divi) EQ 0)
@@ -62,7 +64,7 @@
    nan = where(divi EQ 0)
    if nan[0] NE -1 then divi[nan] = !values.f_nan
-; calcule du resultat
+; calculation of the result
    res = levelup+(depthin-depthup)/divi
-; on masque les points terre a valmask
+; We mask land point at valmask
    if NOT keyword_set(nomask) then begin
       grille,mask
Index: /trunk/SRC/ToBeReviewed/CALCULS/depth2level.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/depth2level.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/depth2level.pro	(revision 142)
@@ -3,45 +3,44 @@
 ;------------------------------------------------------------
 ;+
-; NAME: depth2level
 ;
-; PURPOSE: permet de passer d''un tableau 2d de profondeur au tableau
-; 2d correspondant de niveaux.
+; @file_comments 
+; Allows to pass from a 2d depth array to a corresponding 2d level array.
 ;
-; CATEGORY: SANS BOUCLE
+; @categories
+; Without loop
 ;
-; CALLING SEQUENCE: res=depth2level(depth2d)
+; @param TAB 
+; 2d depth array (or a structure respecting litchamp critrions)
 ;
-; INPUTS: depth2d tableau 2d de profondeur (ou une structure repondant
-; aux criteres de litchamp)
+; @keyword UPPER
+; (activated by default) We select the level just above the depth
 ;
-; KEYWORD PARAMETERS:
+; @keyword LOWER
+; We select the level just below the depth 
 ;
-;      /UPPER: (active par defaut) on selectionne le niveau
-;      directement au dessus de la profondeur
+; @keyword CLOSER 
+; We select the depth's closer level 
 ;
-;      /LOWER: on selectionne le niveau directement au dessous de la
-;      profondeur 
+; @keyword NOMASK 
+; To do not mask land points
 ;
-;      /CLOSER: on selectionne le niveau le plus proche de la
-;      profondeur 
+; @returns 
+; It is a 2d array containing level's values.
 ;
-;      /NOMASK: pour ne pas masquer les points terres
+; @uses
+; common.pro
 ;
-; OUTPUTS: un tableau 2d contenant les valeurs des niveaux.
+; @restrictions 
+; For depthes out of gdep's values, the value !values.f_nan is sent back.
+; if the depth is superior to this one of the bottom, we send back jpk-1 in 
+; the upper case, and !values.f_nan in the lower case.
 ;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:pour les profondeurs hors des valeurs de gdep, la
-; valeur !values.f_nan est retournee.
-; Si la profondeur est superieur a celle du fond, on retourne
-; jpk-1dans le cas upper, et !values.f_nan ds le cas lower.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       17/6/1999
 ;                       15/6/2000 accepte !values.f_nan
+;
+; @version
+; $Id$
 ;-
 ;------------------------------------------------------------
@@ -53,5 +52,5 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; for key_performance
 @common
 ;------------------------------------------------------------
@@ -59,11 +58,10 @@
    if keyword_set(lower) THEN upper = 0
 ;------------------------------------------------------------
-; lecture du champ d''entree et recuperation de la taille du sous
-; domaine utilise
+; Reading of the input field and recuperation of the used subdomain's size
 ;------------------------------------------------------------
    in = litchamp(tab)
    grille,mask,-1,-1,gdep,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz
 ;---------------------------------------------------------------
-; verification de la coherence entre la taille du tableau et le domaine definit par domdef
+; Verification of the coherence between array's size and the defined by domdef domain
 ;---------------------------------------------------------------
    IF ny EQ 1 THEN in = reform(in, nx, ny, /over)
@@ -78,12 +76,11 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; vire les points a !values.f_nan
+; delete points at !values.f_nan
    notanumber = where(finite(in, /nan) EQ 1)
    if notanumber[0] NE -1 then in[notanumber] = 0
 ;------------------------------------------------------------
-; on transforme le tableau 2d de profondeur en tableau 2d de niveaux
-; correspondant aux profondeurs
+; We transform the 2d deth value in a 2d array of levels corresponding to depthes
 ;------------------------------------------------------------
-; on passe en tableaux qui ont la taille des tableaux 3d
+; We go on array who have the size of 3d arrays
    prof=replicate(1,nx*ny)#gdep[firstz:lastz] 
    in = in[*]#replicate(1, nz)
@@ -99,5 +96,5 @@
    IF notvalid[0] NE -1 THEN levels[notvalid] = !values.f_nan
 
-; si closer est active
+; If closer is activated
    if keyword_set(closer) then begin
       test = [ [[litchamp(tab)-level2depth(levels)]] $
@@ -108,7 +105,7 @@
    endif
 ;------------------------------------------------------------
-; on replace les points a !values.f_nan
+; We put back points at !values.f_nan
    if notanumber[0] NE -1 then levels[notanumber] = !values.f_nan
-; on masque les points terres a valmask
+; We mask land points at valmask
    if NOT keyword_set(nomask) then begin
       if n_elements(valmask) EQ 0 then valmask = 1e20
Index: /trunk/SRC/ToBeReviewed/CALCULS/depth2mask.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/depth2mask.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/depth2mask.pro	(revision 142)
@@ -3,42 +3,32 @@
 ;------------------------------------------------------------
 ;+
-; NAME: depth2mask
 ;
-; PURPOSE: permet de passer d''un tableau 2d de profondeur seuil au
-; tableau 3d de mask avec des 1 ds les niveaux au dessus de la
-; profondeur seuil et des 0 en dessous.
+; @file_comments 
+; Allows to pass from a 2d depth sill array to a 3d array of mask 
+; with one of levels above the sill depth and 0s below.
 ;
-; CATEGORY: SANS BOUCLE
+; @categories
+; Without loop
 ;
-; CALLING SEQUENCE: res=depth2mask(depht2d)
+; @param TAB 
+; 2d sill depth array (or a structure respecting litchamp critrions)
 ;
-; INPUTS: depht2d tableau 2d de profondeur seuil (ou une structure repondant
-; aux criteres de litchamp)
-;
-; KEYWORD PARAMETERS:
-;
-;      /UPPER: (active par defaut) on selectionne le niveau
-;      directement au dessus de la profondeur
-;
-;      /LOWER: on selectionne le niveau directement au dessous de la
-;      profondeur 
-;
-;      /CLOSER: on selectionne le niveau le plus proche de la
-;      profondeur 
-;
-; OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de
+; @keyword _EXTRA
+; used to pass your keywords
+; 
+; @returns
+; It is a 3d array containing the mas associated to the 2d sill depth array
 ; profondeurs seuil
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @uses
+; common.pro
 ;
-; SIDE EFFECTS:
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       17/6/1999
 ;
-; RESTRICTIONS:
+; @version
+; $Id$
 ;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       17/6/1999
 ;-
 ;------------------------------------------------------------
@@ -50,14 +40,13 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; For key_performance
 @common
 ;------------------------------------------------------------
-; on transforme le tableau 2d de profondeur en tableau 2d de niveaux
-; correspondant aux profondeurs
+; We transform the 2d deth value in a 2d array of levels corresponding to depthes
 ;------------------------------------------------------------
    niveaux = depth2level(tab, _extra = ex)
    IF niveaux[0] EQ -1 THEN return,  -1
 ;------------------------------------------------------------
-; on transforme le tableau 2d de niveaux en tableau 3d de mask
+; We transform the 2d array in a 3d array of mask
 ;------------------------------------------------------------
    mask = level2mask(niveaux)
Index: /trunk/SRC/ToBeReviewed/CALCULS/determ2.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/determ2.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/determ2.pro	(revision 142)
@@ -1,34 +1,42 @@
 ;+
-; NAME:determ2
 ;
-; PURPOSE: computes the determinant of n 2 by 2 arrays
+; file_comments
+; computes the determinant of n 2 by 2 arrays
+; Z2DS is an 2*2*n array
 ;
-; CATEGORY: no DO loops and better accuracy
+; @categories 
+; Without loop
+; 
+; @param A {in}{required}
+; n element array
+; Defined as z2ds[0, 0, *] = z1d00
 ;
-; CALLING SEQUENCE: 2 cases:
-;     res = determ2(z2ds)
-;     res = determ2(z1d00,z1d01,z1d10,z1d11)
+; @param B {in}{required}
+; n element array
+; Defined as z2ds[0, 1, *] = z1d01
 ;
-; INPUTS:
-;     z2ds: an 2*2*n array
-;     or
-;     z1d00,z1d01,z1d10,z1d11: the four n elements arrays
-;     defined as:
-;              z2ds[0, 0, *] = z1d00
-;              z2ds[0, 1, *] = z1d01
-;              z2ds[1, 0, *] = z1d10
-;              z2ds[1, 1, *] = z1d11
+; @param C {in}{required}
+; n element array
+; Defined as z2ds[1, 0, *] = z1d10
 ;
-; OUTPUTS: n elements array, the determinent of each 2*2 arrrays
+; @param D {in}{required}
+; n element array
+; Defined as z2ds[1, 1, *] = z1d11
 ;
-; EXAMPLE:
+; @returns 
+; n elements array, the determinent of each 2*2 arrrays
 ;
+; @examples
 ; a=findgen(2,2,5)
 ; print, determ2(a)
 ; FOR i=0,4 DO print, determ(a[*,*,i]) ; IDL solution
 ;
-; MODIFICATION HISTORY:
+; @history
 ;           S. Masson (smasson@lodyc.jussieu.fr)
 ;           July 11th, 2002
+;
+; @version
+; $Id$
+;
 ;-
 FUNCTION determ2, a, b, c, d
Index: /trunk/SRC/ToBeReviewed/CALCULS/determ3.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/determ3.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/determ3.pro	(revision 142)
@@ -1,39 +1,67 @@
 ;+
-; NAME:determ3
 ;
-; PURPOSE: computes the determinant of n 3 by 3 arrays
+; @file_comments
+; computes the determinant of n 3 by 3 arrays.
+; Z2DS is an 3*3*n array
 ;
-; CATEGORY: no DO loops and better accuracy
+; @categories
+; Without loop
 ;
-; CALLING SEQUENCE:2 cases:
-;     res = determ2(z2ds)
-;     res = determ2(in00, in01, in02, in10, in11, in12, in20, in21, in22)
+; @param IN00 {in}{required}
+; It is an n element array
+; defined by in00 = z2ds[0, 0, *]
 ;
-; INPUTS:
-;     z2ds: an 3*3*n array
-;     or
-;     in00, in01, in02, in10, in11, in12, in20, in21, in22: the nine n
-;     elements arrays defined as:
-;           in00 = z2ds[0, 0, *]
-;           in01 = z2ds[0, 1, *]
-;           in02 = z2ds[0, 2, *]
-;           in10 = z2ds[1, 0, *]
-;           in11 = z2ds[1, 1, *]
-;           in12 = z2ds[1, 2, *]
-;           in20 = z2ds[2, 0, *]
-;           in21 = z2ds[2, 1, *]
-;           in22 = z2ds[2, 2, *]
+; @param IN01 {in}{required}
+; It is an n element array
+; defined by in01 = z2ds[0, 1, *]
 ;
-; OUTPUTS: n elements array, the determinent of each 3*3 arrrays
+; @param IN02 {in}{required}
+; It is an n element array
+; defined by in02 = z2ds[0, 2, *]
 ;
-; EXAMPLE:
+; @param IN10 {in}{required}
+; It is an n element array
+; defined by in10 = z2ds[1, 0, *]
 ;
+;
+; @param IN11 {in}{required}
+; It is an n element array
+; defined by in11 = z2ds[1, 1, *]
+;
+;
+; @param IN12 {in}{required}
+; It is an n element array
+; defined by in12 = z2ds[1, 2, *]
+;
+;
+; @param IN20 {in}{required}
+; It is an n element array
+; defined by in20 = z2ds[2, 0, *]
+;
+;
+; @param IN21 {in}{required}
+; It is an n element array
+; defined by in21 = z2ds[2, 1, *]
+;
+;
+; @param IN22 {in}{required}
+; It is an n element array
+; defined by in22 = z2ds[2, 2, *]
+;
+; @returns 
+; n elements array, the determinent of each 3*3 arrrays
+;
+; @examples
 ; a=findgen(3,3,5)
 ; print, determ3(a^2)
 ; FOR i=0,4 DO print, determ((a[*,*,i])^2) ; IDL solution
 ;
-; MODIFICATION HISTORY:
+; @history
 ;           S. Masson (smasson@lodyc.jussieu.fr)
 ;           July 11th, 2002
+;
+; @version
+; $Id$
+;
 ;-
 FUNCTION determ3, in00, in01, in02, in10, in11, in12, in20, in21, in22
Index: /trunk/SRC/ToBeReviewed/CALCULS/div.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/div.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/div.pro	(revision 142)
@@ -3,50 +3,50 @@
 ;------------------------------------------------------------
 ;+
-; NAME:div
-;
-; PURPOSE:calcule la divergence d'un champ 2D
-;
-; CATEGORY:calcule sur les matrices
-;
-; CALLING SEQUENCE:res=div(u,v)
-;
-; INPUTS:
-;       u et v deux matrices representant les coordonnes d''un
-;       champ de vecteur
-;
-; KEYWORD PARAMETERS:
-;
-; OUTPUTS:res: une matrice 2d
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-; les matrices u et v peuvent de 2 a 4 dimensions.
-; attention pour distinger les differents configurations de u et v
-; (xy, xyz, xyt, xyzt), on regarde la variable du common 
-;        -time qui contient le calendrier en jour julien d''IDL auquel
-;        se rapportent u et v ansi que la variable 
-;        -jpt qui est le nombre de pas de temps a considerer ds time.
-; les tableaux u et v sont decoupes sur le meme domaine
-; geographique. A cause du decalage des grilles T, U, V et F il est
-; possiible que ces 2 tableaux n''aient pas la meme taille et se
-; repportent a des indices differents. Si tel est le cas les tableaux
-; sont redecoupes sur les indices qu'ils ont en commun et le dommaine
-; est redefinit pour qu'il colle a ces indices communs.
-; pour eviter ces redecoupes utiliser le mot cles /memeindice ds
-; domdef.pro
-;
-; les points sur le bord du dessin sont mis a !values.f_nan
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Guillaume Roullet (grlod@ipsl.jussieu.fr)
+;
+; @file_comments
+; calculation of the divergence of a 2d field
+;
+; @categories
+; Calculation on matrixes
+;
+; @param UU 
+; Matrix representing coordinates of a field of vectors
+;
+; @param VV 
+; Matrix representing coordinates of a field of vectors
+;
+; @returns RES
+; A 2d matrix
+;
+; @uses
+; common.pro
+;
+; @restrictions
+; U and V matrixes can be 2 or 4d.
+; Beware, to discern differents configuration of U and V (xy, xyz, xyt, xyzt), 
+; we look at the variable of the common 
+;        -time which contain the calendar in IDL julian days to which U and 
+; V refered to, in the same way as the variable 
+;        -jpt which is the number of time's step to consider in time.
+; U and V arrays ae cut in the same geographic domain. Because of the gap of 
+; T, U, V and F grids, it is possible that these two arrays hase not the same 
+; size and refered to different indexes. In this case, arrays are recut on 
+; common indexesand the domain is redifined to match with these common 
+; indexes. To avoid these recuts, use the keyword /memeindice in domdef.pro
+;
+;
+; Points on the drawing edge are at !values.f_nan 
+;
+;
+; @history
+; Guillaume Roullet (grlod@ipsl.jussieu.fr)
 ;                      Creation : printemps 1998
 ;                      Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      adaptation pour marcher avec un domaine reduit
-;                      12/1/2000
+;                      12/1/2000;
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -57,5 +57,5 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; For key_performance
 @common
 ;
@@ -72,5 +72,5 @@
 
 ;------------------------------------------------------------
-; on trouve les points que u et v ont en communs
+; We find common points between U and V
 ;------------------------------------------------------------
    indicexu = (lindgen(jpi))[firstxu:firstxu+nxu-1]
@@ -91,5 +91,5 @@
       (size(u))[0] EQ 3 AND date1 EQ date2 :BEGIN 
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -139,5 +139,5 @@
           *tmask[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1, firstzt:lastzt]
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; Edging put at !values.f_nan
 ;------------------------------------------------------------
          if  NOT keyword_set(key_periodic) OR nx NE jpi then begin
@@ -154,5 +154,5 @@
          if terre[0] NE -1 then zdiv[temporary(terre)] = valmask
 ;------------------------------------------------------------
-; pour le trace graphique
+; For the graphic drawing
 ;------------------------------------------------------------
          vargrid = 'T'
@@ -169,5 +169,5 @@
       date1 NE date2 AND (size(u))[0] EQ 3 :BEGIN 
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -191,5 +191,5 @@
          endcase
 ;------------------------------------------------------------
-; calcul de la divergence
+; Calculation of the divergence
 ;------------------------------------------------------------
          zu = e2u[indice2d]*(umask())[indice2d+jpi*jpj*firstzt]
@@ -213,5 +213,5 @@
          zdiv = temporary(zdiv)*(zu-shift(zu, 1, 0, 0)+zv-shift(zv, 0, 1, 0))
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; Edging put at !values.f_nan
 ;------------------------------------------------------------
          if  NOT keyword_set(key_periodic) OR nx NE jpi then begin
@@ -225,5 +225,5 @@
          if terre[0] NE -1 then zdiv[temporary(terre)] = valmask
 ;------------------------------------------------------------
-; pour le trace graphique
+; for the graphic drawing
 ;------------------------------------------------------------
          vargrid = 'T'
@@ -250,5 +250,5 @@
          indice3d = indice3d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1, firstzt]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of U and V on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -275,5 +275,5 @@
          endcase
 ;------------------------------------------------------------
-; calcul de la divergence
+; Calculation of the divergence
 ;------------------------------------------------------------
          zu = temporary(u)*e2u[indice2d]*(umask())[indice3d]
@@ -286,5 +286,5 @@
          zdiv = temporary(zdiv)*tmask[indice3d]/(e1t[indice2d]*e2t[indice2d])
 ;------------------------------------------------------------
-; mise a !values.f_nan de la bordure
+; Edging put at !values.f_nan
 ;------------------------------------------------------------
          if  NOT keyword_set(key_periodic) OR nx NE jpi then begin
@@ -301,5 +301,5 @@
          if terre[0] NE -1 then zdiv[temporary(terre)] = valmask
 ;------------------------------------------------------------
-; pour le trace graphique
+; for the graphic drawing
 ;------------------------------------------------------------
          vargrid = 'T'
Index: /trunk/SRC/ToBeReviewed/CALCULS/floatlevel2depth.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/floatlevel2depth.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/floatlevel2depth.pro	(revision 142)
@@ -3,36 +3,36 @@
 ;------------------------------------------------------------
 ;+
-; NAME:floatlevel2depth
 ;
-; PURPOSE: assez comparable a level2depth. C'est la fonction inverse
-; de depth2floatlevel
+; @file_comments 
+; Rather comparable to level2depth. It is the invert funcion of depth2floatlevel
 ;
-; CATEGORY:SANS BOUCLE
+; @categories
+; Without loop
 ;
-; CALLING SEQUENCE:res=floatlevel2depth(niveau)
-; 
-; INPUTS: tableau 2d de niveaux seuil (ou une structure repondant aux
-; criteres de litchamp)
+; @param TAB
+; 2d array of sill levels (or a structure respecting litchamp criterions)
 ;
-; KEYWORD PARAMETERS:
-;       /NOMASK: pour ne pas masquer les points terres
+; @keyword NOMASK
+; To do not mask land points
 ;
-; OUTPUTS: un tableau 2d contenant des profondeurs
+; @returns
+; 2d array containing depthes
 ;
-; COMMON BLOCKS:common.pro
+; @uses
+; common.pro
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
+; @examples
 ;    IDL> a=gdept[jpk-1]/(1.*jpi*jpj)*findgen(jpi,jpj)
 ;    IDL> plt, 1e6*(a-floatlevel2depth(depth2floatlevel(a))),/nocontour
 ;
-;  ->champ nul a 1e-6 pres
+;  ->null field at 1e-6 pres
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      15/6/2000
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -43,21 +43,21 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 @common
 ;------------------------------------------------------------
    flevelin = litchamp(tab)
-; on vire les points a !values.f_nan
+; We delete points at !values.f_nan
    notanumber = where(finite(flevelin, /nan) EQ 1)
    if notanumber[0] NE -1 then flevelin[notanumber] = 0
-; on seuil (vire les points terres a valmask par ex)
+; We sill (delete land points at valmask for example)
    flevelin = 0 > flevelin < (jpk-1)
-; on calcule la profondeur 
+; We caculate the depth 
    depthup = level2depth(floor(flevelin), /nomask)
    depthlow= level2depth(ceil(flevelin), /nomask)
    weight = flevelin-floor(flevelin)
    res = depthup+weight*(depthlow-depthup)
-; on replace les points a !values.f_nan
+; We put back points at !values.f_nan
    if notanumber[0] NE -1 then res[notanumber] = !values.f_nan
-; on masque les points terres a valmask
+; We mask land points at valmask
    if NOT keyword_set(nomask) then begin
       grille,mask
Index: /trunk/SRC/ToBeReviewed/CALCULS/fsfzpt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/fsfzpt.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/fsfzpt.pro	(revision 142)
@@ -12,4 +12,7 @@
 ;               annex 6 freezing point of seawater F.J.Millero pp.29-35
 ;	checkvalue: fsfzpt=-2.588567 deg.c,for s=40.0,p=500 decibars
+;
+; @todo seb
+;
 ;-
 FUNCTION fsfzpt, pfs, pfp
Index: /trunk/SRC/ToBeReviewed/CALCULS/grad.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/grad.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/grad.pro	(revision 142)
@@ -26,4 +26,7 @@
 ;
 ; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @todo seb: remplir les truc!
+;
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/CALCULS/grossemoyenne.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/grossemoyenne.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/grossemoyenne.pro	(revision 142)
@@ -3,109 +3,79 @@
 ;------------------------------------------------------------
 ;+
-; NAME: grossemoyenne
-;
-; PURPOSE:  averages a 3- or 4-d time serie field over a selected
-;           geographical area or along the time axis. For one ore more
-;	    selected axes (x, y, z, t)
-;
-; CATEGORY:
-;
-; CALLING SEQUENCE: result = grossemoyenne(tab,'direc',BOXZOOM=boxzoom)
-;
-; INPUTS:	tab = 3 or 4d field
-;		direc ='x' 'y' 'z' 't' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt'
-;		'xyt' 'xzt' 'yzt' or 'xyzt' 
-;
-; KEYWORD PARAMETERS:
-;
-;		boxzoom = [xmin,xmax,ymin,ymax (,(zmin,)zmax)] pour plus
-;		de detail cf domdef
-;               boxzoom peut prendre 5 formes: 
-;               [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
-;               [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
+;
+; @file_comments  
+; averages a 3- or 4-d time serie field over a selected
+; geographical area or along the time axis. For one ore more
+; selected axes (x, y, z, t)
+;
+; @categories
+;
+; @param TAB {in}{required}
+; 3 or 4d field
+;
+; @param DIREC {in}{required}
+; 'x' 'y' 'z' 't' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt'
+; 'xyt' 'xzt' 'yzt' or 'xyzt' 
+;
+; @keyword BOXZOOM  
+; [xmin,xmax,ymin,ymax (,(zmin,)zmax)] to more details, see domdef
+; boxzoom can have 5 forms: 
+; [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
+; [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
 ;             
-;               NAN: not a number, a activer si l''on peut faire veut
-;               faire une moyenne sans tenir compte de certaines
-;               valeurs masques de tab.
-;               si les valeurs masques de tab sont la valeur consacree
-;               par IDL (!values.f_nan), il suffit de mettre /NAN.
-;               si les valeurs masques de tab on pour valeur a (a doit
-;               etre differente de 1 (correspond a nan =
-;               !values.f_nan) et de 0 (qui desactive nan).
-;               Il faut mettre NAN=a. 
-;               Rq: en sorties les points de result qui sont NAN
-;               auront pour valeur a ou !values.f_nan.
+; @keyword NAN 
+; not a number, we activate it if we want to average without considerate some masked values of TAB.
+; If masked values of TAB are values consecrated by IDL(!values.f_nan), wr just have to put NAN.
+; If masked values of TAB are valued a (a must be different of 1, corresponding to nan =
+; !values.f_nan and of 0, which desactivate nan). We have to put NAN=a. 
+; Comment: In output, rsult points which are NAN will be valued a or !values.f_nan.
 ;            
-;               NODOMDEF: activer si l''on ne veut pas passer ds
-;               domdef bien que le mot cle boxzoom soit present (comme
-;               c''est le cas qd grossemoyenne est appelee via
-;               checkfield)
-;
-;               INTEGRATION: pour faire une integrale plutot qu''une
-;               moyenne
-;
-;               /SPATIALFIRST, when performing at the same time
-;               spatial and temporal mean, grossemoyenne is assuming
-;               that the mask is not changing with the time. In
-;               consequence, grossemoyenne performs temporal mean
-;               first and then call moyenne. Activate /SPATIALFIRST if
-;               you want to perform the spatial mean before the
-;               temporal mean. Note that if NAN is activated, then
-;               SPATIALFIRST is activated automatically.
-;
-;               /TEMPORALFIRST: to force to perform first temporal
-;               mean even if nan is activated (see SPATIALFIRST
-;               explanations...)
+; @keyword NODOMDEF
+; We activate it if we do not want to pass in domdef even if the keyword boxzoom 
+; is present (like when grossemoyenne is called via checkfield)
+;
+; @keyword INTEGRATION 
+; To make an integral rather than an average
+;
+; @keyword SPATIALFIRST 
+; when performing at the same time
+; spatial and temporal mean, grossemoyenne is assuming
+; that the mask is not changing with the time. In
+; consequence, grossemoyenne performs temporal mean
+; first and then call moyenne. Activate /SPATIALFIRST if
+; you want to perform the spatial mean before the
+; temporal mean. Note that if NAN is activated, then
+; SPATIALFIRST is activated automatically.
+;
+; @keyword TEMPORALFIRST 
+; to force to perform first temporal
+; mean even if nan is activated (see SPATIALFIRST
+; explanations...)
 ;
 ; 
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;            
-; OUTPUTS: 
-;
-; COMMON BLOCKS:   result:un tableau 
-;	common    domdef
-;
-; SIDE EFFECTS: met les valeurs correspondants a la terre a 1e20
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Jerome Vialard (jv@lodyc.jussieu.fr)
+; @keyword WDEPTH 
+; to specify that the field is at W depth instad of T 
+; depth (automatically activated if vargrid eq 'W') 
+;
+; @uses
+; result:un tableau 
+; common
+; domdef
+;
+; @restrictions Put values corresponding to land at 1.e20
+;
+; @history 
+; Jerome Vialard (jv@lodyc.jussieu.fr)
 ;			2/7/98
 ;                       Sebastien Masson (smasson@lodyc.jussieu.fr)
-; adaptation pour les tableaux comportants une dimension temporelle
+; adaptation array containing a temporal dimension 
 ;                       14/8/98
 ;                       15/1/98
-;                       12/3/99 adaptation pour NAN et utilisation de TEMPORARY
+;                       12/3/99 adaptation for NAN and utilisation of TEMPORARY
+;
+; @version
+; $Id$
 ;-
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-; PLAN DU PROGRAMME:
-;------------------------------------------------------------
-;------------------------------------------------------------
-;I) preliminaires
-;   I.1) determination des directions de moyennes d''apres direc
-;   I.2) verification de la taille du tableau d''entree
-;   I.3) obtention des facteurs d''echelles et du masque sur le sous
-;   domaine concerne par la moyenne 
-;II) moyennes pour les tableaux 3d (x,y,t)
-;   II.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-;   II.2) renvoie sur moyenne qd une moyenne sur t est demandee
-;   II.3) differents types de moyennes possibles
-;III) moyennes pour les tableaux 4d (x,y,z,t)
-;   III.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-;   III.2) differents types de moyennes possibles
-;IV ) finitions
-;   IV.1) on masque les terres par une valeur a 1e+20
-;   IV.2) on remplace, quand nan ne 1, !values.f_nan par nan
-;   IV.3) on revient au sous domaine initial.
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
+
 function grossemoyenne, tab, direc, BOXZOOM = boxzoom, INTEGRATION = integration $
                         , NAN = nan, NODOMDEF = nodomdef, WDEPTH = wdepth $
@@ -124,7 +94,7 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
-;------------------------------------------------------------
-;I) preliminaires
+  tempsun = systime(1)          ; For key_performance
+;------------------------------------------------------------
+;I) preliminaries
 ;------------------------------------------------------------
   dirt = 0
@@ -134,5 +104,5 @@
   dim  = 'aa'
 ;------------------------------------------------------------
-; I.1) direction(s) suivants lesquelles on integre
+; I.1) Directions(s) we follow to integrate
 ;------------------------------------------------------------
   if ( strpos(direc, 't') ge 0 ) then dirt = 1
@@ -144,5 +114,5 @@
   IF keyword_set(temporalfirst) THEN spatialfirst = 0
 ;------------------------------------------------------------
-; I.2) verification de la taille du tableau d'entree
+; I.2) verification of the input array's size
 ;------------------------------------------------------------
   taille = size(tab)
@@ -161,10 +131,8 @@
   endcase
 ;------------------------------------------------------------
-;   I.4) obtention des facteurs d''echelles et du masque sur le sous
-;   domaine concerne par la moyenne 
-; redefinition du domaine ajuste a boxzoom (a 6 elements)
-; ceci va nous permetre de faire les calcules que sur le sous domaine
-; comcerne par la moyenne. domdef, suivit de grille nous donne tous
-; les tableaux de la grille sur le sous domaine 
+;   I.3) Obtainment of scale's factors and of the mask on the subdomain concernedby the average.
+; Redefinition of the domain ajusted at boxzoom (at 6 elements)
+; This will allowed us to calculate only in the domain concerned by the average.
+; Domdef, followed by grid give us all arrays of the grid on the subdomain 
 ;------------------------------------------------------------
   if keyword_set(boxzoom) then BEGIN 
@@ -184,9 +152,9 @@
   ENDIF 
 ;---------------------------------------------------------------
-; attribution du mask et des tableaux de longitude et latitude...
+; attribution of the mask and of longitude and latitude arrays...
 ;---------------------------------------------------------------
   grille, mask, glam, gphi, gdep, nx, ny, nz, firstx, firsty, firstz, lastx, lasty, lastz, e1, e2, e3, WDEPTH = wdepth
 ;------------------------------------------------------------
-; I.3) si dirt eq 1 on fait la moyenne temporelle et on envoie ds moyenne
+; I.4) if dirt equal 1, we make the temporal average and we send it in moyenne
 ;------------------------------------------------------------
   if dirt EQ 1 AND NOT keyword_set(spatialfirst) then begin
@@ -252,15 +220,13 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; II) Cas serie tableaux 2d (tab3d)
+; II) Case 2d arrays series (tab3d)
 ;------------------------------------------------------------
 ;------------------------------------------------------------
   if (dim eq '3d') then begin
 ;---------------------------------------------------------------
-;   II.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-; verification de la coherence entre la taille du tableau et le
-; domaine definit par domdef
-; le tableau en entree doit avoir soit la taille du domaine total
-; (jpi,jpj,jpt) soit celle du domaine reduit (nx,ny,jpt)
+;   II.1) verification of the coherence of the array's size to average
+; Verification of the coherence between the array's size and the domain defined by domdef
+; The input array must have either the total domain's size (jpi,jpj,jpt) or this 
+; one of the reduced domain (nx,ny,jpt)
 ;---------------------------------------------------------------
     case 1 of
@@ -275,6 +241,6 @@
     endcase
     if keyword_set(nan) NE 0 then BEGIN 
-      if nan NE 1 then BEGIN    ; si nan n''est pas !values.f_nan 
-; on le met a !values.f_nan
+      if nan NE 1 then BEGIN    ; If nan is not !values.f_nan 
+; we put it at !values.f_nan
         if abs(nan) LT 1e6 then notanumber = where(res EQ nan) $
         ELSE notanumber = where(abs(res) GT abs(nan)/10.)
@@ -283,7 +249,7 @@
     ENDIF
 ;---------------------------------------------------------------
-; rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER = 1, ET
-; S'ASSURER QU'ELLE EXISTE BIEN. D'OU LES reform(...,nx,ny,...) QUI
-; PEUVENT SEMBLER INUTILE AU DEPART
+; Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE = 1, 
+; AND MAKE SURE THAT IT EXIST. THAT IS WHY WE USE reform(...,nx,ny,...) WHICH CAN 
+; LOOK USELESS AT THE BEGINNING
 ;---------------------------------------------------------------
     if nx EQ 1 OR ny EQ 1 then BEGIN 
@@ -295,5 +261,5 @@
       mask =  reform(mask, nx, ny, nz, /over)
 ;---------------------------------------------------------------
-; II.3) differents types de moyennes
+; II.3) Different types of average
 ;---------------------------------------------------------------
     if keyword_set(nan) NE 0 then msknan = finite(res) ELSE msknan = -1
@@ -352,14 +318,13 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; III) Cas serie tableaux 3d (tab4d)
+; III) Case 3d arrays series (tab4d)
 ;------------------------------------------------------------
   if (dim eq '4d') then begin
 ;---------------------------------------------------------------
-; III.1) verification de la coherence de la taille du tableau a
-; moyenner 
-; verification de la coherence entre la taille du tableau et le
-; domaine definit par domdef 
-; le tableau en entree doit avoir soit la taille du domaine total
-; (jpi,jpj,jpk,jpt) soit celle du domaine reduit (nx,ny,ny,jpt)
+; III.1) Verification of the coherence of the array to average size 
+; Verification of the coherence between the array's size and the domain 
+; defind by domdef 
+; The input array must have either the total domain size (jpi,jpj,jpk,jpt) 
+; or this one of the reduced domain (nx,ny,ny,jpt)
 ;---------------------------------------------------------------
     case 1 of
@@ -382,6 +347,6 @@
     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 OR jpt EQ 1 then res = reform(res, nx, ny, nz, jpt, /over)
     if keyword_set(nan) NE 0 then BEGIN 
-      if nan NE 1 then BEGIN    ; si nan n''est pas !values.f_nan 
-; on le met a !values.f_nan
+      if nan NE 1 then BEGIN    ; if nan is not !values.f_nan 
+; we put it at !values.f_nan
         if abs(nan) LT 1e6 then notanumber = where(res EQ nan) $
         ELSE notanumber = where(abs(res) GT abs(nan)/10.)
@@ -390,7 +355,7 @@
     ENDIF
 ;---------------------------------------------------------------
-; rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER = 1, ET
-; S'ASSURER QU'ELLE EXISTE BIEN. D'OU LES reform(...,nx,ny,...) QUI
-; PEUVENT SEMBLER INUTILE AU DEPART
+; Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE = 1, 
+; AND MAKE SURE THAT IT EXIST. THAT IS WHY WE USE reform(...,nx,ny,...) WHICH CAN 
+; LOOK USELESS AT THE BEGINNING
 ;---------------------------------------------------------------
     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN 
@@ -410,5 +375,5 @@
     ENDIF ELSE bottom = -1
 ;---------------------------------------------------------------
-; III.2) differents types de moyennes
+; III.2) different average types
 ;---------------------------------------------------------------
     IF keyword_set(nan) NE 0 THEN msknan = finite(res) ELSE msknan = -1
@@ -608,8 +573,8 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-;IV ) finitions
-;------------------------------------------------------------
-;------------------------------------------------------------
-; IV.1) on masque les terres par une valeur a 1e+20
+;IV ) finishing
+;------------------------------------------------------------
+;------------------------------------------------------------
+; IV.1) We mask land by a value equal to 1.e+20
 ;------------------------------------------------------------
   valmask = 1e+20
@@ -619,5 +584,5 @@
   ENDIF 
 ;------------------------------------------------------------
-; IV.2) on remplace, quand nan ne 1, !values.f_nan par nan
+; IV.2) We replace, when nan equal 1, !values.f_nan by nan
 ;------------------------------------------------------------
   if keyword_set(nan) NE 0 then BEGIN 
@@ -630,6 +595,5 @@
   ENDIF
 ;------------------------------------------------------------
-; IV.3) on se remplace ds le sous domaine qui etait definit a l''entree de
-; moyenne 
+; IV.3) We replace in the domain whch was defined at the entry of average
 ;------------------------------------------------------------
   if keyword_set(savedbox) THEN restoreboxparam, 'boxparam4grmoyenne.dat'
Index: /trunk/SRC/ToBeReviewed/CALCULS/hdyn.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/hdyn.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/hdyn.pro	(revision 142)
@@ -3,64 +3,66 @@
 ;------------------------------------------------------------
 ;+
-; NAME:hdyn
 ;
-; PURPOSE:calcule la hauteur dynamique par rapport a un etat de
-; reference pour une profondeur de reference. Cf les mots cles pour
-; les differentes possibilites. 
-; Par defaut l''etat de reference est
-; rho=1020 et la profondeur de reference est gdepw[ka] avec ka le
-; premier niveau W directement au dessus de 1000 m. 
+; @file_comments
+; Calculate the height by rapport to a reference state for a depth reference. 
+; See keywords for different possibilities. By default, the state reference 
+; is rho=1020 and the depth reference is gdepw[ka] with ka the first W level 
+; directly above 1000 m. 
 ;
-; CATEGORY: calculs de post-traitement
+; @categories
+; Post-traiment calculation
 ;
-; CALLING SEQUENCE:res=hdyn(sn,tn)
+; @param TABSN {in}{required}
+; array representing the salinity
 ;
-; INPUTS:sn et tn sont des tableaux de meme taille representant la
-; salinite et la temperature.
+; @param TABTN {in}{required}
+; array representing the temperature.Has the same size than SN
 ;
-; KEYWORD PARAMETERS:
+; @keyword GILL We activate this key if we want to calculate the dinamic height 
+; like in the GILL page 215, which means by rapport to a reference state which 
+; vary in depth and which is determinated by a reference temperature tref at 0°C 
+; and a reference salinity sref at 35psu
 ;
-;        GILL: activer cette cle si on veut faire le calcul de la
-;        hauteur dynamique comme ds le GILL page 215 cad par rapport a
-;        un etat de reference qui varie en profondeur et qui est
-;        determine par une temperature de reference tref a 0 degre et
-;        une salinite de reference sref a 35psu
+; @keyword LEVEL
+; It is the same reference level to take. This level is defined like 
+; that gdepw[level] is the reference depth
+; 
+; @keyword SREF 
+; Give a value to this keyword to change the reference salinity used in the 
+; calculation when GILL  is activated. 
+;   
+; @keyword TREF
+; Give a value to this keyword to change the reference temperature used in the 
+; calculation when GILL  is activated.
+; 
+; @keyword PROFREF
+; Give a depth to this keyword which will be considerated as the refeence depth 
+; (in this case, LEVEL has not any effect). the calculation will be effectuated 
+; until this depth effecting an interpolation between the the last W level above 
+; PROFREF and PROFREF.
 ;
-;        LEVEL: C''est le niveau de reference a prendre. Ce niveau est
-;        definit tel que gdepw[level] est la profondeur de reference
+; @keyword SURFACE_LEVEL 
+; It is the level where we wan to calculate the dynamic height. By default, it is 
+; the level 0.
 ;
-;        SREF: donner une valeur a ce mot cle pour changer la salinite
-;        de reference utiliser ds le calcul lorsque GILL est active.
-;   
-;        TREF: donner une valeur a ce mot cle pour changer la temperature
-;        de reference utiliser ds le calcul lorsque GILL est active.
+; @returns
+; An array of the same size of sn and tn representing the dynamic height calculated 
+; from a reference depth nd by rapport to a reference state.
 ;
-;        PROFREF: donner a ce mot cle une profondeur qui sera prise comme
-;        la profondeur de reference (ds ce cas LEVEL n'' a aucun
-;        effet). le calcul sera alors effectue jusqu''a cette
-;        profondeur en effectuant une interpolation entre le dernier
-;        niveau W au dessus de PROFREF et PROFREF.
+; @uses 
+; common.pro
 ;
-;        SURFACE_LEVEL: C''est le niveau auquel on veut calculer la
-;        hauteur dynamique. Par defaut c''est le niveau 0.
+; @restrictions
+; Points for which we can not calculate the dynamic height (whose the batymetry 
+; is less deep than the reference depth) are put at the value !values.f_nan
 ;
-; OUTPUTS:un tableau de la meme taille que sn et tn representant la
-; hauteur dynamique calculee a partir d''une profondeur de reference
-; et par rapport a un etat de reference.
+; @restrictions
+; approximation: The pressure in decibars is equal to the depth in meters (the pressure increase of 1bar all 10m)
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;
-; SIDE EFFECTS:
-; les points pour lesquels on nje peut calcule la hauteur dynamique
-; (dont la batymetrie est moins profonde que la profondeur de
-; reference) sont mis a la valeur !values.f_nan
-;
-; RESTRICTIONS:approximation: la pression en decibars est egale a la
-; profondeur en metres (la pression augmente de 1bar tous les 10m)
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @version
+; $Id$
 ;
 ;-
@@ -72,13 +74,12 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; for key_performance
 @common
 
    if NOT keyword_set(surface_level) then surface_level = 0
-; utile si GILL est active
+; useful if GILL is activated
    if NOT keyword_set(tref) then tref = 0.
    if NOT keyword_set(sref) then sref = 35.
-; on determine si besoin est la profondeur de reference et le niveau
-; W situe directement au dessus.
+; If needed, we determinate the reference depth and the W level situated directly above.
    if keyword_set(profref) then begin
       rien = where(gdepw LE profref, level)
Index: /trunk/SRC/ToBeReviewed/CALCULS/level2depth.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/level2depth.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/level2depth.pro	(revision 142)
@@ -4,33 +4,31 @@
 ;------------------------------------------------------------
 ;+
-; NAME:level2depht
 ;
-; PURPOSE: permet de passer d''un tableau 2d de niveau au
-; tableau 2d de profondeur correspondant a ces niveaux
+; @file_comments
+; Allows to pass from a 2d level array to a 2d depth array corresponding o these levels
 ;
-; CATEGORY: SANS BOUCLE
+; @categories
+; Without loop
 ;
-; CALLING SEQUENCE: res=level2depth(niveau)
+; @param TAB {in}{required}
+; 2d level array of sill levels (or a structure respecting litchamp criterions)
 ;
-; INPUTS: niveau tableau 2d de niveaux seuil (ou une structure repondant
-; aux criteres de litchamp)
+; @keyword NOMASK
+; To do not mask land points.
 ;
-; KEYWORD PARAMETERS:
-;       /NOMASK: pour ne pas masquer les points terres
+; @returns 
+; 2d array containing depthes
 ;
-; OUTPUTS: un tableau 2d contenant des profondeurs
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       17/6/1999
 ;                       14/6/2000 accepte !values.f_nan
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -41,14 +39,13 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 @common
 ;------------------------------------------------------------
-; lecture du champ d''entree et recuperation de la taille du sous
-; domaine utilise
+; Reading of the input field  and recovery of the used subdomain's size
 ;------------------------------------------------------------
    niveaux = litchamp(tab)
    grille,mask, -1, -1,gdep,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz
 ;---------------------------------------------------------------
-; verification de la coherence entre la taille du tableau et le domaine definit par domdef
+; verification of the coherence between array's size and the domain definied by domdef
 ;---------------------------------------------------------------
    taille = size(niveaux)
Index: /trunk/SRC/ToBeReviewed/CALCULS/level2index.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/level2index.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/level2index.pro	(revision 142)
@@ -3,34 +3,28 @@
 ;------------------------------------------------------------
 ;+
-; NAME:level2index
 ;
-; PURPOSE: on veut ds une matrice 3d extraire un tableau 2d (x,y) dont
-; chacun des elements a ete extrait a un niveau specifie par le
-; tableau 2d level (typiquement, on veut obtenir la salinite le long
-; d''une isopycne que l''on a reperee par son niveau).
-; level2index est une fonction qui donne en fonction de level un
-; tableau 2d d'indice qui permettra d''extraire le tableau 2d du
-; tableau 3d...
+; @file_comments 
+; We want, from a 3d matrix, to extract a 2d (x,y) array whose each element 
+; has been extract from a level specified by the 2d level array (typically, 
+; we want to obtain the salinity along an isopycn we have repered by its level).
+; level2index is a function who give, in function of level, a 2d indexes array 
+; which will allow to extract the 2d array from the 3d array...
 ;
-; CATEGORY: SANS BOUCLE
+; @categories
+; without loop
 ;
-; CALLING SEQUENCE: index=level2index(level)
-; 
-; INPUTS:level: un tableau 2d de niveaux
+; @param LEVEL {in}{required}
+; A 2d level array
 ;
-; KEYWORD PARAMETERS:
+; @returns
+; a 2d indexes array
 ;
-; OUTPUTS: untableau 2d d''indices
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                      24/11/1999
 ;
-; COMMON BLOCKS:
+; @version
+; $Id$
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                      24/11/1999
 ;-
 ;------------------------------------------------------------
@@ -38,9 +32,8 @@
 ;------------------------------------------------------------
 FUNCTION level2index, level
-; un elements de tableau 3d (dont les 2 premieres dimensions sont nx et
-; ny) dont les coordonnes sont i, j et k a pour indice ds le meme
-; tableau 3d  i + j*nx + k*(nx*ny)
-; level etant donne, pour chaque points de level on connait i, j et k,
-; on peut donc calculer l''indice.
+; An element of 3d array (whose the two first dimensions are nx and ny) whose 
+; coordinates are i, j and k have for index in the same 3d array i + j*nx + k*(nx*ny)
+; level given, for  each point of level, we know i, j et k,
+; so we can calculate the index
 ;
   compile_opt idl2, strictarrsubs
@@ -49,5 +42,5 @@
    nx = taille[1]
    ny = taille[2]
-; tableau k*(nx*ny)
+; array k*(nx*ny)
    tabknxny = (nx*ny)*long(level)
 ;
Index: /trunk/SRC/ToBeReviewed/CALCULS/level2mask.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/level2mask.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/level2mask.pro	(revision 142)
@@ -3,36 +3,31 @@
 ;------------------------------------------------------------
 ;+
-; NAME:level2mask
 ;
-; PURPOSE: permet de passer d''un tableau 2d de niveau seuil au
-; tableau 3d de mask avec des 1 ds les niveaux au dessus du
-; niveau seuil et des 0 en dessous (et sur).
+; @file_comments
+; Allow to pass from a 2d sill level array to the 3d mask array with 1s in 
+; levels above the sill level and 0s below (and on it)
 ;
-; CATEGORY: SANS BOUCLE
+; @categories 
+; without loop
 ;
-; CALLING SEQUENCE: res=level2mask(niveau)
+; @param TAB {in}{required}
+; 2d level array of sill level (or a structure respecting litchamp criterions)
 ;
-; INPUTS: niveau tableau 2d de niveaux seuil (ou une structure repondant
-; aux criteres de litchamp)
+; @returns
+; It is a 3d array containing the mask associated to the 2d sill level array
 ;
-; KEYWORD PARAMETERS:
+; @uses
+; common.pro
 ;
-; OUTPUTS: un tableau 3d contenant le mask associe au tableau 2d de
-; niveaux seuil
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       17/6/1999
 ; Setp 2004: boundary level have 0 values and not 1 (as it was
 ; explained before in the header). see:
 ; print, array_equal(niveau, total(level2mask(niveau),3))
+;
+;
+; @version
+; $Id$
 ;
 ;-
@@ -45,14 +40,13 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 @common
 ;------------------------------------------------------------
-; lecture du champ d''entree et recuperation de la taille du sous
-; domaine utilise
+; Reading of the input field and recovery of the size of the used subdomain
 ;------------------------------------------------------------
    niveaux = litchamp(tab)
    grille,maskterre, -1, -1, -1,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz
 ;---------------------------------------------------------------
-; verification de la coherence entre la taille du tableau et le domaine definit par domdef
+; verification of the coherence between the array's size and the defined by domdef domain
 ;---------------------------------------------------------------
    IF ny EQ 1 THEN niveaux = reform(niveaux, nx, ny, /over)
@@ -66,5 +60,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; on transforme le tableau 2d de niveaux en tableau 3d de mask
+; We transform the 2d leval array in 3d mask array
 ;------------------------------------------------------------
    mask = reform( niveaux[*]#(1./(indgen(nz)+1)), nx, ny, nz )
Index: /trunk/SRC/ToBeReviewed/CALCULS/moyenne.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/moyenne.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/moyenne.pro	(revision 142)
@@ -3,92 +3,65 @@
 ;------------------------------------------------------------
 ;+
-; NAME: moyenne
-;
-; PURPOSE:  averages a 2- or 3-d field over a selected
+;
+; @file_comments  
+; averages a 2- or 3-d field over a selected
 ;           geographical area and along one ore more
 ;	    selected axes (x, y or z)
 ;
-; CATEGORY:
-;
-; CALLING SEQUENCE: result = moyenne(tab,'direc',BOXZOOM=boxzoom)
-;
-; INPUTS:	tab = 2 or 3d field
-;		direc = 'x' 'y' 'z' 'xy' 'xz' 'yz' or 'xyz'
-;
-; KEYWORD PARAMETERS:
-;
-;		BOXZOOM = [xmin,xmax,ymin,ymax (,(zmin,)zmax)] pour plus
-;		de detail cf domdef.
-;               boxzoom peut prendre 5 formes: 
-;               [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
-;               [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1,
-;               lat2, vert1,vert2]
-;
-;               NAN: not a number, a activer si l''on peut faire veut
-;               faire une moyenne sans tenir compte de certaines
-;               valeurs masques de tab.
-;               si les valeurs masques de tab sont la valeur consacree
-;               par IDL (!values.f_nan), il suffit de mettre /NAN.
-;               si les valeurs masques de tab on pour valeur a (a doit
-;               etre differente de 1 (correspond a nan =
-;               !values.f_nan) et de 0 (qui desactive nan)
-;               il faut mettre NAN=a. 
-;               Rq: en sorties les points de result qui sont NAN
-;               auront pour valeur a ou !values.f_nan.
-;
-;               NODOMDEF: activer si l''on ne veut pas passer ds
-;               domdef bien que le mot cle boxzoom soit present (comme
-;               c''est le cas qd moyenne est appelee via checkfield) 
+; @categories
+;
+; @param	TAB {in}{required}
+; 2 or 3d field
+;
+; @param DIREC {in}{required}
+; 'x' 'y' 'z' 'xy' 'xz' 'yz' or 'xyz'
+;
+; @keyword BOXZOOM  
+; [xmin,xmax,ymin,ymax (,(zmin,)zmax)] to more details, see domdef
+; boxzoom can have 5 forms: 
+; [vert2], [vert1, vert2],[lon1, lon2, lat1, lat2],  
+; [lon1, lon2, lat1, lat2, vert2],[lon1, lon2, lat1, lat2, vert1,vert2]
+;
+; @keyword NAN 
+; not a number, we activate it if we want to average without considerate some masked values of TAB.
+; If masked values of TAB are values consecrated by IDL(!values.f_nan), wr just have to put NAN.
+; If masked values of TAB are valued a (a must be different of 1, corresponding to nan =
+; !values.f_nan and of 0, which desactivate nan). We have to put NAN=a. 
+; Comment: In output, rsult points which are NAN will be valued a or !values.f_nan.
 ;            
-;               INTEGRATION: pour faire une integrale plutot qu''une moyenne
+; @keyword NODOMDEF
+; We activate it if we do not want to pass in domdef even if the keyword boxzoom 
+; is present (like when grossemoyenne is called via checkfield)
+;
+; @keyword INTEGRATION 
+; To make an integral rather than an average
 ; 
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
+; @keyword WDEPTH 
+; to specify that the field is at W depth instad of T 
+; depth (automatically activated if vargrid eq 'W') 
 ;            
-; OUTPUTS:  result:un tableau 
-;
-; COMMON BLOCKS:
-;	common   domdef
-;
-; SIDE EFFECTS:met les valeurs correspondants a la terre a 1e20
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Jerome Vialard (jv@lodyc.jussieu.fr)
+; @returns
+; An array 
+;
+; @uses
+; common
+; domdef
+;
+; @restrictions Put values corresponding to land at 1.e20
+;
+; @history
+;  Jerome Vialard (jv@lodyc.jussieu.fr)
 ;			2/7/98
 ;                       Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       mise au propre de certains truc (les terres...)
 ;                       14/8/98
 ;                       15/1/98
-;                       11/3/99 adaptation pour NAN
-;                       28/7/99 moyennes tableaux 1d
+;                       11/3/99 adaptation for NAN
+;                       28/7/99 Averages 1d arrays
+;
+; @version
+; $Id$
+;
 ;-
-;------------------------------------------------------------
-;------------------------------------------------------------
-; PLAN DU PROGRAMME:
-;------------------------------------------------------------
-;------------------------------------------------------------
-;I) preliminaires
-;   I.1) determination des directions de moyennes d''apres direc
-;   I.2) verification de la taille du tableau d''entree
-;   I.3) obtention des facteurs d''echelles et du masque sur le sous
-;   domaine concerne par la moyenne 
-;  ) moyennes pour les tableaux 1d (x,y)
-;II) moyennes pour les tableaux 2d (x,y)
-;   II.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-;   II.2) differents types de moyennes possibles
-;III) moyennes pour les tableaux 3d (x,y,z)
-;   III.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-;   III.2) differents types de moyennes possibles
-;IV ) finitions
-;   IV.1) on masque les terres par une valeur a 1e+20
-;   IV.2) on remplace, quand nan ne 1, !values.f_nan par nan
-;   IV.3) on revient au sous domaine initial.
-;------------------------------------------------------------
-;------------------------------------------------------------
+
 function moyenne, tab, direc, BOXZOOM = boxzoom, INTEGRATION = integration $
                   , NAN = nan, NODOMDEF = nodomdef, WDEPTH = wdepth $
@@ -106,7 +79,7 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
-;------------------------------------------------------------
-;I) preliminaires
+  tempsun = systime(1)          ; To key_performance
+;------------------------------------------------------------
+;I) preliminaries
 ;------------------------------------------------------------
   dirt = 0
@@ -115,5 +88,5 @@
   dirz = 0
 ;------------------------------------------------------------
-; I.1) direction(s) suivants lesquelles on integre
+; I.1) Directions(s) we follow to integrate
 ;------------------------------------------------------------
   if ( strpos(direc, 't') ge 0 ) then dirt = 1
@@ -123,5 +96,5 @@
   if (dirx eq 0 and diry eq 0 and dirz eq 0) then return, tab
 ;------------------------------------------------------------
-; I.2) verification de la taille du tableau d'entree
+; I.2) verification of the input array's size
 ;------------------------------------------------------------
   taille = size(tab)
@@ -139,10 +112,8 @@
   endcase
 ;------------------------------------------------------------
-;   I.3) obtention des facteurs d''echelles et du masque sur le sous
-;   domaine concerne par la moyenne 
-; redefinition du domaine ajuste a boxzoom (a 6 elements)
-; ceci va nous permetre de faire les calcules que sur le sous domaine
-; comcerne par la moyenne. domdef, suivit de grille nous donne tous
-; les tableaux de la grille sur le sous domaine 
+;   I.3) Obtainment of scale's factors and of the mask on the subdomain concernedby the average.
+; Redefinition of the domain ajusted at boxzoom (at 6 elements)
+; This will allowed us to calculate only in the domain concerned by the average.
+; Domdef, followed by grid give us all arrays of the grid on the subdomain 
 ;------------------------------------------------------------
   if keyword_set(boxzoom) then BEGIN 
@@ -162,5 +133,5 @@
   ENDIF 
 ;---------------------------------------------------------------
-; attribution du mask et des tableaux de longitude et latitude...
+; attribution of the mask and of longitude and latitude arrays...
 ;---------------------------------------------------------------
   IF vargrid EQ 'W' THEN wdepth = 1
@@ -168,5 +139,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; II) Cas du tableau 1d
+; II) Case of the 1d array
 ;------------------------------------------------------------
 ;------------------------------------------------------------
@@ -177,5 +148,5 @@
     ENDIF
     case 1 of
-      nx EQ 1 AND ny EQ 1:BEGIN ;vecteur suivant z
+      nx EQ 1 AND ny EQ 1:BEGIN ;vector following z
         case n_elements(tab) of
           jpk:res = tab[firstz:lastz]
@@ -194,5 +165,5 @@
         ENDELSE 
       END
-      ny EQ 1:BEGIN             ;vecteur suivant x
+      ny EQ 1:BEGIN             ;vector following x
         case n_elements(tab) of
           jpi:res = tab[firstx:lastx]
@@ -211,5 +182,5 @@
         ENDELSE
       END
-      nx EQ 1:BEGIN             ;vecteur suivant y
+      nx EQ 1:BEGIN             ;vector following y
         case n_elements(tab) of
           jpj:res = tab[firsty:lasty]
@@ -232,15 +203,13 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; II) Cas du tableau 2d
+; II) Case of the 2d array
 ;------------------------------------------------------------
 ;------------------------------------------------------------
   if (dim eq '2d') then begin
 ;---------------------------------------------------------------
-;   II.1) verification de la coherence de la taille du tableau a
-;   moyenner 
-; verification de la coherence entre la taille du tableau et le
-; domaine definit par domdef
-; le tableau en entree doit avoir soit la taille du domaine total
-; (jpi,jpj) soit celle du domaine reduit (nx,ny)
+;   II.1) verification of the coherence of the array's size to average
+; Verification of the coherence between the array's size and the domain defined by domdef
+; The input array must have either the total domain's size (jpi,jpj) or this 
+; one of the reduced domain (nx,ny)
 ;---------------------------------------------------------------
     case 1 of
@@ -254,6 +223,6 @@
     ENDCASE
     if keyword_set(nan) NE 0 then BEGIN 
-      if nan NE 1 then BEGIN    ; si nan n''est pas !values.f_nan 
-; on le met a !values.f_nan
+      if nan NE 1 then BEGIN    ; If nan is not !values.f_nan 
+; we put it at !values.f_nan
         if abs(nan) LT 1e6 then notanumber = where(res EQ nan) $
         ELSE notanumber = where(abs(res) GT abs(nan)/10.)
@@ -262,7 +231,7 @@
     ENDIF
 ;---------------------------------------------------------------
-; rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER = 1, ET
-; S'ASSURER QU'ELLE EXISTE BIEN. D'OU LES reform(...,nx,ny,...) QUI
-; PEUVENT SEMBLER INUTILE AU DEPART
+; Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE = 1, 
+; AND MAKE SURE THAT IT EXIST. THAT IS WHY WE USE reform(...,nx,ny,...) WHICH CAN 
+; LOOK USELESS AT THE BEGINNING
 ;---------------------------------------------------------------
     if nx EQ 1 OR ny EQ 1 then BEGIN 
@@ -274,5 +243,5 @@
       mask =  reform(mask, nx, ny, nz, /over)
 ;---------------------------------------------------------------
-; II.3) differents types de moyennes
+; II.3) Different types of average
 ;---------------------------------------------------------------
     mask = mask[*, *, 0]
@@ -330,15 +299,14 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; III) Cas du tableau 3d
+; III) Case 3d arrays series (tab4d)
 ;------------------------------------------------------------
 ;------------------------------------------------------------
   if (dim eq '3d') then begin
 ;---------------------------------------------------------------
-; III.1) verification de la coherence de la taille du tableau a
-; moyenner 
-; verification de la coherence entre la taille du tableau et le
-; domaine definit par domdef 
-; le tableau en entree doit avoir soit la taille du domaine total
-; (jpi,jpj,jpk) soit celle du domaine reduit (nx,ny,ny)
+; III.1) Verification of the coherence of the array to average size 
+; Verification of the coherence between the array's size and the domain 
+; defind by domdef 
+; The input array must have either the total domain size (jpi,jpj,jpk) 
+; or this one of the reduced domain (nx,ny,ny)
 ;---------------------------------------------------------------
     case 1 of
@@ -356,6 +324,6 @@
     endcase
     if keyword_set(nan) NE 0 then BEGIN 
-      if nan NE 1 then BEGIN    ; si nan n''est pas !values.f_nan 
-; on le met a !values.f_nan
+      if nan NE 1 then BEGIN    ; if nan is not !values.f_nan 
+; we put it at !values.f_nan
         if abs(nan) LT 1e6 then notanumber = where(res EQ nan) $
         ELSE notanumber = where(abs(res) GT abs(nan)/10.)
@@ -364,7 +332,7 @@
     ENDIF
 ;---------------------------------------------------------------
-; rq IL FAUT FAIRE ATTENTION AUX CAS OU LA DIM A MOYENNER = 1, ET
-; S'ASSURER QU'ELLE EXISTE BIEN. D'OU LES reform(...,nx,ny,...) QUI
-; PEUVENT SEMBLER INUTILE AU DEPART
+; Comment : WE HAVE TO BE CAREFUL ABOUT CASES WHERE THE DIMENSION TO AVERAGE = 1, 
+; AND MAKE SURE THAT IT EXIST. THAT IS WHY WE USE reform(...,nx,ny,...) WHICH CAN 
+; LOOK USELESS AT THE BEGINNING
 ;---------------------------------------------------------------
     if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then BEGIN 
@@ -387,5 +355,5 @@
     ENDIF ELSE bottom = -1
 ;---------------------------------------------------------------
-; III.2) differents types de moyennes
+; III.2) different average types
 ;---------------------------------------------------------------
     if keyword_set(nan) NE 0 then msknan = finite(res) ELSE msknan = -1
@@ -570,8 +538,8 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-;IV ) finitions
-;------------------------------------------------------------
-;------------------------------------------------------------
-; IV.1) on masque les terres par une valeur a 1e+20
+;IV ) finishing
+;------------------------------------------------------------
+;------------------------------------------------------------
+; IV.1) We mask land by a value equal to 1.e+20
 ;------------------------------------------------------------
   valmask = 1e+20
@@ -581,5 +549,5 @@
   ENDIF  
 ;------------------------------------------------------------
-; IV.2) on remplace, quand nan ne 1, !values.f_nan par nan
+; IV.2) We replace, when nan equal 1, !values.f_nan by nan
 ;------------------------------------------------------------
   if keyword_set(nan) NE 0 then BEGIN 
@@ -592,6 +560,5 @@
   ENDIF
 ;------------------------------------------------------------
-; IV.3) on se remplace ds le sous domaine qui etait definit a l''entree de
-; moyenne 
+; IV.3) We replace in the domain whch was defined at the entry of average
 ;------------------------------------------------------------
   if keyword_set(savedbox) THEN restoreboxparam, 'boxparam4moyenne.dat'
Index: /trunk/SRC/ToBeReviewed/CALCULS/norme.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/norme.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/norme.pro	(revision 142)
@@ -3,65 +3,67 @@
 ;------------------------------------------------------------
 ;+
-; NAME:norme
-;
-; PURPOSE: calcule la norme d''un champ de vecteurs, puis fait une
-; moyenne eventuelle.
-;          Rq1: le champ de vecteur peut etre, 2d:xy, 3d: xyz ou xyt,
-;          4d: xyzt
-;          Rq2: le calcul de la norme est fait avant l''eventuelle
-;          moyenne spatiale ou temporelle car la moyenne de la norme
-;          n''est pas egale a la norme des moyennes.
-;
-; CATEGORY: calcul de post traitement
-;
-; CALLING SEQUENCE:res=norme(champ_de_vecteurs)
-;
-; INPUTS:un tableau 2d, 3d ou 4d
-;
-; KEYWORD PARAMETERS:
-;
-;       BOXZOOM: boxzoom sur laquelle moyenner (par defaut le domaine
-;       selectionner par le dernier domdef effectue)
-;
-;       DIREC:'t' 'x' 'y' 'z' 'xy' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
-;       'xzt' 'yzt' 'xyzt' directions selon lesquelles effectuer les
-;       moyennes 
-;
-; OUTPUTS:tableau a tracer avec plt, pltz ou pltt.
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-;      La norme est calculee aux points T. Pour faire ce calcul, on
-;      moyenne les champs U et V aux points T avant de calculer la norme.
-;      Au bord des cotes et du domaine, on ne peut pas calculer les
-;      champs U et V aux points T, ces points sont donc a la valeur
-;      !values.f_nan. 
+;
+; @file_comments 
+; calculate the norme of a field of vectors, then make a possible average.
+;   Comment 1: The field of vector can be, 2d:xy, 3d: xyz or xyt,
+; 4d: xyzt
+;   Comment 2:
+; The calculation of the norme is made before the possible spatial or 
+; temporal average because the average of the norme is not equal to the 
+; norme of averages
+
+;
+; @categories
+; Post traitment calculation
+;
+; @param COMPOSANTEU {in}{required}
+; an 2d, 3d or 4d array
+;
+; @param COMPOSANTEV {in}{required}
+; an 2d, 3d or 4d array
+;
+; @keyword BOXZOOM
+; boxzoom on which do the average (by default the domain selected 
+; by the last domdef done)
+;
+; @keyword DIREC
+; 't' 'x' 'y' 'z' 'xys' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
+;       'xzt' 'yzt' 'xyzt' Direction on which do averages 
+;
+; @returns
+; Array to trace with plt, pltz or pltt.
+;
+; @uses
+; common.pro
+;
+; @restrictions 
+; The norme is calculated on points TTo do this calculation, we average 
+; field U and Von points T before calculate the norme. At the edge of 
+; coast and of domain, we can not calculate fields U and V at points T, 
+; that is why these points are at value !values.f_nan. 
 ; 
-;      lorsqu''on fait le calcul sur un domaine geographique reduit,
-;      les champs U et V ne comprennent pas forcement le meme nombre
-;      de points. Dans ce cas on redecoupe U et V pour ne garder que
-;      les points en commun. Au passage on refait un domdef qui
-;      redefinit un domaine geographique sur lequel les champs U et V
-;      sont extraits sur les meme points.
-;
-; RESTRICTIONS:
-;
-;      pour savoir a quel type de tableau on a a faire, on teste la
-;      taille de celui-ci et les dates donnees par time[0] et
-;      time[jpt-1] pour savoir si il y a une dimension
-;      temporelle. Avant de lancer norme s''assurer que time et jpt
-;      sont bien definis comme il faut! 
-;
-; EXAMPLE:
-;
-;     pour calculer la moyenne de la norme des courants sur tout le
-;     dommaine entre 0 et 50:
+; When we calculate on a reduce geographic domain, field U and V have not 
+; necessarily the same number of point. In this case, we recut U and V to 
+; keep only common points. We profit of this to redo a domdef which redefine 
+; a geographic domain on which fields U and V are extracted on same points
+;
+; @restrictions
+; To know what type of array we work with, we  test its size and dates 
+; gave by time[0] and time[jpt-1] to know if thee is a temporal dimension. 
+; Before to start norme, make sure that time and jpt are defined how 
+; they have to! 
+;
+; @examples
+; To calculate the average of the norme of streams on all the domain 
+; between 0 et 50:
 ;      IDL> res=norme(un,vn,boxzoom=[0,50],dir='xyz')
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       9/6/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -81,5 +83,5 @@
   ENDIF
 ;---------------------------------------------------------
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 ;
    IF finite(glamu[0])*finite(gphiu[0])*finite(glamv[0])*finite(gphiv[0]) EQ 0 THEN $
@@ -101,5 +103,5 @@
 ;------------------------------------------------------------
    if NOT keyword_set(direc) then direc = 0
-; construction de u et v aux pts T
+; construction of u and v at points T
    u = litchamp(composanteu)
    v = litchamp(composantev)
@@ -130,5 +132,5 @@
 
 ;------------------------------------------------------------
-; on trouve les points que u et v ont en communs
+; We find common points between u and v
 ;------------------------------------------------------------
    indicexu = (lindgen(jpi))[firstxu:firstxu+nxu-1]
@@ -154,5 +156,5 @@
          indice3d = indice3d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1,firstzt:lastzt]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of u and v on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -191,5 +193,5 @@
          endcase
 ;------------------------------------------------------------------
-; on reform u et v pour s'assurer qu'aucune dimension n'a ete ecrasee
+; We reshape u and v to make sure that no dimension has been erased
 ;------------------------------------------------------------------
          if nzt EQ 1 then begin
@@ -198,5 +200,5 @@
          endif
 ;------------------------------------------------------------------
-; construction de u et v aux pts T
+; construction of u and v at points T
 ;-----------------------------------------------------------
          a=u[0,*,*]
@@ -207,5 +209,5 @@
          if NOT keyword_set(key_periodic) OR nx NE jpi then v[*,0,*]=a
 ;----------------------------------------------------------------------------
-; attribution du mask et des tableau de longitude et latitude
+; attribution of the mask and of logitude and latitude arrays
 ;----------------------------------------------------------------------------
          mask = tmask[indice3d]
@@ -222,5 +224,5 @@
          mask = where(mask eq 0)
          IF mask[0] NE -1 THEN res[mask] = valmask
-; moyennes en tous genres
+; All kind of average
          domdef, (glamt[indice2d])[0, 0], (glamu[indice2d])[nx-1, 0],(gphit[indice2d])[0, 0], (gphiv[indice2d])[0, ny-1], vert1, vert2, /meme
          if keyword_set(direc) then res = moyenne(res,direc,/nan, boxzoom = boxzoom, /nodomdef)
@@ -236,5 +238,5 @@
          indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of u and v on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -258,5 +260,5 @@
          endcase
 ;------------------------------------------------------------------
-; construction de u et v aux pts T
+; construction of u and v at points T
 ;-----------------------------------------------------------
          a=u[0,*,*]
@@ -267,13 +269,13 @@
          if NOT keyword_set(key_periodic) OR nx NE jpi then v[*,0,*]=a
 ;----------------------------------------------------------------------------
-; attribution du mask et des tableau de longitude et latitude
-; on recupere la grille complette pour etablir un grand mask etendu ds les 4
-; directions pour couvrir les points pour lesquels un pt terre a ete pris en
-; compte (faire un petit dessin...)
+; attribution of the mask and of longitude and latitude arrays.
+; We recover the complete grid to establish a big mask extent in the four 
+; direction to cover pointsfor which a land point has been 
+; considerated (make a small drawing)
 ;----------------------------------------------------------------------------
          mask = tmask[indice2d+jpi*jpj*firstzt]
          if ny EQ 1 then mask = reform(mask, nx, ny, /over)
 ;-----------------------------------------------------------
-; construction de terre qui contient tous les point a masquer
+; construction of land containing all points to mask
 ;-----------------------------------------------------------
          if n_elements(valmask) EQ 0 THEN valmask = 1e20
@@ -308,5 +310,5 @@
          indice3d = indice3d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1,firstzt:lastzt]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of u and v on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -345,5 +347,5 @@
          endcase
 ;------------------------------------------------------------------
-; construction de u et v aux pts T
+; construction of u and v at points T
 ;-----------------------------------------------------------
          a=u[0,*,*,*]
@@ -354,5 +356,5 @@
          if NOT keyword_set(key_periodic) OR nx NE jpi then v[*,0,*,*]=a
 ;----------------------------------------------------------------------------
-; attribution du mask et des tableau de longitude et latitude
+; attribution of the mask and of logitude and latitude arrays
 ;----------------------------------------------------------------------------
          mask = tmask[indice3d]
@@ -375,5 +377,5 @@
             res[temporary(mask)] = valmask
          ENDIF
-; moyennes en tous genres
+; All kind of average
          domdef, (glamt[indice2d])[0, 0], (glamu[indice2d])[nx-1, 0],(gphit[indice2d])[0, 0], (gphiv[indice2d])[0, ny-1], vert1, vert2, /meme
          if keyword_set(direc) then res = grossemoyenne(res,direc,/nan, boxzoom = boxzoom, /nodomdef)
@@ -388,5 +390,5 @@
          indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of u and v on the appropriated domain
 ;------------------------------------------------------------
          case 1 of
@@ -410,5 +412,5 @@
          endcase
 ;------------------------------------------------------------------
-; on reform u et v pour s'assurer qu'aucune dimension n'a ete ecrasee
+; We reshape u and v to make sure that no dimension has been erased
 ;------------------------------------------------------------------
          if ny EQ 1 then begin
@@ -417,5 +419,5 @@
          endif
 ;------------------------------------------------------------------
-; construction de u et v aux pts T
+; construction of u and v at points T
 ;-----------------------------------------------------------
          a=u[0,*]
@@ -426,13 +428,13 @@
          if NOT keyword_set(key_periodic) OR nx NE jpi then v[*,0]=a
 ;----------------------------------------------------------------------------
-; attribution du mask et des tableau de longitude et latitude
-; on recupere la grille complette pour etablir un grand mask etendu ds les 4
-; directions pour couvrir les points pour lesquels un pt terre a ete pris en
-; compte (faire un petit dessin...)
+; attribution of the mask and of longitude and latitude arrays.
+; We recover the complete grid to establish a big mask extent in the four 
+; direction to cover pointsfor which a land point has been 
+; considerated (make a small drawing)
 ;----------------------------------------------------------------------------
          mask = tmask[indice2d+jpi*jpj*firstzt]
          if nyt EQ 1 THEN mask = reform(mask, nx, ny, /over)
 ;-----------------------------------------------------------
-; construction de terre qui contient tous les point a masquer
+; construction of land containing all points to mask
 ;-----------------------------------------------------------
          if n_elements(valmask) EQ 0 THEN valmask = 1e20
@@ -446,5 +448,5 @@
          mask = where(mask eq 0)
          IF mask[0] NE -1 THEN res[mask] = valmask
-; moyennes en tous genres
+; All kind of average
          domdef, (glamt[indice2d])[0, 0], (glamu[indice2d])[nx-1, 0],(gphit[indice2d])[0, 0], (gphiv[indice2d])[0, ny-1], vert1, vert2, /meme
          if keyword_set(direc) then res = moyenne(res,direc,/nan, boxzoom = boxzoom, /nodomdef)
Index: /trunk/SRC/ToBeReviewed/CALCULS/projectondepth.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/projectondepth.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/projectondepth.pro	(revision 142)
@@ -3,49 +3,46 @@
 ;------------------------------------------------------------
 ;+
-; NAME:projectondepth
 ;
-; PURPOSE: routine permettant de projeter un champ 3d suivant un
-; tableau de profondeurs.
+; @file_comments
+; Allows to project a 3d field following a depth array.
 ;
-; CATEGORY: sans boucles
+; @categories
+; without loop
 ;
-; CALLING SEQUENCE:res=projectondepth(arrayin, depthin)
+; @param ARRAYIN 
+; It is a 3d array whose 3rd dimension must be equal to jpk
 ; 
-; INPUTS:
-;       arrayin: un tableau 3d dont la 3eme dimension doit etre egale
-;       a jpk
-;       depthin: un tableau 2d indiquant n chaque point a quel
-;       profondeur projeter
+; @param DEPTHIN 
+; It is a 2d array indicating for each point n, at which depth to project
 ;       
-; KEYWORD PARAMETERS:none
+; @returns
+; A 2d array which is the projection of the 3d array following depthes indicated by depthin
 ;
-; OUTPUTS:res: un tableau 2d projection du tableau 3d suivant les
-; profondeurs indiquees par depthin
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions 
+; points at !values.f_nan impossible calculation. Land points masked at valmask.
 ;
-; SIDE EFFECTS: points a !values.f_nan qd calcul impossible. points
-; terres masques a Valmask.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; on contruit un tableau de profondeurs possibles
+; @examples
+; we build a possible depthes array
 ;   IDL> a=gdept[jpk-1]/(1.*jpi*jpj)*findgen(jpi,jpj)
-; on contruit un tableau a projeter sur ces profondeurs. pour le test
-; on construit un tableau 3d dont chaque vecteur suivant z est la
-; profondeur. 
+; We build an array to project on these depthes. For the test,
+; we build a 3d array whose each vector following z is the depth. 
 ;   IDL> arraytest=replicate(1,jpi*jpj)#gdept
 ;   IDL> arraytest=reform(arraytest,jpi,jpj,jpk, /over)
-; on test la projection du tabeau profondeur sur la profondeur...
+; We test the projection of the depth array on the depth...
 ;   IDL> plt, 1e6*(a-projectondepth(arraytest,a)),/nocontour
-;   ->champ nul a 1e-6 pres
+;   ->null field at 1e-6 pres
 ; 
-;  verifcation en projettant la temperature sur la profondeur de la 20
-;  degres par exemple...
+;  verifcation projecting the temperature of 20°C for example...
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      15/6/2000
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -56,16 +53,15 @@
   compile_opt idl2, strictarrsubs
 ;
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; To key_performance
 @common
 ;------------------------------------------------------------
    depth = litchamp(depthin)
    array = litchamp(arrayin)
-; petites verifications
+; Small verifications
    tailledepth = size(depth)
    taillearray = size(array)
    if tailledepth[0] NE 2 THEN return, report('Depth array must have 2 dimensions')
    if taillearray[0] NE 3 THEN return, report('Array in must have 3 dimensions')
-; verification de la coherence entre la taille du tableau et le
-; domaine 
+; verification of the coherence between array's size and the domain 
    grille, mask, -1, -1, -1,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz
    case 1 of
@@ -84,8 +80,8 @@
 ;
    flevel = depth2floatlevel(depth)
-; on vire les points a !values.f_nan
+; we delete points at !values.f_nan
    notanumber = where(finite(flevel, /nan) EQ 1)
    if notanumber[0] NE -1 then flevel[notanumber] = 0
-; on seuil (vire les points terres a valmask par ex)
+; we sill (delete land points at valmask for example)
    flevel = 0 > flevel < (jpk-1)
 ;
@@ -99,8 +95,8 @@
    res = res+weight*(array[indexlow]-res)
 ;
-; on replace les points a !values.f_nan
+; We put back points at !values.f_nan
    if notanumber[0] NE -1 then res[notanumber] = !values.f_nan
    if out[0] NE -1 then res[out] = !values.f_nan
-; on masque les points terres a valmask
+; We mask land points at valmask
    if n_elements(valmask) EQ 0 then valmask = 1e20
    terre = where((temporary(mask))[*, *, 0] EQ 0)
Index: /trunk/SRC/ToBeReviewed/CALCULS/remplit.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/remplit.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/remplit.pro	(revision 142)
@@ -14,4 +14,6 @@
 ;    and stays at !values.f_nan.
 ;
+;
+; @todo seb
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/CALCULS/rhon.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/CALCULS/rhon.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/CALCULS/rhon.pro	(revision 142)
@@ -7,4 +7,7 @@
    ;; par seb.
    ;;
+;
+; @todo seb
+;
 ;-
 FUNCTION rhon, sn, tn, INSITU = insitu, SIGMA_N = sigma_n
Index: /trunk/SRC/ToBeReviewed/GRILLE/changegrid.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/changegrid.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/changegrid.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 function changegrid, newgrid
 ;
Index: /trunk/SRC/ToBeReviewed/GRILLE/cmpgrid.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/cmpgrid.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/cmpgrid.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 FUNCTION cmpgrid, newgrid
 ;
Index: /trunk/SRC/ToBeReviewed/GRILLE/decoupeterre.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/decoupeterre.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/decoupeterre.pro	(revision 142)
@@ -3,45 +3,42 @@
 ;------------------------------------------------------------
 ;+
-; NAME:decoupeterre
-;
-; PURPOSE:tres semblable a grille. Ici qd vargrid ne 'T' ou 'W' alors
-; pour le trace il faut recuperer Tmask, glamt, gphit et le tableau de
-; triangulation sur le sous domaine considere. La specificite de
-; decoupeterre par rapport a grille, c''est que l''on prend ds la
-; mesure du possible un sous domaine juste un peu plus grand que celui
-; definit par domdef de facon a etre sur que le masque que l''on trace
-; recouvrira bien tout le dessin.
-;
-; CATEGORY:pour plt
-;
-; CALLING SEQUENCE:decoupeterre, mask, glam, gphi, z, nx, ny, nz, TRI = tri
-;
-; INPUTS:
-;
-; KEYWORD PARAMETERS:
-;         TRI si ce mot clef sert a obtenir grace a grille la
-;         triangulation qui se rapporte a la grille mais uniquement
-;         sur la partie du zoom. ce tableau de triangulation reduit
-;         est passe ds la variable que l''on a egalee a tri.par ex:
-;         grille,...,tri=triangulation_reduite. ne mot clef est
-;         utilise dans plt.pro
-;
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;
-;
-; OUTPUTS:le masque et ses coordonnees
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @file_comments
+; Similar to grille. Here, when vargrid is not 'T' or 'W', we have to
+; recuperate Tmask, glamt, gphit and the array of triangulation on the
+; considerated subdomain for the drawing. The specificity of decoupeterre
+; in comparaison with grille, is that we take, if possible, a subdomain
+; just a little bit bigger than the one defined by domdef in order to be
+; sure that the mask we draw will cover over all the drawing.
+;
+; @categories
+; utilities
+;
+; @keyword TRI 
+; This keyword serve to obtain, thanks to grille, the triangulation which
+; refer to the grid but only on the part of the zoom. This of triangulation
+; is passed in the variable we have equate at TRI.
+; For example: grille,...,tri=triangulation_reduite.
+; This keyword is used in plt.pro
+;
+; @keyword WDEPTH
+; To specify that the field is at W depth instad of T 
+; depth (automatically activated if vargrid eq 'W')
+;
+; @uses
+; common.pro
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       24/2/99
+;
+; @version
+; $Id$
+;
+; @todo seb : manque tous les param et plein de keywords.
+;
+;
+;
+;
 ;-
 ;------------------------------------------------------------
@@ -59,5 +56,5 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ;------------------------------------------------------------
   if vargrid EQ 'W' then wdepth = 1
@@ -252,16 +249,14 @@
   ENDELSE
 ;------------------------------------------------------------
-; vecteur triangulation Qd TRI est active
+; Triangulation vector when TRI is activated.
 ;------------------------------------------------------------
   IF arg_present(TRI) then $
     if triangles_list[0] EQ -1 OR usetri LT 1 then tri = -1 ELSE BEGIN
-; si on est en train de tracer un niveau profond on refait la
-; triangulation
+; If we are tracing a deep level, we redo the triangulation
     if keyword_set(profond) then begin
       tri = triangule(mask, coinmonte = coinmonte, coindescend = coindescend, _extra = ex)
       indicezoom = (lindgen(jpi, jpj))[firstx:lastx, firsty:lasty]
-    ENDIF ELSE BEGIN 
-; sinon on recupere la partie de triangulation qui nous interesse et
-; on la numerote convenablement!
+  ENDIF ELSE BEGIN 
+; Otherwise, we recuperate the part of triangulation that interest us and we number them well!!
       if nx EQ jpi AND ny EQ jpj then tri = triangles_list ELSE BEGIN 
         msk = bytarr(jpi, jpj)
Index: /trunk/SRC/ToBeReviewed/GRILLE/domdef.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/domdef.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/domdef.pro	(revision 142)
@@ -3,62 +3,75 @@
 ;------------------------------------------------------------
 ;+
-; NAME: DOMDEF
-;
-; PURPOSE:permet d'extraire un sous domaine d'etude en fournissant les
-; parametres necessaires pour les traces. (cf. outputs)
-;
-; CATEGORY:
-;
-; CALLING SEQUENCE:domdef [,lon1, lon2, lat1, lat2[,vert1,vert2]] ou
-;             bien domdef,vecteur
-;
-; INPUTS:(facultatif), [vecteur a] 2, 4 ou 6 elements:;
-; sans l''utilisation des mots cles index,xindex,yindex,zindex:
-; *vert1, vert2: pour un domaine 3D dont la partie horizontale couvre tout
-;  glam et gphi
-; *lon1, lon2, lat1, lat2:
-; definissant les longitudes min. max et les latitudes min, max du  domaine a
-; etudier (tous les niveaux sont selectiones)
-; *lon1,lon2,lat1,lat2,vert1,vert2 pour specifier les profondeurs.
-;
-; KEYWORD PARAMETERS:
-;
-;       ENDPOINTS: a four elements vector [x1,y1,x2,y2] used to specify
-;       that domdef must define the box used to make a plot (pltz, pltt,
-;       plt1d) done strictly along the line (that can have any direction)
-;       starting at (x1, y1) ending at (x2, y2). When defining endpoints,
-;       you must also define TYPE which define the type of plots
-;       ('pltz', 'xt', 'yt', 'zt', 'x', 'y', 'z', 't') will used
-;       ENDPOINTS keywords
-;
-;       FINDALWAYS:oblige a redefinir une boite meme qd auqun point
-;       n''est trouve ds la boite. dans ce cas on selectionne toute la
-;       grille.
-;
-;	GRIDTYPE:un string ou un vecteur de string contennant le nom des
-;	grilles (determinees uniquement par : 'T','U','V','W','F') pour
-;	lesquelles le calcul doit etre fait. par
-;	ex :'T' ou ['T','U']
-;
-;       /MEMEINDICES: il se peut que les points t,u,v et F correspondant a
-;       une meme boite geographique ne concernent pas les memes
-;       indices des tableaux. Ceci pose parfois de pb (ou du moins de
-;       serieuses complications) ds les programmes ou plusieurs types
-;       de grilles interviennent (cf.: norme, curl...). Activer
-;       MEMEINDICES pour forcer domdef a prendre les memes indices -ceux
-;       de la grille T- pour toutes les autres grilles.
-;
-;       /INDEX: activer si on veut specifier que tous les elements
-;       passes en entree de domdef se rapportent aux indices des
-;       tableaux glam, gphi et gdep plutot qu'aux valeurs de ces
-;       tableaux
-;
-;       /xindex: activer si on veut que les elements passes en entrre
-;       de domdef et concernant la dimension en x se rapportent aux
-;       indices des tableaux glam qu'aux valeurs de ces tableaux.
-;
-;       /yindex: cf xindex mais pour y et les gphi
-;
-;       /zindex: cf xindex mais pour z et les gdep
+;
+; @file_comments 
+; Allows to extract a subdomain of study by providing parameters 
+; needed for drawings (see outputs)
+;
+; @categories
+;
+; @param Z1 {in}{optional}
+; For a 3d domain whose the horizontal part cover all glam
+; 
+; @param Z2 {in}{optional}
+; For a 3d domain whose the horizontal part cover all gphi
+;
+; @param X1 {in}{optional}
+; Define the minimum longitude. (All levels are selected)
+;
+; @param X2 {in}{optional}
+; Define the maximum longitude. (All levels are selected)
+;
+; @param Y1 {in}{optional}
+; Define the minimum latitude. (All levels are selected)
+;
+; @param Y2 {in}{optional}
+; Define the maximum latitude. (All levels are selected)
+;
+; @keyword ENDPOINTS
+; A four elements vector [x1,y1,x2,y2] used to specify
+; that domdef must define the box used to make a plot (pltz, pltt,
+; plt1d) done strictly along the line (that can have any direction)
+; starting at (x1, y1) ending at (x2, y2). When defining endpoints,
+; you must also define TYPE which define the type of plots
+; ('pltz', 'xt', 'yt', 'zt', 'x', 'y', 'z', 't') will used
+; ENDPOINTS keywords
+;
+; @keyword FINDALWAYS
+; Force to redefine a box even when none point is find in the box. 
+; In this case, we select all the grid.
+;
+; @keyword GRIDTYPE
+; It is a string or a vector of strings containing the grids's name 
+; (Only determinated by 'T','U','V','W','F') for which the calculation 
+; must be done. 
+;  For example: 'T' ou ['T','U']
+;
+; @keyword MEMEINDICES
+; It is possible that points t,u,v and F correspond to a same geographic
+; box which do not concern the same array indexes. This is sometimes a
+; problem (or at least serious complications) in programs where several
+; type of grid interven (see norme, curl...). Activate MEMEINDICE to
+; force domdef to take same indexes -those of the grid T- for all other
+; grids.
+;
+; @keyword INDEX 
+; We activate it if we want that all elements passed in input of domdef 
+; refer to indexes of glam, gphi and gdep arrays rather than to values 
+; of these arrays.
+;
+; @keyword XINDEX 
+; We activate it if we want that all elements passed in input of domdef 
+; and concerning the X dimension refer to indexes of glam arrays rather 
+; than to values of these arrays.
+;
+; @keyword YINDEX 
+; We activate it if we want that all elements passed in input of domdef 
+; and concerning the X dimension refer to indexes of gphi arrays rather 
+; than to values of these arrays.
+; 
+; @keyword ZINDEX 
+; We activate it if we want that all elements passed in input of domdef 
+; and concerning the X dimension refer to indexes of gdep arrays rather 
+; than to values of these arrays.
 ;
 ; OUTPUTS:on recupere pour les 4 grilles t,u,v,f
@@ -82,16 +95,17 @@
 ;   suivant z
 ;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @uses
+; common.pro
+;
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;			8/2/98
 ; rewrite everything, debug and spee-up Sebastien Masson April 2005
+;
+; @version
+; $Id$
+;
+; @todo seb: output pas clair/ pas d'input required?
 ;-
 ;------------------------------------------------------------
@@ -114,5 +128,5 @@
   ENDIF
 ;---------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ;
   CASE N_PARAMS() OF
Index: /trunk/SRC/ToBeReviewed/GRILLE/f2v.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/f2v.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/f2v.pro	(revision 142)
@@ -3,33 +3,37 @@
 ;------------------------------------------------------------
 ;+
-; NAME:f2v
 ;
-; PURPOSE:permet de passer un champs se rapportant a la grille F sur
-; la grille V, grace a la moyenne: res = 0.5*(res + shift(res, 1, 0))
-;      
+; @file_comments
+; Allows to pass a field refering to the grid F on the grid V, 
+; thanks to the average: 
+; res = 0.5*(res + shift(res, 1, 0))    
 ;
-; CATEGORY:grille
+; @categories 
+; Grille
 ;
-; CALLING SEQUENCE:res=f2v(tab)
-; 
-; INPUTS:tab, un tableau 2, 3 ou 4d
+; @param TEMP {in}{required}
+; A 2, 3 or 4d array
 ;
-; KEYWORD PARAMETERS:
+; @returns
+; res, a 2, 3 or 4d array
 ;
-; OUTPUTS:res, un tableau 2, 3 ou 4d
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions 
+; Force parameters of the zoom on the grid V to be the same as 
+; those on the grid T.
 ;
-; SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
-; les memes que ceux sur la grille T.
+; @restrictions 
+; Points which can not be calculated are put at the value NaN 
+; consecrated by IDL: !values.f_nan
 ;
-; RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
-; valeur NaN consacree par IDL: !values.f_nan
+; @history
+; From Marina Levy's programs
+; Sebastien Masson (smasson@lodyc.jussieu.fr):
+; Validation. 5/6/2000
 ;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:a partir des programmes de Marina Levy
-;                      Sebastien Masson (smasson@lodyc.jussieu.fr):
-;                      inspection des traveuax finis. 5/6/2000
+; @version
+; $Id$
 ;
 ;-
@@ -50,5 +54,5 @@
 ;---------------------------------------------------------
    res = temp
-;on force nxt=nxf, etc ...
+;We force nxt=nxf, etc ...
    firstxv = firstxf
    lastxv = lastxf
@@ -62,5 +66,5 @@
    lon2 = glamf[lastxf, 0]
 
-; cas sur la taille du tableau et application 
+; case on tha array's size and application
    taille = size(temp)
    CASE taille[0] OF 
Index: /trunk/SRC/ToBeReviewed/GRILLE/fmask.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/fmask.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/fmask.pro	(revision 142)
@@ -3,21 +3,25 @@
 ;------------------------------------------------------------
 ;+
-; NAME:fmask
 ;
-; PURPOSE:calcule fmask
+; @file_comments
+; calculate fmask. Economize memory (we do not need to keep fmask anymore)
 ;
-; CATEGORY:fonction economisatrice de memoire (plus besion de garder
-; fmask)  
+; @categories
+; Utilities
 ;
-; CALLING SEQUENCE:res=fmask()
+; @returns
+; A 3d array corresponding to fmask.
 ;
-; OUTPUTS:un tableau 3d correspondant a fmask
+; @examples
+; Used like if fmask was a known array by substituing fmask by (fmask())
+; For example: Instaed of write fmask[domainef] we have to write (fmask())[domainef]
 ;
-; EXAMPLE:s''utilise comme si fmask etait un tableau connu en
-; replacant ds la syntaxe fmask par (fmask()). par ex:
-; au lieu de taper fmask[domainef] il faut taper (fmask())[domainef]
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       11/12/98
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       11/12/98
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -34,5 +38,5 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ; 
   CASE size(tmask, /n_dimensions) OF
Index: /trunk/SRC/ToBeReviewed/GRILLE/grille.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/grille.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/grille.pro	(revision 142)
@@ -3,58 +3,108 @@
 ;------------------------------------------------------------
 ;+
-; NAME:grille
-;
-; PURPOSE: choisit la grille qui doit etre utilisee pour faire le graphe en
-; fonction de vargrid et renvoie les parametres correspondants calcules ds
-; domdef.pro et reduit au domaine definit par domdef (contrairement a
-; grandegrille.pro)
-;
-; CATEGORY:
-;
-; CALLING SEQUENCE:
-;  grille,mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz,e1,e2,e3
-;
-; INPUTS:rien. ATTENTION les choix de la grille se fait a partir de la
-; valeur de la variable globale vargrid, qui peut etre egale a 'T',
-; 'U', 'V', 'W' ou 'F'.
-;
-; KEYWORD PARAMETERS:
-;         TRI si ce mot clef sert a obtenir grace a grille la
-;         triangulation qui se rapporte a la grille mais uniquement
-;         sur la partie du zoom. ce tableau de triangulation reduit
-;         est passe ds la variable que l''on a egalee a tri.par ex:
-;         grille,...,tri=triangulation_reduite. ne mot clef est
-;         utilise dans plt.pro
-;
-;         /FORPLT: ds plt on veut que sur les points terres, glam et
-;         gphi soit egale a glamt et gphit quelle que soit la grille.
-;
-;         /NOTRI: utile seulement qd TRI est active. dans ce cas
-;         grille retourne -1 ds la variable tri meme si la variable du
-;         common triangles_list est definie et differente de -1
-;
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;
-; OUTPUTS:mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz,
-;         lastx,lasty,lastz,e1,e2,e3
-;
-;         pour leur definition cf domdef et la gestion des sous
-;         domaines sur le web
-;
-;         Rq: ces outputs sont optionnels, si je veux recuperer que
-;         mask, glam et gphi il suffit de taper grille, mask, glam, gphi
-;
-; COMMON BLOCKS: cm_4mesh and cm_4data
-;
-; SIDE EFFECTS: utilise la variable globale vargird
-;
-; RESTRICTIONS: vargrid doit etre 'T', 'W', 'U', 'V' ou 'F'
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @file_comments
+; Choose the grid which must be used to do the graph in function of
+; vargrid and send back corresponding parameters calculated in
+; domdef.pro and reduced at the domain defined by domdef (contrarily
+; to grandegrille.pro)
+; BEWARE!! The choice of the grid is made from the value of the 
+; global variable vargrid, which can be equal to 'T', 'U', 'V', 'W' ou 'F'.
+;
+; @categories
+;
+; @keyword TRI 
+; This keyword serve to obtain, thanks to grille, the triangulation which
+; refer to the grid but only on the part of the zoom. This of triangulation
+; is passed in the variable we have equate at TRI.
+; For example: grille,...,tri=triangulation_reduite.
+; This keyword is used in plt.pro
+;
+; @keyword WDEPTH
+; To specify that the field is at W depth instad of T 
+; depth (automatically activated if vargrid eq 'W')
+; 
+; @keyword FORPLT
+; In plt, we want that land points, glam and gphi, be equal to glamt and 
+; gphit regardless of the grid.
+;
+; @keyword NOTRI
+; Useful only when TRI is activated. In this case, grill send back -1 in the 
+; variable tri even if the variable of the common triangles_list is defined 
+; and different of-1
+; 
+; @keyword _EXTRA 
+; Used to pass your keywords
+;
+; @keyword TOUT
+;
+; @param MASK {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  GLAM {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  GPHI {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  GDEP {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  NX {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  NY {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  NZ {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  FIRSTX {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  FIRSTY {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  FIRSTZ {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+;         
+; @param LASTX {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  LASTY {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  LASTZ {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  E1 {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+;
+; @param  E2 {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+; 
+; @param  E3 {out}{optional}
+; For the definition, see domdef and the management of subdomains on the web.
+;
+; @uses
+; cm_4mesh 
+; cm_4data
+;
+; @restrictions 
+; Use the variable vargrid
+;
+; @restrictions
+; Vargrid must be 'T', 'W', 'U', 'V' ou 'F'
+;
+; @history
+;  Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;			12/2/1999
 ;                       10/11/1999 /forplt
+;
+; @version
+; $Id$ 
+;
+; @todo Comment ecrire la remarque sur les inputs?
+; 
 ;-
 ;------------------------------------------------------------
@@ -73,5 +123,5 @@
   ENDIF
 ;---------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ;------------------------------------------------------------
   vargrid = strupcase(strmid(vargrid,0,/reverse_offset))
@@ -83,5 +133,5 @@
     domdef, gridtype = vargrid, _EXTRA = ex
   endif
-  tempdeux = systime(1)         ; pour key_performance =2
+  tempdeux = systime(1)         ; For key_performance =2
 ;------------------------------------------------------------
 ;------------------------------------------------------------
@@ -99,8 +149,8 @@
   CASE 1 OF 
 ;------------------------------------------------------------
-; grille T and W
+; grid T and W
 ;------------------------------------------------------------
     vargrid eq 'T' OR vargrid eq 'W' : begin
-;scalaires
+;scalars
       nx = nxt
       ny = nyt
@@ -109,18 +159,18 @@
       lastx = lastxt
       lasty = lastyt
-;vecteurs 2d
+;2d vectors
       IF arg_present(glam) THEN glam = glamt[firstx:lastx, firsty:lasty]
       IF arg_present(gphi) THEN gphi = gphit[firstx:lastx, firsty:lasty]
       IF arg_present(e1) THEN e1 = e1t[firstx:lastx, firsty:lasty]
       IF arg_present(e2) THEN e2 = e2t[firstx:lastx, firsty:lasty]
-;vecteurs 3d
+;3d vectors 
       IF keyword_set(forplt) THEN mask = tmask[firstx:lastx, firsty:lasty, firstz] $
       ELSE IF arg_present(mask) THEN mask = tmask[firstx:lastx, firsty:lasty, firstz:lastz]
     end
 ;------------------------------------------------------------
-; grille U
+; grid U
 ;------------------------------------------------------------
     vargrid eq 'U': begin
-;scalaires
+;scalars
       nx = nxu
       ny = nyu
@@ -129,5 +179,5 @@
       lastx = lastxu
       lasty = lastyu
-;vecteurs 2d
+;2d vectors
       IF arg_present(glam) THEN glam = glamu[firstx:lastx, firsty:lasty]
       IF arg_present(gphi) THEN gphi = gphiu[firstx:lastx, firsty:lasty]
@@ -163,14 +213,14 @@
       IF arg_present(e1) THEN e1  = e1u[firstx:lastx, firsty:lasty]
       IF arg_present(e2) THEN e2  = e2u[firstx:lastx, firsty:lasty]
-;vecteurs 3d
+;3d vectors
       IF keyword_set(forplt) THEN mask = (umask())[firstx:lastx, firsty:lasty, firstz] $
       ELSE IF arg_present(mask) THEN mask = (umask())[firstx:lastx, firsty:lasty, firstz:lastz]
     end
 ;------------------------------------------------------------
-; grille V
+; grid V
 ;------------------------------------------------------------
     vargrid eq 'OPAPTDHV' or vargrid eq 'OPAPT3DV' $
       or vargrid eq 'V': begin
-;scalaires
+;scalars
       nx = nxv
       ny = nyv
@@ -179,5 +229,5 @@
       lastx = lastxv
       lasty = lastyv
-;vecteurs 2d
+;2d vectors
       IF arg_present(glam) THEN glam = glamv[firstx:lastx, firsty:lasty]
       IF arg_present(gphi) THEN gphi = gphiv[firstx:lastx, firsty:lasty]
@@ -213,14 +263,14 @@
       IF arg_present(e1) THEN e1  = e1v[firstx:lastx, firsty:lasty]
       IF arg_present(e2) THEN e2  = e2v[firstx:lastx, firsty:lasty]
-;vecteurs 3d
+;3d vecteurs
       IF keyword_set(forplt) THEN mask = (vmask())[firstx:lastx, firsty:lasty, firstz] $
       ELSE IF arg_present(mask) THEN mask = (vmask())[firstx:lastx, firsty:lasty, firstz:lastz]
     end
 ;------------------------------------------------------------
-; grille F
+; grid F
 ;------------------------------------------------------------
     vargrid eq 'OPAPTDHF' or vargrid eq 'OPAPT3DF' $ 
       or vargrid eq 'F': begin
-;scalaires
+;scalars
       nx = nxf
       ny = nyf
@@ -229,5 +279,5 @@
       lastx = lastxf
       lasty = lastyf
-;vecteurs 2d
+;2d vectors
       IF arg_present(glam) THEN glam = glamf[firstx:lastx, firsty:lasty]
       IF arg_present(gphi) THEN gphi = gphif[firstx:lastx, firsty:lasty]
@@ -273,5 +323,5 @@
       IF arg_present(e1) THEN e1  = e1f[firstx:lastx, firsty:lasty]
       IF arg_present(e2) THEN e2  = e2f[firstx:lastx, firsty:lasty]
-;vecteurs 3d
+;3d vectors 
       IF keyword_set(forplt) THEN mask = (fmask())[firstx:lastx, firsty:lasty, firstz] $
       ELSE IF arg_present(mask) THEN mask = (fmask())[firstx:lastx, firsty:lasty, firstz:lastz]
@@ -289,11 +339,11 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; Variables se rapportant a la dimension verticale
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-;
-;
-  tempdeux = systime(1)         ; pour key_performance =2
+; Variables refering to the vertical dimension
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
+;
+;
+  tempdeux = systime(1)         ; For key_performance =2
   if keyword_set(wdepth) then begin
     gdep = gdepw[firstz:lastz]
@@ -340,5 +390,5 @@
     print, 'temps grille: Variables se rapportant a la dimension verticale ', systime(1)-tempdeux
 ;------------------------------------------------------------
-; vecteur triangulation Qd TRI est active
+; Triangulation vector when TRI is activated.
 ;------------------------------------------------------------
   if arg_present(TRI) then $
@@ -356,6 +406,6 @@
   ENDELSE
 ;------------------------------------------------------------------
-; pour s'assurer qu'il n'y a pas de dimension degenerees (=1)
-;-------------------------------------------------------------------
+; To make sure there is not any degenerated dimension (=1)
+;------------------------------------------------------------------
 ;    mask=reform(mask, /over)
 ;    glam=reform(glam, /over)
Index: /trunk/SRC/ToBeReviewed/GRILLE/t2v.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/t2v.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/t2v.pro	(revision 142)
@@ -3,33 +3,36 @@
 ;------------------------------------------------------------
 ;+
-; NAME:t2v
 ;
-; PURPOSE:permet de passer un champs se rapportant a la grille T sur
-; la grille V, grace a la moyenne: res = 0.5*(res + shift(res, 0, -1))
-;      
+; @file_comments
+; Allows to pass a field refering to the grid T on the grid V, 
+; thanks to the average res = 0.5*(res + shift(res, 0, -1))
+; 
+; @categories 
+; Grille
 ;
-; CATEGORY:grille
+; @param TEMP {in}{required}
+; A 2, 3 or 4d array
 ;
-; CALLING SEQUENCE:res=t2v(tab)
-; 
-; INPUTS:tab, un tableau 2, 3 ou 4d
+; @returns
+; res, a 2, 3 or 4d array
 ;
-; KEYWORD PARAMETERS:
+; @uses
+; common.pro
 ;
-; OUTPUTS:res, un tableau 2, 3 ou 4d
+; @restrictions 
+; Force parameters of the zoom on the grid V to be the same as 
+; those on the grid T.
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions 
+; Points which can not be calculated are put at the value NaN 
+; consecrated by IDL: !values.f_nan
 ;
-; SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
-; les memes que ceux sur la grille T.
+; @history
+; From Marina Levy's programs
+; Sebastien Masson (smasson@lodyc.jussieu.fr):
+; Validation. 5/6/2000
 ;
-; RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
-; valeur NaN consacree par IDL: !values.f_nan
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Marina Levy
-;                      Sebastien Masson (smasson@lodyc.jussieu.fr):
-;                      inspection des traveuax finis. 5/6/2000
+; @version
+; $Id$
 ;
 ;-
@@ -51,5 +54,5 @@
    res = temp
 
-;on force nxt=nxv, etc ...
+;We force nxt=nxv, etc ...
    firstxv = firstxt
    lastxv = lastxt
@@ -63,5 +66,5 @@
    lat2 = gphiv[0, lastyv]
 
-; cas sur la taille du tableau et application 
+; case on tha array's size and application
    taille = size(temp)
    CASE taille[0] OF 
Index: /trunk/SRC/ToBeReviewed/GRILLE/tracegrille.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/tracegrille.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/tracegrille.pro	(revision 142)
@@ -3,43 +3,45 @@
 ;------------------------------------------------------------
 ;+
-; NAME:tracegrille
 ;
-; PURPOSE:dessine la grille
+; @file_comments
+; Draw the grid
 ;
-; CATEGORY:
+; @categories
+; 
+; @param GLAMIN {in}{required}
+; The 1d or 2d array in longitude of points of the grid.If GLAM/GLAMIN 
+; is not specified, it trace the grid specified by vargrid, on the 
+; domain defined by domdef.
 ;
-; CALLING SEQUENCE:tracegrille
+; @param GPHIIN {in}{required}
+; The 1d or 2d array in latitude of points of the grid.If GPHI/GPHIIN 
+; is not specified, it trace the grid specified by vargrid, on the 
+; domain defined by domdef.
+;
+; @keyword XSTRIDE 
+; It is an integer to specify that we want to trace only one line of 
+; constant i every xstride points
+;
+; @keyword YSTRIDE 
+; It is an integer to specify that we want to trace only one line of 
+; constant j every xstride points
+;
+; @keyword OCEAN 
+; To trace the grid only on ocean points.
 ; 
-; INPUTS:glam et gphi, les tableaux 1d ou 2d des position en
-; longitude/latitude des points de la grille. Si glam et gphi ne sont
-; pas specifies, trace la grille specifiee par vargrid, sur le domaine
-; definit par le dernier domdef.
+; @keyword EARTH
+; To trace the grid only on land points pour ne tracer la grille que sur les points terre
 ;
-; KEYWORD PARAMETERS:
+; @keyword RMOUT
+; Select to remove all cell having one corner out of the
+; plot boundaries (!x.range, !y.range)
 ;
-;        XSTRIDE un entier pour specifier qu''on ne veut tracer
-;        qu''une ligne de i constant tout les xstride points
-;
-;        YSTRIDE un entier pour specifier qu''on ne veut tracer
-;        qu''une ligne de j constant tout les ystride points
-;
-;        /OCEAN: pour ne tracer la grille que sur les points oceans
+; @keyword _EXTRA
+; Used to pass your keywords.
 ; 
-;        /EARTH: pour ne tracer la grille que sur les points terre
-;
-;        /RMOUT:select to remove all cell having one corner out of the
-;        plot boundaries (!x.range, !y.range)
-;
-;        + tous les mots clefs de la procedure PLOTS
-;
-; OUTPUTS:none
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
+; @uses
+; common.pro
+; 
+; @examples
 ;
 ;     IDL> plt,indgen(jpi,jpj),/nocontour,/nofill
@@ -49,6 +51,10 @@
 ;
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                      
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @version
+; $Id$
+;                  
 ;-
 ;------------------------------------------------------------
@@ -68,5 +74,5 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ; to avoid warning message
   oldexcept = !except
Index: /trunk/SRC/ToBeReviewed/GRILLE/u2t.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/u2t.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/u2t.pro	(revision 142)
@@ -3,33 +3,37 @@
 ;------------------------------------------------------------
 ;+
-; NAME:u2t
 ;
-; PURPOSE:permet de passer un champs se rapportant a la grille U sur
-; la grille T, grace a la moyenne: res = 0.5*(res + shift(res, 1, 0))
-;      
+; @file_comments
+; Allows to pass a field refering to the grid U on the grid T, 
+; thanks to the average: 
+; res = 0.5*(res + shift(res, 1, 0))    
 ;
-; CATEGORY:grille
+; @categories 
+; Grille
 ;
-; CALLING SEQUENCE:res=u2t(tab)
-; 
-; INPUTS:tab, un tableau 2, 3 ou 4d
+; @param TEMP {in}{required}
+; A 2, 3 or 4d array
 ;
-; KEYWORD PARAMETERS:
+; @returns
+; res, a 2, 3 or 4d array
 ;
-; OUTPUTS:res, un tableau 2, 3 ou 4d
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions 
+; Force parameters of the zoom on the grid V to be the same as 
+; those on the grid T.
 ;
-; SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
-; les memes que ceux sur la grille T.
+; @restrictions 
+; Points which can not be calculated are put at the value NaN 
+; consecrated by IDL: !values.f_nan
 ;
-; RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
-; valeur NaN consacree par IDL: !values.f_nan
+; @history
+; From Marina Levy's programs
+; Sebastien Masson (smasson@lodyc.jussieu.fr):
+; Validation. 5/6/2000
 ;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:a partir des programmes de Marina Levy
-;                      Sebastien Masson (smasson@lodyc.jussieu.fr):
-;                      inspection des traveuax finis. 5/6/2000
+; @version
+; $Id$
 ;
 ;-
@@ -62,5 +66,5 @@
    lon2 = glamu[lastxu, 0]
 ;
-; cas sur la taille du tableau et application 
+; case on tha array's size and application
    taille = size(temp)
    CASE taille[0] OF 
Index: /trunk/SRC/ToBeReviewed/GRILLE/umask.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/umask.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/umask.pro	(revision 142)
@@ -3,35 +3,29 @@
 ;------------------------------------------------------------
 ;+
-; NAME:umask
 ;
-; PURPOSE:calcule umask
+; @file_comments
+; calculate umask. Economize memory (we do not need to keep umask anymore)
 ;
-; CATEGORY:fonction economisatrice de memoire (plus besion de garder
-; umask)  
+; @categories
+; Utilities 
 ;
-; CALLING SEQUENCE:res=umask()
+; @returns
+; A 3d array corresponding to umask. 
 ;
-; INPUTS:
+; @uses
+; common.pro
 ;
-; KEYWORD PARAMETERS:
-;
-; OUTPUTS:un tableau 3d correspondant a umask
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:s''utilise comme si umask etait un tableau connu en
-; replacant ds la syntaxe umask par umask(). par ex:
-; au lieu de taper umask[domaineu] il faut taper (umask())[domaineu]
-
+; @examples
+; Used like if umask was a known array by substituing umask by (umask())
+; For example: Instaed of write umask[domainef] we have to write (umask())[domainef]
 ;
 ; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       11/12/98
-;                       ??/6/99 introduction du key_shift
-;                       20/9/99 cas jpk=1 (merci jpblod@ipsl.jussieu.fr)
+;                       ??/6/99 introduction of the key_shift
+;                       20/9/99 cas jpk=1 (Thanks to  jpblod@ipsl.jussieu.fr)
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -48,5 +42,5 @@
   ENDIF
 ;---------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ;
   CASE size(tmask, /n_dimensions) OF
Index: /trunk/SRC/ToBeReviewed/GRILLE/v2t.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/v2t.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/v2t.pro	(revision 142)
@@ -3,33 +3,39 @@
 ;------------------------------------------------------------
 ;+
-; NAME:v2t
 ;
-; PURPOSE:permet de passer un champs se rapportant a la grille V sur
-; la grille T, grace a la moyenne: res = 0.5*(res + shift(res, 0, +1))
-;      
+; @file_comments
+; Allows to pass a field refering to the grid V on the grid T, 
+; thanks to the average: 
+; res = 0.5*(res + shift(res, 1, 0))    
 ;
-; CATEGORY:grille
+; @categories 
+; Grille
 ;
-; CALLING SEQUENCE:res=v2t(tab)
-; 
-; INPUTS:tab, un tableau 2, 3 ou 4d
+; @param TEMP {in}{required}
+; A 2, 3 or 4d array
 ;
-; KEYWORD PARAMETERS:
+; @returns
+; res, a 2, 3 or 4d array
 ;
-; OUTPUTS:res, un tableau 2, 3 ou 4d
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @restrictions 
+; Force parameters of the zoom on the grid V to be the same as 
+; those on the grid T.
 ;
-; SIDE EFFECTS:force les parametres du zoom sur la grille V a etre
-; les memes que ceux sur la grille T.
+; @restrictions 
+; Points which can not be calculated are put at the value NaN 
+; consecrated by IDL: !values.f_nan
 ;
-; RESTRICTIONS:les points qui ne peuvent etre calcules sont mis a la
-; valeur NaN consacree par IDL: !values.f_nan
+; @history
+; From Marina Levy's programs
+; Sebastien Masson (smasson@lodyc.jussieu.fr):
+; Validation. 5/6/2000
 ;
-; EXAMPLE:
+; @version
+; $Id$
 ;
-; MODIFICATION HISTORY:a partir des programmes de Marina Levy
-;                      Sebastien Masson (smasson@lodyc.jussieu.fr):
-;                      inspection des traveuax finis. 5/6/2000
+; @todo seb: nom du input?
 ;
 ;-
@@ -50,5 +56,5 @@
 ;---------------------------------------------------------
    res = temp
-;on force nxt=nxv, etc ...
+;We force nxt=nxv, etc ...
    firstxt = firstxv
    lastxt = lastxv
@@ -62,5 +68,5 @@
    lat2 = gphiv[0, lastyv]
 
-; cas sur la taille du tableau et application 
+; case on tha array's size and application
    taille = size(temp)
    CASE taille[0] OF 
Index: /trunk/SRC/ToBeReviewed/GRILLE/vmask.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/GRILLE/vmask.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/GRILLE/vmask.pro	(revision 142)
@@ -3,22 +3,26 @@
 ;------------------------------------------------------------
 ;+
-; NAME:vmask
 ;
-; PURPOSE:calcule vmask
+; @file_comments
+; calculate fmask. Economize memory (we do not need to keep vmask anymore)
 ;
-; CATEGORY:fonction economisatrice de memoire (plus besion de garder
-; vmask)  
+; @categories
+; Utilities
 ;
-; CALLING SEQUENCE:res=vmask()
+; @returns
+; A 3d array corresponding to vmask.
 ;
-; OUTPUTS:un tableau 3d correspondant a vmask
+; @examples
+; Used like if vmask was a known array by substituing vmask by (vmask())
+; For example: Instaed of write vmask[domainef] we have to write (vmask())[domainef]
 ;
-; EXAMPLE:s''utilise comme si vmask etait un tableau connu en
-; replacant ds la syntaxe vmask par vmask(). par ex:
-; au lieu de taper vmask[domainef] il faut taper vmask()[domainef]
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       11/12/98
 ;                       20/9/99 cas jpk=1 (merci jpblod@ipsl.jussieu.fr)
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -30,5 +34,5 @@
 ;
 @common
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; For key_performance
 ;
   CASE size(tmask, /n_dimensions) OF
Index: /trunk/SRC/ToBeReviewed/HOPE/completetype.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/completetype.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/completetype.pro	(revision 142)
@@ -1,3 +1,7 @@
-
+;+
+;
+; @todo seb
+;
+;-
 function completetype, typein
 ;
Index: /trunk/SRC/ToBeReviewed/HOPE/computehopegrid.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/computehopegrid.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/computehopegrid.pro	(revision 142)
@@ -3,28 +3,40 @@
 ;------------------------------------------------------------
 ;+
-; NAME:computehopegrid
-;
-; PURPOSE:
-;
-; CATEGORY:grille
-;
-; CALLING SEQUENCE:computehopegrid
+;
+; @file_comments
+;
+; @categories
+; grille
 ; 
-; INPUTS:
-;
-; KEYWORD PARAMETERS:
-;
-; OUTPUTS:
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @param XAXIS
+;
+; @param YAXIS
+;
+; @param ZAXIS
+;
+; @param LINETYPE
+;
+; @keyword FORTHEMASK
+;
+; @keyword WPOINT
+;
+; @keyword FIRSTS
+;
+; @keyword LASTS
+;
+; @keyword PTTYPE
+;
+; @uses
+; common.pro
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      2001-06
+;
+; @version
+; $Id$
+;
+; @todo seb
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/HOPE/createhopestruct.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/createhopestruct.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/createhopestruct.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 FUNCTION createhopestruct, event
 ;
Index: /trunk/SRC/ToBeReviewed/HOPE/cw_selectinterval.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/cw_selectinterval.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/cw_selectinterval.pro	(revision 142)
@@ -1,3 +1,7 @@
-
+;+
+;
+; @todo seb
+;
+;-
 ; PRO testwid_event, event
 ; ;
Index: /trunk/SRC/ToBeReviewed/HOPE/domainpart.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/domainpart.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/domainpart.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 pro domainpart, top_uvalue, basedomain, selected, DESTROY = destroy
 ;
Index: /trunk/SRC/ToBeReviewed/HOPE/findlineandpointtype.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/findlineandpointtype.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/findlineandpointtype.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 FUNCTION findlineandpointtype, sectype, xaxis, yaxis, iodir
 ; the file 'HOPE_lonlat.nc' is used in this function, This file must
Index: /trunk/SRC/ToBeReviewed/HOPE/read_hope.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/read_hope.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/read_hope.pro	(revision 142)
@@ -1,112 +1,2 @@
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-;+
-; NAME: read_hope
-;
-; PURPOSE: read the Hope grid file converted in NetCdf by xconv
-;
-; CATEGORY: reading
-;
-; CALLING SEQUENCE: a=read_hope([typein, varnamein])
-; 
-; INPUTS:
-;        typein: a string specifing from which type of section the 4D
-;        array based: 'xy, 'xz', 'yz'
-;
-;        varnamein: a string the name of the cariable to be read (in
-;        lower or upper case)
-;
-; KEYWORD PARAMETERS:
-;
-;         FILENAME = the name of the file to be read
-;
-;         XLIMITS = a two elements vertor [lonmin, lonmax]]
-;                   the bondary of the longitudes (from 0 to 360)
-;
-;         YLIMITS = a two elements vertor [latmin, latmax]]
-;                   the bondary of the latitudes (from -90 to 90)
-;
-;         ZLIMITS = a two elements vertor [depthmin, depthmax]]
-;                   the bondary of the depth
-;
-;         TLIMITS = a two elements vertor [date1, date2]]
-;                   the bondary of the calendar with date1 and date2
-;                   folowing the syntaxe yyyymmdd
-;
-;         /ODDPT: activate to read only the sections located on ODD
-;         points 
-;
-;         /EVENPT: activate to read only the sections located on even
-;         points 
-;
-;         /ODDEVENPT: activate to read only the sections located on
-;         both even and odd points (horizontal sections)
-;
-; OUTPUTS:
-;
-;        -1 if typein and varnamein are undefine (this is the widget
-;        version)
-;
-;        a structure which but be read by litchamp.pro and is
-;        necessary to complute the grid associated to the data (see
-;        the example).
-;
-; COMMON BLOCKS: common.pro (usefull only for the definition of iodir)
-;
-; SIDE EFFECTS:
-;     'x', 'y', 'z', 't', 'xt', 'yt' and 'zt' section not coded, xconv
-;     must be able to works with this kind of fonction.
-;     The grib file has no zoom possibilities on horizontal
-;     dimensions.
-;
-; RESTRICTIONS:
-;
-;     When typein and varnamein are defined, the methode to find the
-;     godd variable is:
-;     1) find the variables which are available on this type of
-;     sections woth this name
-;     2) if ODDPT, EVENPT or ODDEVENPT are specified, consider only
-;     these types of sections
-;     3) for an XY section the chosen variable is the one which has
-;     the most level in the vertical domain specified by ZLIMITS.
-;        for an XZ section the chosen variable is the one which has
-;     the most points in the latitude domain specified by YLIMITS.
-;        for an YZ section the chosen variable is the one which has
-;     the most points in the longitude domain specified by XLIMITS.
-;
-;
-; EXAMPLE:
-;
-;     IDL> a=read_hope('xy','ocpt',filename='CLIM_CNT_1993-1998.nc')
-;     IDL> help, a,/struct
-;     ** Structure <82ec344>, 6 tags, length=1860176, refs=1:
-;        ARRAY           FLOAT     Array[128, 242, 15]
-;        UNIT            STRING    'deg C'
-;        NAME            STRING    'Ocean potential temperature'
-;        DATE            FLOAT     Array[1]
-;        GRID            STRING    'T'
-;        HOPEGRID        STRUCT    -> <Anonymous> Array[1]
-;     IDL> help, a.hopegrid,/struct
-;     ** Structure <82eb9cc>, 8 tags, length=1588, refs=2:
-;        XAXIS           FLOAT     Array[128]
-;        YAXIS           FLOAT     Array[242]
-;        ZAXIS           FLOAT     Array[15]
-;        FIRSTS          LONG      Array[3]
-;        LASTS           LONG      Array[3]
-;        TYPE            STRING    'xy'
-;        LINETYPE        STRING    'odd-even'
-;        PTTYPE          STRING    'T'
-;     IDL> help, litchamp(a)
-;     <Expression>    FLOAT     = Array[128, 242, 15]
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                      June 2001
-;-
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-
-
 ;
 pro read_hope_event, event
@@ -291,12 +181,125 @@
 end
 ;
-;
-;
-;
-;
-;
-;
-;
-;
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
+;+
+;
+; @file_comments
+; Read the Hope grid file converted in NetCdf by xconv
+;
+; @categories
+; Reading
+;
+; @param TYPEIN {in}{required}
+; A string specifing from which type of section the 4D
+; array based: 'xy, 'xz', 'yz'
+;
+; @param VARNAMEIN
+; A string the name of the cariable to be read (in
+; lower or upper case)
+;
+; @keyword FILENAME
+; The name of the file to be read
+;
+; @keyword XLIMITS
+; A two elements vertor [lonmin, lonmax]]
+; the bondary of the longitudes (from 0 to 360)
+;
+; @keyword YLIMITS
+; A two elements vertor [latmin, latmax]]
+; the bondary of the latitudes (from -90 to 90)
+;
+; @keyword ZLIMITS
+; A two elements vertor [depthmin, depthmax]]
+; the bondary of the depth
+;
+; @keyword TLIMITS
+; A two elements vertor [date1, date2]]
+; the bondary of the calendar with date1 and date2
+; folowing the syntaxe yyyymmdd
+;
+; @keyword ODDPT
+; Activate to read only the sections located on ODD
+; points 
+;
+; @keyword EVENPT
+; Activate to read only the sections located on even
+; points 
+;
+; @keyword ODDEVENPT
+; Activate to read only the sections located on
+; both even and odd points (horizontal sections)
+;
+; @keyword _EXTRA
+; Used to pass yor keywords
+;
+; @returns
+; -1 if typein and varnamein are undefine (this is the widget
+; version)
+;
+; A structure which but be read by litchamp.pro and is
+; necessary to complute the grid associated to the data (see
+; the example).
+;
+; @uses
+; common.pro (usefull only for the definition of iodir)
+;
+; @restrictions
+; 'x', 'y', 'z', 't', 'xt', 'yt' and 'zt' section not coded, xconv
+; must be able to works with this kind of fonction.
+; The grib file has no zoom possibilities on horizontal dimensions.
+;
+; @restrictions
+;
+; When typein and varnamein are defined, the methode to find the
+; godd variable is:
+;  1) find the variables which are available on this type of
+; sections woth this name
+;  2) if ODDPT, EVENPT or ODDEVENPT are specified, consider only
+; these types of sections
+;  3) For an XY section the chosen variable is the one which has
+; the most level in the vertical domain specified by ZLIMITS.
+;     For an XZ section the chosen variable is the one which has
+; the most points in the latitude domain specified by YLIMITS.
+;     For an YZ section the chosen variable is the one which has
+; the most points in the longitude domain specified by XLIMITS.
+;
+;
+; @examples
+;
+;     IDL> a=read_hope('xy','ocpt',filename='CLIM_CNT_1993-1998.nc')
+;     IDL> help, a,/struct
+;     ** Structure <82ec344>, 6 tags, length=1860176, refs=1:
+;        ARRAY           FLOAT     Array[128, 242, 15]
+;        UNIT            STRING    'deg C'
+;        NAME            STRING    'Ocean potential temperature'
+;        DATE            FLOAT     Array[1]
+;        GRID            STRING    'T'
+;        HOPEGRID        STRUCT    -> <Anonymous> Array[1]
+;     IDL> help, a.hopegrid,/struct
+;     ** Structure <82eb9cc>, 8 tags, length=1588, refs=2:
+;        XAXIS           FLOAT     Array[128]
+;        YAXIS           FLOAT     Array[242]
+;        ZAXIS           FLOAT     Array[15]
+;        FIRSTS          LONG      Array[3]
+;        LASTS           LONG      Array[3]
+;        TYPE            STRING    'xy'
+;        LINETYPE        STRING    'odd-even'
+;        PTTYPE          STRING    'T'
+;     IDL> help, litchamp(a)
+;     <Expression>    FLOAT     = Array[128, 242, 15]
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                      June 2001
+;
+; @version
+; $Id$
+;
+;-
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
 FUNCTION read_hope, typein, varnamein, FILENAME = filename, XLIMITS = xlimits, YLIMITS = ylimits,  ZLIMITS = zlimits, TLIMITS = tlimits, ODDPT = oddpt, ODDEVENPT = oddevenpt, EVENPT = evenpt, _extra = ex
 ;
Index: /trunk/SRC/ToBeReviewed/HOPE/rh_alldomains.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/rh_alldomains.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/rh_alldomains.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 PRO rh_alldomains, topid, selected
 ;
Index: /trunk/SRC/ToBeReviewed/HOPE/sortdim.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/sortdim.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/sortdim.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 
 
Index: /trunk/SRC/ToBeReviewed/HOPE/xrh.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/HOPE/xrh.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/HOPE/xrh.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 ; procedure to call read_hope in the widget mode
 PRO xrh, _extra = ex
Index: /trunk/SRC/ToBeReviewed/IMAGE/animgif.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/IMAGE/animgif.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/IMAGE/animgif.pro	(revision 142)
@@ -7,12 +7,16 @@
 ; Build a gif animation
 ;
-; @categories Animated drawings.
+; @categories 
+; Animated drawings.
 ;
-; @param toto.gif {in}{required} It is the name of the gif file containing the animation.
-;                         Comment: this file is placed in the directory defined by iodir.
+; @param NOMFIC {in}{required} 
+; It is the name of the gif file containing the animation.
+;          Comment: this file is placed in the directory defined by iodir.
 ;
-; @uses common.pro
+; @uses 
+; common.pro
 ;
-; @restrictions We use the Z buffer to go faster!.
+; @restrictions 
+; We use the Z buffer to go faster!.
 ;              So, if it failed in animgif, you have to do:
 ;              IDL> device, /close
@@ -20,13 +24,16 @@
 ;              IDL> retall
 ;
-; @restrictions If we want to delete the @common,
+; @restrictions 
+; If we want to delete the \ @common,
 ;               we have to define manually the picture's size 
 ;               (variables xsize and ysize) just as iodir.
 ;
-; @history Guillaume Roullet (grlod@ipsl.jussieu.fr)
+; @history 
+; Guillaume Roullet (grlod@ipsl.jussieu.fr)
 ;          Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;          30/4/1999
 ;
-; @version $Id$
+; @version 
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/INIT/initncdf.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/INIT/initncdf.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/INIT/initncdf.pro	(revision 142)
@@ -3,82 +3,87 @@
 ;------------------------------------------------------------
 ;+
-; NAME:initncdf
-;
-; PURPOSE:initfile for Netcdf file. define all the grid parameters
-;
-; CATEGORY:
-;
-; CALLING SEQUENCE:initncdf, ncfilename
+;
+; @file_comments
+; Initfile for Netcdf file. define all the grid parameters
+;
+; @categories
+;
 ; 
-; INPUTS:ncfilename: a string giving the name of the NetCdf file
-;
-; KEYWORD PARAMETERS:
-;
-;       GLAMBOUNDARY:a 2 elements vector, {lon1,lon2], the longitute
-;       boundaries that should be used to visualize the data.
-;         lon2 > lon1
-;         lon2 - lon1 le 360
-;       key_shift will be defined according to GLAMBOUNDARY.
-;
-;       /INVMASK: to inverse the mask: mask = 1-mask
-;
-;       IODIRECTORY;a string giving the name of iodirectory (see
-;       isafile.pro for all possibilities). default value is common 
-;       variable iodir
-;
-;       MASKNAME: a string giving the name of the variable in the file 
-;       that contains the land/sea mask
-;
-;       MISSING_VALUE: to define (or redifine if the attribute is
-;       already existing) the missing values used with USEASMASK
-;       keyword
-;
-;       /start1: index the axis from 1 instead of 0 when using
-;       /xyindex and/or zindex
-;
-;       USEASMASK: a string giving the name of the variable in the file 
-;       that will be used to build the land/sea mask. In this case the
-;       mask is based on the first record (if record dimension
-;       exists). The mask is build according to :
-;         1 the keyword missing_value if existing
-;         2 the attribute 'missing_value' if existing
-;         3 NaN values if existing
-;
-;       [XYZ]AXISNAME= a string giving the name of the variable in the file 
-;       that contains the [xyz]axis. 
-;       for X axis, default name must be 'x', 'longitude', 'nav_lon' or 'lon'.
-;       for Y axis, default name must be 'y', 'latitude', 'nav_lat' or 'lat'.
-;       for Z axis, default name must be 'z', 'level', 'lev', 'depth...'
-;
-;       [XYZ]MINMESH: to define the common variables i[xyz]minmesh
-;       used to define the grid only in a zoomed part of the original
-;       grid. Defaut values are 0L
-;
-;       [XYZ]MAXMESH: to define the common variables i[xyz]maxmesh
-;       used to define the grid only in a zoomed part of the original
-;       grid. Defaut values are jp[ijk]glo-1
-;
-;       /xyindex: to define the x/y axis with index instead of using
-;       the values contained in X/YAXISNAME. 
-;       x/yaxis = keyword_set(start1) + findgen(jpi/jpj) 
-;       this forces key_onearth = 0
-;
-;       /zindex: to define the z axis with index instead of using
-;       the values contained in ZAXISNAME. 
-;       zaxis = keyword_set(start1) + findgen(jpk) 
-;
-; OUTPUTS:none, except the grid parameters of the common.pro
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:change the grid parameters of the common.pro
-;
-; RESTRICTIONS:
+; @param NCFILEIN {in}{required}
+; A string giving the name of the NetCdf file
+;
+; @keyword INVMASK
+; To inverse the mask: mask = 1-mask
+;
+; @keyword MASKNAME
+; A string giving the name of the variable in the file 
+; that contains the land/sea mask
+;
+; @keyword MISSING_VALUE
+; To define (or redifine if the attribute is
+; already existing) the missing values used with USEASMASK
+; keyword
+;
+; @keyword START1
+; Index the axis from 1 instead of 0 when using
+; /xyindex and/or zindex
+;
+; @keyword USEASMASK
+; A string giving the name of the variable in the file 
+; that will be used to build the land/sea mask. In this case the
+; mask is based on the first record (if record dimension
+; exists). The mask is build according to :
+;    1 the keyword missing_value if existing
+;    2 the attribute 'missing_value' if existing
+;    3 NaN values if existing
+;
+; @keyword XAXISNAME
+; A string giving the name of the variable in the file 
+; that contains the [xyz]axis. 
+; for X axis, default name must be 'x', 'longitude', 'nav_lon' or 'lon'.
+;      
+; @keyword YAXISNAME
+; A string giving the name of the variable in the file 
+; that contains the [xyz]axis. 
+; for Y axis, default name must be 'y', 'latitude', 'nav_lat' or 'lat'.
+;
+; @keyword ZAXISNAME
+; A string giving the name of the variable in the file 
+; that contains the [xyz]axis. 
+; for Z axis, default name must be 'z', 'level', 'lev', 'depth...'
+;
+; @keyword XYINDEX
+; To define the x/y axis with index instead of using
+; the values contained in X/YAXISNAME. 
+; x/yaxis = keyword_set(start1) + findgen(jpi/jpj) 
+; this forces key_onearth = 0
+;
+; @keyword ZINDEX
+; To define the z axis with index instead of using
+; the values contained in ZAXISNAME. 
+; zaxis = keyword_set(start1) + findgen(jpk) 
+; 
+; @keyword _EXTRA
+; Used to pass your keywords/
+;
+; @uses
+; common.pro
+;
+; @restrictions
+; Change the grid parameters of the common.pro
+;
+; @restrictions
 ; the file must contain an x and an y axis. (1 ou 2 dimentional array)
 ;
-; EXAMPLE: IDL> initncdf,'toto.nc',glam=[-180,180]
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @examples
+;  IDL> initncdf,'toto.nc',glam=[-180,180]
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      8 May 2002
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/INIT/initncdfxxx.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/INIT/initncdfxxx.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/INIT/initncdfxxx.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 @cm_general
 
Index: /trunk/SRC/ToBeReviewed/INIT/initorca05.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/INIT/initorca05.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/INIT/initorca05.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 ;
 @cm_4mesh
Index: /trunk/SRC/ToBeReviewed/INIT/initorca2.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/INIT/initorca2.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/INIT/initorca2.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 ;
 @cm_4mesh
Index: /trunk/SRC/ToBeReviewed/INIT/initorca2full.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/INIT/initorca2full.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/INIT/initorca2full.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 ;
 @cm_4mesh
Index: /trunk/SRC/ToBeReviewed/LECTURE/binary.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/binary.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/binary.pro	(revision 142)
@@ -1,12 +1,13 @@
 ;+
-; Name:
-;   binary
-; Purpose:
-;   Returns the binary representation of a number of any numerical type.
-; Argument:
-;   number   scalar or array of numbers (any numerical type)
-; Returns:
-;   Byte array with binary representation of numbers.
-; Examples:
+; @file_comments
+; Returns the binary representation of a number of any numerical type.
+; 
+; @param NUMBER {in}{required}
+; scalar or array of numbers (any numerical type)
+; 
+; @Returns
+; Byte array with binary representation of numbers.
+; 
+; @Examples
 ;   Binary representation of 11b:
 ;     IDL> print, binary(11b)
@@ -25,5 +26,6 @@
 ;     alpha   vms     0fda4149 68c0a221     49 41 da 0f 21 a2 c0 68
 ;     (Beginning with IDL 5.1, Alpha VMS uses IEEE representation as well.)
-; Modification history:
+; 
+; @history:
 ;    19 Dec 1997  Originally a news posting by David Fanning.
 ;                       (Re: bits from bytes)
@@ -36,4 +38,8 @@
 ;      return exactly the same results (if IEEE).
 ;    7 May 2003     Added newish data types, unsigned and long64.  BT
+;
+; @version
+; $Id$
+;
 ;-
 function binary, number
Index: /trunk/SRC/ToBeReviewed/LECTURE/changeread.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/changeread.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/changeread.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 FUNCTION changeread, newread
 ;
Index: /trunk/SRC/ToBeReviewed/LECTURE/inverse_binary.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/inverse_binary.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/inverse_binary.pro	(revision 142)
@@ -1,32 +1,29 @@
 ;+
-; NAME: inverse_binary
 ;
-; PURPOSE: inverse function of the binary.pro function => given a
+; @file_comments
+; Inverse function of the binary.pro function => given a
 ; input array of 0/1, return its corresponding byte/integer/long
 ; representation
 ;
-; CATEGORY:
+; @categories
 ;
-; CALLING SEQUENCE: res = inverse_binary(binnum)
-;
-; INPUTS: 
-;    binnum must be a binary type array containing only 0 and 1.
-;    According to binary.pro outputs, binnum array must have the
-;    following dimensions values: (8, t, d1, d2...)
-;    t gives the output type: t = 1 -> byte
+; @param BINNUMB {in}{required}
+; Must be a binary type array containing only 0 and 1.
+; According to binary.pro outputs, binnum array must have the
+; following dimensions values: (8, t, d1, d2...)
+; t gives the output type: t = 1 -> byte
 ;                             t = 2 -> integer
 ;                             t = 4 -> long
 ;    
-;     (d1, d2...) are the output dimensions
+;  (d1, d2...) are the output dimensions
 ;
-; KEYWORD PARAMETERS: no
 ;
-; OUTPUTS: a byte/integer/long array with (d1, d2...) dimensions
+; @returns 
+; A byte/integer/long array with (d1, d2...) dimensions
 ;
-; COMMON BLOCKS: no
+; @restrictions
+; The binary number can represent only byte/integer/long
 ;
-; RESTRICTIONS:the binary number can represent only byte/integer/long
-;
-; EXAMPLE:
+; @examples
 ;
 ;     IDL> a=indgen(5)
@@ -54,7 +51,11 @@
 ;            0       1       2       3       4
 ;
-; MODIFICATION HISTORY:
+; @history
 ;      Sebastien Masson (smasson@jamstec.go.jp)
 ;      July 2004
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/LECTURE/litchamp.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/litchamp.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/litchamp.pro	(revision 142)
@@ -3,85 +3,84 @@
 ;------------------------------------------------------------
 ;+
-; NAME:litchamp
 ;
-; PURPOSE:permet de lire un simple tableau ou une structure
-; correspondant a un champ.
-; Si en entree on a :
-;   -un simple tableau, litchamp renvoie le tableau
-;   -une stucture, litchamp renvoie le premier element de la structure
-;   qui doit obligatoirement etre le champ sous forme d''un tableau.
-;   Au passage litchamp regarde les autres elements de la structure et
-;   met a jour si besoin les variables globales qui se rapportent au
-;   champ: vargrid, varname, varunit, vardate, varexp , valmask et time 
+; @file_comments
+; Allows to read an array or a sructure cooresponding to a field.
+; If we have in input: 
+;   -an array, litchamp send back the array.
+;   -a structure, litchamp send back the first element of the structure 
+;   which must be the field in an array.
+;   Litchamp profit of this to look other elements of the structure et
+;   update if needed global variables which refer to the field:
+;   vargrid, varname, varunit, vardate, varexp , valmask et time 
 ;
-; CATEGORY:permet d''appeler plt, pltz, pltt ... avec un tableau ou une
-; structure et de mettre a jour les variables globales liees au champ. 
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:res=litchamp(struct)
+; @param STRUCT {in}{required}
+; It is either an array or a structure.
+;  If STRUCT is a structure, it must follow following rules:
+;        -the first element is the array containing the field.
+;        -other elements are strings containing informations on the field exept
+;        for the one about the date. This one can be either a string to designate
+;        a particular date (ex: 'August 1999') or a vector of julian days (of IDL)
+;        corresponding  to the calendar to be associated with the field if it is a
+;        temporal series.
+;        -the order of elements (exept the first) has not any importance. 
+;        -the other elements (exept the first) are optional.
+;        -they are recognize by the first letter of their names:
+;             g  to update vargrid
+;             u  to update varunit
+;             e  to update varexp
+;             d  to update vardate
+;             n  to update varname
+;             m  to update valmask
 ;
-; INPUTS:
-;        struct: c''est soit un tableau soit une structure.
-;    Si struct est une structure, elle doit suivre les regles
-;    suivantes:
-;        -le premier element est le tableau contenant le champ.
-;        -les autres elements sont des strings qui contiennent des
-;        informations sur le champ SAUF pour l''element relatif a
-;        date. Ce dernier peut etre soit un string pour designer une date
-;        particuliere (ex: 'August 1999') ou bien un vecteur de jours
-;        juliens (d''IDL) correspondant au calendrier a associer au
-;        champ si c'est une serie temporelle.
-;        -l''ordre des elements (autre que le premier) n''a pas
-;        d''importance. 
-;        -les autres elements (autre que le premier) sont tous
-;        optionnels.
-;        -ils sont reconnus par la premiere lettre de leur nom:
-;             g  pour actualiser vargrid
-;             u  pour actualiser varunit
-;             e  pour actualiser varexp
-;             d  pour actualiser vardate
-;             n  pour actualiser varname
-;             m  pour actualiser valmask
+; @keyword GRID
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'g' if it exist 
+; and '' if it does not.
 ;
-; KEYWORD PARAMETERS:
+; @keyword UNIT
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'u' if it exist 
+; and '' if it does not.
 ;
-;        /GRID: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'g' si il existe et '' dans le cas contraire.
+; @keyword EXP
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'u' if it exist 
+; and '' if it does not.
 ;
-;        /UNIT: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'u' si il existe et '' dans le cas contraire.
+; @keyword DATE
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'd' if it exist 
+; and '' if it does not.
 ;
-;        /EXP: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'e' si il existe et '' dans le cas contraire.
+; @keyword NAME
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'n' if it exist 
+; and '' if it does not.
 ;
-;        /DATE: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'd' si il existe et '' dans le cas contraire.
+; @keyword LEVEL
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'l' if it exist 
+; and -1 if it does not.
+; 
 ;
-;        /NAME: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'n' si il existe et '' dans le cas contraire.
+; @keyword MASK
+; We activate this keyword if we want litchamp to send back the variable 
+; associated with the element of the structure starting by 'm' if it exist 
+; and -1 if it does not.
 ;
-;        /LEVEL: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'l' si il existe et -1 dans le cas contraire.
+; @returns
+; It is the array containing the field.
 ;
-;        /MASK: activer ce mot cle si on veut que litchamp renvoie la
-;        variable associee a l''element de la structure commencant
-;        par 'm' si il existe et -1 dans le cas contraire.
+; @uses
+; common.pro
 ;
-; OUTPUTS:c''est le tableau qui continent le champ.
+; @restrictions
+; Update if needed global variables vargrid,
+; varname, varunit, vardate, varexp, valmask and time.
 ;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS: actualise au besion les variables globales vargrid,
-; varname, varunit, vardate, varexp, valmask et time.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
+; @examples
 ;     
 ;    IDL> print, vargrid,', ', varname,', ', varunit,', ', vardate,', ', varexp     
@@ -97,6 +96,11 @@
 ; 
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       28/5/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -110,5 +114,5 @@
 @common
 ;------------------------------------------------------------
-   if size(struct, /type) ne 8 then BEGIN ; alors contour n''est pas une structure
+  if size(struct, /type) ne 8 then BEGIN ; so contour is not a structure.
       if keyword_set(grid) then return, ''
       if keyword_set(name) then return, ''
@@ -121,5 +125,5 @@
    ENDIF  
 ;------------------------------------------------------------
-   IF n_tags(struct) EQ 1 then BEGIN ; la structure n'a qu''un element
+   IF n_tags(struct) EQ 1 then BEGIN ; The structure has only one element.
       if keyword_set(grid) then return, ''
       if keyword_set(name) then return, ''
Index: /trunk/SRC/ToBeReviewed/LECTURE/ncdf_lec.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/ncdf_lec.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/ncdf_lec.pro	(revision 142)
@@ -3,40 +3,47 @@
 ;------------------------------------------------------------
 ;+
-; NAME:ncdflec
 ;
-; PURPOSE:donne des infos sur un fichier netcdf et permet de recupere
-; les variables qui y sont ecrites 
+; @file_comments
+; Give informations on a file net cdf and allows to recuperate 
+; variables which are write in.
 ;
-; CATEGORY:lecture de fichiers netcdf
+; @categories
+; Reading
 ;
-; CALLING SEQUENCE: res=ncdflec('nom_de _fichier')
+; @param NOM {in}{required}
+; Name of a file net cdf situated in the directory stipulated by iodir.
 ;
-; INPUTS:nom_de _fichier:nom d'un fichier net cdf situe ds e repertoire
-; stipule par iodir
+; @keyword ATT
+; 'global' or at the name of a variable. Allows to see all attributes 
+; joined at a variable
 ;
-; KEYWORD PARAMETERS:
+; @keyword DIM
+; Give the list of dimensions.
 ;
-;	ATT: 'global' ou au nom d'une variable. permet de voir tous les
-; attributs rattaches a une variable.
+; @keyword VAR
+;       1) /var: Gove the list of dimensions.
+;       2) var='nom de variable': in this case the function send back the variable.
 ;
-;	/DIM:donne la liste des dimensions
+; @keyword IODIR
+; String containing the directory containing the file to be read
 ;
-;	VAR:
-;       1) /var: donne la liste des variables
-;       2) var='nom de variable': ds ce cas la fonction retourne la variable
+; @keyword _EXTRA
+; Allows to pass keywords defined by IDL to functions NETCDF ( particularly OFFSET 
+; and COUNT in ncdf_varget)
 ;
-;       IODIR: string contenant le repertoire ou aller chercher le
-;       fichier a lire.
+; @returns
+; -1 (exept if var='nom de variable', then the function send back the variable).
 ;
-;       _EXTRA: permet de passer les mots cles definits par IDL pour
-;       les fonction NETCDF (en particulier OFFSET et COUNT ds ncdf_varget)
+; @restrictions
+; Variables's names of the program are similar to these used by the IDL manual 
+; 'scientific data formats'
 ;
-; OUTPUTS:-1 sauf si var='nom de variable' auquel cas la fonction retourne la variable
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       4/1/98
 ;
-; REMARQUE:les noms des variables du programme sont similaires a ceux employes
-; ds le manuel IDL 'scientific data formats'
+; @version
+; $Id$
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       4/1/98
 ;-
 ;------------------------------------------------------------
@@ -57,12 +64,12 @@
    endif
 ;------------------------------------------------------------
-; ouverture du fichier nom
+; opening of the file name.
 ;------------------------------------------------------------
    cdfid=ncdf_open(iodir+nom)
 ;------------------------------------------------------------
-; que contient le fichier??
+; Wht does the file contain??
 ;------------------------------------------------------------
    wathinside=ncdf_inquire(cdfid)
-;   print,'dans le fichier, ',iodir+nom,', il y a:'
+;   print,'in the file, ',iodir+nom,', there are:'
    if keyword_set(dim) then begin 
       print,'nombre de dimensions: ',strtrim(wathinside.ndims,1)
@@ -76,5 +83,5 @@
    endif
 ;------------------------------------------------------------
-; attributs globaux
+; Global attributes
 ;------------------------------------------------------------
    if keyword_set(att) then begin
@@ -82,6 +89,6 @@
       print,'ATTRIBUTS GLOBAUX'
       for attiq=0,wathinside.ngatts-1 do begin
-         name=ncdf_attname(cdfid,attiq,/global) ;nom de l''atribut
-         ncdf_attget,cdfid,name,value,/global ;valeur de l''atribut
+         name=ncdf_attname(cdfid,attiq,/global) ;attribute's name
+         ncdf_attget,cdfid,name,value,/global ;attribute's value
          print,name,': ',string(value)
       endfor
@@ -89,5 +96,5 @@
 nonglobal:
 ;------------------------------------------------------------
-; affichage des differentes dimensions
+; Display of different dimensions.
 ;------------------------------------------------------------
    if keyword_set(dim) then begin 
@@ -98,5 +105,5 @@
    tailledim=lonarr(wathinside.ndims)
    for dimiq=0,wathinside.ndims-1 do begin
-      ncdf_diminq,cdfid,dimiq,name,value ; nom et valeur de la dimension
+      ncdf_diminq,cdfid,dimiq,name,value ; dimension's name and value
       nomdim[dimiq]=name
       tailledim[dimiq]=value
@@ -107,21 +114,21 @@
    endfor
 ;------------------------------------------------------------
-; affichage des differentes variables
+; Display of different variables.
 ;------------------------------------------------------------
 ;
    if keyword_set(att) or keyword_set(var) then begin 
-; vature de var ? string ou 1
+; var's value? string or 1
    help, var, output = nature
    if (strpos(nature, 'STRING'))[0] NE -1 then nature = 'string' ELSE nature = '1'
-; si on doit juste lire la variable
+; If we just have to read the variable.
    if nature EQ 'string' then begin
       ncdf_varget, cdfid, var, res, _extra = ex
       GOTO, sortie
    ENDIF 
-; si c''est pour avoir des renseignements
+; If it is to have pieces of information.
    if not keyword_set(att) then att='rien'
       print, '----------------------------'
       for varid=0,wathinside.nvars-1 do begin
-         varcontent=ncdf_varinq(cdfid,varid) ; que contient la variable
+         varcontent=ncdf_varinq(cdfid,varid) ; What does variable contain??
          if strlowcase(att) eq strlowcase(varcontent.name) or keyword_set(var) $
           then begin
Index: /trunk/SRC/ToBeReviewed/LECTURE/read_ftp.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/read_ftp.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/read_ftp.pro	(revision 142)
@@ -1,4 +1,40 @@
+
+pro ftp_post, u, cmd, res, out=out, count=count
+  compile_opt idl2
+  if (cmd ne '') then begin
+    printf, u, cmd, format='(a)'
+;
+; comment out the following line to disable debug info
+    print, '>'+cmd
+  endif
+  if (size(out,/type) eq 0) then out='2?? *'
+  catch, err
+  if (err ne 0) then return
+  line=''
+  count=0
+  while arg_present(res) do begin
+    readf, u, line
+    if count eq 0 then res=line else res=[res,line]
+    count=count+1
+;
+; comment out the following line to disable debug info
+    print, '<'+line
+    if strmatch(line,out) then break
+  endwhile
+end
+
+pro ftp_parse_pasv, text, host, port
+  t=strtrim(text,2)
+  ind=where(strcmp(t,'227',3))
+  i=ind[0]
+  if (i ne -1) then begin
+    sub=stregex(t[i],'\([0-9,]*\)',/extract)
+    p=strsplit(strmid(sub,1,strlen(sub)-2),',',/extract)
+    p=strtrim(p,2)
+    host=p[0]+'.'+p[1]+'.'+p[2]+'.'+p[3]
+    port=256*long(p[4])+long(p[5])
+  endif
+end
 ;+
-; READ_FTP
 ;
 ; Syntax:
@@ -6,39 +42,36 @@
 ;              [,USER=string] [,PASS=string] [,/PTR]
 ;
-; Arguments
-;   remote_host - Name of the remote host (ftp server) that you want
-;                 to connect to, or a complete ftp location such as for example:
-;                      ftp://ftp.rsinc.com/pub/gzip/README.GZIP
+; @param DIR
+; Remote directory where the files reside on the ftp server
 ;
-;   directory - Remote directory where the files reside on the ftp
-;               server
+; @param FILES
+; A single filename or an array of filenames to be retrieved.
 ;
-;   files - A single filename or an array of filenames to be
-;           retrieved.
+; @keyword FILE
+; Set this keyword to make a local copy of the file to be
+; transferred.  The local file will have the same name as the
+; remote file and will be placed in the current working
+; directory.
 ;
-; Keywords
-;   FILE - Set this keyword to make a local copy of the file to be
-;          transferred.  The local file will have the same name as the
-;          remote file and will be placed in the current working
-;          directory.
+; @keyword DATA
+; Set this to a named variable that will contain either a
+; byte array or an array of pointers to byte arrays with the
+; transferred data.  If there is more than one file, an array
+; of pointers is returned, one for each file.
+; Note that when downloading large files using /FILE
+; instead will require much less memory since the entire file
+; is not stored in a variable in that case.
 ;
-;   DATA - Set this to a named variable that will contain either a
-;          byte array or an array of pointers to byte arrays with the
-;          transferred data.  If there is more than one file, an array
-;          of pointers is returned, one for each file.
-;          Note that when downloading large files using /FILE
-;          instead will require much less memory since the entire file
-;          is not stored in a variable in that case.
+; @keyword PTR
+; Set this keyword to return an array of pointers
+; even when there is only one file.
 ;
-;   PTR  - Set this keyword to return an array of pointers
-;          even when there is only one file.
+; @keyword USER
+; Specify user name to connect to server with.  Default is: anonymous.
 ;
-;   USER - Specify user name to connect to server with.  Default is:
-;          anonymous.
+; @keyword PASS
+; Specify password to use when connecting.  Default is: test@test.com.
 ;
-;   PASS - Specify password to use when connecting.  Default is:
-;          test@test.com.
-;
-; Examples of use.
+; @examples
 ; 1) Retrieve and print the contents of ftp://ftp.rsinc.com/pub/gzip/README.GZIP:
 ;   IDL> READ_FTP, 'ftp://ftp.rsinc.com/pub/gzip/README.GZIP', DATA=data
@@ -80,42 +113,12 @@
 ;   /COMPRESSED keyword.
 ;
+; @history
+;
+; @version
+; $Id$
+;
+; @todo seb: que fait-on de "syntax" au debut du header?
+; 
 ;-
-pro ftp_post, u, cmd, res, out=out, count=count
-  compile_opt idl2
-  if (cmd ne '') then begin
-    printf, u, cmd, format='(a)'
-;
-; comment out the following line to disable debug info
-    print, '>'+cmd
-  endif
-  if (size(out,/type) eq 0) then out='2?? *'
-  catch, err
-  if (err ne 0) then return
-  line=''
-  count=0
-  while arg_present(res) do begin
-    readf, u, line
-    if count eq 0 then res=line else res=[res,line]
-    count=count+1
-;
-; comment out the following line to disable debug info
-    print, '<'+line
-    if strmatch(line,out) then break
-  endwhile
-end
-
-pro ftp_parse_pasv, text, host, port
-  t=strtrim(text,2)
-  ind=where(strcmp(t,'227',3))
-  i=ind[0]
-  if (i ne -1) then begin
-    sub=stregex(t[i],'\([0-9,]*\)',/extract)
-    p=strsplit(strmid(sub,1,strlen(sub)-2),',',/extract)
-    p=strtrim(p,2)
-    host=p[0]+'.'+p[1]+'.'+p[2]+'.'+p[3]
-    port=256*long(p[4])+long(p[5])
-  endif
-end
-
 pro read_ftp, site, files, dir, port, data=data, file=file, user=user, $
               pass=pass, ptr=ptr
Index: /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf.pro	(revision 142)
@@ -3,5 +3,4 @@
 ;------------------------------------------------------------
 ;+
-; NAME: read_ncdf
 ;
 ; PURPOSE:fonction de lecture pour fichier net_cdf.
Index: /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf_varget.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf_varget.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/LECTURE/read_ncdf_varget.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 ; le format netcdf et IDL nous permet d''aller lire uniquement la partie de
 ; tableau qui nous interesse.
Index: /trunk/SRC/ToBeReviewed/MATRICE/colle.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/MATRICE/colle.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/MATRICE/colle.pro	(revision 142)
@@ -2,5 +2,5 @@
 ; @file_comments 
 ; This concatenation function exist in IDL so long 
-;as we do not try to stick with a dimension superior or equal at 4.  
+; as we do not try to stick with a dimension superior or equal at 4.  
 ;
 ; @categories utilities
@@ -48,26 +48,4 @@
 ; @param a20 {in}{required}
 ;
-; @param CAS 1 {in}{required}
-;        table_of_pointer: It is a table of pointers, where each 
-;        element point on a table to stick
-;       
-;        For exemple, in a program, we want to stick n table ones with others.
-;
-;          tab=ptrarr(n,/allocate_heap)
-;          for i=0,n-1 do begin
-;             *tab[n]=replicate(n,2,3)
-;          endfor
-;          res=colle(tab,1)
-;
-; @param CAS 2 {in}{required}
-;        we directly give tables to stick
-;        Comment: In this case, the plus we can give is 20 tables.
-;
-;        BEWARE: whitout the keyword /SAUVE entry arguments are 
-;                delete when, we build res. In the first case,we 
-;                delete the table of pointers and variables on which we point.
-;
-; @param direc {in}{required} The direction on which stick them, 1,2,3... 
-;
 ; @keyword SAUVE mot cle qui force a sauvegarder le tableau de
 ;         pointeur et les tableaux a coller.
@@ -98,19 +76,19 @@
    res = -1
 ;------------------------------------------------------------
-; on met en place ptrtab et direc en fonction des arguments en entree
+; We put in place ptrtab and direc in function of input arguments
 ;------------------------------------------------------------
    case 1 of
-      n_params() EQ 2:BEGIN     ; cas ou l'on donne directement le tableau de pointeurs
+      n_params() EQ 2:BEGIN     ; case where we directly give the pointer array
          ptrtab = a0
          direc = a1
          if NOT keyword_set(sauve) then undefine, a0
-; on recupere le nombre de tableaux a coller
+; on recuperate the number of array to be pasted.
          nbretab = (size(ptrtab))[1]
       end
       n_params() GT 2:BEGIN
-; on recupere le nombre de tableaux a coller
+; on recuperate the number of array to be pasted.
          nbretab = n_params()-1
          bidon = execute('direc = a'+strtrim(n_params()-1, 2))
-; on ecrit le tableau de pointeur dont chaque element pointe sur un tableau
+; We write the pointer array whose each element point on an array.
          ptrtab=ptrarr(nbretab,/allocate_heap)
          for n = 0,nbretab-1 do begin
@@ -123,8 +101,8 @@
    endcase
 ;------------------------------------------------------------
-; case sur la valeure de direc
+; case on the direct's value.
 ;------------------------------------------------------------
    case direc of
-      1:BEGIN                   ; on colle suivant la dimension 1
+      1:BEGIN                   ; we paste following the dimension 1
          res = *ptrtab[0]
          if NOT keyword_set(sauve) then ptr_free, ptrtab[0]
@@ -134,5 +112,5 @@
          ENDFOR 
       END 
-      2:BEGIN                   ; on colle suivant la dimension 2
+      2:BEGIN                   ; we paste following the dimension 2
          res = *ptrtab[0]
          if NOT keyword_set(sauve) then ptr_free, ptrtab[0]
@@ -142,5 +120,5 @@
          ENDFOR 
       END 
-      3:BEGIN                   ; on colle suivant la dimension 3
+      3:BEGIN                   ; we paste following the dimension 3
          res = *ptrtab[0]
          if NOT keyword_set(sauve) then ptr_free, ptrtab[0]
@@ -151,7 +129,7 @@
       END
       ELSE:BEGIN 
-; on transpose res de facon a mettre la dimension a coller numero 1.
-; pour cela on contient le vecteur permute qui donne la place que
-; doivent prendre les dimensions ds la matrice transposee
+; We transpose res in order to put the dimension to be pasted number 1
+; To this, we contain the permuter vector which give the place that dimension 
+; in the transposed matrix must take.
         siz = (size(*ptrtab[0]))[0]
          if siz LT direc then $
@@ -162,5 +140,5 @@
          res = transpose(*ptrtab[0], permute)
          if NOT keyword_set(sauve) then ptr_free, ptrtab[0]
-         FOR n = 1,nbretab-1 DO BEGIN ; on colle suivant la dimension 1
+         FOR n = 1,nbretab-1 DO BEGIN ; we paste following the dimension 1on colle suivant la dimension 1
             if (size(*ptrtab[n]))[0] LT direc then $
              *ptrtab[n] = reform(*ptrtab[n], [(size(*ptrtab[n]))[1:siz], replicate(1, direc-siz)])            
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/bar_plot.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/bar_plot.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/bar_plot.pro	(revision 142)
@@ -1,86 +1,88 @@
-; $Id$
-;
-; Copyright (c) 1990-2000, Research Systems, Inc.  All rights reserved.
-;	Unauthorized reproduction prohibited.
-;
 ;+
-; PURPOSE:
-;	Create a bar graph, or overplot on an existing one.
-;
-; CATEGORY:
-;	Graphics.
-;
-; CALLING SEQUENCE:
-;	BAR_PLOT, Values
-;
-; INPUTS:
-;	Values:	A vector containing the values to be represented by the bars.
-;		Each element in VALUES corresponds to a single bar in the
-;		output.
-;
-; KEYWORD PARAMETERS:
-;   BASELINES:	A vector, the same size as VALUES, that contains the
-;		base value associated with each bar.  If not specified,
-;		a base value of zero is used for all bars.
-;
-;      COLORS:	A vector, the same size as VALUES, containing the color index
-;		to be used for each bar.  If not specified, the colors are
-;		selected based on spacing the color indices as widely as
-;		possible within the available colors (specified by D.N_COLORS).
-;
-;    BARNAMES:	A string array, containing one string label per bar.
-;		If the bars are vertical, the labels are placed beneath
-;		them.  If horizontal (rotated) bars are specified, the labels
-;		are placed to the left of the bars.
-;
-;	TITLE:	A string containing the main title to for the bar plot.
-;
-;	XTITLE:	A string containing the title for the X axis.
-;
-;	YTITLE:	A string containing the title for the Y axis.
-;
-;   BASERANGE:	A floating-point scalar in the range 0.0 to 1.0, that
-;		determines the fraction of the total available plotting area
-;		(in the direction perpendicular to the bars) to be used.
-;		If not specified, the full available area is used.
-;
-;    BARWIDTH:	A floating-point value that specifies the width of the bars
-;		in units of "nominal bar width".  The nominal bar width is
-;		computed so that all the bars (and the space between them,
-;		set by default to 20% of the width of the bars) will fill the
-;		available space (optionally controlled with the BASERANGE
-;		keyword).
-;
-;    BARSPACE: 	A scalar that specifies, in units of "nominal bar width",
-;		the spacing between bars.  For example, if BARSPACE is 1.0,
-;		then all bars will have one bar-width of space between them.
-;		If not specified, the bars are spaced apart by 20% of the bar
-;		width.
-;
-;   BAROFFSET:	A scalar that specifies the offset to be applied to the
-;		first bar, in units of "nominal bar width".  This keyword
-;		allows, for example, different groups of bars to be overplotted
-;		on the same graph.  If not specified, the default offset is
-;		equal to BARSPACE.
-;
-;     OUTLINE:	If set, this keyword specifies that an outline should be
-;		drawn around each bar.
-;
-;    OVERPLOT:	If set, this keyword specifies that the bar plot should be
-;		overplotted on an existing graph.
-;
-;  BACKGROUND:	A scalar that specifies the color index to be used for
-;		the background color.  By default, the normal IDL background
-;		color is used.
-;
-;	ROTATE:	If set, this keyword indicates that horizontal rather than
-;		vertical bars should be drawn.  The bases of horizontal bars
-;		are on the left, "Y" axis and the bars extend to the right.
-;
-; OUTPUTS:
-;	A bar plot is created, or an existing one is overplotted.
-;
-; EXAMPLE:
-;	By using the overplotting capability, it is relatively easy to create
+; 
+; @file_comments 
+; Create a bar graph, or overplot on an existing one.
+;
+; @categories 
+; Graphics
+;
+; @param Values {in}{required} 
+; A vector containing the values to be represented by the bars.
+; Each element in VALUES corresponds to a single bar in the
+; output.
+;
+; @keyword BASELINES 
+; A vector, the same size as VALUES, that contains the
+; base value associated with each bar.  If not specified,
+; a base value of zero is used for all bars.
+;
+; @keyword COLORS 
+; A vector, the same size as VALUES, containing the color index
+; to be used for each bar.  If not specified, the colors are
+; selected based on spacing the color indices as widely as
+; possible within the available colors (specified by D.N_COLORS).
+;
+; @keyword BARNAMES 
+; A string array, containing one string label per bar.
+; If the bars are vertical, the labels are placed beneath
+; them.  If horizontal (rotated) bars are specified, the labels
+; are placed to the left of the bars.
+;
+; @keyword TITLE 
+; A string containing the main title to for the bar plot.
+;
+; @keyword XTITLE 
+; A string containing the title for the X axis.
+;
+; @keyword YTITLE 
+; A string containing the title for the Y axis.
+;
+; @keyword BASERANGE 
+; A floating-point scalar in the range 0.0 to 1.0, that
+; determines the fraction of the total available plotting area
+; (in the direction perpendicular to the bars) to be used.
+; If not specified, the full available area is used.
+;
+; @keyword BARWIDTH 
+; A floating-point value that specifies the width of the bars
+; in units of "nominal bar width".  The nominal bar width is
+; computed so that all the bars (and the space between them,
+; set by default to 20% of the width of the bars) will fill the
+; available space (optionally controlled with the BASERANGE
+; keyword).
+;
+; @keyword BARSPACE 
+; A scalar that specifies, in units of "nominal bar width",
+; the spacing between bars.  For example, if BARSPACE is 1.0,
+; then all bars will have one bar-width of space between them.
+; If not specified, the bars are spaced apart by 20% of the bar
+; width.
+;
+; @keyword BAROFFSET 
+; A scalar that specifies the offset to be applied to the
+; first bar, in units of "nominal bar width".  This keyword
+; allows, for example, different groups of bars to be overplotted
+; on the same graph.  If not specified, the default offset is
+; equal to BARSPACE.
+;
+; @keyword OUTLINE 
+; If set, this keyword specifies that an outline should be
+; drawn around each bar.
+;
+; @keyword OVERPLOT 
+; If set, this keyword specifies that the bar plot should be
+; overplotted on an existing graph.
+;
+; @keyword BACKGROUND 
+; A scalar that specifies the color index to be used for
+; the background color.  By default, the normal IDL background
+; color is used.
+;
+; @keyword ROTATE 
+; If set, this keyword indicates that horizontal rather than
+; vertical bars should be drawn.  The bases of horizontal bars
+; are on the left, "Y" axis and the bars extend to the right.
+;
+; @examples By using the overplotting capability, it is relatively easy to create
 ;	stacked bar charts, or different groups of bars on the same graph.
 ;
@@ -118,6 +120,5 @@
 ;	this could easily be changed.)
 ;
-; MODIFICATION HISTORY:
-;	August 1990, T.J. Armitage, RSI, initial programming.  Replacement
+; @history August 1990, T.J. Armitage, RSI, initial programming.  Replacement
 ;	for PLOTBAR and OPLOTBAR routines written by William Thompson.
 ;
@@ -125,4 +126,7 @@
 ;	appearance of the bar plots in the default mode. Included
 ;	spacing the bars slightly.
+;
+; $Id$
+;
 ;-
 pro bar_plot,values,baselines=baselines,colors=colors,barnames=barnames, $
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt.pro	(revision 141)
+++ /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.
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt1d.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt1d.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/plt1d.pro	(revision 142)
@@ -1,157 +1,109 @@
 ;------------------------------------------------------------
 ;+
-; NAME:
-;	PLT1D
-;
-; PURPOSE:
-;	trace des graphes 1d
-;
-; CATEGORY:
-;       Graphics, trace des graphes 1d: x,y,z (ou t mais ds ce cas, on
-;       rapelle directement pltt)
-;
-; CALLING SEQUENCE:
-;	plt1d, champ,type [,min[, max]]
-;
-; INPUTS:
-;	champ: le champ dont on veut faire le hovmoller champ
-;	peut etre de 2 types:
-;	1) un tableu qui peut etre:
-;          * 2d, 3d ou 4d:  tableau xy, xyz. xyt ou xyzt. dans ce cas,
-;            le tableau va passer dans moyenne ou grossemoyenne pour
-;            etre moyennee et devenir un tableau 1 1d. 
-;          * 1d:type doit qd meme etre specifie pour qu''on sache de
-;          quel trace il sagit. Pour avoir une legende correcte,
-;          respecifier la zone d''extraction via BOXZOOM
-;       2) une structure repondant aux critaires specifies par
-;       litchamp.pro. cf. IDL> xhelp,'litchamp'. Le tableau contennu ds
-;       la structure repondant aux criteres du cas 1) cf. ci-dessus
-;
-;       TYPE: un string: type de plot 1d que l''on veut faire:
-;       trace suivant: 'x','y','z'  
-;
-; ces arguments ne sont pas obligatoires:
+;
+; @file_comments
+; Trace 1d graphes: x,y,z (or t but in this case, we recall directly pltt)
+;
+; @categories
+; Graphics
+;
+; @param TAB {in}{required} 
+; The field whose we want to make the hovmoller map can be 2 kind of thing:
+;	1) An array which can be:
+;          * 2d, 3d or 4d:  array xy, xyz. xyt or xyzt. In this case, the array will pass 
+;          in moyenne or grossemoyenne to be averaged and becomme  an array 1d. 
+;          * 1d:Nevertheless, the type must be specified in order to we know which trace 
+;          it is about. To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+;       2) a structure respecting all criterions specified by litchamp.pro. 
+;          See IDL> xhelp,'litchamp'. The array contained in the structure 
+;          respecting criterions of case 1) 
+;
+; @param PARAM2 {in}{required} 
+; Min value we want to consider in the contour's drawing.
+; Note: could also be the type of plot:'x','y','z'
 ;  
-;	MAX: valeur maximum que l'on veut prendre en compte dans le trace
-; du plot. Par defaut on prend le max de tableau (sur les pts mer)
-;
-;	MIN: valeur minimum que l'on veut prendre en compte dans le trace
-; du plot. Par defaut on prend le min de tableau (sur les pts mer)
-;
-; KEYWORD PARAMETERS:
-;
-;	BOXZOOM:vecteur indiquant la zone geographique (3d) sur laquelle doit
-; etre fait l''extraction du champ pour faire le hovmoeller.
-; 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, vert1, vert2]
-; 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,vert1,vert2 sont les variables globales
-; definies lors du dernier domdef!
-;
-;       COL1d: --OBSOLETE--numero de la couleur qd on fait un trace 1d
-;       par defaut, 0. il faut mieux utiliser le mot cle COLOR utilise
-;       par plot
-;
-;       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-;       verticale en diagonale. les coordonnees des extremites de
-;       celle-ci sont alors definies les 4 elements du vecteur
-;       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-;
-;	/LANDSCAPE: oblige la feuille ou le fenetre a l''ecran a etre
-;	en position "allongee".
-;	
-;       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.
-;
-;       /NOERASE: activer pour faire un dessin a l''ecran sans creer
-; une nouvelle fenetre. Rq: activer ds le cas d''un Postscript de
-; plusieurs traces de type 't' pour ne pas faire un Postscript de
-; plusieurs pages 
-;
-;       /OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d.
-;
-;	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)
-;
-;       /SIN: activer ce mot cle si l''on veut que l'' axe des x soit
-;       trace en sinus de la latitude qd on fait un frace f(y)
-;
-;       STY1D: --OBSOLETE--numero du style utilise lors d'un trace
-;       1d. Il faut mieux utiliser le mot cle LINESTYLE qui est celui
-;       de plot. Attention ce mot cle est encore utile si on veut
-;       faire des barres plutot qu'un courbe, mettre sty1d='bar'
-;
-;	/TRANS: fait un postscript (active /post automatiquement) et l'imprime
-; -si on le desire- sur un transparant
-;
-;	WINDOW: nimero 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 defaut=1
-; 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: creation 24/6/99 Eric Guilyardi 
-;                       (a partir routine pltt de Sebastien Masson)
+; @param PARAM3 {in}{optional}{default=min/max of tab (on ocean points)} 
+; Max value we want to consider in the contour's drawing.
+; Note: if param2 is defined as 'x','y','z' then param3 is used to define the min (see param2)
+;
+; @param PARAM4 {in}{optional}{default=max of tab (on ocean points)} 
+; Type of plot (can be only 'x','y','z' for plt1d).
+; Note: if param2 is defined as 'xy' then param4 is used to define the max (see param3)
+;
+; @keyword BOXZOOM
+; Vector indicating the geographique zone (3d) on which the extraction of the field must 
+; be done to do the hovmoeller.
+;  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, vert1, vert2]
+; 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,vert1,vert2 are global variables defined at the last domdef!
+;
+; @keyword COL1d
+;  --OBSOLETE--Color number when we make a trace 1d by default, 0.It is better to use the 
+; keyword COLOR used by plot.
+;
+; @keyword ENDPOINTS 
+; keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+; of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+; coordinates.
+;
+; @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 OV1D
+; Allow the double exposure of an 1d curve to a precedent 1d trace.
+;
+; @keyword REVERSE_X 
+; To invert the x axis (so as the drawing)
+;
+; @keyword REVERSE_Y 
+; To invert the y axis (so as the drawing)
+;
+; @keyword SIN 
+; Activate this keyword if we want the x axis to be traced in sinus of the 
+; latitude when we make a drawing f(y)
+;
+; @keyword STY1D 
+; --OBSOLETE--
+; Number of the style used when we make a 1d drawing. We should better use the 
+; keyword LINESTYLE which is tho one of the plot. Beware, this keyword is still 
+; useful if we want to d bars instead of curves, put sty1d='bar'
+;
+; @keyword TYPEIN
+; allows to specify the type of hovmoller we want to do
+;             'xt','yt','zt','t'  
+; with help of a keyword rather than the argument type. If the argument andthe 
+; keyword are specified in the same time, it is the value specified by the 
+; keyword which is retained.
+;
+; @keyword _EXTRA 
+; used to pass your keywords
+;
+; @history 
+; creation 24/6/99 Eric Guilyardi 
+; (a partir routine pltt de Sebastien Masson)
 ; 8/7/1999 Sebastien Masson (smasson@lodyc.jussieu.fr) 
 ; inspection des travaux finis
 ; 8/2/2000 Sebastien Masson: checkfield
+;
+; @version 
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-pro plt1d, tab, giventype, givenmin, givenmax, BOXZOOM = boxzoom, SIN = sin $
+pro plt1d, tab, param2, param3, param4, BOXZOOM = boxzoom, SIN = sin $
            , MININ = minin, MAXIN = maxin, TYPEIN = typein, ENDPOINTS = endpoints $
            , COL1D = col1d, STY1D = sty1d, OV1D = ov1d, X = x, Y = y, Z = z, TT = tt $
@@ -172,14 +124,14 @@
   tempsun = systime(1)          ; pour key_performance
 ;--------------------------------------------------------------
-; 1ere partie: initialisation et petits calculs...
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-;--------------------------------------------------------------
-; verification de la valeur de type
-;--------------------------------------------------------------
-;
-  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
+; 1st part: initialization small calculations...
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+; verification of the type's value
+;--------------------------------------------------------------
+;
+  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
@@ -201,10 +153,10 @@
   endif
 ;--------------------------------------------------------------
-; I2) reinitialisation. !p.,!x.,!y.
-; Rq: on ne reinitialise pas qd on rapelle plt1d
+; I2) reinitialization. !p.,!x.,!y.
+; Comment: We do not reinitializate when we call back plt1d
 ;--------------------------------------------------------------
   if NOT keyword_set(ov1d) then reinitplt
 ;--------------------------------------------------------------
-; I1) lecture du champ
+; I1) Reading of the field
 ;--------------------------------------------------------------
    if (keyword_set(boxzoom) OR keyword_set(endpoints)) THEN BEGIN
@@ -233,7 +185,7 @@
     IF keyword_set(savedbox) THEN restoreboxparam, 'boxparam4plt1d.dat'
     return
-  endif
-; on construit le mask pour cela le tableau doit etre masque (fait
-; automatiquement a la valeure valmask si on passe ds moyenne ou grossemoyenne)
+endif
+; We build the mask. For this, the array must be hidden (Automaticaly done at valmask 
+; value if we pass in moyenne or grossemoyenne)
   mask = fltarr(n_elements(z1d))
   if n_elements(valmask) EQ 0 then valmask = 1e20
@@ -246,5 +198,5 @@
   ENDIF ELSE mask[where(z1d LT valmask/10)] = 1
 ;-----------------------------------------------------------------------------
-; determination du min et du max apres la moyenne
+; determination of the min and of the max after the average
 ;-----------------------------------------------------------------------------
   nan = total(finite(z1d, /nan)) < 1
@@ -256,11 +208,11 @@
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
-; 2eme partie: dessin
-;--------------------------------------------------------------
-;-----------------------------------------------------------------------------
-; definition des vecteurs abscisse et ordonee
-; la triangulation est definie pour que le trace soit effectue du bas
-; a gauche vers le haut a droite. il faut donc la matrice e contourer
-; se presente de cette maniere, d''ou certains transpose et reverse
+; 2nd part: Drawing
+;--------------------------------------------------------------
+;-----------------------------------------------------------------------------
+; definition of the abscisse and ordinate vectors.
+; The triangulation is defined in order to the drawing be done from the 
+; left bottom to the right up. So the matrix have to be shown like this, 
+; from which some transpose and reverse
 ;-----------------------------------------------------------------------------
 ;-----------------------------------------------------------------------------
@@ -299,5 +251,5 @@
 ;-----------------------------------------------------------
 ;-----------------------------------------------------------
-;   definition des axes
+;   definition of axes
 ;----------------------------------------------------------
 ;    if keyword_set(integrationtps) then axe, type, time[0], time[jpt-1], SIN = sin, _extra = ex $
@@ -306,5 +258,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; dessin
+; drawing
 ;------------------------------------------------------------
 ;------------------------------------------------------------
@@ -345,5 +297,5 @@
   yy = yy[idx]
   if (not keyword_set(col1d)) then col1d = 0
-  if keyword_set(sty1d) then BEGIN ;si on veut faire des barres
+  if keyword_set(sty1d) then BEGIN ;If we want to make bars
     IF strlowcase(strtrim(sty1d)) EQ 'bar' then begin
       !y.range = [!y.range[0]-(!y.range[1]-!y.range[0])*.05, !y.range[1]] 
@@ -352,5 +304,5 @@
         colors    = replicate(col1d, n_elements(yy)), /outline
       if n_elements(ex) NE 0 then BEGIN 
-; pour avoir un cadre de la couleur noire
+; To have a black frame
         if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = 0
       ENDIF
@@ -364,5 +316,5 @@
     plot, xx, yy, color = col1d, linestyle = sty1d, thick = 2, title = '', subtitle = '', _extra = ex
     if n_elements(ex) NE 0 then BEGIN 
-; pour avoir un cadre de la couleur 0 et trace une ligne a y=0
+; To have a 0 colored frame and trace a line at y=0
       if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = 0
       if (where(tag_names(ex) EQ 'LINESTYLE'))[0] NE -1 then ex.LINESTYLE = 0
@@ -373,12 +325,12 @@
                       ((type EQ 'x' AND lat1 NE lat2) OR (type EQ 'y' AND lon1 NE lon2))) $
       , ystyle = 1, _extra = ex
-; ajout d'un axe ds le cas ou l'on utilise endpoints
+; Add of an axis in the case where we use endpoints
     if keyword_set(endpoints) then addaxe, endpoints, type, posfenetre, _EXTRA = ex
-; trace une ligne a x=0
+; Trace a line at x=0
     plot, [0, 0], !y.range, /noerase, /nodata, title = '', subtitle = '', _extra = ex
   ENDIF ELSE oplot, xx, yy, color = col1d, linestyle = sty1d, thick = 2, _extra = ex
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; 3eme partie: impression eventuelle
+; 3rd part: Possible print.
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltbase.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltbase.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltbase.pro	(revision 142)
@@ -3,111 +3,111 @@
 ;------------------------------------------------------------
 ;+
-; NAME:pltbase
-;
-; PURPOSE: surcouche de contour pour tracer un champ eventuellement
-; masque. brique elementaire de plt, pltz et pltt.
-;
-; CATEGORY:un tarce vite fait et/ou delestage de l''ecriture de plt, pltz, pltt
-;
-; CALLING SEQUENCE: pltbase, z2d, x, y, mask,xm, ym, [, levels, colors],
-;
-; INPUTS:
-;        z2d:le tableau a tracer
-;
-;        x et y les axes. vecteurs ou tableaux de meme taille que
-;        z2d. Ce sont les coordonnees de z2d
-;
-;        mask: le tableau qui masque z2d (avec des 0 sur les points a
-;        masquer et des 1 sur les autres). si z2d n'est pas masque
-;        mettre cet argument egale a 1.
-;
-;        xm et ym les axes du mask. vecteurs ou tableaux de meme taille que
-;        mask. Ce sont les coordonnees de mask
-;
-;        levels et colors: (optionnels) les vecteurs qui contiennent
-;        les niveaus et les couleurs necessaires au contour. S''il ne
-;        sont pas donnes on prends 20 niveau entre le min et le max.
-;
-; KEYWORD PARAMETERS:
-;
-;        COLORTRICHAMP : la couleur que l''on veut utiliser pour
-;        dessiner la triangulation qui est utilisee pour faire les
-;        contour du champ
-;
-;        COLORTRIMASK : la couleur que l''on veut utiliser pour
-;        dessiner la triangulation qui est utilisee pour faire les
-;        contour du mask
-;
-;        COAST_COLOR: the color of the coastline.
-;                     defaut value is 0 => black
-;
-;        COAST_THICK: the thickness of the coastline.
-;                     defaut value is 1
-;
-;        COLOR_C: to draw the contour in color instead of in black
-;        with filling in color 
-;
-;        /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
+;
+; @file_comments
+; Overlayer contour to trace a field which can be mask. 
+; Elementary brick of plt, pltz et pltt.
+;
+; @categories graphic
+;
+; @param Z2D {in}{required}
+; The table to trace
+;
+; @param X {in}{required}
+; Axis. Vector or array of the same size that z2d. This is the coordinate of z2d on x.
+;
+; @param Y {in}{required}
+; Axis. Vector or array of the same size that z2d. This is the coordinate of z2d on y.
+;
+; @param MASK {in}{required}
+; It is the array who mask z2d (with 0s on points we want to mask and 1s on others). 
+; If z2d is not masked, put this argument equal to 1.
+;
+; @param XM {in}{required}
+; Axis of the mask. Vector or array of the same size that mask. 
+; This is the coordinate of mask on x.
+;
+; @param YM {in}{required}
+; Axis of the mask. Vector or array of the same size that mask. 
+; This is the coordinate of mask on y.
+;
+; @param LEVELS {in}{optional}
+; Vectors which contain levels needed at the contour. 
+; If it is not given, we take 20 levels between the min and the max.
+;  
+; @param COLORS {in}{optional}
+; Vectors which contain colors needed at the contour. 
+; If it is not given, we take 20 levels between the min and the max.
+;
+; @keyword COLORTRICHAMP 
+; The color we want to use to draw the triangulation which is used to make contours of the field.
+;
+; @keyword COLORTRIMASK 
+; The color we want to use to draw the triangulation which is used to make contours of the mask.
+;
+; @keyword COLOR_C 
+; To draw the contour in color instead of in black
+; with filling in color 
+;
+; @keyword /CONT_NOFILL 
+; Activate it not to fill the point mask to let them transparent! 
+; Comment: Nevertheless, we trace mask's contour.
+;
+; @keyword CONT_COLOR 
+; The color of the continent. defaut value is
 ;        (!d.n_colors - 1) < 255 => white
 ;
-;        /DESSTRICHAMP: pour dessiner la triangulation qui est
-;        utilisee pour faire les contour du champ. 
-;
-;        /DESSTRIMASK: pour dessiner la triangulation qui est
-;        utilisee pour faire les contour du mask
-;
-;        /FORPLT: a activer si on veut que le trace des cote soit
-;        realise par tracecote plutot que tracemask.
-;
-;        I_COLORS: un vecteur specifiant la couleur a utiliser pour
-;        tracer les contours. C''est la meme chose que c_colors qui
-;        ajit sur les contours.
-;
-;        MORE: chiffre a donner pour eviter les bug du style:
+; @keyword /DESSTRICHAMP 
+; To draw the triangulation which is used to make field's contours. 
+;
+; @keyword /DESSTRIMASK 
+; To draw the triangulation which is used to make mask's contours.
+; 
+; @keyword /FORPLT 
+; To activate if we want that the drawing of coast be realized by tracecote rather than tracemask.
+;
+; @keyword I_COLORS 
+; It is a vector specifing the colors to use to trace contours. 
+; It is the same thing that c_colors which act on contours.
+;
+; @keyword MORE 
+; Number to give to avoid style's bugs:
 ;  % Out of range subscript encountered: <LONG      Array[38911]>.
 ;  % Execution halted at:  PLTBASE           151
-;             par defaut more=10 si le bug existe tjs, augmenter la
-;             valeur de more! (l''explication et la justification de
-;             cette methode n''ont pas encore de fondements
-;             scientifiques)...
-;         
-;
-;
-;        /NOFILL: pour faire juste les isolignes
-;
-;        /NOCONTOUR: pour faire juste les couleurs
-;
-;        /UNSUR2: pour tarcer une isoligne sur 2
-;
-;        UNLABSUR: entier n. specifant qu''on ne labelle qu''un
-;        contour sur n
-;
-;        CONTOUR: pour etrte utilise depuis plt, pltz ou pltt. cf ces
-;        routines.
-;
-;        _EXTRA: mot cle magique d''idl pour faire passer tous lse
-;        mots cles acceptes par les routines et fonctions utilises ds
-;        ce programme sans les declarer explicitement. 
-;
-; OUTPUTS:
-;
-; COMMON BLOCKS:
-;        common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:ds le cas ou z2d, x et y sont des tableaux de meme
-; taille il faut les metre sous forme de vecteur: z2d[*], x[*], y[*].
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       ????
-;                       8/2/2000 check if the tri array is not equal to
-;                       -1. allow contour with out using a triangulation.
+;             By default more=10 If the bug still exist, increase the value of more! 
+; (The explanation and the justification of this method do not have scientific bases yet...).
+;
+; @keyword /NOFILL
+; To make just isolines.
+;
+; @keyword /NOCONTOUR
+; To make just colors.
+;
+; @keyword /UNSUR2 To trace one isoline on two.
+;
+; @keyword UNLABSUR 
+; Is an integer n. specifying we only label one contour on two
+;
+; @keyword CONTOUR 
+; To be used since plt, pltz or pltt. (Have a look on these routines).
+;
+; @keyword _EXTRA 
+; Used to pass your keywords
+;
+; @uses
+; common.pro
+;
+; @restrictions
+; In the case of z2d, x and y are arrays of same size, we hate to put them as vectors: z2d[*], x[*], y[*].
+;
+; @history
+;  Sebastien Masson (smasson@lodyc.jussieu.fr)
+; ????
+; 8/2/2000 check if the tri array is not equal to
+; -1. allow contour with out using a triangulation.
+; 
+; @version
+; $Id$
+;
+; @todo seb L.172 à 173
 ;
 ;-
@@ -145,19 +145,19 @@
 ;---------------------------------------------------------
 ;
-; explication concernant contour. Ce mot cle est active qd on on trace
-; un contour en couleur different de celui en trait noir.
-; si il est active (cas n_elements(contour) NE 0), on passe 2 fois ds pltbase:
-;   1) on trace les couleurs puis on sort c''est le cas:
+; Explanation concerning contour. This keyword is activated when we trace a 
+; colored contour different from the one with black trait.
+; If it is activated (case n_elements(contour) NE 0), we pass 2 time in pltbase:
+;   1) We trace colors then we leave, it is the case:
 ;         n_elements(contour) NE 0 AND n_elements(contour) NE 4)
-;   2) on trace les contour en trait puis les continents c''est le cas 
+;   2) We trace contours in traits then continents, it is the case: 
 ;         n_elements(contour) NE 0 AND n_elements(contour) EQ 4)
 ;
 ;------------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
+  tempsun = systime(1)          ; To key_performance
   if n_elements(mask) EQ 0 then mask = 1b
   if n_elements(masknan) EQ 0 then masknan = 1b
   IF total(mask) EQ n_elements(z2d) THEN mask = 1b
 ;----------------------------------------------------------------------
-; si les niveaux et les couleurs ne sont pas donnes
+; If levels and colors aren't given
 ;----------------------------------------------------------------------
   if n_params() EQ 4 then $ 
@@ -168,6 +168,5 @@
     plot, [0], [0], xstyle = 5, ystyle = 5, /nodata, /noerase, title = '', subtitle = ''
 ;----------------------------------------------------------------------
-; si cell_fill fait partit de _extra, on le desactive si il n''est pas
-; egale a 2
+; Is cell_fill is a part of _extra, we desactive it if it is nt equal to 2
 ;----------------------------------------------------------------------
   IF chkstru(ex, 'CELL_FILL') THEN BEGIN 
@@ -176,5 +175,5 @@
   ENDIF ELSE cell_fill = 0      ;
 ;----------------------------------------------------------------------
-; I) remplissage des contours en palette de couleur 
+; I) Filling of contours in palette colors 
 ;----------------------------------------------------------------------
   if NOT keyword_set(more) then more = 10
@@ -200,5 +199,5 @@
   IF chkstru(ex, 'C_COLORS') THEN ex = extractstru(ex, 'C_COLORS')
 ;------------------------------------------------------------
-; II) trace des contours en trait
+; II) Drawing of contours in traits
 ;------------------------------------------------------------
   if n_elements(contour) EQ 4 OR n_elements(contour) EQ 0 THEN BEGIN
@@ -215,13 +214,13 @@
     ENDIF   
 ;
-; on ne passe pas si on doit faire des contours differents...
-; ds le cas on unsur2 est active on reduit levels
+; We do not pass if we have to make differents contours...
+; In the case of unsur2 is activated, we reduce levels
     if NOT keyword_set(nocontour) then begin
       IF keyword_set(unsur2) THEN levels = levels[where(zeroun(n_elements(levels) ) eq 1)]
-; unlabsur est active?  C_LABEL est passe via _EXTRA?
+; Is unlabsur activated?  Does C_LABEL passed via _EXTRA?
       if keyword_set(unlabsur) THEN IF chkstru(ex, 'C_LABELS') THEN $
         ex.C_LABELS = 1-((indgen(n_elements(ex.C_LABELS)) MOD unlabsur) < 1)
 ;
-; pour ne pas filler qd cell_fill est impose...
+; Not to fill when cell_fill is imposed...
       IF chkstru(ex, 'CELL_FILL') THEN ex.CELL_FILL = 0
 ;
@@ -248,5 +247,5 @@
     ENDIF
 ;----------------------------------------------------------------------
-; III) remplissage des continents de couleur
+; III) Filling of colored continents.
 ;----------------------------------------------------------------------
     IF chkstru(ex, 'CELL_FILL') THEN ex.CELL_FILL = cell_fill < 1
@@ -255,7 +254,6 @@
     IF NOT keyword_set(cont_color) THEN cont_color = (!d.n_colors-1) <  255    
 ;
-; si il y a des points a nan 
-; on trace en blanc les points a nan avant de dessiner les cotes avec
-; un trait.
+; If there is points at NaN 
+; We trace points in white at NaN bafore drawing coasts with a trait.
 ;
     if keyword_set(trinan) THEN BEGIN
@@ -273,8 +271,8 @@
     ENDIF
 ;
-; remplissage des continents
+; Filling of continents
 ;
     if keyword_set(realcont) then if realcont EQ 1 then mask = 1b
-    if n_elements(mask) NE 1 then BEGIN ; si mask=1 on saute.
+    if n_elements(mask) NE 1 then BEGIN ; If mask=1 we gap it.
 ;
       if NOT keyword_set(cont_nofill) then BEGIN
@@ -308,5 +306,5 @@
       ENDIF                     ; NOT keyword_set(cont_nofill)
 ;------------------------------------------------------------
-; IV) trace les cotes en trait
+; IV) Trace coast in traits
 ;------------------------------------------------------------
       case 1 of
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltsc.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltsc.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltsc.pro	(revision 142)
@@ -1,2 +1,7 @@
+;+
+;
+; @todo seb
+;
+;-
 PRO  pltsc,tab1,tab2, min1, max1, min2, max2, varname2, BOXZOOM = boxzoom, $
            COL1D=col1d,STY1D=sty1d,OV1D=ov1d, _extra = ex
@@ -18,5 +23,5 @@
 ;--------------------------------------------------------------
 
-; Rq: on ne reinitialise pas qd on rapelle pltsc
+; Comment: We do not reinitializate when we call back pltsc
    if NOT keyword_set(ov1d) then reinitplt
    ;; reduce data xyzt domain
@@ -74,15 +79,15 @@
 
       if n_elements(ex) NE 0 then BEGIN 
-; pour avoir un cadre de la couleur 0 et trace une ligne a y=0
+; To have a 0 colored frame and trace a line at y=0
          if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = 0
          if (where(tag_names(ex) EQ 'LINESTYLE'))[0] NE -1 then ex.LINESTYLE= 0
        ENDIF
        plot, !x.range, [0, 0], /noerase, /nodata, xstyle = 1, ystyle = 1, _extra = ex
-; trace une ligne a x=0
+; trace a line at x=0
       plot, [0, 0], !y.range, /noerase, /nodata, title = '', subtitle = '', _extra = ex
    ENDIF ELSE oplot,xx,yy,color=col1d,linestyle=sty1d,thick=2, _extra = ex
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; 3eme partie: impression eventuelle
+; 3rd part: Possible print
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltt.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltt.pro	(revision 142)
@@ -1,42 +1,28 @@
 ;------------------------------------------------------------
 ;+
-; NAME:
-;	PLTT
-;
-; PURPOSE:
-;	trace des graphes hovmoller
-;
-; CATEGORY:
-;       Graphics, trace des graphes hovmoller: xt,yt,zt,t
-;
-; CALLING SEQUENCE:
-;	pltt, champ,type [,min[, max[, datmin[, datmax]]]]
-;
-; INPUTS:
-;	champ: le champ dont on veut faire le hovmoller champ
-;	peut etre de 2 types:
-;	1) un tableu qui peut etre:
-;          * 3d ou 4d: la derniere composante etant le temps. dans ce
-;            cas, le tableau va passer dans grossemoyenne pour etre
-;            moyennee suivant et devenir un tableau 2d ou 1d.
-;          * 2d: si tableau est deja 2d, il n''est pas modifie
-;            (attention les terres doivent etre masquees a la valeure
-;            valmask) et type doit qd meme etre specifie pour qu''on
-;            sache de quel trace il sagit. Pour avoir une legende
-;            correcte, respecifier la zone d''extraction via BOXZOOM
-;          * 1d: uniquement pour les traces de type 't'. Type doit qd
-;            meme etre specifie pour qu''on sache de quel trace il
-;            sagit. Pour avoir une legende correcte, respecifier la zone
-;            d''extraction via BOXZOOM
-;       2) une structure repondant aux critaire specifies par
-;       litchamp.pro. cf. IDL> xhelp,'litchamp'. Le tableau contennu ds
-;       la structure repondant aux criteres du cas 1) cf. ci-dessus
-;
-;       TYPE: type de hovmoller que l''on veut faire:
-;             'xt','yt','zt','t'  
-;
-; ces arguments ne sont pas obligatoires:
+;
+; @file_comments 
+; Trace hovmoller graphs: xt,yt,zt,t
+;
+; @categories Graphics
+;
+; @param TAB {in}{required} 
+; The field whose we want to make the hovmoller map can be 2 kind of thing:
+;	1) An array which can be:
+;          * 3d or 4d: array  'xt','yt','zt','t'. The last component is the time. In this case, the array will 
+;            pass in grossemoyenne to be averaged and become an 1d or 2d array.
+;          * 2d: If the array is already 2d, it is not modified (beware, lands must 
+;            be masked at the value valmask) and nevertheless,type must be specified 
+;            to we know of which trace it is about.
+;            To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+;          * 1d: only for traces of the 't' type. Nevertheless, type must be specified 
+;            to we know of which trace it is about.
+;            To have a correct caption, respecify the  xctraction zone via BOXZOOM.
+;       2) a structure respecting all criterions specified by litchamp.pro. 
+;          See IDL> xhelp,'litchamp'. The array contained in the structure 
+;          respecting criterions of case 1) 
 ;  
-;	MAX: valeur maximum que l''on veut prendre en compte dans le trace
+; PARAM:	
+;       MAX: valeur maximum que l''on veut prendre en compte dans le trace
 ; des contours. Par defaut on prend le max de tableau (sur les pts mer)
 ;
@@ -51,229 +37,137 @@
 ;       longinteger de la forme yyyymmdd (ou bien yymmdd)
 ;
-; KEYWORD PARAMETERS:
-;
-;	BOXZOOM:vecteur indiquant la zone geographique (3d) sur laquelle doit
-; etre fait l''extraction du champ pour faire le hovmoeller.
-; 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, vert1, vert2]
-; 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,vert1,vert2 sont les variables globales
-; definies lors du dernier domdef!
-;
-;      CB_TITLE: le titre de la colorbar
-;
-;      CB_SUBTITLE: le soustitre de la colorbar
-;
-;      CB_CHARSIZE: The character size of the color bar annotations
-;
-;        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 reponadnt aux meme caracteristiques
-; que l''argument numero 1 de pltt
-;
-;       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-;       verticale en diagonale. les coordonnees des extremites de
-;       celle-ci sont alors definies les 4 elements du vecteur
-;       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-;
-;       /EXCHANGE_XY: permet d''intervertir les axes.
+; @keyword BOXZOOM
+; Vector indicating the geographique zone (3d) on which the extraction of the field must 
+; be done to do the hovmoeller.
+;  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, vert1, vert2]
+; 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,vert1,vert2 are global variables defined at the last domdef!
+;
+; @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 pltt.
+;
+; @keyword ENDPOINTS 
+; keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+; of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+; coordinates. 
+;
+; @keyword EXCHANGE_XY
+; Allows to invert axes.
 ; 
-;       FILTER: applique une moyenne glissante de largeur FILTER
+; @keyword FILTER
+; Apply a slippery average of width FILTER
 ; 
-;	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)
+; @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. 
-;	
-;       COL1d: --OBSOLETE--numero de la couleur qd on fait un trace 1d
-;       par defaut, 0. il faut mieux utiliser le mot cle COLOR utilise
-;       par plot
-;
-;       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.
-;
-;	CONTNLEVEL: nombre de contours a dessiner qd on utilise ajoutcontour
-; active par le mot cle CONTOUR.(actif si CONTLABEL=0) par defaut =20.
-;
-;	/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. Rq: activer ds le cas d''un Postscript de
-; plusieurs traces de type 't' pour ne pas faire un Postscript de
-; plusieurs pages 
-;
-;       /OV1D:permet de surimprimer un courbe 1d a un precedent trace 1d.
-;
-;       OVERPLOT: pour faire un pltt par dessus un autre. Rq:
-;       contrairemnet a l''utilisation de CONTOUR,
-;       l''utilisation de ce mot clef ne modifie pas la legende ou/et
-;       la barre de couleur. dans le cas d''un plot 1d, contrairement
-;       a ov1d, on peut changer les axes et les ranges.
-;
-;	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
-;
-;       REPEAT_C=n pour repeter une serie temporelle n fois
-;
-;	/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
-;
-;       STY1D: --OBSOLETE--numero du style utilise lors d''un trace
-;       1d. Il faut mieux utiliser le mot cle LINESTYLE qui est celui
-;       de plot. Attention ce mot cle est encore utile si on veut
-;       faire des barres plutot qu''une courbe, mettre sty1d='bar'
-;
-;	/TRANS: fait un postscript (active /post automatiquement) et l''imprime
-; -si on le desire- sur un transparant
-;
-;        TREND_TYPE: modify data by calling trends.pro
-;
-;        TYPEIN: permet de specifier la valeur type de hovmoller que
-;        l''on veut faire:
+; @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. 
+;
+; @keyword COL1d
+; --OBSOLETE--Color number when we make a trace 1d by default, 0.It is better to use the 
+; keyword COLOR used by plot.
+;
+; @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 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 OV1D 
+; Allows to overprint a 1d curve over a precedent 1d drawing.
+;
+; @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 STY1D 
+; --OBSOLETE--
+; Number of the style used when we make a 1d drawing. We should better use the 
+; keyword LINESTYLE which is tho one of the plot. Beware, this keyword is still 
+; useful if we want to d bars instead of curves, put sty1d='bar'
+;
+; @keyword TREND_TYPE
+; Modify field by calling trends.pro
+;
+; @keyword TYPEIN
+; allows to specify the type of hovmoller we want to do
 ;             'xt','yt','zt','t'  
-;       a l''aide d''un mot cle plutot que par l''argument type Si
-;       l''argument et le mot cle sont specifies en meme temps, c''est
-;       la valeur specifiee par le mot cle qui est retenue.
-;
-;       /USETRI: pour forcer a utiliser de triangulation.
-;
-;        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
-;
-;	WINDOW: nimero 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 defaut=1
-; 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)
+; with help of a keyword rather than the argument type. If the argument andthe 
+; keyword are specified in the same time, it is the value specified by the 
+; keyword which is retained.
+;
+; @uses
+; common.pro
+;
+; @history 
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;			27/5/98
 ;                       Jerome Vialard (adapting plt to hovmoller drawing)
@@ -281,6 +175,5 @@
 ;                       Sebastien Masson 14/8/98 (continents,barres)
 ;                       15/1/98
-; adaptation pour les tableaux 3 et 4d pour que la moyenne soit faite
-; dans pltt plutot que lors de la lecture.
+; Adaptation for arrays 3 and 4d to the average be done in pltt rather than during the reading.
 ;                       Sebastien Masson 14/8/98 
 ;                       7/1999 
@@ -289,4 +182,9 @@
 ;                       Sebastien Masson 08/02/2000 checkfield and
 ;                       usetri keyword.
+; 
+; @version 
+; $Id$
+;
+; @todo seb: L.24 à 36, L.426 à 427, L. 492 à 493
 ;-
 ;------------------------------------------------------------
@@ -318,13 +216,13 @@
 ;--------------------------------------------------------------
 ;------------------------------------------------------------
-   tempsun = systime(1)         ; pour key_performance
-;--------------------------------------------------------------
-; I2) reinitialisation. !p.,!x.,!y.
-; Rq: on ne reinitialise pas qd on rapelle plt en boucle pour utiliser contour
+   tempsun = systime(1)         ; For key_performance
+;--------------------------------------------------------------
+; I2) reinitialization. !p.,!x.,!y.
+; Comment: we do not reinitializate when we call back plt in loop to use contour.
 ;--------------------------------------------------------------
    if n_elements(contour) ne 4 AND NOT keyword_set(overplot) $
     AND NOT keyword_set(ov1d) then reinitplt
 ;--------------------------------------------------------------
-; I1) lecture du champ
+; I1) Reading of the field.
 ;--------------------------------------------------------------
    if (keyword_set(boxzoom) OR keyword_set(endpoints)) $
@@ -371,5 +269,5 @@
    ENDELSE
 ;---------------------------------------------------------------
-; calcul de tendance/anomaly suivant TREND_TYPE
+; Calculation of trend/anomaly following TREND_TYPE
 ;---------------------------------------------------------------
 
@@ -379,5 +277,5 @@
 
 ;---------------------------------------------------------------
-; filtrage des donnee dans le cas 't' 
+; Filtering of fields in the 't' case. 
 ;---------------------------------------------------------------
 
@@ -390,5 +288,5 @@
 
 ;---------------------------------------------------------------
-; repetition de la serie temporelle
+; Repetition of the temporal series
 ;---------------------------------------------------------------
 
@@ -410,5 +308,5 @@
 
 ;---------------------------------------------------------------
-; selection du type de graphique. 
+; Selection of graphic's type. 
 ;---------------------------------------------------------------
    taille=size(z2d)
@@ -427,12 +325,12 @@
             !x.range=!x.range-tempsmin
             !x.tickv=!x.tickv-tempsmin
-; on fait un faux plot pour appliquer ces changements!
+; We do a false plot to apply these changes!
             plot,[0], [0],/noerase,xstyle=5, ystyle = 5, title = '', subtitle = '', ytitle = '', xtitle = ''
             goto, trace1d
          endif
       end
-   endcase
-; on construit le mask pour cela le tableau doit etre masque (fait
-; automatiquement a la valeur valmask si on passe ds moyenne ou grossemoyenne)
+  endcase
+; We build the mask. For that, the table must be masked (automaticaly done at the 
+; value valmask if we pass in moyenne or grossemoyenne)
    nan = total(finite(z2d,/nan)) < 1
    if n_elements(valmask) EQ 0 then valmask = 1e20
@@ -447,9 +345,9 @@
 ;    min: min pour le dessin.
 ;-----------------------------------------------------------------------------
-; 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, MININ = min, MAXIN = max, nan = nan, INTERVALLE = intervalle, _extra = ex
    if z2d[0] EQ -1 THEN return
-; on fait un autoscale si besoin
+; We do an autoscale if needed.
    if autoscale then autoscale, min, max, intervalle
 ;-----------------------------------------------------------------------------
@@ -459,17 +357,17 @@
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
-; 2eme partie: dessin
+; 2nd part: drawing
 ;--------------------------------------------------------------
 ;-----------------------------------------------------------
-;   definition des axes
+;   definition of axis
 ;----------------------------------------------------------
 ;-----------------------------------------------------------------------------
-; definition des vecteurs abscisse et ordonee
-; la triangulation est definie pour que le trace soit effectue du bas
-; a gauche vers le haut a droite. il faut donc la matrice e contourer
-; se presente de cette maniere, d''ou certains transpose et reverse
-;-----------------------------------------------------------------------------
-;-----------------------------------------------------------------------------
-; definition des bornes de l''axe temporel
+; definition of the abscisse and ordinate vectors.
+; The triangulation is defined in order to the drawing be done from the 
+; left bottom to the right up. So the matrix have to be shown like this, 
+; from which some transpose and reverse
+;-----------------------------------------------------------------------------
+;-----------------------------------------------------------------------------
+; definition of limits of the temporal axis
 ;-----------------------------------------------------------------------------
    case N_PARAMS() OF
@@ -533,5 +431,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; dessin
+; drawing
 ;------------------------------------------------------------
 ; 2d
@@ -539,5 +437,5 @@
    if (typdes eq '2d') then begin
 ;--------------------------------------------------------------
-; choix des labels
+; choice of labels
 ;-----------------------------------------------------------
       if keyword_set(intervalle) AND NOT keyword_set(label) then label=1
@@ -546,5 +444,5 @@
              , INTERVALLE = intervalle, strictfill = strictfill
 ;--------------------------------------------------------------
-; choix de style
+; choice of style
 ;-----------------------------------------------------------
       if not keyword_set(style) then style=0
@@ -556,5 +454,5 @@
 ;
       if keyword_set(nan) then BEGIN
-;         xx = xx#replicate(1, nby) ; on passe les axes en tableaux 2d
+;         xx = xx#replicate(1, nby) ; We make a 2d array with axes
 ;         yy = replicate(1, nbx)#yy
          masknan = finite(z2d)
@@ -575,6 +473,6 @@
        , coinmontemask=coinmontemask, coindescendmask=coindescendmask, _extra = ex
 ;------------------------------------------------------------
-      if n_elements(contour) eq 4 then BEGIN ; c''est la 2eme fois que je passe ds pltt
-         contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; je renvoie le min, le max et l''unite
+      if n_elements(contour) eq 4 then BEGIN ; it is the second time I pass in pltt
+         contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; I send back the min, the max and the unity
          return
       endif
@@ -594,5 +492,5 @@
       if keyword_set(overplot) then GOTO, fini
 ;------------------------------------------------------------
-; Trace de la ligne de changement de date or the equator
+; Trace the line of change of date and the equator.
 ;------------------------------------------------------------
       IF key_onearth THEN BEGIN
@@ -604,5 +502,5 @@
       ENDIF
 ;------------------------------------------------------------
-; legendes + affichage de celles-ci
+;  caption + display of these.
 ;------------------------------------------------------------
       legende,mi,ma,type, CONTOUR = pourlegende, DIREC = direc, INTERVALLE = intervalle $
@@ -641,5 +539,5 @@
       if keyword_set(endpoints) then addaxe, endpoints, type, posfenetre, _EXTRA = ex
 ;------------------------------------------------------------
-; barre de couleur
+; color bar
 ;------------------------------------------------------------
       colnumb = colnumb[0:ncontour-1-keyword_set(strictfill)]
@@ -654,5 +552,5 @@
    if (typdes eq '1d') then begin
       if (not keyword_set(col1d)) then col1d = 0
-      if keyword_set(sty1d) then BEGIN ;si on veut faire des barres
+      if keyword_set(sty1d) then BEGIN ;if we want to make bars
          IF strlowcase(strtrim(sty1d)) EQ 'bar' then begin
             !y.range = [!y.range[0]-(!y.range[1]-!y.range[0])*.05,!y.range[1]] 
@@ -661,5 +559,5 @@
              colors    = replicate(col1d, n_elements(yy)), /outline
             if n_elements(ex) NE 0 then BEGIN 
-; pour avoir un cadre de la couleur noire
+; To have a black frame
               if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = 0
             ENDIF
@@ -691,5 +589,5 @@
 ; => so we draw the top axis by hand using axis.
          if n_elements(ex) NE 0 then BEGIN 
-; pour avoir un cadre de la couleur noire
+; To have a black frame
             if (where(tag_names(ex) EQ 'COLOR'))[0] NE -1 then ex.COLOR = 0
          ENDIF
@@ -711,6 +609,5 @@
 fini:
 ;------------------------------------------------------------
-; on remet l''axe du temps en jours julien IDL et non pas en jours
-; juliens comptes a partir tempsmin 
+; we reput time axis in IDL julian days and not in julian days count from tempsmin 
 ;------------------------------------------------------------
    if type EQ 'xt' then BEGIN 
@@ -721,11 +618,10 @@
       !x.tickv=!x.tickv+tempsmin
    ENDELSE
-; on fait un faut plot pour que ces valeurs soient prises en
-; consideration
+; We do a false plot to these values are considerated
    plot, [0], [0], /nodata, /noerase, xstyle = 5, ystyle = 5 $
      , title = '', subtitle = '', ytitle = '', xtitle = ''
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; 3eme partie: impression eventuelle
+; 3rd part: possible print
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltz.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltz.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/pltz.pro	(revision 142)
@@ -3,27 +3,18 @@
 ;------------------------------------------------------------
 ;+
-; NAME:
-;	PLTZ
-;
-; PURPOSE:
-;	trace des graphes verticaux
-;
-; CATEGORY:
-;       Graphics
-;
-; CALLING SEQUENCE:
-;	pltz, champ [,min[, max]]
-;
-; INPUTS:
-;	champ: le champ dont on veut faire la coupe verticale champ
-;	peut etre de 2 types:
-;         1) un tableau 2d ou 3d. 
-;         Si le champ est 2d undiquer avec le mot cle boxzoom les
-;         delimitations geographiques de la boxzoom. Si le chyamp est
-;         3d, on extrait la section et on moyenne eventuellement avant
-;         de faire le plot
-;         2) une structure repondant aux critaire specifies par
-;         litchamp.pro. cf. IDL> xhelp,'litchamp'. le tableau contenu
-;         ds la structure doit etre 2 ou 3d cf cas 1) si dessus
+;
+; @file_comments 
+; Trace vertical graphs.
+;
+; @categories 
+; Graphics
+;
+; @param TAB 
+; The field whose we want to make a vertical cut can be 2 kind of thing:
+;         1) An 2d or 3d array. 
+;         If the field is 2d, indicate, with the keyword BOXZOOM, geographic delineations of the boxzoom. 
+;         If the field is 3d, we extract the section on we average possibly before to do the plot.
+;         2)  a structure respecting all criterions specified by litchamp.pro. 
+;          See IDL> xhelp,'litchamp'. The array contin in the structure must be 2 or 3d (See case 1)
 ;
 ; ces arguments ne sont pas obligatoires:
@@ -35,219 +26,139 @@
 ; 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, 200]
-; 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!
-;
-;      CB_TITLE: le titre de la colorbar
-;
-;      CB_SUBTITLE: le soustitre de la colorbar
-;
-;      CB_CHARSIZE: The character size of the color bar annotations
-;
-;	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. 
-;
-;        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
-;
-;	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 reponadnt aux meme caracteristiques
-; que l''argument numero 1 de pltz
-;
-;       ENDPOINTS: mot clef specifiant que l'on veut faire une coupe
-;       verticale en diagonale. les coordonnees des extremites de
-;       celle-ci sont alors definies les 4 elements du vecteur
-;       ENDPOINTS: [x1,y1,x2,y2] qui sont les coordonnees 
-;
-;	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 utilisee pour colorier le graphe
-;             (sans toucher au noir, au blanc et a la palette utilisee)
-;
-;	ZRATIO: lorsque le dessin presente une partie zoomee, rapport de
-; taille entre la partie zommee, hz (hauteur zoom), et le dessin entier, ht
-; (hauteur total). Par defaut =2./3
-;
-;	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 la fenetre a etre en position
-;	"allongee"
-;
-;       LCT: entier designant le numero de la palette de couleur que
-;       l''on veut utiliser pour le plot. 
-;	
-;       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
-;
-;       /NOTRI: pour forcer a ne pas utiliser de triangulation.
-;
-;       OVERPLOT: pour faire un plt par dessus un autre. Rq:
-;       contrairemnet a l''utilisation de CONTOUR,
-;       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
-;
-;       /SIN: activer ce mot cle si l''on veut que l'' axe des x soit
-;       trace en sinus de la latitude qd on fait une coupe 'yz'
-;
-;       /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
-;
-;	/TRANS: fait un postscript (active /post automatiquement) et l'imprime
-; -si on le desire- sur un transparant
-;
-;        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
-;
-;	WINDOW: nimero de la fenetre ou l'on veut faire le graphe (permet
-; d'ouvrir plusieurs fenetres). par defaut on ouvre 'IDL0'
-;
-;       /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;
-;       /XZ: force a faire une coupe xz
-;
-;       /YZ: force a faire une coupe yz
-;
-;	YXASPECT: rapport d'echelle entre y et x (par ex: =1 pour un repere
-; presque orthonorme, =2 si l'axe des y est environ 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
+; @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 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 ENDPOINTS 
+; keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+; of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+; coordinates. 
+;
+; @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)
+;
+; @keyword ZRATIO
+; When the drawing has a zoomed part, it is the size rapport between the zoomed part, 
+; hz (zoom height), and the whole drawing, ht (total height). By default =2./3
+;
+; @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. 
+;
+; @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.
 ; 
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;
-;	ZOOM: profondeur jusqu'a laquelle on fait un zoom. par defaut 200m ou
-; la profondeur maximale si elle est inf a 200
-;
-;       /ZEROMIDDLE: fo force the middle of the colorbar to be equal
-;       to 0 (force max=max(abs([min,max])) and min=-max)
-;
-; OUTPUTS:
-;
-; 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.
+; @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 SIN 
+; Activate this keyword if we want the x axis to be traced in sinus of the 
+; latitude when we make a drawing f(y)
+;
+; @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 WDEPTH 
+; To specify that the field is at W depth instead of T 
+; depth (automatically activated if vargrid eq 'W')
+;
+; @keyword XZ
+; Force to make a cut following xz
+;
+; @keyword YZ
+; Force to make a cut following yz
+;
+; @keyword ZOOM 
+; Depth where i can make our maximum zoom. By default 200m or max depth if it is inferior at 200m
+;
+; @uses
+; common.pro
+;
+; @history
+;  Sebastien Masson (smasson@lodyc.jussieu.fr)
+; 7/1999
+; Sebastien Masson 08/02/2000 checkfield and
+; notri keyword.
+;
+; @version
+; $Id$
+;
+; @todo seb L.20 à 26, L.215 à 221
+;
 ;-
 ;------------------------------------------------------------
@@ -277,15 +188,15 @@
   ENDIF
 ;--------------------------------------------------------------
-  tempsun = systime(1)          ; pour key_performance
-;------------------------------------------------------------
-;--------------------------------------------------------------
-; 1ere partie: initialisation et petits calculs...
-;--------------------------------------------------------------
-;on ne reinitialise pas qd on rapelle pltz en boucle pour utiliser contour
+  tempsun = systime(1)          ; For key_performance
+;------------------------------------------------------------
+;--------------------------------------------------------------
+; 1st part: initialization small calculations...
+;--------------------------------------------------------------
+; Comment: we do not reinitializate when we call back plt in loop to use contour.
   if n_elements(contour) ne 4 AND NOT keyword_set(overplot) then reinitplt
 ;
   if n_elements(contour) ne 4 THEN saveboxparam, 'boxparam4pltz.dat'
 ;--------------------------------------------------------------
-; lecture du champ
+;  Reading of the field.
 ;--------------------------------------------------------------
   if n_elements(giventype) NE 0 then type = giventype
@@ -352,17 +263,17 @@
   z2d = reverse(z2d, 2)
 ;-----------------------------------------------------------------------------
-;   determination du mi:min et du ma:max de tab1 ainsi que de max: max et
-;   min: min pour le dessin.
+; 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.
 ;-----------------------------------------------------------------------------
   nan = total(finite(z2d, /nan)) < 1
-; 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, MININ = min, MAXIN = max, nan = nan, INTERVALLE = intervalle, _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
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
-; 2eme partie: dessin
+; 2nd part: drawing
 ;--------------------------------------------------------------
 ;--------------------------------------------------------------
@@ -372,5 +283,5 @@
 ;------------------------------------------------------------
 ;--------------------------------------------------------------
-; choix des labels
+; choice of labels
 ;-----------------------------------------------------------
   if keyword_set(intervalle) AND NOT keyword_set(label) then label = 1
@@ -379,5 +290,5 @@
          , INTERVALLE = intervalle, strictfill = strictfill
 ;--------------------------------------------------------------
-; choix de style
+; choice of style
 ;-----------------------------------------------------------
   if not keyword_set(style) then style = 0
@@ -385,10 +296,10 @@
   if keyword_set(inv) then colnumb = reverse(colnumb)
 ;-----------------------------------------------------------
-;   definition des axes
+;   definition of axes
 ;----------------------------------------------------------
   if NOT keyword_set(overplot) THEN axe, type, SIN = sin, _EXTRA = ex
   !y.range = [-1, 0]
 ;--------------------------------------------------------------
-; extrapolation des donnees sur les terres et seuillage
+; extrapolation of datas on lands and specifying of the min/max value
 ;--------------------------------------------------------------
 ; define masknan
@@ -403,5 +314,5 @@
                   , mask = mask*masknan, /basique $
                   , /fillxdir, _extra = ex)
-; if some lines contains no data (the bottom line for ex) it must be
+; if some lines contains no field (the bottom line for ex) it must be
 ; also filled with 8 neighbourg method
     IF (where(total(mask*masknan, 1) EQ 0))[0] NE -1 THEN $
@@ -459,8 +370,8 @@
     , REALSECTION = realsection, USETRI = usetri, _extra = ex
 ;------------------------------------------------------------
-; rappelle de pltz en boucle qd contour est active
-;------------------------------------------------------------
-  if n_elements(contour) eq 4 then BEGIN ; c''est la 2eme fois que je passe ds pltt
-    contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; je renvoie le min, le max et l''unite
+; recall of pltz in loop when contour is activated
+;------------------------------------------------------------
+  if n_elements(contour) eq 4 then BEGIN ; It is the second time I pass in pltt
+    contour = {mietma:[mi, ma], unit:varunit, inter:intervalle} ; I send back the min, the max and the unity
     return
   endif
@@ -479,32 +390,32 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; 3eme partie: dessin du cadre, legendes, colorbar...
+; 3rd part: drawing of the frame, caption, colorbar...
 ;------------------------------------------------------------
   if keyword_set(overplot) then BEGIN 
-    !y.range =  [zoom, profmin] ; on repasse en coordonees physiques!
+    !y.range =  [zoom, profmin] ; We get back on physic coordinates
     plot, [0], [0], /nodata, /noerase, title = '', subtitle = '', xstyle = 5, ystyle = 5
     GOTO, fini
   endif
 ;------------------------------------------------------------
-; legendes + affichage de celles-ci
+; Caption + dysplay of them
 ;------------------------------------------------------------
   legende, mi, ma, type, CONTOUR = pourlegende, INTERVALLE = intervalle, DIREC = direc, endpoints = endpoints, _EXTRA = ex
   if type eq 'yz' then xaxe = 'lataxe' else xaxe = 'lonaxe'
   if keyword_set(sin) OR NOT key_onearth then xaxe = ''
-; cadre applique par defaut
+; Frame applied by default
   plot, [xxaxis[0], xxaxis[n_elements(xxaxis)-1]], [-zratio, -zratio], /noerase $
     , xstyle = 1+4*(keyword_set(endpoints) AND ((type EQ 'xz' AND lat1 NE lat2) OR (type EQ 'yz' AND lon1 NE lon2))) $
     , xtickformat = xaxe, _extra = ex
-; ajout d'un axe ds le cas ou l'on utilise endpoints
+; Add of an axis in the case of we use endpoints
   if keyword_set(endpoints) then addaxe, endpoints, type, posfenetre, _EXTRA = ex
 ;------------------------------------------------------------
-; axe y en 1 ou 2 parties
+; Y axis in 1 or 2 part
 ;------------------------------------------------------------
   if n_elements(ex) NE 0 then BEGIN 
-; pour ne plus mettre de titre
+; To do not put title anymore
     if (where(tag_names(ex) EQ 'TITLE'))[0] NE -1 then ex.TITLE = ' '
-; pour ne plus mettre de sous titre
+; To do not put subtitle anymore
     if (where(tag_names(ex) EQ 'SUBTITLE'))[0] NE -1 then ex.SUBTITLE = ' '
-; pour n''avoir q''un ytitle
+; To have just one ytitle
     if (where(tag_names(ex) EQ 'YTITLE'))[0] NE -1 then BEGIN 
       ytitle = ex.YTITLE
@@ -518,9 +429,9 @@
     , position = posfenetre+[0, 0, 0, -hzoom], _extra = ex, title = '', subtitle = '', ytitle = ''
 ;
-  !y.range =  [zoom, profmin]   ; on repasse en coordonees physiques!
+  !y.range =  [zoom, profmin]   ; We get back in physic coordinates!
   plot, [0], [0], /nodata, /noerase, ystyle = 1, _extra = ex $
     , title = '', subtitle = '', ytitle = '', position = posfenetre+[0, htotal-hzoom, 0, 0]
 ;------------------------------------------------------------
-; pour ecrire le ytitle...
+; to write the ytitle...
 ;------------------------------------------------------------
   if !d.name EQ 'PS' then $
@@ -539,5 +450,5 @@
 
 ;------------------------------------------------------------
-; barre de couleur
+; colorbar
 ;------------------------------------------------------------
   colnumb = colnumb[0:ncontour-1-keyword_set(strictfill)]
@@ -546,5 +457,5 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; 4eme partie: impression eventuelle
+; 4th part: possible print
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/sbar_plot.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/sbar_plot.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/sbar_plot.pro	(revision 142)
@@ -3,46 +3,48 @@
 ;------------------------------------------------------------
 ;+
-; NAME:sbar_plot (super bar_plot)
 ;
-; PURPOSE: meme chose que bar_plot mais compatible avec l''ensemble de
-; l'environnement (common.pro est inclu)
+; @file_comments 
+; Same thing that bar_plot but compatible with the whole environnement (common.pro inclued)
 ;
-; CATEGORY:dessine
+; @categories graphics
 ;
-; CALLING SEQUENCE: sbar_plot,y
-; 
 ; INPUTS: cd IDL>?bar_plot
 ;
-; KEYWORD PARAMETERS:
+; @keyword COLORS 
+; A vector, the same size as VALUES, containing the color index
+; to be used for each bar.  If not specified, the colors are
+; selected based on spacing the color indices as widely as
+; possible within the available colors (specified by D.N_COLORS).
 ;
-;  meme que ceux de bar_plot avec en plus:
-;      COLORS: un entier donnant la couleur de toutes les barres de
-;      couleurs. (contrairement a colors qui est en vecteur donnant le
-;      couleur de chaque barre de couleur.
+; @keyword COLORS 
+; Is an integer giving color of all colorbars. (contrarily to colors 
+; which is a vector giving the color of each colorbar).
 ;
-;      NOREINITPLT: a actier si on ne veut pas que les variables
-;      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-;      procedure reinitplt
+; @keyword NOREINITPLT
+; We active it if we do not want environnement variables !p, !x, !y, !z 
+; to be reinitilalizted by the procedure reinitplt
 ;
-; OUTPUTS:
+; @keyword _EXTRA
+; used to pass your keyword
 ;
-; COMMON BLOCKS:common.pro
+; @uses
+; common.pro
 ;
-; SIDE EFFECTS:
+; @restrictions 
+; If NOREINITPLT is not activated, all environnement 
+; variables !p, !x, !y, !z are reinitializtedby the procedure reinitplt
 ;
-;   Si NOREINITPLT n''est pas ective toutes les variables
-;      d''environnemet !p, !x, !y, !z sont reinitialisees par la
-;      procedure reinitplt
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
+; @examples
 ;      IDL> sbar_plot, indgen(10),small = [2,2,2],/rempli
 ;      IDL> sbar_plot, indgen(10),small = [2,2,3],/noerase
-;      IDL> @ps
+;      IDL> \@ps
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      10/10/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -55,9 +57,9 @@
 ;
 @common
-; 1) je reinitialise l''environnememt graphique (les variables !x, !y et !p): 
+; 1) I reinitialize the graphic environment (variables !x, !y et !p): 
    if NOT keyword_set(NOREINITPLT) then reinitplt, _extra = ex 
-; 2) je place le dessin a l'ecran comme sur le postcript 
+; 2) I place the drawing on the screen like on the postscript 
    IF chkstru(ex, 'overplot')EQ 0 THEN placedessin, 'autre', _extra = ex
-; 3) je fais mon joli dessin 
+; 3) Drawing 
    if n_elements(COLORS) NE 0 then BEGIN
       if n_elements(COLORS) EQ n_elements(Values) then col = colors $
@@ -67,5 +69,5 @@
    bar_plot, Values, background = !p.background, colors = col $
              , xstyle = 1, ystyle = 1, _extra = ex
-; 4) je termine le dessin 
+; 4) End of drawing 
    terminedessin, _extra=ex 
 
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/scontour.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/scontour.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/scontour.pro	(revision 142)
@@ -3,37 +3,33 @@
 ;------------------------------------------------------------
 ;+
-; NAME:scontour (super contour)
 ;
-; PURPOSE: meme chose que contour mais compatible avec l''ensemble de
-; l'environnement (common.pro est inclu)
+; @File_comments
+; Same thing that contour but compatible with the whole environnement (common.pro inclued)
 ;
-; CATEGORY:dessine
+; @categories graphics
 ;
-; CALLING SEQUENCE: scontour, z [, x, y]
-; 
 ; INPUTS:cd IDL>?contour
 ;
-; KEYWORD PARAMETERS:
+; @keyword NOREINITPLT
+; We active it if we do not want environnement variables !p, !x, !y, !z 
+; to be reinitilalizted by the procedure reinitplt
+; 
+; @keyword _EXTRA
+; used to pass your keywords
 ;
-;  meme que ceux de bar_plot avec en plus:
-;      NOREINITPLT: a actier si on ne veut pas que les variables
-;      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-;      procedure reinitplt
+; @uses
+; common.pro
 ;
-; OUTPUTS:
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
+; @examples
 ;      IDL> z = dist(100) 
 ;      IDL> scontour, z, nlevels=10,small=[1,2,1],xstyle=1,ystyle=1
-;      IDL> @ps
+;      IDL> \@ps
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      10/10/1999
+; 
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -45,11 +41,11 @@
 ;
 @common
-; 1) je reinitialise l''environnememt graphique (les variables !x, !y et !p): 
+; 1) I reinitializate the graphic environment (variables !x, !y et !p): 
   if NOT keyword_set(NOREINITPLT) then reinitplt, _extra = ex 
-; 2) je place le dessin a l'ecran comme sur le postcript 
+; 2) i put the drawing on the screen like on the postcript 
 ; if ex contains norease and c_orientation keywords we force ex.noerase = 0
   IF chkstru(ex, 'overplot') EQ 0 THEN placedessin, 'autre', _extra = ex
 ; fiddle when noerase is used with c_orentation...
-; call contour with /nodata to get the graphic envoronment, then force
+; call contour with /nodata to get the graphic environment, then force
 ; noerase = 0 and overplot = 1
   IF size(ex, /type) EQ 8 THEN BEGIN
@@ -85,5 +81,5 @@
     ENDCASE
   ENDIF
-; 4) je termine le dessin 
+; 4) End of drawing
   terminedessin, _extra = ex 
 
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/splot.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/splot.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/splot.pro	(revision 142)
@@ -3,42 +3,38 @@
 ;------------------------------------------------------------
 ;+
-; NAME:splot (super plot)
 ;
-; PURPOSE: meme chose que plot mais compatible avec l''ensemble de
-; l'environnement (common.pro est inclu)
+; file_comments 
+; Same thing that plot but compatible with the whole environnement (common.pro inclued)
 ;
-; CATEGORY:dessine
-;
-; CALLING SEQUENCE: PLOT, [X,] Y
+; @categories graphics
 ; 
 ; INPUTS:cd IDL> ?plot
 ;
-; KEYWORD PARAMETERS:
-;  meme que ceux de plot avec en plus:
+; @keyword NOREINITPLT
+; We active it if we do not want environnement variables !p, !x, !y, !z 
+; to be reinitilalizted by the procedure reinitplt
+; 
+; @keyword _EXTRA
+; used to pass your keywords
 ;
-;      NOREINITPLT: a actier si on ne veut pas que les variables
-;      d''environnemet !p, !x, !y, !z soient reinitialisees par la
-;      procedure reinitplt
+; @uses
+; common.pro
 ;
-; OUTPUTS:
+; @restrictions 
+; If NOREINITPLT is not activated, all environnement 
+; variables !p, !x, !y, !z are reinitializtedby the procedure reinitplt
 ;
-;   Si NOREINITPLT n''est pas ective toutes les variables
-;      d''environnemet !p, !x, !y, !z sont reinitialisees par la
-;      procedure reinitplt
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
+; @examples
 ;      IDL> splot, indgen(10),ystyle=1,small=[1,2,1],/portrait
 ;      IDL> splot, -indgen(10),ystyle=1,small=[1,2,2],/noerase
-;      IDL> @ps
+;      IDL> \@ps
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      18/10/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -50,12 +46,12 @@
 ;
 @common
-; 1) je reinitialise l''environnememt graphique (les variables !x, !y et !p): 
+; 1) I reinitializate the graphic environment (les variables !x, !y et !p): 
    if NOT keyword_set(NOREINITPLT) then reinitplt, _extra = ex 
-; 2) je place le dessin a l'ecran comme sur le postcript 
+; 2) i put the drawing on the screen like on the postcript 
    placedessin, 'autre', _extra = ex
-; 3) je fais mon joli dessin 
+; 3) Drawing
    if n_elements(y) EQ 0 then plot,  x, xstyle = 1, ystyle = 1, _EXTRA = ex $
    ELSE plot,  x, y, xstyle = 1, ystyle = 1, _EXTRA = ex
-; 4) je termine le dessin 
+; 4) End of drawing 
    terminedessin, _extra=ex 
 ;
Index: /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/tvplus.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/tvplus.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DESSINE/tvplus.pro	(revision 142)
@@ -3,67 +3,70 @@
 ;------------------------------------------------------------
 ;+
-; NAME: tvplus
-;
-; PURPOSE: enhanced version of tvscl
-;
-; CATEGORY: quick exploration of 2D arrays 
-;
-; CALLING SEQUENCE: tvplus,z2d [,cellsize]
+;
+; @file_comments
+; Enhanced version of tvscl
+;
+; @categories quick exploration of 2D arrays 
 ;
 ; INPUTS: 
 ;
-;    z2d: 2D array to visualize
-;
-;    cellsize: (optional) this is the size (in pixel) of the square
-;    representing 1 array element. By default, this size is computed
-;    automatically in order that the size of the plotting window do
-;    not exceed the screen size. If the user specify a large value
-;    of cellsize that forces tvplus to create a window larger than
-;    the screen, a "scrolling window" will be displayed instead of a
-;    regular window. Unfortunately the nice fonctionnalities of tvplus
-;    are not coded for "scrolling window" case...
-;
-; KEYWORD PARAMETERS:
-;
-;       BOTTOM: The lowest color index of the colors to be loaded in
-;       the bar. default is 0.
-;
-;       C_NAN: The color number that should be used for the NaN values.
-;       default value is !d.n_colors < 255
-;
-;       C_MASK: The color number that should be used for the mask values.
-;       default value is 0
-;
-;       OFFSET: 2 elements vector used by tvplus itself when shoing zoom.
-;       It is used to shift the ranges of xaxis and yaxis.
-;       For example: tvplus,sst[x1:x2,y1:y2],offest=[x1,y1]
-;
-;       MASK: The mask value. Note that if abs(mask) < 1.e6, then the
-;       exact value of the mask is used to find the maskwd point.
-;       if abs(mask) > 1.e6, the test to find the masked value is ge
-;       abs(mask)/10. This is necessary to avoid the rounding errors
-;
-;       MIN and MAX: scalars used to specify the min and max values
-;       of the color bar. default is from 0 to !d.n_colors < 255
-;
-;       NCOLORS:  This is the number of colors in the color
-;       bar. default is !d.n_colors<255 -1
-;
-;       NOINTERP: used this keyword if you don't whant that the values
-;       are interpolated between 0 (or min) and !d.n_colors < 255 (or max).
-;       This can be for example usefull when working on byte type arrays.
-;
-;       NOUSEINFOS: activite to supress the printed message explaining
-;       how to use tvplus
-;
-;	WINDOW: Number of the window used to display the array values.
-;       default is window number 0.
-;
-; OUTPUTS: no (except the printed finformations, see below)
-;
-; COMMON BLOCKS: no
-;
-; SIDE EFFECTS:
-;
+; @param Z2D {in}{required}
+; 2D array to visualize
+;
+; @param CELLSIZE {in}{optiona}
+; This is the size (in pixel) of the square
+; representing 1 array element. By default, this size is computed
+; automatically in order that the size of the plotting window do
+; not exceed the screen size. If the user specify a large value
+; of cellsize that forces tvplus to create a window larger than
+; the screen, a "scrolling window" will be displayed instead of a
+; regular window. Unfortunately the nice fonctionnalities of tvplus
+; are not coded for "scrolling window" case...
+;
+; @keyword BOTTOM
+; The lowest color index of the colors to be loaded in
+; the bar. default is 0.
+;
+; @keyword C_NAN
+; The color number that should be used for the NaN values.
+; default value is !d.n_colors < 255
+;
+; @keyword C_MASK
+; The color number that should be used for the mask values.
+; default value is 0
+;
+; @keyword OFFSET 
+; 2 elements vector used by tvplus itself when shoing zoom.
+; It is used to shift the ranges of xaxis and yaxis.
+; For example: tvplus,sst[x1:x2,y1:y2],offest=[x1,y1]
+;
+; @keyword MASK 
+; The mask value. Note that if abs(mask) < 1.e6, then the
+; exact value of the mask is used to find the maskwd point.
+; if abs(mask) > 1.e6, the test to find the masked value is ge
+; abs(mask)/10. This is necessary to avoid the rounding errors
+;
+; @keyword MIN 
+; Scalar used to specify the min value of the color bar. default is 0
+;
+; @keyword MAX
+; Scalar used to specify the max value of the color bar. default is !d.n_colors < 255
+;
+; @keyword NCOLORS
+; This is the number of colors in the color bar. default is !d.n_colors<255 -1
+;
+; @keyword NOINTERP
+; Used this keyword if you don't whant that the values
+; are interpolated between 0 (or min) and !d.n_colors < 255 (or max).
+; This can be for example usefull when working on byte type arrays.
+;
+; @keyword NOUSEINFOS
+; Activite to supress the printed message explaining how to use tvplus
+;
+; @keyword WINDOW
+; Number of the window used to display the array values.
+; default is window number 0.
+;
+; @restrictions 
 ; use your mouse to scan the array values...
 ;     left button  : mouse position and associated array value
@@ -71,12 +74,18 @@
 ;     right button : quit
 ;
-; RESTRICTIONS: the nice fonctionnalities of tvplus are not coded
-;               for "scrolling window" case...
-;
-; EXAMPLE:  IDL> tvplus, dist(100)
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; the nice fonctionnalities of tvplus are not coded
+; for "scrolling window" case...
+;
+; @examples
+; IDL> tvplus, dist(100)
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       18/12/98
 ; Aug 2005: quick cleaning + english
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -246,5 +255,5 @@
       device, decomposed = 0
     endif
-    slide_image, arr $          ; on le dessine ds une fenetre avec une scrolling bar
+    slide_image, arr $          ; We draw it in a window with a scrolling bar
                  , xsize = nx, ysize = ny $
                  , xvisible = round(.7*dimensions[0]) < (size(arr))[1] $
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/addaxe.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/addaxe.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/addaxe.pro	(revision 142)
@@ -3,32 +3,30 @@
 ;------------------------------------------------------------
 ;+
-; NAME:addaxe
 ;
-; PURPOSE:ajoute un axe qd on fait une section oblique ds pltz, pltt
-; ou plt1d
+; @file_comments
+; Add an axis when we do an oblique section in pltz, pltt
+; or plt1d
 ;
-; CATEGORY:autour de pltz, pltt et plt1d
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:addaxe, type, posfenetre
+; @param ENDPOINTS {in}{required}
+; Coordonnees of extremities of the section
 ; 
-; INPUTS:endpoints:coordonnees des extremites de ;a section
-;        type: un string de 2 characteres specifiant qule type de plot
-; on fait.
-;        posfenetre: ler vecteur !p.posotion correspondant a ;a
-;        position du cadre de la partie dessin du plot.
+; @param TYPE {in}{required}
+; A string of two characters specifying the type of plot we do
 ;
-; KEYWORD PARAMETERS:
+; @param POSFENETRE {in}{required}
+; The vector !p.position corresponding to the frame position of 
+; the drawing part of the plot.
 ;
-; OUTPUTS:
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:common.pro
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/autoscale.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/autoscale.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/autoscale.pro	(revision 142)
@@ -3,33 +3,30 @@
 ;------------------------------------------------------------
 ;+
-; NAME: autoscale
 ;
-; PURPOSE: on donne un min et un max et la procedure renvoie le
-; contour intevalle qui va bien et la valeur des labels.
+; @file_comments 
+; We give a min and a max, and the procedure send back 
+; the good contour interval and labels's value.
 ;
-; CATEGORY: autour de CONTOUR
+; @categories 
+; graphic
 ;
-; CALLING SEQUENCE: autoscale, min, max, ci
-; 
-; INPUTS: min et max: 2 reels specifiants entre quel min et quel max
-; on veut tracer un contour
+; @param MIN {in}{required}
+; A reel number specifying above what value we want to trace a contour
 ;
-; KEYWORD PARAMETERS: none
+; @param MAX {in}{required}
+; A reel number specifying below what value we want to trace a contour
 ;
-; OUTPUTS: ci et evenuellement levels. ci est un reel qui donne le
-; contour intevalle. A utiliser ds CONTOUR avlec le mot clef LEVEL.
+; @param CI. {out}
+; It is a reel number giving the contour interval. Use it in CONTOUR with the keyword LEVEL.
 ;
-; COMMON BLOCKS:
+; @restrictions
+; CI is a multiple of the unity in unity log of 10.
+; It force the number of contour to be even.
 ;
-; SIDE EFFECTS:
+; @history
+; G. Roullet / aout 99 (gr@lodyc.jussieu.fr)
 ;
-;  CI est un multiple de l'unite en unite log de 10.
-;  force le nombre de contour a etre pair.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: G. Roullet / aout 99 (gr@lodyc.jussieu.fr)
+; @version
+; $Id$
 ;
 ;-
@@ -39,6 +36,6 @@
 PRO autoscale, min, max, ci
 ;
-;  estimation d'un premier CI, notez la presence du floor (arrondi inferieur)
-; ce CI est un multiple de l'unite en unite log de 10.
+;  Estimation of a first CI, notice the presence of the floor (Inferior round)
+; This CI is a multiple of the unity in unity log of 10.
 ;
 ;
@@ -53,6 +50,6 @@
     coef = [2, 2.5, 5, 10]
 ;
-; test differents CI (contour intervales), i.e. 1, 2, 2.5, 5 et 10
-; jusqu'a ce que le nombre de contours soit inferieur a 30.
+; We test differents CI (contour intervals), i.e. 1, 2, 2.5, 5 and 10
+; until the number of contour is inferior to 30.
 ;
     WHILE ceil((max-min)/ci) GE 30 DO BEGIN 
@@ -67,5 +64,5 @@
 
 ;
-;  force le nombre de contour a etre pair
+;  We force the number of contour to be even
 ;
     IF nlevels MOD 2 EQ 1 THEN BEGIN 
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/axis4pltz.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/axis4pltz.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/axis4pltz.pro	(revision 142)
@@ -3,34 +3,47 @@
 ;------------------------------------------------------------
 ;+
-; NAME:axis4pltz
 ;
-; PURPOSE:compute the mask and the axis for a vertical section
+; @file_comments
+; compute the mask and the axis for a vertical section
 ;
-; CATEGORY:
+; @param MASK {in}{required}
+;  3d mask
+;        
+; @param GLAM {in}{required}
+; 2d longitude 
+; 
+; @param GPHI {in}{required}
+; 2d latitude
 ;
-; CALLING SEQUENCE:
+; @param Z {in}{required}
+; 1d depth
+;
+; @keyword XXAXIS 
+; to get the xaxis we need to use in pltbase
+;      
+; @keyword ZZAXIS 
+; to get the yaxis we need to use in pltbase
+;
+; @keyword SIN 
+; Activate this keyword if we want the x axis to be traced in sinus of the 
+; latitude when we make a drawing f(y)
+;
+; @keyword ZRATIO
+; When the drawing has a zoomed part, it is the size rapport between the zoomed part, 
+; hz (zoom height), and the whole drawing, ht (total height). By default =2./3
+;
+; @keyword _EXTRA
+; used to pass your keywords
 ; 
-; INPUTS:mask: 3d mask
-;        glam, gphi: 2d longitudes and latitudes
-;        z:1d depth
+;  Others: see pltz 
 ;
-; KEYWORD PARAMETERS:
-;        XXAXIS to get the xaxis we need to use in pltbase
-;        ZZAXIS to get the yaxis we need to use in pltbase
 ;
-;        Others: see pltz 
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                      June 24, 2002
 ;
-; OUTPUTS:
+; @version
+; $Id$
 ;
-; COMMON BLOCKS:
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                      June 24, 2002
 ;-
 ;------------------------------------------------------------
@@ -83,5 +96,5 @@
   ENDELSE 
 ;----------------------------------------------------------
-; on projette l''axe z dans [0,1]
+; We project the z axis in [0,1]
 ;----------------------------------------------------------
   if not keyword_set(zratio) then zratio = 2./3
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/barrecouleur.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/barrecouleur.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/barrecouleur.pro	(revision 142)
@@ -3,16 +3,21 @@
 ;------------------------------------------------------------
 ;+
-; NAME:barrecouleur
 ;
-; PURPOSE:surcouche de colorbar
+; @file_comments
+; Overlayeur of colorbar
 ;
-; CATEGORY:delestage de l''ecriture de plt, pltz, pltt
+; @categories
+; utilities
 ;
-; CALLING SEQUENCE:barrecouleur
+; @restrictions pass all argument we want thanks to _extra
 ;
-; SIDE EFFECTS: passer tous les arguments que l''on veut grace a _extra
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       23/12/98
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       23/12/98
+; @version
+; $Id$
+;
+; @todo seb: mettre les keyword et les param
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checkfield.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checkfield.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checkfield.pro	(revision 142)
@@ -1,42 +1,2 @@
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-;+
-; NAME:checkfield
-;
-; PURPOSE:en entree de plt, pltz, pltt et plt1d, verifie que le
-; champ donne a bien une taille compatible avec le domaine et fait au
-; besoin les moyennes pour ressortir en fin de fonction un tableau 2d
-; si on fait un plot du type: 'xy', 'xz', 'xt', 'yz', 'yt', 'zt' ou un
-; tableau 1d si on fait un plot du type 'x', 'y', 'z', 't'.
-;
-; CATEGORY:en entree de plt, pltz, pltt et plt1d
-;
-; CALLING SEQUENCE:res=checkfield(field, procedure)
-; 
-; INPUTS:
-;        filed: un champ recomdant aux criteres de litchamp.pro, cf.
-;        IDL>xhelp,'litchamp'
-;
-; KEYWORD PARAMETERS:
-; 
-;         /WDEPTH: to specify that the field is at W depth instad of T 
-;         depth (automatically activated if vargrid eq 'W')
-;
-; OUTPUTS:
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                      08/02/2000
-;-
-;------------------------------------------------------------
-;------------------------------------------------------------
 FUNCTION err_1d, type, n1, name, n2
 ;
@@ -79,4 +39,64 @@
                   + ', ' + strtrim(jpt, 1) + ']'], /simple)
 END
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
+;+
+;
+; @file_comments
+; In input of plt, pltz, pltt and plt1d, it check that the field give 
+; a size compatible with the domain and, if needed, average to give us 
+; a 2d array if we make a plot of the type: 'xy', 'xz', 'xt', 'yz', 'yt'
+; , 'zt' or a 1d array if we make a plot of the type: 'x', 'y', 'z', 't'.
+;
+; @categories
+; graphic
+; 
+; @param FIELD {in}{required}
+; A field respecting litchamp.pro's criterions. See IDL>xhelp,'litchamp'
+;
+; @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 WDEPTH
+; to specify that the field is at W depth instad of T 
+; depth (automatically activated if vargrid eq 'W')
+; 
+; @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 DIREC   
+;
+; @uses 
+; common.pro
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                      08/02/2000
+;
+; @version
+; $Id$
+;
+; @todo seb: mettre les param 
+;
+;-
+;------------------------------------------------------------
+;------------------------------------------------------------
 ;--------------------------------------------------------------
 ;
@@ -95,5 +115,5 @@
   ENDIF
 ;--------------------------------------------------------------
-; I1) lecture du champ
+; I1) Reading of the field
 ;--------------------------------------------------------------
   if n_elements(field) EQ 0 then return, report('field undefined')
@@ -107,5 +127,5 @@
   nan = total(finite(arr, /nan)) < 1
 ;---------------------------------------------------------------
-; redefinition du domaine 
+; redefinition of the domain
 ;---------------------------------------------------------------
   minprof = 0.
@@ -130,15 +150,6 @@
   ENDIF
 ;
-; la procedure domdef determine les elements qui sont a l''interieur
-; de la boxzoom. 
-; si on fait un plot contenant l''axe z:
-; Suivant l''axe z si on veut par ex faire un dessin
-; entre 0 et 1000 il se peut que l''on selectionne les niveaux
-; correspondants aux profondeurs comprises entre 0 et 900m (vu la
-; discretisation assez lache de cet axe qd on atteint des profondeurs
-; elevees). Pour ne pas que le dessin s''arrete a 900 mais bien a
-; 1000, on va aller chercher le niveau au dessous de 1000, d''ou la
-; manip suivante sur la boxzoom: l''approfondir de 1 niveau sur la
-; verticale (si possible) sans changer les y range. 
+; The procedure domdef determine elements which are inside the boxzoom. 
+; 
   if strpos(type, 'z') NE -1 THEN BEGIN
     if NOT keyword_set(localbox) then BEGIN 
@@ -149,5 +160,5 @@
     END
     nelbox = n_elements(localbox)
-;on garde les yranges (axe z) avant de changer la boxzoom.
+;we keep yranges (z axis) before changing the boxzoom.
     !y.range = [localbox[nelbox-1], localbox[nelbox-2]] 
     if vargrid EQ 'W' OR keyword_set(wdepth) then BEGIN
@@ -169,5 +180,5 @@
     if (lon2-lon1) gt (lat2-lat1) then type = 'xt' else type = 'yt'
 ;--------------------------------------------------------------
-; verification de la taille du tableau d''entree et de la valeur de type
+; verification of the input array size and the value of the type
 ;--------------------------------------------------------------
   grille, -1, -1, -1, -1, nx, ny, nz, firstx, firsty $
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checktypeminmax.pro	(revision 142)
@@ -27,4 +27,5 @@
 ; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;
+; @todo seb
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/determineminmax.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/determineminmax.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/determineminmax.pro	(revision 142)
@@ -3,40 +3,54 @@
 ;------------------------------------------------------------
 ;+
-; NAME:determineminmax
 ;
-; PURPOSE:determiner le min et le max d''un tableau masque
+; @file_comments
+; Determine the min and the max of a mask array
 ;
-; CATEGORY: delestage de l''ecriture de plt, pltz, pltt
+; @categories 
+; Lightening of the writting of plt, pltz and pltt
 ;
-; CALLING SEQUENCE:determineminmax, tab, mask, vraimin, vraimax
+; @param TAB {in}{required}
+; The array whose we determine the min and the max
 ;
-; INPUTS:
+; @param MASK {in}{required}
+; The mask array 
 ;
-;       tab: le tableau dont il faut determiner le min et le max
-;       mask: le tableau de masque 
+; @keyword MININ 
+; It is a scalar which, if it is not defined, take the value of VRAIMIN
 ;
-; KEYWORD PARAMETERS:
+; @keyword MAXIN 
+; It is a scalar which, if it is not defined, take the value of VRAIMAX
 ;
-;       minin et maxin deux scalaire qui s''il ne sont pas definits
-;       prennent la valeur de vraimin et vraimax
+; @keyword ZEROMIDDLE 
+; Force the middle of the colorbar to be equal
+; to 0 (force max=max(abs([min,max])) and min=-max)
+; 
+; @keyword _EXTRA
+; used to pass your keywords
 ;
-;       /ZEROMIDDLE: fo force the middle of the colorbar to be equal
-;       to 0 (force max=max(abs([min,max])) and min=-max)
+; @keyword USETRI
+; To force using triangulation.
+; 
+; @param VRAIMIN {out}
+; The min of the array
 ;
-; OUTPUTS:
+; @param VRAIMAX {out}
+; The max of the array
 ;
-;       vraimin et vraimax: le min et le max du tableau
+; @uses
+; Common.pro
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @restrictions
+; Look if the field is constant on the sea
 ;
-; SIDE EFFECTS:degarde si le champ est constant sur la mer
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       11/12/98
 ;
-; RESTRICTIONS:
+; @version
+; $Id$
 ;
-; EXAMPLE:
+; @todo seb: manque les param glam et gphi
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       11/12/98
 ;-
 ;------------------------------------------------------------
@@ -50,11 +64,11 @@
 ;-----------------------------------------------------------------------------
 ;-----------------------------------------------------------------------------
-; type de grille verticale:
+; Type o fthe vertical grid:
   if vargrid EQ 'W' then nz = nzw ELSE nz = nzt
 ; liste des points mer
   if (size(mask))[0] EQ 3 then mer = mask[*, *, 0] $
   ELSE mer = mask
-; si key_irregular eq 1, on masque aussi les points qui ne rentrent
-; pas ds le domaine geographique definit par lon1,lon2,lat1,lat2
+; If key_irregular eq 1, we mask also points which are not in the geographic 
+; domain defined by lon1,lon2,lat1,lat2
   if keyword_set(key_irregular) AND n_elements(glam) NE 0 AND n_elements(gphi) NE 0 then begin
     dom =   where(glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2)
@@ -73,5 +87,5 @@
     return
   endif
-; ma et mi : max et min sur les points mer
+; ma and mi : max and min on ocean points
   vraimax = max(tab[mer], min = vraimin, _extra = ex)
   sameminmax = testvar(var = minin) EQ testvar(var = maxin) 
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/givewindowsize.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/givewindowsize.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/givewindowsize.pro	(revision 142)
@@ -1,2 +1,8 @@
+;+
+;
+; @todo seb
+;
+;-
+;
 FUNCTION givewindowsize
 ;
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/meridienparallele.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/meridienparallele.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/meridienparallele.pro	(revision 142)
@@ -3,19 +3,23 @@
 ;------------------------------------------------------------
 ;+
-; NAME:meridienparallele
 ;
-; PURPOSE:trace certains medidiens ou paralles
+; @file_comments
+; Trace some meridians or parallel
 ;
-; CATEGORY:
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:meridienparallele, coupe
+; @param COUPE The type of drawing we treat
 ;
-; INPUTS:coupe: le type de dessin que l''on traite
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       11/12/98
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       11/12/98
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placecolor.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placecolor.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placecolor.pro	(revision 142)
@@ -3,36 +3,34 @@
 ;------------------------------------------------------------
 ;+
-; NAME:PLACECOLOR
 ;
-; PURPOSE:permet de tracer la colorbar independammment d'un graphe
+; @file_comments
+; allows to trace the independently from a graph
+; By default, trace a color bar of the same type tahn the one present in plt
+; and pltz. If max, min and divisions are not stipulated, then max=sup,min=inf
+; and divisions=div.
 ;
-; CATEGORY:graph
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:placecolor,pos
+; @param POS
+; Vecteur composed by 4 elements giving coordinates of the left bottom 
+; corner and of the right up one -in cm- in which we want to do the color bar
 ;
-; INPUTS:
-;	pos:vecteur de 4 elements donnant les coordonnees du coin en bas
-; a gauche et de celui en haut a droite -en cm- ds lequel on veut faire la
-; barre de couleur
+; @keyword _extra
+; used to pass your keywords
 ;
-; KEYWORD PARAMETERS: tous ceux de colorbar.pro.
+; @uses
+; common.pro
 ;
-; par defaut trace une barre de couleur du meme type que celle presente ds plt
-; et pltz. si max, min et divisions ne sont pas stipulees alors max=sup,min=inf
-; et divisions=div
+; @restrictions
+; Only usable for POSTCRIPTs effectuated with plein2dessin
 ;
-; OUTPUTS:
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;			7/5/98
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @version
+; $Id$
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:utilisable que pour les POSTCRIPT effectues avec plein2dessin
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;			7/5/98
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placedessin.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placedessin.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/placedessin.pro	(revision 142)
@@ -3,43 +3,124 @@
 ;------------------------------------------------------------
 ;+
-; NAME:placedessin
-;
-; PURPOSE: mise en place du dessin / ouverture de la fenetre ou du PS
-;
-; CATEGORY: pour alleger les programmes plt, pltz, pltt.
-;
-; CALLING SEQUENCE: placedessin, typedessin,posfenetre, posbar
-;
-; INPUTS:
-;   typedessin: une chaine de charactere specifiant quelle procedure
-;   appelle placedessin: 'plt', 'pltz', 'pltt'
-;
-; KEYWORD PARAMETERS: pleins (ce de CALIBRE de WINDOW ...)
-;
-;       LCT: intier designant le numero de la palette de couleur que
-;       l''on veut utiliser pour les plot. 
+;
+; @file_comments 
+; Putting into place of the drawing/ opening of the window or of the PS
+;
+; @categories 
+; Utilities
+;
+; @param TYPEDESSIN
+; It is a chain or characteres specifying what procedure is called by PLACEDESSIN: 'plt', 'pltz' or 'pltt'
+;
+; @keyword LANDSCAPE 
+; Force the page or the window on the screen to be in lenthened position.
+;
+; @keyword LCT 
+; Is an integer designating the number of the palette of color we want to use for the plot. 
 ;	
-; OUTPUTS:
-;
-;       posfenetre: un vecteur de 4 elements contenant la position de
-;       cadre contenant les legendes + le graphe en coordonnes
-;       normalises. Rq: pour positionner le dessin il faut apres
-;       l''appelle de calibre faire !p.position=posfenetre
-;
-;       posbar: cf posfentre mais pour la barre de couleur. meme
-;       remarque pour positionner la barre de couleur, !p.position=posbar
-;
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @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]
+; 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
+; 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]
+;	
+; @keyword NOCOLORBAR 
+; We active it if we do not want the colorbar.
+
+;; @keyword NOFILL 
+; We active it if we only want contours in black and white with a white background.
+;
+; @keyword NOERASE 
+; We active it to make a drawing without creating a new frame.
+;
+; @keyword SMALL 
+; Vector composed of 3 or 4 elements, applyed to make a drawing on a 
+; small portion of a page or screen. It delimit the zone where the drawing will be done.
+;     If there is 4 elements:
+; then is constituated of coordinates (expressed in cm located from the up and 
+; left corner of the page or the window (in portrait like in lanscape)) of the bottom 
+; and left corner and of the up and right corner of the drawing zone.
+;     If there is 3 elements:
+; in this case, we divide the page or the screen in small[0] columns and in small[1] lines 
+; the drawing made in the box numbered small[2]. The numerotation starting up and left by 
+; the number 1 and then, following the writing direction.
+; By default, we make the largest drawing we can do, conserving the aspect rapport 
+; (exept when REMPLI is activated).
+; 
+; @keyword PORTRAIT 
+; Force the page or the window to be in standing position.
+;
+; @keyword POST 
+; Make a postscript. Only works if we made one drawing on the page.
+; If we make several drawing, use \@ps.
+;
+; @keyword REMPLI 
+; Force the drawing to occupy the whole space defined by small.
+;
+; @keyword WINDOW
+; Number of the window on which we want to do the graph (Allow to open several windows). 
+; By default, we open 'IDL0'
+;
+; @keyword CB_TITLE 
+; The colorbar's title
+;
+; @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 ENDPOINTS 
+; keyword specifing that we want to make a vertical cut in diagonal. Then coorinated of extremities 
+; of these one are difined by the 4 elements of the vector ENDPOINTS: [x1,y1,x2,y2] which are 
+; coordinates. 
+;
+; @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 DIREC
+; 't' 'x' 'y' 'z' 'xys' 'xz' 'yz' 'xyz' 'xt' 'yt' 'zt' 'xyt'
+;       'xzt' 'yzt' 'xyzt' Direction on which do averages 
+;
+; @keyword _EXTRA
+; Used to pass your keywords.
+;
+; @keyword COLOR_C 
+; To draw the contour in color instead of in black
+; with filling in color 
+;
+; @param POSFENETRE {out}
+; It is a vector composed by 4 elements containing the position of the frame 
+; containing captions and the graph in normalized coorinates. 
+; Comment: To position the drawing; we have to do !p.position=posfenetre 
+; after the call of the caliber
+;
+; @param POSBAR {out}
+; Like POSFENETRE but for the color bar. 
+; Same comment to position the color bar, !p.position=posbar
+;
+; @uses
+; common.pro
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       26/4/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -65,8 +146,8 @@
   ENDIF
 ;-------------------------------------------------------------
-; 1) determination de la taille des marges (unite=nbre de lignes ou colonnes)
-; a gauche, a droite, en bas, en haut
-; ATTENTION ds margebar le dernier element est le coint en haut a droite au
-; lieu de la marge en haut
+; 1) Determination of the size of margins (unity=number of lines or columns)
+; to the left, to the right, up and down.
+; BEWARE in margebar, the last element is the right up corner 
+; instead of the up margin
 ;-------------------------------------------------------------
   if n_elements(typedessin) EQ 0 then typedessin = 'autre'
@@ -103,5 +184,5 @@
   ENDELSE
 ;--------------------------------------------------------------
-; portrair ou landscape
+; Portrait or landscape
 ;--------------------------------------------------------------
   IF NOT keyword_set(noerase) THEN BEGIN 
@@ -113,5 +194,5 @@
   ENDIF 
 ;--------------------------------------------------------------
-; Quel type de rapport d''aspect (sera ecrase si YXASPECT existe)
+; What type of aspect rapport (it will be crushed if YXASPECT exist)
 ;--------------------------------------------------------------
   case typedessin of
@@ -122,6 +203,6 @@
   endcase
 ;-------------------------------------------------------------
-; 2) calcul de !p.position
-; cf calibre.pro.
+; 2) calculation of !p.position
+; see calibre.pro.
 ;------------------------------------------------------------
 ;
@@ -134,27 +215,27 @@
   !p.position = posfenetre
 ;------------------------------------------------------------
-; 3) ouverture de la fenetre graphique ou du postscript
+; 3) opening of the graphic window or of the postscript
 ;------------------------------------------------------------
   case 1 of
-; cas du premier dessin sur un postcript
+; case of the first drawing on a postcript
     keyword_set(post) AND !d.name ne 'PS':openps, _extra = ex
-; cas du premier dessin sur un ecran
+; case of the first drawing on a screen
     keyword_set(post) EQ 0 AND keyword_set(noerase) EQ 0 $
       AND !d.name ne 'PS' AND !d.name ne 'Z':BEGIN
       if not keyword_set(window) then window = 0
-; pour l''utilisation de @ps, @oups et de @vzoom
-      if lmgr(/demo) EQ 0 then BEGIN ; on est en mode demo??
-        if !journal NE 0 then journal ; on ferme le journal s''il est ouvert
+; For the using of \@ps,\@oups et de \@vzoom
+      if lmgr(/demo) EQ 0 then BEGIN ; Are we in the demo mode??
+        if !journal NE 0 then journal ; We close te journal if it is open
         homedir = isadirectory(io = homedir, title = 'Bad definition of homedir')
         def_myuniquetmpdir
-        journal, myuniquetmpdir+'idlsave.pro' ; on en ouvre un nouveau
-        help, /recall_commands, output = listecommande ; on recupere la derniere commande
+        journal, myuniquetmpdir+'idlsave.pro' ; We open a new one
+        help, /recall_commands, output = listecommande ; We recuperate the last command
         listecommande = strmid(strcompress(listecommande[1]), 2)
-        journal, listecommande ; on l''ecrit dans le journal
+        journal, listecommande ; We write it in the journal
       ENDIF
       windsize = givewindowsize()
       window, window, xsize = windsize[0], ysize = windsize[1],  retain = 2, _extra = ex
-; qd on utilise des couleurs codees sur 24 bit, je n''arrive pas a stipuler la couleur du
-; fond d''une fenetre a l'aide de !p.background, je suis oblige de faire cette bidouille!!!
+; When we used colors which are coded on 24bit, we can not stipulate the background color 
+; of a window thanks to !p.background, so we have to to this:
 ;          if !d.n_colors gt 256 then begin
 ;             device, decomposed=1
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/projsegment.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/projsegment.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/projsegment.pro	(revision 142)
@@ -2,34 +2,28 @@
 ;------------------------------------------------------------
 ;------------------------------------------------------------
-; NAME: projsegment
+;+
 ;
-; PURPOSE: projecte lineairement un segment un vecteur dont les bornes
-; sont [a,b] sur un vecteur dont les bornes sont [c,d]
+; @file_comments
+; project linearly a segment, a vector whose boundaries are [a,b] on 
+; a vector whose boundaries are [c,d]
 ;
-; CATEGORY: caculs a 2 francs
+; @categories
+; calculation
 ;
-; CALLING SEQUENCE: res=projsegment(vecteur, bornes) 
+; @param VECTEUR
+; A vector whose the first element must be the smallest one and the last must be the biggest one.
 ;
-; INPUTS: vecteur: un vecteur dont le premier element doit etre le
-; plus petit element et le dernier doit etre le plus grand.
-;         bornes: les nouvelles bornes du vecteur.
+; @param BORNES 
+; New boundaries of the vector.
 ;
-; KEYWORD PARAMETERS:
+; @keyword MP
+; Activate this keyword to the function send back this a vector of 2 
+; elements which are the m and p of the linear projection y=mx+p used 
+; to pass from the [a,b] segment to the [c,d] segment.
 ;
-;         /MP: activer ce motcle pour que la fonction retourne un
-;         vecteur de 2 elements qui sont les coefficient m et p de la
-;         projection lineaire y=mx+p utilisee pour passer du segment
-;         [a,b] au segment [c,d]
+; @returns 
+; A vector whose new boudaries are specified by BORNES.
 ;
-; OUTPUTS:un vecteurs dont les nouvelles bornes sont specifiees par
-; bornes
-;
-; COMMON BLOCKS:
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
+; @examples
 ;   
 ;   IDL> a=indgen(9) 
@@ -43,6 +37,12 @@
 ;        -80     -70     -60     -50     -40     -30     -20     -10      0
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       24/6/1999
+;
+; @version
+; $Id$
+;
+;-
 ;------------------------------------------------------------
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/restoreatt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/restoreatt.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/restoreatt.pro	(revision 142)
@@ -3,25 +3,30 @@
 ;------------------------------------------------------------
 ;+
-; NAME:restoreatt
 ;
-; PURPOSE:permet de reattribuer les variables globales associees a un
-; champ qd on donne une stucture cree par ex par saveatt.pro.
+; @file_comments
+; Allows to reattribuate global variables associated with a field 
+; when we give a stucture created by saveatt.pro by example.
 ;
-; CATEGORY:allegement d''ecriture
+; @categories 
+; Utilities
 ;
-; CALLING SEQUENCE:restoreatt, structure
+; @param STRUCT {in}{required}
+; a structure like the one who read litchamp. 
+;        See IDL> xhelp,'litchamp'
 ;
-; INPUTS:une structure comme celle que lit litchamp. 
-;        cf. IDL> xhelp,'litchamp'
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @restrictions
+; Change the value if global variables attribute of a field: vargrid, 
+; varname, varunit, vardate, varexp , valmask and time.
 ;
-; SIDE EFFECTS: change la valeur des variables globales attributs
-; d''un champ: vargrid, varname, varunit, vardate, varexp , valmask,
-; et time
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       15/6/1999
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       15/6/1999
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/rotation.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/rotation.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/rotation.pro	(revision 142)
@@ -1,28 +1,28 @@
 ;+
-; NAME:
 ;
-;           ROTATION
+; @file_comments
+; Rotate two vectors by a specified amount.
+;	    
+; @param X {in}{required}
+; orignal data point pairs
+;
+; @param Y {in}{required}
+; orignal data point pairs
+;           
+; @param DEG {in}{required}
+; degrees to rotate.
+;	    
+; @param NX {out}
+; rotated point pairs.
 ; 
-; PURPOSE:
-; 
-;	    Rotate two vectors by a specified amount.
+; @param NY {out}
+; rotated point pairs.
 ;	    
-; CALLING SEQUENCE:
-; 
-;	    ROTATION,X,Y,DEG,NX,NY
-;	    
-; INPUTS:
+; @history
+; Jeff Bennett, U of Colorado
 ;
-;           X,Y   :orignal data point pairs
-;           
-;	    DEG   :degrees to rotate.
-;	    
-; OUTPUTS:
-; 
-;	    Nx, Ny = rotated point pairs.
-;	    
-; MODIFICATION HISTORY:
-; 
-;	    Jeff Bennett, U of Colorado
+; @version
+; $Id$
+;
 ;-
 
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/saveatt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/saveatt.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/saveatt.pro	(revision 142)
@@ -3,22 +3,25 @@
 ;------------------------------------------------------------
 ;+
-; NAME:saveatt
 ;
-; PURPOSE:permet de mettre dans une structure les attributs qui peuvent
-; etre associes a une variable.
+; @file_comments
+; Allows to put in a structure attributes which can be associated with a variable.
 ;
-; CATEGORY:allegement d''ecriture
+; @categories
+; utilities
 ;
-; CALLING SEQUENCE:res=saveatt()
-;
-; OUTPUTS:
-;    une stucture de la forme:
+; @returns 
+; A structure of the form:
 ;         {n:varname,g:vargrid,d:vardate,e:varexp,u:varunit,m:valmask,l:niveau}
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @uses
+; common.pro
 ;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       15/6/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/terminedessin.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/terminedessin.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/DIVERS/terminedessin.pro	(revision 142)
@@ -3,29 +3,42 @@
 ;------------------------------------------------------------
 ;+
-; NAME:terminedessin
 ;
-; PURPOSE:termnine le dessin si besion est qd c''est un postcsript.
+; @file_comments
+; End the drawing if needed when it is a postscript.
 ;
-; CATEGORY:mise en forme et allegement de l''ecrityre de plt, pltz et pltt
+; @categories
+; utilities, graphic
 ;
-; CALLING SEQUENCE:terminedessin
+; @keyword POST 
+; Make a postscript. Only works if we made one drawing on the page.
+; If we make several drawing, use \@ps.
 ;
-; INPUTS:
+; @keyword SMALL 
+; Vector composed of 3 or 4 elements, applyed to make a drawing on a 
+; small portion of a page or screen. It delimit the zone where the drawing will be done.
+;     If there is 4 elements:
+; then is constituated of coordinates (expressed in cm located from the up and 
+; left corner of the page or the window (in portrait like in lanscape)) of the bottom 
+; and left corner and of the up and right corner of the drawing zone.
+;     If there is 3 elements:
+; in this case, we divide the page or the screen in small[0] columns and in small[1] lines 
+; the drawing made in the box numbered small[2]. The numerotation starting up and left by 
+; the number 1 and then, following the writing direction.
+; By default, we make the largest drawing we can do, conserving the aspect rapport 
+; (exept when REMPLI is activated).
 ;
-; KEYWORD PARAMETERS:POST et SMALL cf l''aide de plt
+; @keyword _EXTRA 
+; Used to pass your keywords
 ;
-; OUTPUTS:
+; @uses
+; common.pro
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       3/6/1999
 ;
-; SIDE EFFECTS:
+; @version
+; $Id$
 ;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       3/6/1999
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label.pro	(revision 142)
@@ -3,45 +3,47 @@
 ;------------------------------------------------------------
 ;+
-; NAME:label
 ;
-; PURPOSE:permet de choisir le stype de label que l'on veut utiliser
-; lors d'un contour
+; @file_comments
+; Allows to choose the type of the label we want to use at the time of a contour.
 ;
-; CATEGORY:graphique
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:pro label,cas,min,max,ncontour,level_z2d
+; @param CAS {in}{required}
+; Number of the type of the label we want to trace
+;	
+; @param MIN {in}{required} 
+; Smallest value for the drawing of the contour.
 ;
-; INPUTS:
-;	cas=numero du type de label que l'on veut tracer
-;	min et max = valeures min et max entre lesquelles on veut faire
-; des contours
+; @param MAX {in}{required}
+; Biggest value for the drawing of the contour.
 ;
-; KEYWORD PARAMETERS:
+; @keyword INTERVALLE
+; Value of an interval betwenn two isolines. By default, it is calculated to 
+; draw 20 isolines. In all cases, this keyword must be returnedt have a nice
+; caption. If levels do not contain regular intervals, put it at -1.
 ;
-;	INTERVALLE: valeur d'un intervalle entre deux isolignes. par defaut
-; est calcule pour tracer 20 isolighnes. Dans tous les cas ce not cle
-; doit etre retourne pour pouvoir avoir une belle legende. Si les
-; niveaux ne comportent pas d''intevalle regulier, le mettre a -1
+; @keyword NLEVEL
+; Number of contour to be drawn. By default =20. Active if LABEL=0 or is not specified.
 ;
-;	NLEVEL: nombre de contours a dessiner. par defaut =20. actif si
-; LABEL=0 ou nest pas specifie.
+; @param NCONTOUR {out}
+; Number of contour to be drawn.
+; 
+; @param LEVEL_Z2D {out}
+; Vector containing values of contours we draw.
 ;
-; OUTPUTS:
-;	ncontour=nombre de contour a tracer
-;	level_z2d=vecteur contenant les valeurs des contours que l'on trace
-;       colnumb: un vecteur contenant le numero des couleurs qui serviront a
-;               remplir entre les contours)
+; @param COLNUMB {out}
+; Vector containing the number of colors which will serve to fill contours.
 ;
-; COMMON BLOCKS:
-;	common.pro
+; @uses
+; common.pro
 ;
-; SIDE EFFECTS:
+; @history 
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;			7/5/98
 ;
-; RESTRICTIONS:
+; @version 
+; $Id$
 ;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;			7/5/98
 ;-
 ;------------------------------------------------------------
@@ -72,5 +74,5 @@
    case cas of
       0: begin
-;nlevel label entre le min et le max
+; nlevel label between the min and the max
          if keyword_set(Nlevel) eq 0 then ncontour=20 else ncontour=nlevel
          ncontour = 1 > ncontour
@@ -80,6 +82,6 @@
       end
       1: begin
-;un certain nombre de label en partant du min jusqu'au plus pres de max avec
-; un pas fixe par intervalle
+; a certain number of label from the min to the nearest possible to the
+; max with a constant step by interval
          ncontour  = fix((max-min)/intervalle)
          ncontour = 1 > ncontour
@@ -88,5 +90,5 @@
          max=level_z2d[Ncontour-1]+intervalle
       end
-; label pour faire les memes sss que dessier
+; label to do same sss than dessier
 
       2: begin
@@ -100,5 +102,5 @@
       end
       3: begin
-; lecture intervalles + palette dans fichier GMT
+; Readinf of intervals + palette in the file GMT
 
          label_gmt, min, max, intervalle, ncoul, ncontour, level_z2d, colnumb
Index: /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label_date.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label_date.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/LABEL/label_date.pro	(revision 142)
@@ -1,3 +1,2 @@
-; $Id$
 ;
 ; Copyright (c) 1993-1998, Research Systems, Inc.  All rights reserved.
@@ -5,77 +4,62 @@
 
 ;+
-; NAME:
-;	LABEL_DATE
 ;
-; PURPOSE:
-;	This function labels axes with dates and times.
+; @file_comments
+; This function labels axes with dates and times.
 ;
-; CATEGORY:
-;	Plotting.
+; @categories
+; Plotting.
 ;
-; CALLING SEQUENCE:
-;	To set up:
-;		dummy = LABEL_DATE(DATE_FORMAT='string')
-;	To use:
-;		PLOT, x, y, XTICKFORMAT='LABEL_DATE'
+; @param AXIS {in}{required}
 ;
-; INPUTS:
-;	No explicit user defined inputs. When called from the plotting
-;	routines, the input parameters are (Axis, Index, Value)
+; @param INDEX {in}{required}
 ;
-; KEYWORD PARAMETERS:
-;	DATE_FORMAT: a format string which may contain the following:
-;		       %M for month (3 character abbr)
-;		       %N for month (2 digit abbr)
-;		       %D for day of month,
-;		       %Y for 4 digit year.
-;		       %Z for last two digits of year.
-;	     For time:
-;		       %H for Hours, 2 digits.
-;		       %I for mInutes, 2 digits.
-;		       %S for Seconds, 2 digits.
-;		       %% is %.
-;		     Other characters are passed directly thru.
-;		     For example, '%M %D, %Y' prints DEC 11, 1993
-;		       '%M %2Y' yields DEC 93
-;		       '%D-%M' yields 11-DEC
-;		       '%D/%N/%Y' yields 11/12/1993
-;		       '%M!C%Y' yields DEC on the top line, 1993 on
-;		       the bottom (!C is the new line graphic command).
+; @param X {in}{required}
 ;
-;	MONTHS:      The names of the months, a twelve element string array.
-;		     If omitted, use Jan, Feb, ..., Dec.
+; @keyword DATE_FORMAT
+; a format string which may contain the following:
+; %M for month (3 character abbr)
+; %N for month (2 digit abbr)
+; %D for day of month,
+; %Y for 4 digit year.
+; %Z for last two digits of year.
+;  For time:
+; %H for Hours, 2 digits.
+; %I for mInutes, 2 digits.
+; %S for Seconds, 2 digits.
+; %% is %.
+;  Other characters are passed directly thru.
+; For example, '%M %D, %Y' prints DEC 11, 1993
+; '%M %2Y' yields DEC 93
+; '%D-%M' yields 11-DEC
+; '%D/%N/%Y' yields 11/12/1993
+; '%M!C%Y' yields DEC on the top line, 1993 on
+; the bottom (!C is the new line graphic command).
 ;
-;	OFFSET:	     An optional starting offset of the plot.
-;		Unfortunately, single precision floating point is not accurate
-;		enough to properly represent Julian times.  This offset, which
-;		may be double precision, contains an offset that is added to
-;		all x values, before conversion to Julian date and time.
-
-; OUTPUTS:
-;	The date string to be plotted.
+; @keyword MONTHS
+; The names of the months, a twelve element string array.
+; If omitted, use Jan, Feb, ..., Dec.
 ;
-; COMMON BLOCKS:
-;	LABEL_DATE_COM.
+; @keyword OFFSET
+; An optional starting offset of the plot.
+; Unfortunately, single precision floating point is not accurate
+; enough to properly represent Julian times.  This offset, which
+; may be double precision, contains an offset that is added to
+; all x values, before conversion to Julian date and time.
 ;
-; RESTRICTIONS:
-;	Only one date axis may be simultaneously active.
+; @uses
+; LABEL_DATE_COM.
 ;
-; PROCEDURE:
-;	Straightforward.
+; @restrictions
+; Only one date axis may be simultaneously active.
 ;
-;       For an alternative way to label a plot axis with dates, refer to
-;       the C() format code accepted within format strings (applicable via
-;       the [XYZ]TICKFORMAT keywords).  This new format code was 
-;       introduced in IDL 5.2.
-;
-; EXAMPLE:
-;	For example, to plot from Jan 1, 1993, to July 12, 1994:
-;	  Start_date = julday(1, 1, 1993)
-;	  End_date = julday(7, 12, 1994)
-;	  Dummy = LABEL_DATE(DATE_FORMAT='%N/%D')  ;Simple mm/dd
-;	  x = findgen(end_date+1 - start_date) + start_date ;Time axis
-;	  PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
-;	  (Plot with X axis style set to exact.)
+; @examples
+; For example, to plot from Jan 1, 1993, to July 12, 1994:
+; Start_date = julday(1, 1, 1993)
+; End_date = julday(7, 12, 1994)
+; Dummy = LABEL_DATE(DATE_FORMAT='%N/%D')  ;Simple mm/dd
+; x = findgen(end_date+1 - start_date) + start_date ;Time axis
+; PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
+; (Plot with X axis style set to exact.)
 ;	
 ; Example with times:
@@ -92,9 +76,16 @@
 ;	PLOT, x, sqrt(x), XTICKFORMAT = 'LABEL_DATE', XSTYLE=1
 ;
-; MODIFICATION HISTORY:
+; @history
 ;	DMS, RSI.	April, 1993.	Written.
 ;	DMS, RSI.	March, 1997.	Added Time format.
+;
+; Copyright (c) 1993-1998, Research Systems, Inc.  All rights reserved.
+;	Unauthorized reproduction prohibited.
+;
+; @version
+; $Id$
+;
 ;-
-
+;-----------------------------------------------------------------------------
 FUNCTION LABEL_DATE, axis, index, x, DATE_FORMAT = format, MONTHS = months, $
               OFFSET= offs, _EXTRA = ex
Index: /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lataxe.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lataxe.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lataxe.pro	(revision 142)
@@ -3,32 +3,31 @@
 ;------------------------------------------------------------
 ;+
-; NAME:LATAXE
 ;
-; PURPOSE:fonction appelee par [XYZ]TICKFORMAT (cf l'help pour voir
-;         comment l'utiliser) pour labeller les axes en latitude.
+; @file_comments
+; function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in latitude.
 ;
-; CATEGORY:graphe
+; @categories
+; graphic
+; 
+; @param AXIS 
+; It is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
 ;
-; CALLING SEQUENCE:[XYZ]TICKFORMAT='lataxe'
+; @param INDEX
+; It is the tick mark index which starts at 0.
+;	
+; @param VALUE
+; It is the default tick mark value (a floating-point number).
 ;
-; INPUTS:fournis (et imposes) automatiquement par IDL: axis, index, value:
-;	Axis is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
-;	Index is the tick mark index which starts at 0.
-;	Value is the default tick mark value (a floating-point number).
-; KEYWORD PARAMETERS:
+; @returns
+; A string, used automatically to label
 ;
-; OUTPUTS:un string, utilise automatiquement pour labeller
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       ???
+;                       14/10/1999 format of labels
 ;
-; COMMON BLOCKS:
+; @version
+; $Id$
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       ???
-;                       14/10/1999 format des labels
 ;-
 ;------------------------------------------------------------
@@ -37,5 +36,5 @@
 FUNCTION lataxe, axis, index, value
 ;------------------------------------------------------------
-; on ramenne value ds le segment [0,180]
+; We put back value in the segment [0,180]
 ;
   compile_opt idl2, strictarrsubs
@@ -44,5 +43,5 @@
    if lat lt 0 then lat=lat+360
    if lat gt 180 then lat=lat-180
-; format des labels:
+; format of labels:
    case 1 of
       lat EQ round(lat):fmt = 'i4'
@@ -50,5 +49,5 @@
       ELSE:fmt = 'f7.2'
    endcase
-; on ecrit le label
+; we write the label
    if lat le 90 and lat ne 0 then nom=string(lat,     format='('+fmt+',''N'')')
    if lat gt 90              then nom=string(180-lat, format='('+fmt+',''S'')')
Index: /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lonaxe.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lonaxe.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/LABEL/lonaxe.pro	(revision 142)
@@ -3,32 +3,31 @@
 ;------------------------------------------------------------
 ;+
-; NAME:LONAXE
 ;
-; PURPOSE:fonction appelee par [XYZ]TICKFORMAT (cf l'help pour voir
-;         comment l'utiliser) pour labeller les axes en longitude.
+; @file_comments
+; function called by [XYZ]TICKFORMAT (see the help to see how to use it) to label axes in longitude.
 ;
-; CATEGORY:graphe
+; @categories
+; graphic
+; 
+; @param AXIS 
+; It is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
 ;
-; CALLING SEQUENCE:[XYZ]TICKFORMAT='lonaxe'
+; @param INDEX
+; It is the tick mark index which starts at 0.
+;	
+; @param VALUE
+; It is the default tick mark value (a floating-point number).
 ;
-; INPUTS:fournis (et imposes) automatiquement par IDL: axis, index, value:
-;	Axis is the axis number: 0 for X axis, 1 for Y axis, 2 for Z axis.
-;	Index is the tick mark index which starts at 0.
-;	Value is the default tick mark value (a floating-point number).
-; KEYWORD PARAMETERS:
+; @returns
+; A string, used automatically to label
 ;
-; OUTPUTS:un string, utilise automatiquement pour labeller
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
+;                       ???
+;                       14/10/1999 format of labels
 ;
-; COMMON BLOCKS:
+; @version
+; $Id$
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
-;                       ???
-;                       14/10/1999 format des labels
 ;-
 ;------------------------------------------------------------
@@ -37,5 +36,5 @@
 FUNCTION lonaxe, axis, index, value
 ;------------------------------------------------------------
-; on ramenne value ds le segment [0,360[
+; We put back value in the segment [0,360[
 ;
   compile_opt idl2, strictarrsubs
@@ -43,5 +42,5 @@
    lon=value mod 360
    if lon lt 0 then lon=lon+360
-; format des labels:
+; format of labels:
    case 1 of
       lon EQ round(lon):fmt = 'i4'
@@ -49,5 +48,5 @@
       ELSE:fmt = 'f7.2'
    endcase
-; on ecrit le label
+; we write the label
    if lon lt 180 then nom=string(lon,     format='('+fmt+',''E'')')
    if lon gt 180 then nom=string(360-lon, format='('+fmt+',''W'')')
Index: /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/ajoutvect.pro	(revision 142)
@@ -3,50 +3,49 @@
 ;------------------------------------------------------------
 ;+
-; NAME:ajoutvect
-;
-; PURPOSE:surimprimme des vecteur sur un champ tarce par plt
-;
-; CATEGORY:grafique
-;
-; CALLING SEQUENCE:ajoutvect,vecteur 
-;
-; INPUTS:
-;	vecteur: une structure a 2 elements contenant les 2 matrices U
-;	et V des valeurs de la composante zonale et meridienne du
-;	champ de vecteurs a tracer.
-;       par ex:
+;
+; @file_comments
+; Overprint vectors in a field traced by plt.
+;
+; @categories
+; graphic
+;
+; @param VECTEUR {in}{required}
+; It is a structure with 2 elements containing we 2 matrixes U and V of 
+; values of the zonal and meridian component of the fiel of vectors to 
+; be traced.
+;      For 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
-;
-; KEYWORD PARAMETERS:
-;
-;	/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]
-;
-;	VECTMIN=norme minimun des vecteurs a tracer 
-;
-;	VECTMAX=norme minimun des vecteurs a tracer 
-;
-; OUTPUTS:
-;
-; COMMON BLOCKS:
-;	common.pro		
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+;       rq:the name of elements of  vector does not have any importance.
+;       vecteur={u:lec('unsurface'),v:lec('vnsurface')} goes well too.
+;
+; @keyword UNVECTSUR
+; It is a scalar n or an array with 2 elements [n1,n2].
+; In the first case, we will trace a vector on n following x and y.
+; In the second case, we will trace a vector on n1 following x and a 
+; vector n2 following n2
+;   Comments: To trace all vectors following y and one vector on two 
+; following x, put unvectsur=[2,1]
+;
+; @keyword VECTMIN {in}{required}
+; Minimum norme of vectors to be traced 
+;
+; @keyword VECTMAX {in}{required}
+; Maximum norme of vectors to be traced 
+;
+; @keyword _EXTRA
+; Used to pass your keywords
+; 
+; @uses
+; common.pro		
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;			10/3/1999
 ;                       11/6/1999 compatibilite avec NAN et la lecture
 ;                       des structures.
+;
+; @version
+; $Id$ 
+; 
 ;-
 ;------------------------------------------------------------
@@ -58,5 +57,5 @@
 ;
 @common
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; For key_performance
 ;----------------------------------------------------------------------------
 ;
@@ -66,7 +65,7 @@
    v = checkfield(v, 'plt', TYPE = 'xy', /NOQUESTION)
 ;-----------------------------------------------------------
-;------------------------------------------------------------
-; on recupere les eventuelles info sur les champs
-;------------------------------------------------------------
+;-----------------------------------------------------------
+; We recuperate possible informations on fields
+;-----------------------------------------------------------
    grilleu = litchamp(vecteur.(0), /grid)
    if grilleu EQ '' then grilleu = 'U'
@@ -82,5 +81,5 @@
    endif
 ;------------------------------------------------------------
-; on trouve les points que u et v ont en communs
+; We find common points between u and v
 ;------------------------------------------------------------
    if interpolle then begin
@@ -96,5 +95,5 @@
       indice2d = indice2d[indicex[0]:indicex[0]+nx-1,indicey[0]:indicey[0]+ny-1]
 ;------------------------------------------------------------
-; extraction de u et v sur le domaine qui convient
+; extraction of u and v on the appropriated domain
 ;------------------------------------------------------------
       case 1 of
@@ -122,5 +121,5 @@
       endcase
 ;------------------------------------------------------------------
-; on reform u et v pour s'assurer qu'aucune dimension n'a ete ecrasee
+; We reshape u and v to make sure that none dimension has been erased.
 ;------------------------------------------------------------------
       if ny EQ 1 then begin
@@ -129,5 +128,5 @@
       endif
 ;------------------------------------------------------------------
-; construction de u et v aux pts T
+; construction of u and v at points T
 ;-----------------------------------------------------------
       a=u[0,*]
@@ -138,8 +137,8 @@
       if NOT keyword_set(key_periodic) OR nx NE jpi then v[*,0]=a
 ;----------------------------------------------------------------------------
-; attribution du mask et des tableau de longitude et latitude
-; on recupere la grille complette pour etablir un grand mask etendu ds les 4
-; directions pour couvrir les points pour lesquels un pt terre a ete pris en
-; compte (faire un petit dessin...)
+; attribution of the mask and of longitude and latitude arrays.
+; We recuperate the complete grid to establish a big mask extensive 
+; in the four directions to cover points for which a land point has 
+; been considerated (do a small drawing)
 ;----------------------------------------------------------------------------
       vargrid='T'
@@ -155,8 +154,8 @@
       endif
 ;-----------------------------------------------------------
-; on masque u et v le long des cotes (la on l''on ne peut pas calculer
-; la moyenne)
-;-----------------------------------------------------------
-; extention du mask
+; We mask u and v et v the long of coasts (the place where we 
+; can not calculate the average)
+;----------------------------------------------------------- 
+; extention of the mask
       u = u*msku*shift(msku,1,0)
       v = v*mskv*shift(mskv,0,1)
@@ -189,6 +188,5 @@
    ENDIF
 ;-----------------------------------------------------------
-; remise d''une grande valeur sur tous les points pour lesquelles on ne
-; put faire le calcul
+; Put back of a big value on all points for which we can do the calculation.
 ;-----------------------------------------------------------
    if interpolle then t2 = msku*shift(msku,1,0)*mskv*shift(mskv,0,1) $
@@ -202,9 +200,9 @@
    ENDIF
 ;-----------------------------------------------------------
-; tracer qu'un vecteur sur
+; trace only one vector one two
 ;-----------------------------------------------------------
    if keyword_set(unvectsur) then BEGIN ;
-; indx est un vecteur contenant les numero des colonnes a selectionner 
-; indy est un vecteur contenant les numero des lignes a selectionner 
+; indx is a vector containing number of columns to be selected.
+; indy is a vector containing number of lines to be selected.
       if n_elements(unvectsur) EQ 1 then begin
          indx = where((lindgen(nx) MOD unvectsur[0]) eq 0)
@@ -213,10 +211,9 @@
          indx = where((lindgen(nx) MOD unvectsur[0]) eq 0)
          indy = where((lindgen(ny) MOD unvectsur[1]) eq 0)
-      ENDELSE
-; a partir de indx et indy on va construire un tableau d''indices 2d
-; qui donnera les indices des points intersections des colonnes
-; specifiee par indx 
+     ENDELSE
+; From indx and indy, we will construct an array which will give indexes
+; of intersections points of columns specified by indx.
       indicereduit = indx#replicate(1,n_elements(indy))+nx*replicate(1,n_elements(indx))#indy
-; on reduit les tableaux qui vont etre passes a vecteur.
+; We reduce arrays which will be passed to vecteur.
       u = u[indicereduit]
       v = v[indicereduit]
@@ -233,9 +230,9 @@
    endif
 ;-----------------------------------------------------------
-; trace des vecteurs
+; Drawing of vectors.
 ;----------------------------------------------------------
    vecteur, u, v, tabnorme, indice2d, indicereduit, missing=1e5, _extra = ex
 ;-----------------------------------------------------------
-; on complete la legende
+; We complete the caption.
 ;-----------------------------------------------------------
    if terre[0] ne -1 then mini = min(tabnorme[where(t2 eq 1)], max = maxi, /nan) $
Index: /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/vecteur.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/vecteur.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/vecteur.pro	(revision 142)
@@ -1,83 +1,8 @@
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-;+
-; NAME:vecteur
-;
-; PURPOSE: trace des vecteurs (meme situees sur une grille tordue) sur
-; n''importe quelle projection, de telle sorte que tous les vecteurs
-; aient une norme comparable sur le dessin (en clair, un vecteur qui
-; doit faire 1cm le fait quelque soit la projection et sa position sur
-; la sphere) 
-;
-; CATEGORY:trace de vecteur
-;
-; CALLING SEQUENCE:vecteur, composanteu, composantev, normevecteur, indice2d, reduitindice2d
-; 
-; INPUTS: COMPOSANTEU et COMPOSANTEV: ce sont les composantes des
-; vecteurs a tracer. Ces tableaux 2d ont la meme dimension que
-; reduitindice2d (cf apres).
-;       INDICE2D: indice permettant de passer d''un tableau jpi,jpj au
-;       zoom surlequel on fait le dessin.
-;       REDUITINDICE2D: indice permettant de passer d''un tableau
-;       definit par indice2d au tableau pourlequel on a reelement des
-;       vecteurs a tracer (en clair: c''est par ex qd on ne trace par exemple
-;       que un vecteur sur 2)
-;
-; KEYWORD PARAMETERS:
-;
-;      CMREF: la longeur en cm sur le papier que diot faire la fleche
-;      de norme normeref. par defaut ajuste au dessin et compris entre
-;      .5 et 1.5 cm
-;
-;      MISSING: la valeur d''une missing value. ne pas utilisder ce
-;      mot cle. fixe a 1e5 par ajoutvect.pro
-;      
-;      NORMEREF: la norme de la fleche de reference. par defaut on
-;      essaie de faire qqch qui colle pas trop mal!
-;
-;      VECTCOLOR: la couleur de la fleche. Par defaut noir (couleur 0)
-;
-;      VECTTHICK; l''epaissuer de la fleche. par defaut 1.
-;
-;      VECTREFPOS: vecteur de 2 elements specifiant la position en
-;      coordonnees DATA du debut du vecteur de reference. Par defaut
-;      en bas a droite du dessin.
-;
-;      VECTREFFORMAT: format a utiliser pour specifier la norme du
-;      vecteur de reference.
-;
-;      /NOVECTREF: pour supprimer l'affichage du vecteur de reference.
-;
-; OUTPUTS:
-;
-; COMMON BLOCKS:common.pro
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:
-;  Creation : 13/02/98 G. Roullet (grlod@lodyc.jussieu.fr)
-;  Modification : 14/01/99 realise la transformation
-;  spherique<->cartesien G. Roullet
-;                 12/03/99 verification de la routine G. Roullet
-;  8/11/1999:
-;  G. Roullet et Sebastien Masson (smasson@lodyc.jussieu.fr)
-;  adaptation pour les zoom. reverification...traitement separe de la
-;  direction et de la norme des vecteurs. mots cles NORMEREF et CMREF.
-;-
-;------------------------------------------------------------
-;------------------------------------------------------------
-;------------------------------------------------------------
-
 FUNCTION cv_cm2normal, angle
 ;
-; donne la longeur en coordonnes normales d''un trait ortiente de
-; angle par rapport a l''axe des x et qui doit faire 1 cm sur le
-; dessin.
-; angle peut etre un tableau.
+; Give the lenth in normal coordinates of a trait oriented of an angle
+; by rapport at the x axis and which must do 1 cm on the drawing.
+; Angle can be an array.
+; 
 ;
 ;
@@ -85,6 +10,6 @@
 ;
 @common
-; quelle est la longeur en coordonnees normales d''un trait qui fera 1
-; cm sur le parier et qui est parallele a x?
+; What is the lenth in normal coordinates of a trait which will do 1 cm
+; on the paper an which is parallel to x?
   mipgsz = min(page_size, max = mapgsz)
    sizexfeuille = mipgsz*key_portrait+mapgsz*(1-key_portrait)
@@ -92,7 +17,7 @@
    cm_en_normal = 1./sizexfeuille
 ;
-;  si le rapport d''aspect de la fenetre n''est pas egale a 1, la
-;  longeur en coordonees normalise d''un trait de 1cm varie suivant
-;  l''angle polaire de ce trait.
+; If the aspect rapport of the window is not equal to 1, the lenth in
+; normalized coordinates of  a trait of 1 cm vary following the polar
+; angle of this trait.
 ;
    aspect = sizexfeuille/sizeyfeuille
@@ -104,5 +29,5 @@
 PRO normalise, u, v, w
 ;
-; normalise le vecteur
+; normalize the vector
 ;
 ;
@@ -122,4 +47,86 @@
    ENDELSE 
 END
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
+;+
+;
+; @file_comments
+; Trace vectors (even if they are on a deformed grid) on any projection.
+; In this way, all vectors have a comparable norme on the drawing (to be
+; clear, a vector which measure 1 cm measure it, no matter the projection
+; and is position on the sphere).
+;
+; @categories 
+; graphic
+; 
+; @param COMPOSANTEU {in}{required}
+; It is the u component of the vector to be traced. This 2d array has the 
+; same dimension that reduitindice2d (see further)
+; 
+; @param COMPOSANTEV {in}{required}
+; It is the v component of the vector to be traced. This 2d array has the 
+; same dimension that reduitindice2d (see further)
+; 
+; @param INDICE2D  {in}{required}
+; It in an index allowing to to pass from an jpi or jpj array to the zoom 
+; on which we do the drawing
+; 
+; @param REDUITINDICE2D {in}{required}
+; It is an index allowing to pass from an array defined by indice2d to the 
+; array for which we really have vectors to be traced (to be clear, it is 
+; for example when we trace only one vector on two).
+;
+; @keyword CMREF
+; The lenth in cm that must measure the arrow normed normeref. By default, 
+; it is ajusted t othe drawing and included between .5 and 1.5 cm.
+;
+; @keyword MISSING
+; The value of a missing value. Do not use this keyword. Fixed at 1e5 by 
+; ajoutvect.pro
+;      
+; @keyword NORMEREF 
+; The norme of the reference arrow.
+;
+; @keyword VECTCOLOR
+; The color of the arrow. Black by default (color 0)
+; 
+; @keyword VECTTHICK
+; The thick of the arrow. 1 by default 
+;
+; @keyword VECTREFPOS
+; Vector composed of 2 elements specifing the position on DATA coordinates 
+; from de begining of the reference vector. By default at the right bottom 
+; of the drawing.
+;
+; @keyword VECTREFFORMAT
+; The format to be used to specify the norme of the reference vector.
+;
+; @keyword NOVECTREF
+; To delete the display of the reference vector.
+; 
+; @keyword _EXTRA
+; Used to pass your keywords 
+;
+; @uses 
+; common.pro
+;
+; @history
+;  Creation : 13/02/98 G. Roullet (grlod@lodyc.jussieu.fr)
+;  Modification : 14/01/99 realise la transformation
+;  spherique<->cartesien G. Roullet
+;                 12/03/99 verification de la routine G. Roullet
+;  8/11/1999:
+;  G. Roullet et Sebastien Masson (smasson@lodyc.jussieu.fr)
+;  adaptation pour les zoom. reverification...traitement separe de la
+;  direction et de la norme des vecteurs. mots cles NORMEREF et CMREF.
+;
+; @version
+; $Id$ 
+;
+;-
+;------------------------------------------------------------
+;------------------------------------------------------------
+;------------------------------------------------------------
 PRO vecteur, composanteu, composantev, normevecteur, indice2d, reduitindice2d $
              , CMREF = cmref, MISSING = missing, NORMEREF = normeref $
@@ -130,5 +137,5 @@
 ;
 @common
-   tempsun = systime(1)         ; pour key_performance
+   tempsun = systime(1)         ; For key_performance
 ;
 ;
@@ -153,57 +160,54 @@
    ENDIF
 ;
-; Etape 1: 
-;
-; etant donne la direction et le sens que le vecteur a sur la
-; sphere, il faut se debrouiller pour determiner cette direction et le
-; sens qu'aura le vecteur sur l''ecran ou la feuille une fois qu''il
-; aura ete projete.
-;
-; En theorie: sur la sphere, un vecteur en un point donne a pour
-; direction la tangente au cercle qui passe par le centre de la terre
-; et par le vecteur. Donc trouver la direction une fois la projection
-; faite ds le plan 2d, c''est trouver la tangente a la courbe
-; representant la projection du cercle sur le plan 2d au point
-; representant la projection du point de depart de la shere sur le
-; plan 2d!!!
-;
-; En pratique on ne connait pas la definition de la courbe que donne
-; la projection d''un cercle alors trouver sa tangente en un point...
-;
-; Ce que l''on fait:
-; Ds un repere cartesien 3d, 
-;       a) on trouve les coordonnees du point T (debut de la fleche)
-;       situe sur la shere.
-;       b) pour chaque point T on determine les directions locales
-;       definies par la grille en ce point et auxquelles se rapportent
-;       les coordonnes (u,v) du vecteur. Ces directions locales sont
-;       definies par les gradiants des glam et gphi. Une fois ces
-;       directions obtenues, on les considere comme orthogonales et en
-;       les normant on construit un repere orthonormal (nu,nv) auquel se
-;       rapporte les coordonnes (u,v) du vecteur. Ds le repere
-;       cartesien 3d de depart, le vecteur est definit par:
-;       V=u*nu+v*nv (ou V, nu et nv sont des vecteurs 3d et u et v des
-;       scalaires)
-;       c) pour approximer la tangente au cercle par la corde definie
-;       par le debut et la fin de la fleche, on va normaliser V puis
-;       le diviser par 100.
-;       d) ceci nous permet de determiner les coordonnees ds le repere
-;       cartesien 3d des extremites de la corde, on les passe en
-;       coordonnes sphereriques de facon a recuperer les positions en
-;       latitude longitude de ces points sur la sphere.
-;       e) on passe les coordonnees de ces points en coordonnees
-;       normalise puis en corrdonnes polaire de facon a trouver
-;       l''angle et la direction qu''ils determinent sur le dessin...
-;
-;
-; etape 1, a)
-;
-;
-; coordonnes du point T (debut de la fleche) en coordonnes sheriques
+; Stage 1: 
+;
+; Given that the directions and the sense that the vector has on the sphere, 
+; we have to try to determinate this direction and the sense that the vector 
+; will have on the screen once it will have been projected.
+;
+; In theory: on the sphere, a vector in a given point has for direction the 
+; tangent at the circle passing by the center of the Earth and by the vector. 
+; So, find the direction once the projection is done, it is find the tangent
+; to the curve representing the projection of the circle on the 2d plan at the 
+; point representing the projection of the starting point of the shere on the 
+; 2d plan.
+; 
+; In practice we do no know the definition of the curve given by the projection 
+; of a circle so find its tangente in a point...
+;
+; What we do:
+; In a 3d cartesian reference,
+;       a) We find coorinates of the point T (starting of the arrow) situed 
+;       on the sphere.
+;       b) To each point T, we determine local directions defined by the grid
+;       on this point and on which coordinates (u,v) of the vector refer to.
+;       These local directions are defined by gradients of glam and gphi. Once
+;       we have obtain these directions, we considare them like orthogonal and
+;       by norming them, we build an orthonormal reference (nu,nv) on which
+;       coordinates (u,v) of the vector refer to. In the starting 3d cartesian
+;       reference, the vector is defined by:
+;       V=u*nu+v*nv
+;       (where V, nu and nv are 3d vectors and u and v are scalars).
+;       c) To approximate the tangente to the circle by the chord defined by
+;       the beginning and the ending of the arrow, we will normalize V, and
+;       then divide it by 100.
+;       d) This allows us to determine coordinates of extremities of the chord
+;       in the 3d cartesian reference. We pass them in spherical coordinates in
+;       order to recuperate latitude and longitude position of these points on
+;       the sphere.
+;       e) We pass coordinates of these points in normalized coordinates, then
+;       in polar coordinates in order to find the angle and the direction they
+;       dertermine on the drawing.
+;
+;
+; Stage 1, a)
+;
+;
+; coordinates of the point T (beginning of the arrow) in spherical coordinates.
    glam = glamt[indice2d[reduitindice2d]]
    gphi = gphit[indice2d[reduitindice2d]]
 ;
-; coordonnes du point T (debut de la fleche) dans le repere cartesien
-; on utilise comme shere, une shere de rayon 1.
+; Coordinates of the point T (beginning of the arrow) in the cartesian reference.
+; For the sphere, we use a sphere with a radius of 1.
 ;
    radius = replicate(1,nx*ny)
@@ -215,15 +219,14 @@
    z0 = reform(r[2, *], nx, ny)
 ;
-; etape 1, b)
-;
-; Construction du vecteur nu (resp. nv), vecteur norme porte par
-; l''axe des points u[i,j] et u[i-1,j] (resp v[i,j] et v[i,j-1])
-; qui definissent pour chaque point sur la shere les directions locales
-; associee a u et v. ces vecteurs definissent un repere orthonorme
-; local. 
-; ces vecteurs sont construits dans un repere cartesien (cv_coord)
-; on a choisit un rayon de la terre unite (unit).
-;
-; definition de nu
+; Stage 1, b)
+;
+; Construction of a vector nu (resp. nv), vectr normed carried by the axis of
+; points u[i,j] and u[i-1,j] (resp v[i,j] and v[i,j-1]) which define, for each
+; point on the sphere, local directions associated with u and v. These vectors
+; define a local orthonormal reference. 
+; These vectors are built in a cartesian reference (cv_coord). We have choose a 
+; unity radius of the Earth (unit).
+;
+; definition of nu
    radius = replicate(1,nxgd*nygd)
    IF finite(glamu[0]*gphiu[0]) NE 0 THEN $
@@ -231,13 +234,13 @@
    ELSE coord_sphe = transpose([ [(glamf[indice2d])[*]], [(gphit[indice2d])[*]], [radius[*]] ])
    r = cv_coord(from_sphere=coord_sphe,/to_rect,/degrees)
-; coordonnes de points de la grille u en cartesien
+; coordinates of points of the grid u in cartesian.
    ux = reform(r[0, *], nxgd, nygd)
    uy = reform(r[1, *], nxgd, nygd)
    uz = reform(r[2, *], nxgd, nygd)
-; calcul de nu 
+; calculation of nu 
    nux = ux-shift(ux, 1, 0)
    nuy = uy-shift(uy, 1, 0)
    nuz = uz-shift(uz, 1, 0)
-; conditions aux limites
+; conditions at extremities.
    if NOT keyword_set(key_periodic) OR nxgd NE jpi then begin
       nux[0, *] = nux[1, *]
@@ -245,51 +248,51 @@
       nuz[0, *] = nuz[1, *]
    ENDIF
-; reduction de la grille
+; reduction of the grid
    nux = nux[reduitindice2d]
    nuy = nuy[reduitindice2d]
    nuz = nuz[reduitindice2d]
-; definition de nv
+; definition of nv
    IF finite(glamv[0]*gphiv[0]) NE 0 THEN $
    coord_sphe = transpose([ [(glamv[indice2d])[*]], [(gphiv[indice2d])[*]], [radius[*]] ]) $
    ELSE coord_sphe = transpose([ [(glamt[indice2d])[*]], [(gphif[indice2d])[*]], [radius[*]] ])                
    r = cv_coord(from_sphere=coord_sphe,/to_rect,/degrees)
-; coordonnes de points de la grille v en cartesien
+; coordinates of points of the grid in cartesian.
    vx = reform(r[0, *], nxgd, nygd)
    vy = reform(r[1, *], nxgd, nygd)
    vz = reform(r[2, *], nxgd, nygd)
-; calcul de nv 
+; calcul of nv 
    nvx = vx-shift(vx, 0, 1)
    nvy = vy-shift(vy, 0, 1)
    nvz = vz-shift(vz, 0, 1)
-; conditions aux limites
+; conditions at extremities
    nvx[*, 0] = nvx[*, 1]
    nvy[*, 0] = nvy[*, 1]
    nvz[*, 0] = nvz[*, 1]
-; reduction de la grille
+; reduction of the grid
    nvx = nvx[reduitindice2d]
    nvy = nvy[reduitindice2d]
    nvz = nvz[reduitindice2d]
 ;
-; normalisation
+; normalization
 ;
    normalise, nux, nuy, nuz
    normalise, nvx, nvy, nvz
 ;
-; etape 1, c)
-;
-; coordonnes du vecteur V ds le repere cartesion
+; Stage 1, c)
+;
+; coordinates of the vector V in the cartesian reference
 ;
    direcx = zu*nux + zv*nvx
    direcy = zu*nuy + zv*nvy
    direcz = zu*nuz + zv*nvz
-; normalisation du vecteur v
+; normalization of the vector V
    normalise, direcx, direcy, direcz
-; on divise par 100.
+; on divide by 100
    direcx = direcx/100.
    direcy = direcy/100.
    direcz = direcz/100.
 ;
-; etape 1, d)
-; coordonnees de la pointe de la fleche dans le repere cartesien
+; Stege 1, d)
+; coordinates of the point of the arrow in the cartesian reference.
 
    x1 = x0 + direcx
@@ -297,5 +300,5 @@
    z1 = z0 + direcz
 
-; coordonnees de la pointe en spherique
+; coordinates of the point of the arrow in spherical coordinates.
 
    coord_rect = transpose([ [x1[*]], [y1[*]], [z1[*]] ])
@@ -305,9 +308,9 @@
 
 ;
-; modif des glam tout se passe bien au niveau de la ligne de
-; changement de date...attention, il ne faut pas couper les fleches
-; qui sortent de la fenetre!
-; test: si il sort du cadre mais qu''avec un +/- 360 il y rentre on le
-; modifie...
+; modification of glams. Everything take place at the level of the line
+; of changing of date... BEWARE, do not cut arrow which goes out of the
+; window!
+; test: If it goes out of the frame, but, thanks to +/- 360° it come in,
+; we modify it
 ;
    ind = where(glam1 LT !x.range[0] AND glam1+360. LE !x.range[1])
@@ -322,15 +325,15 @@
 ;
 ;
-; etape 1, e)
+; Stage 1, e)
 ;
    r = convert_coord(glam,gphi,/data,/to_normal) 
-   x0 = r[0, *]                 ; coordonnes normales du debut de la fleche
+   x0 = r[0, *]                 ; normal coordinates of the beginning of the array.
    y0 = r[1, *]                 ; 
    
    r = convert_coord(glam1,gphi1,/data,/to_normal) 
-   x1 = r[0, *]                 ; coordonnes normales de la fin de la fleche (avant scaling)
+   x1 = r[0, *]                 ; normal coordinates of the ending of the array (Before scaling).
    y1 = r[1, *]                 ; 
 ;
-; tests pour eviter que des fleches soient dessineees hors du domaine
+; tests to avoid that arrows be drawing out of the domain.
 ;
    out = where(x0 LT !p.position[0] OR x0 GT !p.position[2]  $
@@ -338,6 +341,6 @@
    if out[0] NE -1 THEN x0[out] = !values.f_nan
 ;
-; suivant les projections, il peu y a voir des points a nan qd on
-; passe en coordonnes normales. on supprime ces points.
+; Following projections, there may are points at NaN when we pass in normal coordinates. 
+; We delete these points.
 ;
    nan = finite(x0*y0*x1*y1)
@@ -348,11 +351,10 @@
    norme = norme[number]
 ;
-; on definit le vecteur direction dans le repere normalise
+; We define the vector direction in the normalize reference.
 ;
    dirx = x1-x0
    diry = y1-y0
 ;
-; on passe en polaire pour recuperer l''angle qui etait le but de
-; toute la partie 1!!!
+;We pass in polar coordinates to recuperate the angle which wasb the goal of all the first stage!!!
 ;
 
@@ -360,9 +362,9 @@
    dirpol = msk*dirpol[0, *]
 ;
-; 2eme etape....
-;
-; maintenant on s''occupe de la norme...
-;
-; Mise a l''echelle automatique
+; Stage 2
+;
+; Now we take care of the norme...
+;
+; Automatic putting at the scale 
 ;
    if NOT keyword_set(cmref) then BEGIN 
@@ -380,15 +382,14 @@
    cm = 1.*normeref/cmref
 ;
-; on modifie le tableau norme de facon a ce que un element qui a la
-; valeur cm soit represente par un trait de longueur 1cm sur le
-; papier.
-; norme contient la norme des vecteur que l''on veut dessiner
+; We modify the array norme to an element having the value cm be represented 
+; by a trait of lenght 1 cm on the paper. Norme contain the norme of vectors 
+; we want to draw.
 ;
    norme = 1/(1.*cm)*norme*cv_cm2normal(dirpol)
 ;
 ;
-; 3eme etape....
-; maintenant qu''on a l''angle et la norme, et bien on recupere les
-; coordonnes en rectangulaire et on dessine les fleches.
+; Stage 3
+; Now that we have the angle and the norme, we recuperate coordinates in 
+; rectangular and we draw arrows.
 ;
    r = cv_coord(from_polar = transpose([ [dirpol[*]], [norme[*]] ]), /to_rect)
@@ -399,5 +400,5 @@
    y1 = y0+composantey
 ;
-; c''est parti pour le trace !
+; Drawing
 ;
    if NOT KEYWORD_SET(vectcolor) then vectcolor = 0
@@ -407,8 +408,8 @@
     , hsize = -.2, COLOR = vectcolor, THICK = vectthick
 ;
-;  Dessine une fleche en bas a droite de la figure en guise de legende
+;  Draw an arrow at the right bottom of the drawing as a caption.
 ;
    if NOT keyword_set(novectref) then BEGIN
-      dx = cmref*cv_cm2normal(0) ; longuer du vecteur de reference en coordonnes normalisees.
+      dx = cmref*cv_cm2normal(0) ; Lenght of the vector of reference in normalzed coordinates.
       if keyword_set(vectrefformat) then $
        normelegende = strtrim(string(normeref, format = vectrefformat), 1)+' ' $
Index: /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/velovect.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/velovect.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/velovect.pro	(revision 142)
@@ -1,84 +1,74 @@
-; $Id$
-;
-; Copyright (c) 1983-1998, Research Systems, Inc.  All rights reserved.
-;	Unauthorized reproduction prohibited.
-
 ;
 ;+ 
-; NAME:
-;	VELOVECT
 ;
-; PURPOSE:
-;	Produce a two-dimensional velocity field plot.
+; @file_comments
+; Produce a two-dimensional velocity field plot.
 ;
-;	A directed arrow is drawn at each point showing the direction and 
-;	magnitude of the field.
+; A directed arrow is drawn at each point showing the direction and 
+; magnitude of the field.
 ;               
-; CATEGORY:
-;	Plotting, two-dimensional.
-;
-; CALLING SEQUENCE:
-;	VELOVECT, U, V [, X, Y]
-;
-; INPUTS:
-;	U:	The X component of the two-dimensional field.  
-;		U must be a two-dimensional array.
-;
-;	V:	The Y component of the two dimensional field.  Y must have
-;		the same dimensions as X.  The vector at point [i,j] has a 
-;		magnitude of:
-;
-;			(U[i,j]^2 + V[i,j]^2)^0.5
-;
-;		and a direction of:
-;
-;			ATAN2(V[i,j],U[i,j]).
-;
-; OPTIONAL INPUT PARAMETERS:
-; 	X:	Optional abcissae values.  X must be a vector with a length 
-;		equal to the first dimension of U and V.
-;
-;	Y:	Optional ordinate values.  Y must be a vector with a length
-;		equal to the first dimension of U and V.
-;
-; KEYWORD INPUT PARAMETERS:
-;	COLOR:	The color index used for the plot.
-;
-;	DOTS:	Set this keyword to 1 to place a dot at each missing point. 
-;		Set this keyword to 0 or omit it to draw nothing for missing
-;		points.  Has effect only if MISSING is specified.
-;
-;	LENGTH:	Length factor.  The default of 1.0 makes the longest (U,V)
-;		vector the length of a cell.
-;
-;       MISSING: Missing data value.  Vectors with a LENGTH greater
-;		than MISSING are ignored.
-;
-;       OVERPLOT: Set this keyword to make VELOVECT "overplot".  That is, the
-;               current graphics screen is not erased, no axes are drawn, and
-;               the previously established scaling remains in effect.
+; @categories
+; Plotting, two-dimensional.
 ;
 ;
-;	Note:   All other keywords are passed directly to the PLOT procedure
-;		and may be used to set option such as TITLE, POSITION, 
-;		NOERASE, etc.
-; OUTPUTS:
-;	None.
+; @param U {in}{required}
+; The X component of the two-dimensional field.  
+; U must be a two-dimensional array.
 ;
-; COMMON BLOCKS:
-;	None.
+; @param V {in}{required}
+; The Y component of the two dimensional field.  Y must have
+; the same dimensions as X.  The vector at point [i,j] has a 
+; magnitude of:
 ;
-; SIDE EFFECTS:
-;	Plotting on the selected device is performed.  System
-;	variables concerning plotting are changed.
+;	(U[i,j]^2 + V[i,j]^2)^0.5
 ;
-; RESTRICTIONS:
-;	None.
+; and a direction of:
 ;
-; PROCEDURE:
-;	Straightforward.  Unrecognized keywords are passed to the PLOT
-;	procedure.  
+;	ATAN2(V[i,j],U[i,j]).
 ;
-; MODIFICATION HISTORY:
+; @param X {in}{optional}
+; Optional abcissae values.  X must be a vector with a length 
+; equal to the first dimension of U and V.
+;
+; @param Y {in}{optional}
+; Optional ordinate values.  Y must be a vector with a length
+; equal to the first dimension of U and V.
+;
+; @keyword COLOR
+; The color index used for the plot.
+;
+; @keyword DOTS
+; Set this keyword to 1 to place a dot at each missing point. 
+; Set this keyword to 0 or omit it to draw nothing for missing
+; points.  Has effect only if MISSING is specified.
+;
+; @keyword LENGTH
+; Length factor.  The default of 1.0 makes the longest (U,V)
+; vector the length of a cell.
+;
+; @keyword MISSING
+;  Missing data value.  Vectors with a LENGTH greater
+; than MISSING are ignored.
+;
+; @keyword OVERPLOT
+; Set this keyword to make VELOVECT "overplot".  That is, the
+; current graphics screen is not erased, no axes are drawn, and
+; the previously established scaling remains in effect.
+; 
+; @keyword CLIP
+; 
+; @keyword NOCLIP
+;
+; @keyword _EXTRA
+; Used to pass your keywords.
+;
+; @restrictions 
+; Plotting on the selected device is performed.  System
+; variables concerning plotting are changed.
+; Note:   All other keywords are passed directly to the PLOT procedure
+;	and may be used to set option such as TITLE, POSITION, 
+;	NOERASE, etc.
+;
+; @history
 ;	DMS, RSI, Oct., 1983.
 ;	For Sun, DMS, RSI, April, 1989.
@@ -96,4 +86,11 @@
 ;       February, 1998, DLD.  Add support for CLIP and NO_CLIP keywords.
 ;       June, 1998, DLD.  Add support for OVERPLOT keyword.
+;
+; Copyright (c) 1983-1998, Research Systems, Inc.  All rights reserved.
+;	Unauthorized reproduction prohibited.
+;
+; @version
+; $Id$
+;
 ;-
 ;
Index: /trunk/SRC/ToBeReviewed/PLOTS/axe.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/axe.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/axe.pro	(revision 142)
@@ -3,46 +3,55 @@
 ;------------------------------------------------------------
 ;+
-; NAME:axe
-;
-; PURPOSE:gerre les axes pour les differents dessins crees par plt,
-; pltz et pltt
-;
-; CATEGORY:environnement graphique
-;
-; CALLING SEQUENCE:axe,coupe[,tempsmin,tempsmax]
-;
-; INPUTS:
-;        coupe: un string qui designe le type de coupe auquel doit de
-;        raporter les axes que l''on cree. par ex: 'xy','xt'...
-;
-;        tempsmin et tempsmax: ds le cas ou l''on fait une coupe
-;        contenant la dimension temps, il faut specifier le debut et
-;        la fin de l''axe des temps en jours julien.
-;
-; KEYWORD PARAMETERS: /SIN active qd on trace en sinus de la latitude
-;
-;        SEPDATE: string separant les differents constituants de la
-;        date. Par defaut c''est un retour a la ligne qd on fait un
-;        'yt', 'zt' ou 't' dans les autres cas c''est un blanc. 
-;
-;        DIGITSYEAR=2 to use %Z format (2 digits) to code years
-;        instead of %Y format. See help of label_date for more
-;        informations on %Z and %Y.
-;
-; OUTPUTS:les variables globales d''environnement graphique: !x. et !y.
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS:modifie !x. et !y.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @file_comments
+; Manage axes for the different drawings created by plt,
+; pltz and pltt
+;
+; @categories 
+; Graphic environment
+;
+; @param COUPE
+; It is a string designating the type of cut to which the axes we create 
+; must report. For example: 'xy','xt'...
+;
+; @param TEMPSMIN {in}{required}
+; In the case where we do cut containing the time dimension, we have 
+; to specify the beginning of the time's axis in julian days.
+;
+; @param TEMPSMAX {in}{required}
+; In the case where we do cut containing the time dimension, we have 
+; to specify the end of the time's axis in julian days.
+;
+; @keyword SIN 
+; activated when we trace in sinus of the latitude
+;
+; @keyword SEPDATE
+; string separating the différent constituents of the date. By default, 
+; it is a return to the linewhen we do a 'yt', 'zt' or a 't'. 
+; In the other cases, it is a blank. 
+;
+; @keyword DIGITSYEAR
+; =2 to use %Z format (2 digits) to code years
+; instead of %Y format. See help of label_date for more
+; informations on %Z and %Y.
+;
+; @keyword _EXTRA 
+; used to pass your keywords
+; 
+; @uses
+; common.pro
+;
+; @restrictions
+; It modify !x. and !y.
+;
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                       11/12/98
 ;                       Eric Guilyardi types x,y,z + amelioration de
 ;                       l''axe temporel
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -56,6 +65,6 @@
    tempsun = systime(1)         ; pour key_performance
 ;--------------------------------------------------------------
-; gestion des ticks de l'axe des temps ds le ces ou tempsmin et
-; tempsmax sont definits
+; Management of ticks of the time axis in the case of TEMPSMIN 
+; and TEMPSMAX are definied
 ;--------------------------------------------------------------
    divday = 0
@@ -73,5 +82,5 @@
       if ymax EQ ymin then BEGIN
          if mmin ne mmax then BEGIN
-; meme annee mais plusieurs mois
+; Same year but several monthes
             nticks = mmax-mmin+1
             ticknom = lonarr(nticks)
@@ -79,8 +88,8 @@
             tminor = 6
             datfmt = '%M'+sep+fmtyr
-; on verifie que les labels rentrent bien entre tempsmin et tempsmax...
+; We check that labels are betwenn TEMPSMIN and TEMPSMAX...
             ticknom = ticknom[where(ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE -1)]
             nticks = n_elements(ticknom)
-; cas particulier ou l''on est a cheval sur 2 mois
+; Particular case where we are overlap two monthes
             if nticks LE 1 then begin
                nticks = (dmax+(jourdsmois(mmin, ymin))[0]-dmin+1)/2
@@ -94,5 +103,5 @@
             endif
          ENDIF ELSE BEGIN 
-; meme annee et meme mois
+; Same year and same month
             IF dmax-dmin+1 GT 4 THEN BEGIN ; more than 4 days
                nticks = dmax-dmin+1
@@ -116,5 +125,5 @@
          ENDELSE 
       ENDIF ELSE BEGIN 
-; plusieurs annees
+; Several years
          CASE 1 OF
          ymax-ymin+1 LE 10: BEGIN & freq = 1. & tminor = 12 & datfmt = '%M'+sep+fmtyr & end
@@ -131,8 +140,8 @@
          ticknom = lonarr(nticks)
          for y = 0, nticks-1 do ticknom[y] = julday(1, 1, yminf+(y*freq), _EXTRA = ex)
-; on verifie que les labels rentrent bien entre tempsmin et tempsmax...
+; We check that labels are betwenn TEMPSMIN and TEMPSMAX...
          ticknom = ticknom[where(ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE -1)]
          nticks = n_elements(ticknom)
-; cas particulier ou l''on est a cheval sur 2 annees
+; Particular case where we are overlap two monthes
          if nticks LE 1 then begin
             nticks = (mmax+12)-mmin+1
@@ -143,6 +152,6 @@
             tminor = 6
             datfmt = '%M'+sep+fmtyr
-; cas particulier ou l''on est a cheval sur 2 mois
-            if nticks LE 1 then begin
+ ; Particular case where we are overlap two monthes
+           if nticks LE 1 then begin
                nticks = (dmax+(jourdsmois(mmin, ymin))[0]-dmin+1)/2
                ticknom = lonarr(nticks)
@@ -160,5 +169,5 @@
    ENDIF 
 ;--------------------------------------------------------------
-; definition des parametres des axes au cas par cas
+; Definition of axes parameters case by case
 ;--------------------------------------------------------------
    case coupe of
@@ -173,11 +182,11 @@
          if keyword_set(reverse_y) then !y.range=[0, -1] ELSE !y.range = [-1, 0]
          if keyword_set(sin) then BEGIN
-; nombre de ticks par defaut
+; number of ticks by default
             plot, [0], [0], /noerase, /nodata, xtick_get = xaxe
-; on augmente ce nombre pour qu''il soit autour de 10 
+; We increase this number to it be around 10 
             ticks = n_elements(xaxe)-1
             ticks = ticks*[1, 2, 4, 8]
             ticks = ticks[(sort(abs(ticks-10)))[0]]
-; on recupere l''axex pour ce nouveau nombre de ticks
+; We recuperate the x axis for this new number of ticks
             plot, [0], [0],xticks = ticks, /noerase, /nodata, xtick_get = xaxe
             !x.ticks = ticks
@@ -254,11 +263,11 @@
       'y' : begin
          if keyword_set(sin) then BEGIN
-; nombre de ticks par defaut
+; Number of ticks by default
             plot, [0], [0], /nodata, /noerase, xstyle = 5, ystyle = 5, xtick_get = xaxe
-; on augmente ce nombre pour qu''il soit autour de 10 
+; We increase this number to it be around 10 
             ticks = n_elements(xaxe)-1
             ticks = ticks*[1, 2, 4, 8]
             ticks = ticks[(sort(abs(ticks-10)))[0]]
-; on recupere l''axex pour ce nouveau nombre de ticks
+; We recuperate the x axis for this new number of ticks
             plot, [0], [0],xticks = ticks,/nodata,/noerase,xstyle=5,ystyle=5,xtick_get=xaxe
             !x.ticks = ticks
Index: /trunk/SRC/ToBeReviewed/PLOTS/legende.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/legende.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/legende.pro	(revision 142)
@@ -3,40 +3,46 @@
 ;------------------------------------------------------------
 ;+
-; NAME:legende.pro
-;
-; PURPOSE:fournit les legendes
-;
-; CATEGORY:graph annexe
-;
-; CALLING SEQUENCE:legende, mi,ma,coupe,title,subtitle,xtitle,ytitle
-;
-; INPUTS:mi et ma: le max et le min du dessin (cf plt.pro et pltz.pro)
-;	 coupe=caractere de 2 lettres donnant le type de coupe (par ex:'xz')
-;
-; KEYWORD PARAMETERS:
-;
-;	TITRE: chaine de caracteres qui doit etre le titre du dessin. Par
-; defaut le titre est le nom vairmer du champ
-;
-;       ENDPOINTS:utilise qd on fait des coupes veticales en diagonale
-;
-; OUTPUTS:le titre, sous-titre,titre de x et titre de y
-;
-; COMMON BLOCKS:
-;	common.pro
-;
-; SIDE EFFECTS: l''utilisation de la variable globale langage permet
-; de changer de langue ou de facon de legender facilement. On peut
-; facilement personnaliser la chose en rajoutant un cas au case sur la
-; valeur de langage.
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+;
+; @file_comments
+; Provide caption
+;
+; @categories
+; graphic, annex
+;
+; @param MI {in}{required}
+; The min of the drawing
+; 
+; @param MA {in}{required}
+; The max of the plot
+;
+; @param COUPE
+; Charactere containing two letters giving the type of the cut  (for example: 'xz').
+;
+; @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 ENDPOINTS
+; Used when we do vertical cuts in diagonal.
+;
+; @keyword _EXTRA
+; used to pass your keywords
+; 
+; @uses
+; common.pro
+;
+; @restrictions
+; The use of the global variable langage allows to change the language and the caption easily.
+;
+; @history
+;  Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;			14/8/98
 ;                       Eric Guilyardi (ericg@lodyc.jussieu.fr) GB version
 ;			11/6/99
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -95,5 +101,5 @@
 ;
 ;------------------------------------------------------------
-; definition et complement eventuelle de !p.subtitle
+; definition and possible complement of !p.subtitle
 ;------------------------------------------------------------
    if n_elements(varunit) ne 0 then unite='('+varunit+')' else unite=''
@@ -104,5 +110,5 @@
        !p.subtitle=!p.subtitle+', Int= '+strtrim(string(format=fmt_mm,intervalle), 2)
    endif
-   if size(contour, /type) EQ 8 then BEGIN ; c''est une structure
+   if size(contour, /type) EQ 8 then BEGIN ; it is a structure 
       unite='('+contour.(1)+')'
       !p.subtitle=!p.subtitle+'!C '+contourf+unite $
@@ -119,7 +125,7 @@
    endif
 ;------------------------------------------------------------
-; mise en forme des dimensions du sous domaine
-;------------------------------------------------------------
-   la1=strtrim(string(format=fmt_bt, lat1), 2)
+; Shapping of subdomain 's dimensions
+;------------------------------------------------------------  
+  la1=strtrim(string(format=fmt_bt, lat1), 2)
    la2=strtrim(string(format=fmt_bt, lat2), 2)
    lo1=strtrim(string(format=fmt_bt, lon1), 2)
@@ -128,7 +134,7 @@
    pr2=strtrim(string(format=fmt_bt, vert2), 2)
 ;------------------------------------------------------------
-; gestion de la date
-;------------------------------------------------------------
-   if n_elements(vardate) EQ 0 then vardate = ''
+; Management of the date
+;------------------------------------------------------------  
+ if n_elements(vardate) EQ 0 then vardate = ''
    if NOT keyword_set(direc) then direc = ''
    if strpos(direc, 't') NE -1 then begin
@@ -136,6 +142,6 @@
    ENDIF ELSE svardate = vardate
 ;------------------------------------------------------------
-; case sur le cas auquel s''applique la legende
-;------------------------------------------------------------
+; case on the caes where the caption is applied
+;------------------------------------------------------------   
    case coupe of
       'xy':begin          
Index: /trunk/SRC/ToBeReviewed/PLOTS/plotsym.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/plotsym.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/plotsym.pro	(revision 142)
@@ -1,23 +1,35 @@
 ;+
-; NAME:
-;  plotsym
-; PURPOSE:
-;  function to make plotting symbols much easier.
-; Usage:
-;   plot,x,y,psym=plotsym(/circle,scale=2,/fill)
 ;
-; CATEGORY:
-;   Graphics.
+; @file_comments
+; function to make plotting symbols much easier.
+; 
+; @categories
+; Graphic.
 ;
-; Keywords:
-;  circle =  circle symbol
-;  triangle = triangle symbol
-;  diamond = diamond symbold
-;  box = box symbol
-;  line = line symbol
-;  scale = scales the symbol
-;  angle = angle the symbol should be rotated
-;  _extra = extra keywords for usersym.  These are thick, color and fill
+; @Keyword circle 
+; circle symbol
+; 
+; @Keyword TRIANGLE
+; triangle symbol
+; 
+; @Keyword DIAMOND 
+; diamond symbold
+; 
+; @Keyword BOX
+; box symbol
+; 
+; @Keyword LINE
+; line symbol
+ ;
+; @Keyword SCALE
+; scales the symbol
+; 
+; @Keyword ANGLE
+; angle the symbol should be rotated
+; 
+; @Keyword _EXTRA
+; extra keywords for usersym.  These are thick, color and fill
 ;
+; @history
 ; Written by:
 ; Ronn Kling
@@ -27,4 +39,8 @@
 ; klingrl@juno.com
 ; copyright 1999, all rights reserved
+;
+; @version
+; $Id$
+; 
 ;-
 
Index: /trunk/SRC/ToBeReviewed/PLOTS/reinitplt.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/reinitplt.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/reinitplt.pro	(revision 142)
@@ -3,35 +3,46 @@
 ;------------------------------------------------------------
 ;+
-; NAME:			REINITPLT
 ;
-; PURPOSE:		This procedure will reinitialise all or a selection 
-;			ofthe system plot variables
+; @file_comments
+; This procedure will reinitialise all or a selection 
+; ofthe system plot variables
 ;
-; CATEGORY:		Plot Utility
+; @categories
+; plot Utility
 ;
-; CALLING SEQUENCE:	clearplt,/all		;clear the !p, !x, !y, !z 
-;			clearplt,/x,/z		;clear the !x and !z variables 
-;			clearplt,/x		;only clear the !x variable
-;			clearplt,/x,/invert	;clear all except the !x 
+; 
+; @keyword X
+; clear the appropriate variable
 ;
-; INPUTS:		
-;	KEYWORDS:
-;		x,y,z,p	= clear the appropriate variable
-;		all	= clear all, this is equivalent to /x,/y,/z,/p
-;		invert	= invert the logic. Clear all unselected variables.
-;			  Therefore "clearplt,/all,/invert" does nothing.
+; @keyword Y
+; clear the appropriate variable
+; 	
+; @keyword Z	
+; clear the appropriate variable
+; 
+; @keyword P
+; clear the appropriate variable
+;		
+; @keyword ALL	
+; Clear all, this is equivalent to /x,/y,/z,/p
+;		
+; @keyword INVERT
+; Invert the logic. Clear all unselected variables.
+; Therefore "clearplt,/all,/invert" does nothing.
 ;
-; OUTPUTS:	none
-;
-; COMMON BLOCKS:
-;	common.pro
-; SIDE EFFECTS:
-;		The sytem plot variables are changed.
+; @uses
+; common.pro
+; 
+; @restrictions
+; The sytem plot variables are changed.
 ;	
-; MODIFICATION HISTORY:
-;	Written by: Trevor Harris, Physics Dept., University of Adelaide,
+; @history
+; Written by: Trevor Harris, Physics Dept., University of Adelaide,
 ;		July, 1990.
 ;
-;       Sebastien Masson 7/5/98
+; Sebastien Masson 7/5/98
+;
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/PLOTS/style.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/style.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/style.pro	(revision 142)
@@ -3,21 +3,20 @@
 ;------------------------------------------------------------
 ;+
-; NAME:style
 ;
-; PURPOSE:choisit la facon de tracer les isolignes
+; @file_comments 
+; Choose the way to trace isolines.
 ;
-; CATEGORY:graphique
+; @categories
+; graphic
 ;
-; CALLING SEQUENCE:style,labstyle,level_z2d,linestyle,thick
+; @param LABSTYLE {in}{required}
+; Number to which the style of drawing choosen refer to.
+;	
+; @param LEVEL_Z2D {in}{required}
+; Vector containing values of isolignes to be traced.
 ;
-; INPUTS:labstyle: nombre auquel se refaire le styel de trace choisit
-;	 level_z2d:vecteur contenant les valeures des isolignes a tracer
-;
-; KEYWORD PARAMETERS:
-;
-; OUTPUTS:
-;	linestyle:vecteur utilise pour definir le style des
-;	isocontours
-;       rq: pour memoire:
+; @param LINESTYLE {out}
+; Vector used to define the isocontour's style
+;       Comment: remenber:
 ;		Index	Linestyle	
 ;		0	Solid	
@@ -27,15 +26,13 @@
 ;		4	Dash Dot Dot Dot	
 ;		5	Long Dashes	
-;	thick:vecteur definissant l'epaisseur de l'isoligne 
+; 
+; @param THICK {out}
+; Vector defining the thick of the isoline.
 ;
-; COMMON BLOCKS:
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY: Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @version
+; $Id$
 ;
 ;-
@@ -49,5 +46,5 @@
    case labstyle of
       0: begin
-;serie: deux lignes continues fines, une ligne continue grasse
+;series: Two thin continuous lines, one boldface continuous line
          thick=[1,1,2]
          linestyle=[0]
@@ -55,6 +52,6 @@
       end
       1: begin
-;serie: avant le mileu des levels: tiret fin. apres trait continu fin.
-; si le mileu est dessine il est en trait continu gras
+;series: Before the middle of levels: thin dash. Then thin continuous trait.
+; If the middle of the drawing is drawn, it is in boldface continuous trait.
          impair=n_elements(level_z2d)-2*fix(n_elements(level_z2d)/2)
          a=replicate(0,fix(n_elements(level_z2d)/2))
@@ -71,6 +68,6 @@
       end
       2: begin
-;serie: avant le seuil (definit en repondant a une question): tiret fin.
-; apres trait continu fin. si le seuil est dessine il est en trait continu gras
+;series: Before the sill (defined by answering to a question): thin dash.
+; Then thin continuous trait. If the sill is drawn, it is in boldface continuous trait.
          seuil=xquestion('Quelle est la limite tirets/trait continu? ','0')
          seuil = float(seuil)
@@ -110,5 +107,5 @@
       end
       4: begin
-; trait continu gras pour 0
+; Boldface continuous trait.
          seuil = 1.e-6
          thick=replicate(.5,  n_elements(level_z2d))
Index: /trunk/SRC/ToBeReviewed/PLOTS/symbols.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/PLOTS/symbols.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/PLOTS/symbols.pro	(revision 142)
@@ -1,17 +1,8 @@
 ;+
-; NAME:
 ;
-;         SYMBOLS
-;         
-; PURPOSE:
-;
-;         Create custom plotting symbols
-;         
-; CALLING SEQUENCE:
+; @file_comments
+; Create custom plotting symbols
 ; 
-;	  SYMBOLS,SYMBOL_NUMBER,SCALE
-;	    
-; INPUTS:
-;	 SYMBOL_NUMBER:
+; @param NSYM {in}{required}
 ;	 
 ;                1 = open circle
@@ -34,18 +25,20 @@
 ;		 32 = filled triangle
 ;		 
-;	 SCALE - size of symbols.
+; @param SCALE {in}{required}
+; size of symbols.
 ;	 
-; KEYWORD PARAMETERS:
-; 
-;		COLOR - color of symbols
+; @keyword COLOR
+; color of symbols
 ;		
-; SIDE EFFECTS:
-; 
-;           The desired symbol is stored in the user buffer and 
-;	    will be plotted if !P.PSYM = 8.
+; @restrictions
+; The desired symbol is stored in the user buffer and 
+; will be plotted if !P.PSYM = 8.
 ;
-; MODIFICATION HISTORY:
-; 
-;		Jeff Bennett, U of Colorado, 198?
+; @history
+; Jeff Bennett, U of Colorado, 198?
+;
+; @version
+; $Id$
+;
 ;-
 pro symbols,nsym,scale,color=col
Index: /trunk/SRC/ToBeReviewed/STRING/chkeywd.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/chkeywd.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/chkeywd.pro	(revision 142)
@@ -3,51 +3,58 @@
 ;------------------------------------------------------------
 ;+
-; NAME: chkeywd (change keyword)
 ;
-; PURPOSE: ds un string qui contient une commande a executer avec
-; EXECUTE par ex. On change la valeur d''un des mot cle.
-; Plus generalement, ds un string, on cherche la chaine de
-; chacarteres: ', keywdname= ..., et on change la valeur de ...
+; @file_comments
+; In a string containing an order to executewith EXECUTE by example. 
+; We change the value of one of keywords.
+; More generally, in a string, we look for the caracter chain: ', keywdname= ...,
+; and we change the value of...
 ;
-; CATEGORY: pour bidouiller des commandes passees par execute
+; @categories
+; string, keywords
 ;
-; CALLING SEQUENCE: stringout=chkeywd(stringin, keywdname, keywdvalue)
 ; 
-; INPUTS:
-;      stringin: un string
-;      keywdname: un string designant le nom du mot clef a chercher.
-;      keywdvalue: nouvelle valeur du mot clef a considerer ds stringin
+; @param STRINGIN {in}{required}
+; it is a string
 ;
-; KEYWORD PARAMETERS:
-;      pour chercher le mot cle, on cherche le premier signe = qui
-;      suit la position de keywdname. on substitue
-;      pardefaut tout le bout de string qui suit jusqu''a la prochaine
-;      virgule. avec les mots cles SEPARATOR et AFTER on peut modifier
-;      cette decoupe du string:
-;      SEPARATOR donne un chatactere avant (ou apres si AFTER est
-;      active) lequel il faut chercher la virgule qui delimite le mot
-;      cle ds le string. cf. les exemples
+; @param KEYWDNAME {in}{required}
+; it is a string designating the name of keyword to look for.
 ;
-; OUTPUTS:stringout=stringin modifie si keywdname a ete trouve ds
-; stringin
+; @param KEYWDVALUE {in}{required} 
+; The new value of the keyword to considerate in STRINGIN
 ;
-; COMMON BLOCKS:common.pro
+; @keyword SEPARATOR
+; To look for the keyword, we look for the first sign = which follow 
+; the position of keywdname. By default, we substitute the string 
+; before the comma. With the keyword SEPARATOR,we can modify the cut 
+; of the string. SEPARATOR give a caractere before the one we have to 
+; look for the comma which delimit the keyword in the string.
+; (see examples)
 ;
-; SIDE EFFECTS:
-;   
-;   Si keywdvalue est un tableau, il sera convertit en vecteur.
+; @keyword AFTER
+; To look for the keyword, we look for the first sign = which follow 
+; the position of keywdname. By default, we substitute the string 
+; before the comma. With the keyword AFTER,we can modify the cut 
+; of the string. AFTER give a caractere after the one we have to 
+; look for the comma which delimit the keyword in the string.
+; (see examples)
 ;
-; RESTRICTIONS:
+; @returns 
+; stringout=stringin modified if keywdname has been found in stringin
 ;
-;   attention cette fonction comporte des boucles, des if et des cases
-;   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-;   mots clefs de grosse taille (avec bcp d''elements et avec des
-;   elements etant de gros tableaux).
-;   le mot clef en entree ne doit pas contenir de Complex floating, de
-;   structure, de Double-precision complex, de Pointer, de Object
-;   reference, de Unsigned Integer, de Unsigned Longword Integer, de
-;   64-bit Integer, de Unsigned 64-bit Integer	
+; @uses 
+; common.pro
 ;
-; EXAMPLE:
+; @restrictions
+; If keywdvalue is an array, it will be convert in a vector.
+;
+; @restrictions
+; Beware, this function has loops, ifs ad cases everywhere. So it can 
+; not be used by big keywords (with a lot of elements which are big 
+; arrays). The input keyword must not contain Complex floatings, structure, 
+; Double-precision complex, Pointer, Object reference, Unsigned Integer, 
+; Unsigned Longword Integer, 64-bit Integer or Unsigned 64-bit Integer.
+; 
+;
+; @examples
 ;
 ;   IDL> b='ok=111, year=[1997,1998,1999], age_capitaine=35'
@@ -64,8 +71,12 @@
 ;   ok=111, year='c''est bon', /age_capitaine
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      18/10/1999
-;                      24/11/1999: adaptation pour les mots cles
-;                      commencant par /
+;                      24/11/1999: adaptation for keywords starting by /
+; 
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
@@ -81,5 +92,5 @@
    if poskeywd EQ -1 then return, stringout
    while poskeywd NE -1 do BEGIN
-; changer un mot cle qui commence par /toto
+; change a keyword starting by /toto
       if strmid(stringout,poskeywd-1,1) EQ '/' then BEGIN
          ajoute = keywdname+'='+tostr(keywdvalue)
@@ -88,5 +99,5 @@
          poskeywd = strpos(stringout, keywdname, poskeywd)
       ENDIF ELSE BEGIN 
-; changer un mot cle qui commence par toto=
+; change a keyword sarting by toto=
          posegal = strpos(stringout, '=', poskeywd)
          if posegal EQ -1 then return, stringout
Index: /trunk/SRC/ToBeReviewed/STRING/delchr.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/delchr.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/delchr.pro	(revision 142)
@@ -1,20 +1,22 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       DELCHR
-; PURPOSE:
-;       Delete all occurrences of a character from a text string.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       new = delchr(old, char)
-; INPUTS:
-;       old = original text string.     in
-;       char = character to delete.     in
-; KEYWORD PARAMETERS:
-; OUTPUTS:
-;       new = resulting string.         out
-; COMMON BLOCKS:
-; NOTES:
-; MODIFICATION HISTORY:
+;
+; @file_comments
+; Delete all occurrences of a character from a text string.
+; 
+; @categories
+;
+; @param OLD {in}{required}
+; original text string.
+; 
+; @param C {in}{required}
+; character to delete.
+;
+; @keyword HELP
+;
+; @returns
+; new = resulting string.
+; 
+; @history
 ;       R. Sterner.  5 Jul, 1988.
 ;       Johns Hopkins Applied Physics Lab.
@@ -27,4 +29,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/getfile.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/getfile.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/getfile.pro	(revision 142)
@@ -1,28 +1,32 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       GETFILE
-; PURPOSE:
-;       Read a text file into a string array.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       s = getfile(f)
-; INPUTS:
-;       f = text file name.      in
-; KEYWORD PARAMETERS:
-;       Keywords:
-;         ERROR=err  error flag: 0=ok, 1=file not opened,
-;           2=no lines in file.
-;         /QUIET means give no error message.
-;         LINES=n  Number of lines to read (def=all).
-;           Much faster if number of lines is known.
-;           Automatic for IDL 5.6 or later.
-;         /FIND search te file in the all !path directories (use
-;         find.pro)
-; OUTPUTS:
-;       s = string array.        out
-; COMMON BLOCKS:
-; NOTES:
-; MODIFICATION HISTORY:
+;
+; @file_comments
+; Read a text file into a string array.
+;
+; @param filein {in}{required}
+; text file name.
+; 
+; @Keyword ERROR
+; =err  error flag: 0=ok, 1=file not opened,
+; 2=no lines in file.
+;         
+; @keyword QUIET 
+; means give no error message.
+;         
+; @keyword LINES
+; =n  Number of lines to read (def=all).
+; Much faster if number of lines is known.
+; Automatic for IDL 5.6 or later.
+;         
+; @keyword FIND 
+; search te file in the all !path directories (use
+; find.pro)
+;
+; @keyword HELP
+; 
+; @returns
+; 
+; @history
 ;       R. Sterner, 20 Mar, 1990
 ;       R. Sterner, 1999 Apr 14 --- Added LINES=n keyword.
@@ -42,4 +46,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/getwrd.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/getwrd.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/getwrd.pro	(revision 142)
@@ -1,38 +1,52 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       GETWRD
-; PURPOSE:
-;       Return the n'th word from a text string.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       wrd = getwrd(txt, n, [m])
-; INPUTS:
-;       txt = text string to extract from.         in
-;         The first element is used if txt is an array.
-;       n = word number to get (first = 0 = def).  in
-;       m = optional last word number to get.      in
-; KEYWORD PARAMETERS:
-;       Keywords:
-;         LOCATION = l.  Return word n string location.
-;         DELIMITER = d. Set word delimiter (def = space & tab).
-;         /LAST means n is offset from last word.  So n=0 gives
-;           last word, n=-1 gives next to last, ...
-;           If n=-2 and m=0 then last 3 words are returned.
-;         /NOTRIM suppresses whitespace trimming on ends.
-;         NWORDS=n.  Returns number of words in string.
-; OUTPUTS:
-;       wrd = returned word or words.              out
-; COMMON BLOCKS:
-;       getwrd_com
-; NOTES:
-;       Note: If a NULL string is given (txt="") then the last string
-;             given is used.  This saves finding the words again.
-;             If m > n wrd will be a string of words from word n to
-;             word m.  If no m is given wrd will be a single word.
-;             n<0 returns text starting at word abs(n) to string end
-;             If n is out of range then a null string is returned.
-;             See also nwrds.
-; MODIFICATION HISTORY:
+;
+; @file_comments
+; Return the n'th word from a text string.
+; 
+; @categories
+;
+; @param TXTSTR {in}{required}
+; text string to extract from.
+; The first element is used if txt is an array.
+;
+; @param NTH {in}{required}
+; word number to get (first = 0 = def)
+;
+; @param MTH {in}{required}
+; optional last word number to get.
+;
+; @keyword LOCATION
+; = l.  Return word n string location.
+;         
+; @keyword DELIMITER
+; = d. Set word delimiter (def = space & tab).
+;         
+; @keyword LAST
+; means n is offset from last word.  So n=0 gives
+; last word, n=-1 gives next to last, ...
+; If n=-2 and m=0 then last 3 words are returned.
+;
+; @keyword NOTRIM
+; suppresses whitespace trimming on ends.
+; 
+; @keyword NWORDS
+; = n. Returns number of words in string.
+; 
+; @returns wrd = returned word or words.
+;
+; @uses
+; getwrd_com
+; 
+; @restrictions
+; If a NULL string is given (txt="") then the last string
+; given is used.  This saves finding the words again.
+; If m > n wrd will be a string of words from word n to
+; word m.  If no m is given wrd will be a single word.
+; n<0 returns text starting at word abs(n) to string end
+; If n is out of range then a null string is returned.
+; See also nwrds.
+;
+; @history
 ;       Ray Sterner,  6 Jan, 1985.
 ;       R. Sterner, Fall 1989 --- converted to SUN.
@@ -51,4 +65,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/isnumber.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/isnumber.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/isnumber.pro	(revision 142)
@@ -1,17 +1,20 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       ISNUMBER
-; PURPOSE:
-;       Determine if a text string is a valid number.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       i = isnumber(txt, [x])
-; INPUTS:
-;       txt = text string to test.                      in
-; KEYWORD PARAMETERS:
-; OUTPUTS:
-;       x = optionaly returned numeric value if valid.  out
-;       i = test flag:                                  out
+;
+; @file_comments
+; Determine if a text string is a valid number.
+;
+; @categories
+;
+; @param TXT0 {in}{required}
+; text string to test.
+;
+; @param X {in}{required}
+;
+; @keyword HELP
+;
+; @returns
+;       x = optionaly returned numeric value if valid.  
+;       i = test flag:                                  
 ;           0: not a number.
 ;           1: txt is a long integer.
@@ -19,7 +22,6 @@
 ;           -1: first word of txt is a long integer.
 ;           -2: first word of txt is a float.
-; COMMON BLOCKS:
-; NOTES:
-; MODIFICATION HISTORY:
+; 
+; @history
 ;       R. Sterner.  15 Oct, 1986.
 ;       Johns Hopkins Applied Physics Lab.
@@ -33,4 +35,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/lenstr.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/lenstr.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/lenstr.pro	(revision 142)
@@ -24,5 +24,8 @@
 ;           Institute for Computational Earth System Science
 ;           University of California, Santa Barbara
-;-
+;
+; @todo seb 
+;
+;;-
 
 function lenstr,str
Index: /trunk/SRC/ToBeReviewed/STRING/nwrds.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/nwrds.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/nwrds.pro	(revision 142)
@@ -1,22 +1,25 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       NWRDS
-; PURPOSE:
-;       Return the number of words in the given text string.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       n = nwrds(txt)
-; INPUTS:
-;       txt = text string to examine.             in
-; KEYWORD PARAMETERS:
-;       Keywords:
-;         DELIMITER = d.  Set delimiter character (def = space).
-; OUTPUTS:
-;       n = number of words found.                out
-; COMMON BLOCKS:
-; NOTES:
-;       Notes: See also getwrd.
-; MODIFICATION HISTORY:
+;
+; @file_comments
+; Return the number of words in the given text string.
+; 
+; @categories
+;
+; @param TXTSTR
+; = text string to examine.
+;
+; @keyword DELIMITER
+; = d.  Set delimiter character (def = space).
+; 
+; @keyword HELP
+;
+; @returns
+; n = number of words found.
+; 
+; @restrictions
+; See also getwrd.
+; 
+; @history
 ;       R. Sterner,  7 Feb, 1985.
 ;       Johns Hopkins University Applied Physics Laboratory.
@@ -28,4 +31,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/putfile.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/putfile.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/putfile.pro	(revision 142)
@@ -1,21 +1,21 @@
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;       PUTFILE
-; PURPOSE:
-;       Write a text file from a string array.
-; CATEGORY:
-; CALLING SEQUENCE:
-;       putfile, f, s
+;
+; @file_comments
+; Write a text file from a string array.
+; 
+; @categories
+;
 ; INPUTS:
-;       f = text file name.      in
-;       s = string array.        in
-; KEYWORD PARAMETERS:
-;       Keywords:
-;         ERROR=err  error flag: 0=ok, 1=invalid string array.
-; OUTPUTS:
-; COMMON BLOCKS:
-; NOTES:
-; MODIFICATION HISTORY:
+; @param FILE {in}{required}
+; = text file name.
+;
+; @param S {in}{required}
+; = string array.
+;
+; @keyword ERROR
+; =err  error flag: 0=ok, 1=invalid string array.
+; 
+; @history
 ;       R. Sterner, 20 Mar, 1990
 ;       R. Sterner,  4 Nov, 1992 --- allowed scalar strings.
@@ -26,4 +26,8 @@
 ; routine is provided as is without any express or implied warranties
 ; whatsoever.  Other limitations apply as described in the file disclaimer.txt.
+;
+; @version
+; $Id$
+;
 ;-
 ;-------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/str_size.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/str_size.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/str_size.pro	(revision 142)
@@ -1,64 +1,54 @@
+;+
+;
+; @file_comments
+; The purpose of this function is to return the proper
+; character size to make a specified string a specifed
+; width in a window. The width is specified in normalized
+; coordinates. The function is extremely useful for sizing
+; strings and labels in resizeable graphics windows.
+;
+; @categories
+; Graphics Programs, Widgets.
+;
+; @param STRING {in}{required}
+; This is the string that you want to make a specifed
+; target size or width.
+;
+; @param TARGETWIDTH {in}{optional}
+; This is the target width of the string in normalized
+; coordinates in the current graphics window. The character
+; size of the string (returned as thisCharSize) will be
+; calculated to get the string width as close as possible to
+; the target width. The default is 0.25.
+;
+; @keyword INITSIZE  
+; This is the initial size of the string. Default is 1.0.
+;
+; @keyword STEP
+; This is the amount the string size will change in each step
+; of the interative process of calculating the string size.
+; The default value is 0.05.
+;
+; @returns 
+; thisCharSize. This is the size the specified string should be set
+; to if you want to produce output of the specified target
+; width. The value is in standard character size units where
+; 1.0 is the standard character size.
+;
+; @examples
+; To make the string "Happy Holidays" take up 30% of the width of
+; the current graphics window, type this:
+;
+;   XYOUTS, 0.5, 0.5, ALIGN=0.5, "Happy Holidays", $
+;   CHARSIZE=STR_SIZE("Happy Holidays", 0.3)
+;
+; @history
+; Written by: David Fanning, 17 DEC 96.
+; Added a scaling factor to take into account the aspect ratio
+; of the window in determing the character size. 28 Oct 97. DWF
+;
+; @version
 ; $Id$
-;+
-; NAME:
-;  STR_SIZE
 ;
-; PURPOSE:
-;
-;  The purpose of this function is to return the proper
-;  character size to make a specified string a specifed
-;  width in a window. The width is specified in normalized
-;  coordinates. The function is extremely useful for sizing
-;  strings and labels in resizeable graphics windows.
-;
-; CATEGORY:
-;
-;  Graphics Programs, Widgets.
-;
-; CALLING SEQUENCE:
-;
-;  thisCharSize = STR_SIZE(thisSting, targetWidth)
-;
-; INPUTS:
-;
-;  thisString:  This is the string that you want to make a specifed
-;     target size or width.
-;
-; OPTIONAL INPUTS:
-;
-;  targetWidth:  This is the target width of the string in normalized
-;     coordinates in the current graphics window. The character
-;     size of the string (returned as thisCharSize) will be
-;     calculated to get the string width as close as possible to
-;     the target width. The default is 0.25.
-;
-; KEYWORD PARAMETERS:
-;
-;  INITSIZE:  This is the initial size of the string. Default is 1.0.
-;
-;  STEP:   This is the amount the string size will change in each step
-;     of the interative process of calculating the string size.
-;     The default value is 0.05.
-;
-; OUTPUTS:
-;
-;  thisCharSize:  This is the size the specified string should be set
-;     to if you want to produce output of the specified target
-;     width. The value is in standard character size units where
-;     1.0 is the standard character size.
-;
-; EXAMPLE:
-;
-;  To make the string "Happy Holidays" take up 30% of the width of
-;  the current graphics window, type this:
-;
-;               XYOUTS, 0.5, 0.5, ALIGN=0.5, "Happy Holidays", $
-;        CHARSIZE=STR_SIZE("Happy Holidays", 0.3)
-;
-; MODIFICATION HISTORY:
-;
-;  Written by: David Fanning, 17 DEC 96.
-;  Added a scaling factor to take into account the aspect ratio
-;     of the window in determing the character size. 28 Oct 97. DWF
 ;-
 
Index: /trunk/SRC/ToBeReviewed/STRING/string2struct.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/string2struct.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/string2struct.pro	(revision 142)
@@ -11,35 +11,22 @@
 
 ;+
-; NAME:
-;       stringToStructure
 ;
-; PURPOSE:
-;       Takes an input string set up as keywords and returns an anonymous structure.
-;               This is particularly useful for taking keywords entered by a user in a text
-;               field and passing then to other routines.
+; @file_comments
+; Takes an input string set up as keywords and returns an anonymous structure.
+; This is particularly useful for taking keywords entered by a user in a text
+; field and passing then to other routines.
 ;
-; CATEGORY:
-;       Utility
+; @categories
+; Utility
 ;
-; CALLING SEQUENCE:
-;       extra=stringToStructure('xrange=[0,10],linestyle=2')
-;       plot,findgen(100),_extra=extra
+; @param STRVAL {IN}{REQUIRED}
+; String set up as keywords. Keywords require a little special treatment. Such as
+; plot,findgen(100),_extra=stringToStructure('title="testing"')
 ;
-; INPUTS:
-;       String set up as keywords. Keywords require a little special treatment. Such as
-;       plot,findgen(100),_extra=stringToStructure('title="testing"')
+; @RETURNS 
+; This function returns the string as an anonymous structure. If an
+; error was found then this function returns a structure with a null field.
 ;
-; KEYWORD PARAMETERS:
-;
-;       None
-;
-; OUTPUTS:
-;       This function returns the string as an anonymous structure. If an
-;       error was found then this function returns a structure with a null field.
-;
-; COMMON BLOCKS:
-;       None.
-;
-; EXAMPLE:
+; @examples
 ;       The code below creates a widget that uses this routine.
 ;       pro tPlot,event
@@ -62,5 +49,5 @@
 ;       end
 ;
-; MODIFICATION HISTORY:
+; @history
 ;       Written by:
 ;       RLK, Ronn Kling Consulting.
@@ -68,4 +55,8 @@
 ;       www.rlkling.com
 ;               May, 1999
+;
+; @version
+; $Id$
+;
 ;-
 
Index: /trunk/SRC/ToBeReviewed/STRING/strkeywd.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strkeywd.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strkeywd.pro	(revision 142)
@@ -3,46 +3,31 @@
 ;------------------------------------------------------------
 ;+
-; NAME: strkeywd (string keywords)
 ;
-; PURPOSE: traduit une sturcture en un string pouvant etre utilise
-; pour specifier des keywords ds l''appelle d''une fonction qd on
-; utilise execute (cf l''exemple)
+; @file_comments
+; Translate a sturcture in a string able to be used to specify keywords 
+; in the calling of a function when we use EXECUTE (see example)
 ;
-; CATEGORY: pour passer des mots cles avec execute !
+; @categories 
+; 
+; @param STRUCT
+; a structure
 ;
-; CALLING SEQUENCE:res=strkeywd(struct)
-; 
-; INPUTS:struct: une structure
+; @returns
+; a string composed like following:
+; For each element of the structure, we write a part of the string as: 
+;         'name_of_the_element=content_of_the_element'
 ;
-; KEYWORD PARAMETERS:
+; @restrictions
+; If an element of the structure contain an array, it will be convert in a vector.
 ;
-; OUTPUTS:un string compose de la facon suivante:
-;         pour chaque element de la structure, on ecrit une partie du
-;         string sous la forme: 
-;         'nom_de_l''element=contennu de l''element'
+; @restrictions
+; Beware, this function has loops, ifs ad cases everywhere. So it can 
+; not be used by big keywords (with a lot of elements which are big 
+; arrays). The input keyword must not contain Complex floatings, structure, 
+; Double-precision complex, Pointer, Object reference, Unsigned Integer, 
+; Unsigned Longword Integer, 64-bit Integer or Unsigned 64-bit Integer.
 ;
-; COMMON BLOCKS:
-;
-; SIDE EFFECTS:
-;
-;   Si un element de la structure contient un tableau, il sera
-;   convertit en vecteur.
-;
-; RESTRICTIONS:
-;
-;   attention cette fonction comporte des boucles, des if et des cases
-;   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-;   structure de grosse taille (avec bcp d''elements et avec des
-;   elements etant de gros tableaux).
-;   la structure en entree ne doit pas contenir de Complex floating, de
-;   structure, de Double-precision complex, de Pointer, de Object
-;   reference, de Unsigned Integer, de Unsigned Longword Integer, de
-;   64-bit Integer, de Unsigned 64-bit Integer	
-;
-;
-;
-; EXAMPLE:
-;
-; on cree une structure
+; @examples
+; We create a structure
 ;       IDL> b=get_extra(ok=111, year=[1997,1998,1999], age_capitaine=35)
 ;       IDL> help, b,/struct
@@ -51,10 +36,9 @@
 ;          OK              INT            111
 ;          YEAR            INT       Array[3]
-; on met cette structure sous forme de string
+; We put this structure as a string
 ;       IDL> a=strkeywd(b)
 ;       IDL> print, a
 ;       AGE_CAPITAINE=35, OK=111, YEAR=[1997,1998,1999]
-; maintenant on peut utiliser le string a pour passer des mots cles ds
-; une fonction a l''aide de execute!!
+; Now we can use the string a to pass keywords in a function thanks to execute!!
 ;       IDL> test=execute('c=get_extra('+a+')')
 ;       IDL> help, c,/struct
@@ -64,6 +48,11 @@
 ;          YEAR            INT       Array[3]
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      11/10/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/ToBeReviewed/STRING/strrepl.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strrepl.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strrepl.pro	(revision 142)
@@ -1,40 +1,25 @@
-; $Id$
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;        STRREPL (function)
 ;
-; PURPOSE:
-;        replace one (or more) character(s)/string(s) in a string
+; @file_comments 
+; replace one (or more) character(s)/string(s) in a string
 ;
-; CATEGORY:
-;        string routines
+; @categories
+; string routines
 ;
-; CALLING SEQUENCE:
-;        Result = STRREPL(str, index, rchar)
+; @param STR {in}{required}
+; the string to be changed
 ;
-; INPUTS:
-;        STR -> the string to be changed
+; @param RCHAR {in}{required}
+; replacement character/string
 ;
-;        INDEX -> position of the character(s) to be replaced or a
-;        string to be changed in STR.
+; @returns
+; another string
 ;
-;        RCHAR -> replacement character/string
+; @restrictions 
+; Known shortcoming: if index is an array, it must contain all
+; valid elements (only the first entry is checked).
 ;
-; KEYWORD PARAMETERS: none
-;
-;
-; OUTPUTS:
-;        another string
-;
-; SUBROUTINES:
-;
-; REQUIREMENTS:
-;
-; NOTES:
-;        Known shortcoming: if index is an array, it must contain all
-;        valid elements (only the first entry is checked).
-;
-; EXAMPLE:
+; @examples
 ;        ; Convert one letter into upper case
 ;
@@ -58,7 +43,10 @@
 ;       abcabcabc
 ;
-; MODIFICATION HISTORY:
+; @history
 ;        mgs, 02 Jun 1998: VERSION 1.00
 ;        sebastien Masson (smlod@ipsl.jussieu.fr)
+;
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/STRING/strright.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strright.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strright.pro	(revision 142)
@@ -1,40 +1,30 @@
-; $Id$
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;        STRRIGHT
 ;
-; PURPOSE:
-;        return right subportion from a string
+; @file_comments
+; return right subportion from a string
 ;
-; CATEGORY:
-;        string handling 
+; @categories
+; string handling 
+; 
+; @param S {in}{required}
+; the string to be searched
 ;
-; CALLING SEQUENCE:
-;        res = STRRIGHT(string [,nlast])
+; @param LASTN {in}{required}
+; the number of characters to be returned. Default
+; is 1. If NLAST is ge strlen(STRING), the complete string
+; is returned.
 ;
-; INPUTS:
-;        STRING --> the string to be searched
+; @returns
+; The portion of LASTN characters of S counted from the back.
 ;
-;        NLAST --> the number of characters to be returned. Default
-;           is 1. If NLAST is ge strlen(STRING), the complete string
-;           is returned.
+; @examples
+; if (strright(path) ne '/') then path = path + '/'
 ;
-; KEYWORD PARAMETERS:
+; @history
+;        mgs, 19 Nov 1997: VERSION 1.00
 ;
-; OUTPUTS:
-;        The portion of NLAST characters of STRING counted from the back.
-;
-; SUBROUTINES:
-;
-; REQUIREMENTS:
-;
-; NOTES:
-;
-; EXAMPLE:
-;        if (strright(path) ne '/') then path = path + '/'
-;
-; MODIFICATION HISTORY:
-;        mgs, 19 Nov 1997: VERSION 1.00
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/STRING/strsci.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strsci.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strsci.pro	(revision 142)
@@ -1,54 +1,43 @@
-; $Id$
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;        STRSCI (function)
 ;
-; PURPOSE:                                                 
-;        Given a number, returns a string of that          B
-;        number in scientific notation format ( e.g. A x 10  )
+; @file_comments
+; Given a number, returns a string of that          B
+; number in scientific notation format ( e.g. A x 10  )
 ;
-; CATEGORY:
-;        String Utilities
+; @categories
+; String Utilities
 ;
-; CALLING SEQUENCE:
-;        Result = STRSCI( DATA [,keywords] )
+; @param DATA {in}{required}
+; A floating point or integer number to be
+; converted into a power of 10.
 ;
-; INPUTS:
-;        DATA      -> A floating point or integer number to be
-;                     converted into a power of 10.
+; @keyword FORMAT
+; The format specification used in the string
+; conversion for the mantissa (i.e. the
+; "A" of "A x 10^B").  Default is '(f12.2)'.  
 ;
-; KEYWORD PARAMETERS:
-;        FORMAT    -> The format specification used in the string
-;                     conversion for the mantissa (i.e. the
-;                     "A" of "A x 10^B").  Default is '(f12.2)'.  
+; @keyword POT_ONLY
+; Will return only the "power of 10" part of the
+; string (i.e. the "10^B").  Default is to return
+; the entire string (e.g. "A x 10^B" )
 ;
-;        /POT_ONLY -> Will return only the "power of 10" part of the
-;                     string (i.e. the "10^B").  Default is to return
-;                     the entire string (e.g. "A x 10^B" )
+; @keyword MANTISSA_ONLY
+; return only mantissa of the string
 ;
-;        /MANTISSA_ONLY -> return only mantissa of the string
+; @keyword SHORT
+; return 10^0 as '1' and 10^1 as '10'
 ;
-;        /SHORT -> return 10^0 as '1' and 10^1 as '10'
+; @keyword TRIM
+; don't insert blanks (i.e. return Ax10^B)
 ;
-;        /TRIM -> don't insert blanks (i.e. return Ax10^B)
+; @restrictions
+; This function does not "evaluate" the format statement thoroughly
+; which can result in somewhat quirky strings. Example:
+; print,strsci(-9.999) results in -10.0x10^0 instead of -1.0x10^1.
 ;
-; OUTPUTS:
-;        None
+; Need a better symbol than the 'x' for the multiplier...
 ;
-; SUBROUTINES:
-;        None
-;
-; REQUIREMENTS:
-;        None
-;
-; NOTES:
-;        This function does not "evaluate" the format statement thoroughly
-;        which can result in somewhat quirky strings. Example:
-;        print,strsci(-9.999) results in -10.0x10^0 instead of -1.0x10^1.
-;
-;        Need a better symbol than the 'x' for the multiplier...
-;
-; EXAMPLE:
+; @examples
 ;        Result = STRSCI( 2000000, format='(i1)' )
 ;        print, result                
@@ -67,5 +56,5 @@
 ; 
 ;
-; MODIFICATION HISTORY:
+; @history
 ;        bmy, 28 May 1998: VERSION 1.00            B
 ;           - now returns string of the form A x 10
@@ -89,4 +78,7 @@
 ;           - can now also handle values lt 1 ;-)
 ;           - and doesn't choke on arrays
+;
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/STRING/strtok.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strtok.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strtok.pro	(revision 142)
@@ -1,30 +1,35 @@
 ;
 ;+
-; NAME:
-;       STRTOK
-; PURPOSE:
-;       Retrieve portion of string up to token.
-; CATEGORY:
-;       text/strings
-; CALLING SEQUENCE:
-;       new = strtok( old, token )
-; INPUTS:
-;       old   -- String to be split.  Contains text after    in, out
-;                token on output.
-;       token -- Token to use in splitting old.              in
-; KEYWORD PARAMETERS:
-;       /TRIM -- set to remove leading blanks from old 
-;                before returning.
-;       /HELP -- print useful message and exit.
-; OUTPUTS:
-;       new   -- portion of string up to token.              out
-;       old   -- portion of old after token.                 out, in
-; COMMON BLOCKS:
-; SIDE EFFECTS:
-;       Input parameter old is modified.
-; NOTES:
-;       Token may be one or more characters.
-;       If token is not found, returns old and sets old to ''.
-; EXAMPLE:
+;
+; @file_comments
+; Retrieve portion of string up to token.
+; 
+; @categories
+; text/strings
+;
+; @param STRING {in}{required}
+; String to be split.  Contains text after    in, out
+; token on output.
+; 
+; @param TOKEN {in}{required}
+; Token to use in splitting old.       
+;
+; @keyword TRIM 
+; set to remove leading blanks from old 
+; before returning.
+;
+; @keyword HELP
+; print useful message and exit.
+; 
+; @returns
+; new   -- portion of string up to token.              out
+; old   -- portion of old after token.                 out, in
+;
+; @restrictions
+; Input parameter old is modified.
+; Token may be one or more characters.
+; If token is not found, returns old and sets old to ''.
+; 
+; @examples
 ;       If old is 'foo44 bar', then strtok( old, '44' ) would return
 ;       'foo', and upon return, old will be left with ' bar'.  If /TRIM
@@ -33,9 +38,6 @@
 ;       If old='xyz', then new=strtok(old,'a') would return with
 ;       new='xyz' and old=''.
-; THANKS:
-;       To D. Linder who wrote GETTOK, part of the goddard library,
-;       upon which this is based.
-; MODIFICATION HISTORY:
-;       $Id$
+;
+; @history
 ;       $Log: strtok.pro,v $
 ;       Revision 1.3  1996/06/14 20:00:27  mcraig
@@ -48,12 +50,20 @@
 ;       Initial revision
 ;
-; RELEASE:
+; Thanks:
+;       To D. Linder who wrote GETTOK, part of the goddard library,
+;       upon which this is based.
+;
+; Release:
 ;       $Name: Rel_1_2 $
 ;
-; COPYRIGHT:
+; Copyright:
 ;  Copyright (C) 1996 The Regents of the University of California, All
 ;  Rights Reserved.  Written by Matthew W. Craig.
 ;  See the file COPYRIGHT for restrictions on distrubting this code.
 ;  This code comes with absolutely NO warranty; see DISCLAIMER for details.
+;
+; @version
+; $Id$
+;
 ;-
 FUNCTION Strtok, string, token, $
Index: /trunk/SRC/ToBeReviewed/STRING/strwhere.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/strwhere.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/strwhere.pro	(revision 142)
@@ -1,48 +1,36 @@
-; $Id$
 ;-------------------------------------------------------------
 ;+
-; NAME:
-;        STRWHERE  (function)
 ;
-; PURPOSE:
-;        return position *array* for occurence of a character in
-;        a string
+; @file_comments
+; return position *array* for occurence of a character in a string
 ;
-; CATEGORY:
-;        string tools
+; @categories
+; string tools
 ;
-; CALLING SEQUENCE:
-;        pos = STRWHERE(str, schar [,Count] )
+; @param STR {in}{required}
+; the string
 ;
-; INPUTS:
-;        STR -> the string
+; @param SCHAR {in}{required}
+; the character to look for
 ;
-;        SCHAR -> the character to look for
+; @returns COUNT {out}{optional}
+; The number of matches that were found 
 ;
-; KEYWORD PARAMETERS:
-;        none.
+;  The function returns an index array similar to the 
+;  result of the where function
 ;
-; OUTPUTS:
-;        COUNT -> (optional) The number of matches that were found 
-;
-;        The function returns an index array similar to the 
-;        result of the where function
-;
-; SUBROUTINES:
-;
-; REQUIREMENTS:
-;
-; NOTES:
-;
-; EXAMPLE:
+; @examples
 ;        ind = strwhere('abcabcabc','a')
 ;
 ;        ; returns [ 0, 3, 6 ]
 ;
-; MODIFICATION HISTORY:
+; @history
 ;        mgs, 02 Jun 1998: VERSION 1.00
 ;        bmy, 30 Jun 1998: - now returns COUNT, the number 
 ;                            of matches that are found (this is
 ;                            analogous to the WHERE command)
+;
+; @version
+; $Id$
 ;
 ;-
Index: /trunk/SRC/ToBeReviewed/STRING/tostr.pro
===================================================================
--- /trunk/SRC/ToBeReviewed/STRING/tostr.pro	(revision 141)
+++ /trunk/SRC/ToBeReviewed/STRING/tostr.pro	(revision 142)
@@ -3,13 +3,12 @@
 ;------------------------------------------------------------
 ;+
-; NAME: tostr (to string)
 ;
-; PURPOSE: convertit un input en un string.
+; @file_comments
+; Convert an input in a string.
 ;
-; CATEGORY: 
+; @categories 
 ;
-; CALLING SEQUENCE: res=tostr(input)
-; 
-; INPUTS: input ne peut pas contenir ou etre de type:
+; @param INPUT {in}{required}
+; input can not contain or be of the type of:
 ;
 ;   Complex floating, structure, Double-precision complex, Pointer, Object
@@ -17,22 +16,16 @@
 ;   Integer, Unsigned 64-bit Integer	
 ;
-; KEYWORD PARAMETERS: none
+; @returns
+; a string
 ;
-; OUTPUTS: un string
+; @restrictions
+; If keywdvalue is an array, it will be convert in a vector.
 ;
-; COMMON BLOCKS:
-;
-; SIDE EFFECTS:
-;
-;   Si un element de input contient un tableau, il sera
-;   convertit en vecteur.
-;
-; RESTRICTIONS:
-;
-;   attention cette fonction comporte des boucles, des if et des cases
-;   ds tous les sens. Elle ne doit donc pas etre utilisee avec des
-;   inputs de grosse taille (avec bcp d''elements et avec des
-;   elements etant de gros tableaux).
-; EXAMPLE:
+; @restrictions
+; Beware, this function has loops, ifs ad cases everywhere. So it can 
+; not be used by big keywords (with a lot of elements which are big 
+; arrays).
+; 
+; @examples
 ;    IDL> help, tostr(1),tostr('a'),tostr(indgen(4)),tostr(['a','jkfjo'])
 ;    <Expression>    STRING    = '1'
@@ -43,6 +36,11 @@
 ;    ['c''est bon','c''est bon']
 ;
-; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson@lodyc.jussieu.fr)
 ;                      18/10/1999
+;
+; @version
+; $Id$
+;
 ;-
 ;------------------------------------------------------------
