Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/angle.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/angle.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/angle.html	(revision 101)
@@ -87,5 +87,9 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> north stereographic polar projection
+
+ Compute angles between grid lines and direction of the North
+(fom angle.F,v 2.2 in OPA8.2)
+</div>
 
       
@@ -102,5 +106,5 @@
 	  
 	  <dt><p><a href="#_fsnspp"><span class="result">result = </span>fsnspp(<span class="result">plam, pphi</span>, DOUBLE=<span class="result">DOUBLE</span>)</a></p><dt>
-	  <dd>  NAME:angle.</dd>	
+	  <dd></dd>	
 	  
 	  <dt><p><a href="#_angle">angle<span class="result">, fileocemesh, gcosu, gsinu, gcosv, gsinv, gcost, gsint</span>, IODIRECTORY=<span class="result">IODIRECTORY</span>, DOUBLE=<span class="result">DOUBLE</span></a></p><dt>
@@ -121,31 +125,81 @@
 	    <span class="result">result = </span>fsnspp(<span class="result"><a href="#_fsnspp_param_plam">plam</a>, <a href="#_fsnspp_param_pphi">pphi</a></span>, <a href="#_fsnspp_keyword_DOUBLE">DOUBLE</a>=<span class="result">DOUBLE</span>)</p>
 	
-	  <div class="comments">
- NAME:angle.pro (fom angle.F,v 2.2 in OPA8.2)
-
- PURPOSE:Compute angles between grid lines and direction of the North
-
- CALLING SEQUENCE: 
-     angle, fileocemesh, gcosu, gsinu, gcosv, gsinv, gcost, gsint
-
- INPUTS:
-     fileocemesh a netcdf file that contains (at least):
-        glamu, gphiu: longitudes and latitudes at U-points
-        glamv, gphiv: longitudes and latitudes at V-points
-        glamf, gphif: longitudes and latitudes at F-points
-
- KEYWORD PARAMETERS:
-
-    IODIRECTORY: the directory path where is located fileocemesh
-
-    /DOUBLE: use double precision (default is float)
-
- OUTPUTS:
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="value">
        gsinu,gcosu : sinus and cosinus of the angle 
        gsinv,gcosv   between north-south direction 
        gsint,gcost   and the j-direction of the mesh
-  	              
-
- RESTRICTIONS: to compute the lateral boundary conditions, we assume
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_fsnspp_param_plam">plam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_fsnspp_param_pphi">pphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_fsnspp_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> use double precision (default is float)
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+   --------------
+       Original :  96-07 (O. Marti)
+                   98-06 (G. Madec)
+       Feb 2005: IDL adaptation S. Masson </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value"> to compute the lateral boundary conditions, we assume
  that: 
      (1) the first line is similar to the second line
@@ -157,77 +211,5 @@
        =>    gsinv[0, *] = gsinv[jpj-2, *]
 
-
- MODIFICATION HISTORY:
-   --------------
-       Original :  96-07 (O. Marti)
-                   98-06 (G. Madec)
-       Feb 2005: IDL adaptation S. Masson </div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_fsnspp_param_plam">plam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fsnspp_param_pphi">pphi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_fsnspp_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
 	
 	  
@@ -260,15 +242,19 @@
 	    
 	    <h4 id="_angle_param_fileocemesh">fileocemesh&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 netcdf file that contains (at least):
+        glamu, gphiu: longitudes and latitudes at U-points
+        glamv, gphiv: longitudes and latitudes at V-points
+        glamf, gphif: longitudes and latitudes at F-points
+</div>
 	    
 	    <h4 id="_angle_param_gcosu">gcosu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -368,5 +354,5 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> the directory path where is located fileocemesh</div>
 	    
 	    <h4 id="_angle_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -381,5 +367,5 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> use double precision (default is float)</div>
 	    
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/clickincell.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/clickincell.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/clickincell.html	(revision 101)
@@ -87,5 +87,6 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> click on a map and find in which cell the click was
+</div>
 
       
@@ -102,17 +103,117 @@
 	<div class="routine_details" id="_clickincell">
 
-	  <h2><a class="top" href="#container">top</a>clickincell </h2>
+	  <h2><a class="top" href="#container">top</a>clickincell <span class="categories"> finding where is a point on a grid
+</span></h2>
 	
 	  <p class="header">
 	    <span class="result">result = </span>clickincell(<a href="#_clickincell_keyword_CELLTYPE">CELLTYPE</a>=<span class="result">CELLTYPE</span>, <a href="#_clickincell_keyword_DRAWCELL">DRAWCELL</a>=<span class="result">DRAWCELL</span>, <a href="#_clickincell_keyword_COLOR">COLOR</a>=<span class="result">COLOR</span>, <a href="#_clickincell_keyword_ORIGINAL">ORIGINAL</a>=<span class="result">ORIGINAL</span>, <a href="#_clickincell_keyword_IJ">IJ</a>=<span class="result">IJ</span>, <a href="#_clickincell_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span>)</p>
 	
-	  <div class="comments">
- NAME:clickincell
-
- PURPOSE: click on a map and find in which cell the click was
-
- CATEGORY:finding where is a point on a grid
-
- CALLING SEQUENCE:
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="value">
+     the index of the selected cells regarding to the grid which
+     is in memory in the variable of the common. If /ij keyword is
+     activated give 2D array (2, n) which are the i,j position of the
+     n selected cells. 
+</div>
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_clickincell_keyword_CELLTYPE">CELLTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> = 'T', 'W', 'U', 'V' or 'F' This this the type of point
+     that is located in the center of the cell which the click is
+     located. default is T type of cell (with corner defined by F
+     points).
+</div>
+	    
+	    <h4 id="_clickincell_keyword_DRAWCELL">DRAWCELL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to draw the cell in which we clicked
+</div>
+	    
+	    <h4 id="_clickincell_keyword_COLOR">COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">  the color used to draw the cells (Clicking one more
+     time in the same cell will draw the cell with the white color)
+</div>
+	    
+	    <h4 id="_clickincell_keyword_ORIGINAL">ORIGINAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to get the position of the cell regarding the original
+     grid (with no key_shift, ixminmesh, iyminmesh...)
+</div>
+	    
+	    <h4 id="_clickincell_keyword_IJ">IJ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> see outpus
+</div>
+	    
+	    <h4 id="_clickincell_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to pass extra keywords to inquad and plot (when /drawcell)
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
 
      res = clickincell()
@@ -121,149 +222,29 @@
      Click on the right button to quit.  
 
- INPUTS:None
-
- KEYWORD PARAMETERS:
-
-     CELLTYPE = 'T', 'W', 'U', 'V' or 'F': This this the type of point
-     that is located in the center of the cell which the click is
-     located. default is T type of cell (with corner defined by F
-     points).
-
-     /DRAWCELL: to draw the cell in which we clicked
-
-     COLOR = the color used to draw the cells (Clicking one more
-     time in the same cell will draw the cell with the white color)
-
-     /ORIGINAL: to get the position of the cell regarding the original
-     grid (with no key_shift, ixminmesh, iyminmesh...)
-
-     /IJ: see outpus
-
-     _EXTRA: to pass extra keywords to inquad and plot (when /drawcell)
-
- OUTPUTS:
-     the the index of the selected cells regarding to the grid which
-     is in memory in the variable of the common. If /ij keyword is
-     activated give 2D array (2, n) which are the i,j position of the
-     n selected cells. 
-
- COMMON BLOCKS:common.pro
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- EXAMPLE:
+ 
 
    IDL> plt, findgen(jpi,jpj),/nodata,map=[90,0,0],/ortho
    IDL> print, clickincell(/draw,color=150,/xy)
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_clickincell_keyword_CELLTYPE">CELLTYPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_clickincell_keyword_DRAWCELL">DRAWCELL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_clickincell_keyword_COLOR">COLOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_clickincell_keyword_ORIGINAL">ORIGINAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_clickincell_keyword_IJ">IJ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_clickincell_keyword__EXTRA">_EXTRA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+      Sebastien Masson (smasson@lodyc.jussieu.fr)
+      August 2003
+</div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="value"> common.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_bilinear_weigaddr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_bilinear_weigaddr.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_bilinear_weigaddr.html	(revision 101)
@@ -87,5 +87,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> compute the weight and address neede to interpolate data from a
+          "regular grid" to any grid using the bilinear method
+   </div>
 
       
@@ -102,41 +104,153 @@
 	<div class="routine_details" id="_compute_fromreg_bilinear_weigaddr">
 
-	  <h2><a class="top" href="#container">top</a>compute_fromreg_bilinear_weigaddr </h2>
+	  <h2><a class="top" href="#container">top</a>compute_fromreg_bilinear_weigaddr <span class="categories"> interpolation
+</span></h2>
 	
 	  <p class="header">
 	    compute_fromreg_bilinear_weigaddr<span class="result">, <a href="#_compute_fromreg_bilinear_weigaddr_param_alonin">alonin</a>, <a href="#_compute_fromreg_bilinear_weigaddr_param_alatin">alatin</a>, <a href="#_compute_fromreg_bilinear_weigaddr_param_olonin">olonin</a>, <a href="#_compute_fromreg_bilinear_weigaddr_param_olat">olat</a>, <a href="#_compute_fromreg_bilinear_weigaddr_param_weig">weig</a>, <a href="#_compute_fromreg_bilinear_weigaddr_param_addr">addr</a></span>, <a href="#_compute_fromreg_bilinear_weigaddr_keyword_NONORTHERNLINE">NONORTHERNLINE</a>=<span class="result">NONORTHERNLINE</span>, <a href="#_compute_fromreg_bilinear_weigaddr_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE</a>=<span class="result">NOSOUTHERNLINE</span></p>
 	
-	  <div class="comments">
- NAME: compute_fromreg_bilinear_weigaddr
-
- PURPOSE: compute the weight and address neede to interpolate data from a
-          "regular grid" to any grid using the bilinear method
-   
- CATEGORY:interpolation
-
- CALLING SEQUENCE: 
-     compute_fromreg_bilinear_weigaddr, alon, alat, olon, olat, weig, addr
-
- INPUTS:
-     lonin and latin: longitude/latitude of the input data 
-     lonout and latout: longitude/latitude of the output data 
-
- KEYWORD PARAMETERS: 
-
-     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
-          account the northen/southern line of the input data when perfoming the
-          interpolation.
-
- OUTPUTS: 
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="value"> 
      weig, addr: 2D arrays, weig and addr are the weight and addresses used to
      perform the interpolation:
           dataout = total(weig*datain[addr], 1)
           dataout = reform(dataout, jpio, jpjo, /over)
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS:
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_alonin">alonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> longitudeof the input data </div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_alatin">alatin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> latitude of the input data </div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_olonin">olonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> longitude of the output data </div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_olat">olat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> latitude of the output data 
+</div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_weig">weig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_addr">addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_keyword_NONORTHERNLINE">NONORTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> activate if you don't whant to take into
+          account the northen line of the input data when perfoming the</div>
+	    
+	    <h4 id="_compute_fromreg_bilinear_weigaddr_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> activate if you don't whant to take into
+          account the southern line of the input data when perfoming the
+          interpolation.
+</div>
+	    
+	  
+
+	  
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value"></div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value">
   -  the input grid must be a "regular grid", defined as a grid for which each
      lontitudes lines have the same latitude and each latitudes columns have the
@@ -146,140 +260,5 @@
   -  points located out of the southern and northern boundaries are interpolated
      using a linear interpolation only along the longitudinal direction.
- 
- EXAMPLE: 
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_alonin">alonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_alatin">alatin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_olonin">olonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_olat">olat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_weig">weig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_param_addr">addr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_keyword_NONORTHERNLINE">NONORTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_compute_fromreg_bilinear_weigaddr_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+ </div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_imoms3_weigaddr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_imoms3_weigaddr.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/compute_fromreg_imoms3_weigaddr.html	(revision 101)
@@ -87,5 +87,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> compute the weight and address neede to interpolate data from a
+          "regular grid" to any grid using the imoms3 method
+   </div>
 
       
@@ -102,55 +104,11 @@
 	<div class="routine_details" id="_compute_fromreg_imoms3_weigaddr">
 
-	  <h2><a class="top" href="#container">top</a>compute_fromreg_imoms3_weigaddr </h2>
+	  <h2><a class="top" href="#container">top</a>compute_fromreg_imoms3_weigaddr <span class="categories"> interpolation</span></h2>
 	
 	  <p class="header">
-	    compute_fromreg_imoms3_weigaddr<span class="result">, <a href="#_compute_fromreg_imoms3_weigaddr_param_alonin">alonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_alatin">alatin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olonin">olonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olat">olat</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_weig">weig</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_addr">addr</a></span>, <a href="#_compute_fromreg_imoms3_weigaddr_keyword_NONORTHERNLINE">NONORTHERNLINE</a>=<span class="result">NONORTHERNLINE</span>, <a href="#_compute_fromreg_imoms3_weigaddr_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE</a>=<span class="result">NOSOUTHERNLINE</span></p>
+	    compute_fromreg_imoms3_weigaddr<span class="result">, <a href="#_compute_fromreg_imoms3_weigaddr_param_alonin">alonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_alatin">alatin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olonin">olonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olat">olat</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_weig">weig</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_addr  PRO compute_fromreg_imoms3_weigaddr">addr  PRO compute_fromreg_imoms3_weigaddr</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_alonin">alonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_alatin">alatin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olonin">olonin</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_olat">olat</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_weig">weig</a>, <a href="#_compute_fromreg_imoms3_weigaddr_param_addr">addr</a></span>, <a href="#_compute_fromreg_imoms3_weigaddr_keyword_NONORTHERNLINE">NONORTHERNLINE</a>=<span class="result">NONORTHERNLINE</span>, <a href="#_compute_fromreg_imoms3_weigaddr_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE</a>=<span class="result">NOSOUTHERNLINE</span></p>
 	
 	  <div class="comments">
- NAME: compute_fromreg_imoms3_weigaddr
-
- PURPOSE: compute the weight and address neede to interpolate data from a
-          "regular grid" to any grid using the imoms3 method
-   
- CATEGORY:interpolation
-
- CALLING SEQUENCE: 
-     compute_fromreg_imoms3_weigaddr, alon, alat, olon, olat, weig, addr
-
- INPUTS:
-     lonin and latin: longitude/latitude of the input data 
-     lonout and latout: longitude/latitude of the output data 
-
- KEYWORD PARAMETERS: 
-
-     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
-          account the northen/southern line of the input data when perfoming the
-          interpolation.
-
- OUTPUTS: 
-     weig, addr: 2D arrays, weig and addr are the weight and addresses used to
-     perform the interpolation:
-          dataout = total(weig*datain[addr], 1)
-          dataout = reform(dataout, jpio, jpjo, /over)
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS:
-  -  the input grid must be a "regular/rectangular grid", defined as a grid for
-     which each lontitudes lines have the same latitude and each latitudes columns
-     have the same longitude.
-  -  We supposed the data are located on a sphere, with a periodicity along
-     the longitude.
-  -  points located between the first/last 2 lines are interpolated
-     using a imoms3 interpolation along the longitudinal direction and linear
-     interpolation along the latitudinal direction
-  -  points located out of the southern and northern boundaries are interpolated
-     using a imoms3 interpolation only along the longitudinal direction.
- 
- EXAMPLE: 
-
- MODIFICATION HISTORY:</div>
+</div>
 
 	  
@@ -159,4 +117,82 @@
 	    <h3>Parameters</h3>
 	
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_alonin">alonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_alatin">alatin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_olonin">olonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_olat">olat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_weig">weig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_addr  PRO compute_fromreg_imoms3_weigaddr">addr  PRO compute_fromreg_imoms3_weigaddr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
 	    
 	    <h4 id="_compute_fromreg_imoms3_weigaddr_param_alonin">alonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutpar.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutpar.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutpar.html	(revision 101)
@@ -87,5 +87,6 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> cut p parallelogram(s) into p*n^2 parallelograms
+</div>
 
       
@@ -102,5 +103,6 @@
 	<div class="routine_details" id="_cutpar">
 
-	  <h2><a class="top" href="#container">top</a>cutpar </h2>
+	  <h2><a class="top" href="#container">top</a>cutpar <span class="categories"> basic work
+</span></h2>
 	
 	  <p class="header">
@@ -108,39 +110,180 @@
 	
 	  <div class="comments">
- NAME: cutpar
-
- PURPOSE: cut p parallelogram(s) into p*n^2 parallelograms
-
- CATEGORY: basic work
-
- CALLING SEQUENCE:res = cutpar(x0, y0, x1, y1, x2, y2, x3, y3, n)
-
- INPUTS:
-       x0,y0 1d arrays of p elements, giving the edge positions. The
-       edges must be given as in plot to traw the parallelogram. (see
-       example).
-       n: each parallelogram will be cutted in n^2 pieces
-
- KEYWORD PARAMETERS: 
-
-         /endpoints: see outputs
-
-         /onsphere: to specify that the points are located on a
-         sphere. In this case, x and y corresponds to longitude and
-         latitude in degrees.
-
- OUTPUTS:
+</div>
+
+	  <h3>Return value</h3><div class="value">
         -defaut: 3d array(2,n^2,p) giving the center position of each
         piece of the parallelograms
         -/endpoints: 3d array(2,(n+1)^2,p) giving the edge positions
         of each piece of the parallelograms
-
- COMMON BLOCKS: no
-
- SIDE EFFECTS: need cutsegment.pro
-
- RESTRICTIONS: ?
-
- EXAMPLE:
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_cutpar_param_x0">x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 1d arrays of p elements, giving the edge positions. The
+       edges must be given as in plot to traw the parallelogram. (see
+       example).</div>
+	    
+	    <h4 id="_cutpar_param_y0">y0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_x3">x3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_y3">y3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutpar_param_n">n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> each parallelogram will be cutted in n^2 pieces
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_cutpar_keyword_endpoints">endpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> see outputs
+</div>
+	    
+	    <h4 id="_cutpar_keyword_onsphere">onsphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to specify that the points are located on a
+         sphere. In this case, x and y corresponds to longitude and
+         latitude in degrees.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+ res = cutpar(x0, y0, x1, y1, x2, y2, x3, y3, n)
+
+ 
 
  x0 = [2,6,2]
@@ -157,182 +300,24 @@
  res=cutpar(x0, y0, x1, y1, x2, y2, x3, y3, n)
  for i=0,2 do oplot, [res[0,*,i]], [res[1,*,i]], color = 20+10*i, psym = 1, thick = 3
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_cutpar_param_x0">x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_y0">y0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_x3">x3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_y3">y3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_param_n">n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_cutpar_keyword_endpoints">endpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_cutpar_keyword_onsphere">onsphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+           S. Masson (smasson@lodyc.jussieu.fr)
+           July 5th, 2002</div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  <h3>Other attributes</h3>
+	  
+	  
+	  <h4>Uses routines</h4><div class="value"> cutsegment.pro
+</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutsegment.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutsegment.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/cutsegment.html	(revision 101)
@@ -87,5 +87,6 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> cut p segments into p*n equal parts
+</div>
 
       
@@ -102,5 +103,6 @@
 	<div class="routine_details" id="_cutsegment">
 
-	  <h2><a class="top" href="#container">top</a>cutsegment </h2>
+	  <h2><a class="top" href="#container">top</a>cutsegment <span class="categories"> basic work
+</span></h2>
 	
 	  <p class="header">
@@ -108,38 +110,128 @@
 	
 	  <div class="comments">
- NAME: cutsegment
-
- PURPOSE: cut p segments into p*n equal parts
-
- CATEGORY: basic work
-
- CALLING SEQUENCE: res = cutsegment(x0, y0, x1, y1, n)
-
- INPUTS: 
-         x0,y0 and x1,y1, 1d arrays of p elements, the coordinates of
-         the endpoints of the p segmements
-         n: the number of pieces we want to cut each segment
-
- KEYWORD PARAMETERS:
-
-         /endpoints: see ouputs
-
-         /onsphere: to specify that the points are located on a
-         sphere. In this case, x and y corresponds to longitude and
-         latitude in degrees.
-
- OUTPUTS:
+</div>
+
+	  <h3>Return value</h3><div class="value">
         defaut: a 3d array (2,n,p) that gives the coordinates of the
         middle of the cutted segments.
         if /endpoints, a 3d array (2,n+1,p) that gives the
         coordinates of the endpoints of the cutted segments.
-
- COMMON BLOCKS: no
-
- SIDE EFFECTS: no
-
- RESTRICTIONS: ?
-
- EXAMPLE:
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_cutsegment_param_x0">x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  1d arrays of p elements, the coordinates of
+         the endpoints of the p segmements</div>
+	    
+	    <h4 id="_cutsegment_param_y0">y0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutsegment_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutsegment_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_cutsegment_param_n">n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the number of pieces we want to cut each segment
+
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_cutsegment_keyword_endpoints">endpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> see ouputs
+</div>
+	    
+	    <h4 id="_cutsegment_keyword_onsphere">onsphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to specify that the points are located on a
+         sphere. In this case, x and y corresponds to longitude and
+         latitude in degrees.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value">  
+ res = cutsegment(x0, y0, x1, y1, n)
+
+ 
 
   IDL> x0=[2,5]
@@ -153,118 +245,11 @@
   IDL> oplot, [x0[1], x1[1]], [y0[1], y1[1]]
   IDL> oplot, [res[0,*,1]], [res[1,*,1]], color = 40, psym = 1, thick = 3
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_cutsegment_param_x0">x0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutsegment_param_y0">y0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutsegment_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutsegment_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_cutsegment_param_n">n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_cutsegment_keyword_endpoints">endpoints&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_cutsegment_keyword_onsphere">onsphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+           S. Masson (smasson@lodyc.jussieu.fr)
+           July 5th, 2002</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/directory-overview.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/directory-overview.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/directory-overview.html	(revision 101)
@@ -90,29 +90,29 @@
       
 	<dt><a href="angle.html?format=raw">angle.pro</a></dt>
-	<dd></dd>
+	<dd> north stereographic polar projection   Compute angles between grid lines and direction of the North (fom angle.</dd>
       
 	<dt><a href="clickincell.html?format=raw">clickincell.pro</a></dt>
-	<dd></dd>
+	<dd> click on a map and find in which cell the click was </dd>
       
 	<dt><a href="compute_fromreg_bilinear_weigaddr.html?format=raw">compute_fromreg_bilinear_weigaddr.pro</a></dt>
-	<dd></dd>
+	<dd> compute the weight and address neede to interpolate data from a           "regular grid" to any grid using the bilinear method    </dd>
       
 	<dt><a href="compute_fromreg_imoms3_weigaddr.html?format=raw">compute_fromreg_imoms3_weigaddr.pro</a></dt>
-	<dd></dd>
+	<dd> compute the weight and address neede to interpolate data from a           "regular grid" to any grid using the imoms3 method    </dd>
       
 	<dt><a href="cutpar.html?format=raw">cutpar.pro</a></dt>
-	<dd></dd>
+	<dd> cut p parallelogram(s) into p*n^2 parallelograms </dd>
       
 	<dt><a href="cutsegment.html?format=raw">cutsegment.pro</a></dt>
-	<dd></dd>
+	<dd> cut p segments into p*n equal parts </dd>
       
 	<dt><a href="extrapolate.html?format=raw">extrapolate.pro</a></dt>
-	<dd></dd>
+	<dd> extrapolate data (zinput) where maskinput eq 0 by filling step by  step the coastline points with the mean value of the 8 neighbourgs.</dd>
       
 	<dt><a href="fromreg.html?format=raw">fromreg.pro</a></dt>
-	<dd></dd>
+	<dd> interpolate data from a "regular/rectangular grid" to any grid.</dd>
       
 	<dt><a href="get_gridparams.html?format=raw">get_gridparams.pro</a></dt>
-	<dd></dd>
+	<dd>     1) extract from a NetCDF file the longitude, latidude, and their dimensions       and make sure it is 1D or 2D arrays         or 2) given longitude and latitude arrays get their dimensions and make sure        they are 1D or 2D arrays  </dd>
       
 	<dt><a href="imoms3.html?format=raw">imoms3.pro</a></dt>
@@ -120,32 +120,32 @@
       
 	<dt><a href="inquad.html?format=raw">inquad.pro</a></dt>
-	<dd></dd>
+	<dd> to find if an (x,y) point is in a quadrilateral (x1,x2,x3,x4) </dd>
       
 	<dt><a href="inrecgrid.html?format=raw">inrecgrid.pro</a></dt>
-	<dd></dd>
+	<dd> given - a list of points, (x,y) position                   - the x and y limits of a rectangular grid           find in which cell is located each given point.</dd>
       
 	<dt><a href="ll_narcs_distances.html?format=raw">ll_narcs_distances.pro</a></dt>
-	<dd></dd>
+	<dd>  This function returns the longitude and latitude [lon, lat] of a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az), from a specified location Lon0, lat0.</dd>
       
 	<dt><a href="map_npoints.html?format=raw">map_npoints.pro</a></dt>
-	<dd></dd>
+	<dd> Return the distance in meter between all np0 points P0 and all        np1 points P1 on a sphere.</dd>
       
 	<dt><a href="neighbor.html?format=raw">neighbor.pro</a></dt>
-	<dd></dd>
+	<dd> find the closetest point of (P0) within a list of np1 points P1 Which can be on a sphere  </dd>
       
 	<dt><a href="quadrilateral2square.html?format=raw">quadrilateral2square.pro</a></dt>
-	<dd></dd>
+	<dd> warm (or map) an arbitrary quadrilateral onto a unit square   according to the 4-point correspondences:        (x0,y0) -> (0,0)        (x1,y1) -> (1,0)        (x2,y2) -> (1,1)        (x3,y3) -> (0,1)  This is the inverse function of square2quadrilateral.</dd>
       
 	<dt><a href="spl_fstdrv.html?format=raw">spl_fstdrv.pro</a></dt>
-	<dd></dd>
+	<dd> SPL_FSTDRV returns the values of the first derivative of  the interpolating function at the points X2i.</dd>
       
 	<dt><a href="spl_incr.html?format=raw">spl_incr.pro</a></dt>
-	<dd></dd>
+	<dd>   Given the arrays X and Y, which tabulate a function (with the X[i]  AND Y[i] in ascending order), and given an input value X2, the  SPL_INCR function returns an interpolated value for the given values  of X2.</dd>
       
 	<dt><a href="spl_keep_mean.html?format=raw">spl_keep_mean.pro</a></dt>
-	<dd></dd>
+	<dd>   Given the arrays X and Y, which tabulate a function (with the X[i]  AND Y[i] in ascending order), and given an input value X2, the  SPL_INCR function returns an interpolated value for the given values  of X2.</dd>
       
 	<dt><a href="square2quadrilateral.html?format=raw">square2quadrilateral.pro</a></dt>
-	<dd></dd>
+	<dd> warm (or map) a unit square onto an arbitrary quadrilateral  according to the 4-point correspondences:        (0,0) -> (x0,y0)        (1,0) -> (x1,y1)        (1,1) -> (x2,y2)        (0,1) -> (x3,y3)  The mapping is done using perspective transformation which preserve  lines in all orientations and permit quadrilateral to quadrilateral  mappings.</dd>
       
 	<dt><a href="testinterp.html?format=raw">testinterp.pro</a></dt>
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/extrapolate.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/extrapolate.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/extrapolate.html	(revision 101)
@@ -87,5 +87,7 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> extrapolate data (zinput) where maskinput eq 0 by filling step by
+ step the coastline points with the mean value of the 8 neighbourgs.
+</div>
 
       
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/fromreg.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/fromreg.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/fromreg.html	(revision 101)
@@ -87,48 +87,140 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_fromreg">
-
-	  <h2><a class="top" href="#container">top</a>fromreg </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>fromreg(<span class="result"><a href="#_fromreg_param_method">method</a>, <a href="#_fromreg_param_datain">datain</a>, <a href="#_fromreg_param_lonin">lonin</a>, <a href="#_fromreg_param_latin">latin</a>, <a href="#_fromreg_param_lonout">lonout</a>, <a href="#_fromreg_param_latout">latout</a></span>, <a href="#_fromreg_keyword_WEIG">WEIG</a>=<span class="result">WEIG</span>, <a href="#_fromreg_keyword_ADDR">ADDR</a>=<span class="result">ADDR</span>, <a href="#_fromreg_keyword_NONORTHERNLINE">NONORTHERNLINE</a>=<span class="result">NONORTHERNLINE</span>, <a href="#_fromreg_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE</a>=<span class="result">NOSOUTHERNLINE</span>)</p>
-	
-	  <div class="comments">
- NAME: fromreg
-
- PURPOSE: interpolate data from a "regular/rectangular grid" to any grid.
+      <div id="file_comments"> interpolate data from a "regular/rectangular grid" to any grid.
    2 metods availables: bilinear and imoms3 
    A "regular/rectangular grid" is defined as a grid for which each lontitudes lines have 
    the same latitude and each latitudes columns have the same longitude.
-   
- CATEGORY:interpolation
-
- CALLING SEQUENCE: dataout = fromreg(method, datain [, lonin, latin, lonout, latout])
-
- INPUTS:
-    method: a string defining the interpolation method. 
-            must be 'bilinear' or 'imoms3'
-    datain: a 2D array the input data to interpolate
-    lonin and latin: longitude/latitude of the input data. optionals if
+   </div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_fromreg">
+
+	  <h2><a class="top" href="#container">top</a>fromreg <span class="categories"> interpolation
+</span></h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>fromreg(<span class="result"><a href="#_fromreg_param_method">method</a>, <a href="#_fromreg_param_datain">datain</a>, <a href="#_fromreg_param_lonin">lonin</a>, <a href="#_fromreg_param_latin">latin</a>, <a href="#_fromreg_param_lonout">lonout</a>, <a href="#_fromreg_param_latout">latout</a></span>, <a href="#_fromreg_keyword_WEIG">WEIG</a>=<span class="result">WEIG</span>, <a href="#_fromreg_keyword_ADDR">ADDR</a>=<span class="result">ADDR</span>, <a href="#_fromreg_keyword_NONORTHERNLINE">NONORTHERNLINE</a>=<span class="result">NONORTHERNLINE</span>, <a href="#_fromreg_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE</a>=<span class="result">NOSOUTHERNLINE</span>)</p>
+	
+	  <div class="comments">
+</div>
+
+	  <h3>Return value</h3><div class="value"> 2D array: the interpolated data
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_fromreg_param_method">method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  a string defining the interpolation method. 
+            must be 'bilinear' or 'imoms3'</div>
+	    
+	    <h4 id="_fromreg_param_datain">datain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  a 2D array the input data to interpolate</div>
+	    
+	    <h4 id="_fromreg_param_lonin">lonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  longitude/latitude of the input data. optionals if
+            WEIG and ADDR keywords used.</div>
+	    
+	    <h4 id="_fromreg_param_latin">latin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_fromreg_param_lonout">lonout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  longitude/latitude of the output data. optionals if
             WEIG and ADDR keywords used.
-    lonout and latout: longitude/latitude of the output data. optionals if
-            WEIG and ADDR keywords used.
-
- KEYWORD PARAMETERS: 
-
-     WEIG, ADDR: 2D arrays, weig and addr are the weight and addresses used to
+</div>
+	    
+	    <h4 id="_fromreg_param_latout">latout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_fromreg_keyword_WEIG">WEIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">, ADDR 2D arrays, weig and addr are the weight and addresses used to
      perform the interpolation:
           dataout = total(weig*datain[addr], 1)
@@ -138,19 +230,54 @@
      the interpolation whithout computing again those 2 parameters. In that
      case, lonin, latin, lonout and latout are not necessary.
-
-     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
+</div>
+	    
+	    <h4 id="_fromreg_keyword_ADDR">ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	    <h4 id="_fromreg_keyword_NONORTHERNLINE">NONORTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> and /NOSOUTHERNLINE activate if you don't whant to take into
           account the northen/southern line of the input data when perfoming the
           interpolation.
-
- OUTPUTS: 2D array: the interpolated data
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS:We supposed the data are located on a sphere, with a periodicity along
-              the longitude.
-
- EXAMPLE: 
+</div>
+	    
+	    <h4 id="_fromreg_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value">  
+ dataout = fromreg(method, datain [, lonin, latin, lonout, latout])
+
+  
   
   topa = fromreg('bilinear', tncep, xncep, yncep, glamt, gphit)
@@ -161,164 +288,20 @@
   help, a, b
   t2opa = fromreg('bilinear', t2ncep, xncep, WEIG = a, ADDR = b)
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_fromreg_param_method">method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_param_datain">datain&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_param_lonin">lonin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_param_latin">latin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_param_lonout">lonout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_param_latout">latout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_fromreg_keyword_WEIG">WEIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_keyword_ADDR">ADDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_keyword_NONORTHERNLINE">NONORTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_fromreg_keyword_NOSOUTHERNLINE">NOSOUTHERNLINE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
+ </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value"> We supposed the data are located on a sphere, with a 
+ periodicity along the longitude.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/get_gridparams.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/get_gridparams.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/get_gridparams.html	(revision 101)
@@ -87,28 +87,5 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_get_gridparams">
-
-	  <h2><a class="top" href="#container">top</a>get_gridparams </h2>
-	
-	  <p class="header">
-	    get_gridparams<span class="result">, <a href="#_get_gridparams_param_in1">in1</a>, <a href="#_get_gridparams_param_in2">in2</a>, <a href="#_get_gridparams_param_in3">in3</a>, <a href="#_get_gridparams_param_in4">in4</a>, <a href="#_get_gridparams_param_in5">in5</a>, <a href="#_get_gridparams_param_in6">in6</a>, <a href="#_get_gridparams_param_in7">in7</a>, <a href="#_get_gridparams_param_in8">in8</a></span>, <a href="#_get_gridparams_keyword_DOUBLE">DOUBLE</a>=<span class="result">DOUBLE</span></p>
-	
-	  <div class="comments">
- NAME: get_gridparams
-
- PURPOSE: 
+      <div id="file_comments"> 
    1) extract from a NetCDF file the longitude, latidude, and their dimensions
       and make sure it is 1D or 2D arrays 
@@ -116,46 +93,183 @@
    or 2) given longitude and latitude arrays get their dimensions and make sure 
       they are 1D or 2D arrays 
-
- CATEGORY:for interpolations tools
-
- CALLING SEQUENCE:
- 
- 1) get_gridparams, file, lonname, latname, lon, lat, jpi, jpj, n_dimensions
-
- or 
-
- 2) get_gridparams, lon, lat, jpi, jpj, n_dimensions
-
- INPUTS:
-
- 1) 
-  file: the name of the netcdf file
-  loname: the name of the variable that contains the longitude in the NetCDF file
-  latname: the name of the variable that contains the latitude in the NetCDF file
-
- or 
-
- 2) lon and lat: 1d or 2D arrays defining longitudes and latitudes. 
-    Note that these arrays are also outputs and can therefore be modified. 
-
- KEYWORD PARAMETERS: none
-
- OUTPUTS:
-  lon the variable that will contain the longitudes
-  lat the variable that will contain the latitudes
-  jpi the number of points in the longitudinal direction
-  jpj the number of points in the latitudinal direction
-  n_dimensions: 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
+</div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_get_gridparams">
+
+	  <h2><a class="top" href="#container">top</a>get_gridparams <span class="categories"> interpolation
+</span></h2>
+	
+	  <p class="header">
+	    get_gridparams<span class="result">, <a href="#_get_gridparams_param_in1">in1</a>, <a href="#_get_gridparams_param_in2">in2</a>, <a href="#_get_gridparams_param_in3">in3</a>, <a href="#_get_gridparams_param_in4">in4</a>, <a href="#_get_gridparams_param_in5">in5</a>, <a href="#_get_gridparams_param_in6">in6</a>, <a href="#_get_gridparams_param_in7">in7</a>, <a href="#_get_gridparams_param_in8">in8</a></span>, <a href="#_get_gridparams_keyword_DOUBLE">DOUBLE</a>=<span class="result">DOUBLE</span></p>
+	
+	  <div class="comments">
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_get_gridparams_param_in1">in1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      <span class="attr">out</span>
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the name of the netcdf file
+ the variable that will contain the longitudes</div>
+	    
+	    <h4 id="_get_gridparams_param_in2">in2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      <span class="attr">out</span>
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the name of the variable that contains the longitude in the NetCDF file
+ the variable that will contain the latitudes</div>
+	    
+	    <h4 id="_get_gridparams_param_in3">in3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      <span class="attr">out</span>
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the name of the variable that contains the latitude in the NetCDF file
+ the number of points in the longitudinal direction</div>
+	    
+	    <h4 id="_get_gridparams_param_in4">in4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the number of points in the longitudinal direction
+ the number of points in the latitudinal direction</div>
+	    
+	    <h4 id="_get_gridparams_param_in5">in5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the number of points in the latitudinal direction
+ 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
     arrays or 2D arrays (jpi,jpj). Note that of  n_dimensions = 1, then the
     grid must be regular (each longitudes must be the same for all latitudes
     and each latitudes should be the sae for all longitudes). 
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS: ?
-
- EXAMPLE: 
+</div>
+	    
+	    <h4 id="_get_gridparams_param_in6">in6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the variable that will contain the longitudes</div>
+	    
+	    <h4 id="_get_gridparams_param_in7">in7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the variable that will contain the latitudes</div>
+	    
+	    <h4 id="_get_gridparams_param_in8">in8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      <span class="attr">out</span>
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
+
+ or 
+
+ 2) </div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_get_gridparams_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+ 
+ 1) get_gridparams, file, lonname, latname, lon, lat, jpi, jpj, n_dimensions
+
+ or 
+
+ 2) get_gridparams, lon, lat, jpi, jpj, n_dimensions
+
+ 1) 
+  
  
  1) ncdf_get_gridparams, 'coordinates_ORCA_R05.nc', 'glamt', 'gphit' $
@@ -163,144 +277,11 @@
 
  2) ncdf_get_gridparams, olon, olat, jpio, jpjo, 2
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_get_gridparams_param_in1">in1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in2">in2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in3">in3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in4">in4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in5">in5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in6">in6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in7">in7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_get_gridparams_param_in8">in8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_get_gridparams_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
+ </div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/imoms3.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/imoms3.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/imoms3.html	(revision 101)
@@ -107,5 +107,6 @@
 	    <span class="result">result = </span>imoms3(<span class="result"><a href="#_imoms3_param_xin">xin</a></span>)</p>
 	
-	  <div class="comments"></div>
+	  <div class="comments">
+ </div>
 
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inquad.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inquad.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inquad.html	(revision 101)
@@ -87,5 +87,6 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> to find if an (x,y) point is in a quadrilateral (x1,x2,x3,x4)
+</div>
 
       
@@ -102,61 +103,249 @@
 	<div class="routine_details" id="_inquad">
 
-	  <h2><a class="top" href="#container">top</a>inquad </h2>
+	  <h2><a class="top" href="#container">top</a>inquad <span class="categories"> grid manipulation
+</span></h2>
 	
 	  <p class="header">
 	    <span class="result">result = </span>inquad(<span class="result"><a href="#_inquad_param_x">x</a>, <a href="#_inquad_param_y">y</a>, <a href="#_inquad_param_x1">x1</a>, <a href="#_inquad_param_y1">y1</a>, <a href="#_inquad_param_x2">x2</a>, <a href="#_inquad_param_y2">y2</a>, <a href="#_inquad_param_x3">x3</a>, <a href="#_inquad_param_y3">y3</a>, <a href="#_inquad_param_x4">x4</a>, <a href="#_inquad_param_y4">y4</a></span>, <a href="#_inquad_keyword_ONSPHERE">ONSPHERE</a>=<span class="result">ONSPHERE</span>, <a href="#_inquad_keyword_DOUBLE">DOUBLE</a>=<span class="result">DOUBLE</span>, <a href="#_inquad_keyword_ZOOMRADIUS">ZOOMRADIUS</a>=<span class="result">ZOOMRADIUS</span>, <a href="#_inquad_keyword_NOPRINT">NOPRINT</a>=<span class="result">NOPRINT</span>, <a href="#_inquad_keyword_NEWCOORD">NEWCOORD</a>=<span class="result">NEWCOORD</span>)</p>
 	
-	  <div class="comments">
- NAME:inquad
-
- PURPOSE: to find if an (x,y) point is in a quadrilateral (x1,x2,x3,x4)
-
- CATEGORY:grid manipulation
-
- CALLING SEQUENCE:
-
-     res = inquad(x, y, x1, y1, x2, y2, x3, y3, x4, y4)
-
- INPUTS:
-
-     x,y: the coordinates of the point we want to know where it
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="value">
+    a n element vector. Where n is the number of elements of
+    x. res[i]=j means that the point number i is located in the
+    quadrilateral number j with (0 <= j <= n_elements(x0)-1)
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_inquad_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the point we want to know where it
      is. Must be a scalar if /onsphere activated else can be scalar
      or array. 
-
-     x1, y1, x2, y2, x3, y3, x4, y4: the coordinates of the
+</div>
+	    
+	    <h4 id="_inquad_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the
      quadrilateral given in the CLOCKWISE order. Scalar or array.
 
- KEYWORD PARAMETERS:
-
-    /DOUBLE: use double precision to perform the computation 
-
-    /ONSPHERE: to specify that the quadilateral are on a sphere and
+</div>
+	    
+	    <h4 id="_inquad_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_x3">x3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_y3">y3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_x4">x4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inquad_param_y4">y4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_inquad_keyword_ONSPHERE">ONSPHERE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to specify that the quadilateral are on a sphere and
     that teir coordinates are longitude-latitude coordinates. In this
     case, est-west periodicity, poles singularity and other pbs
     related to longitude-latitude coordinates are managed
     automatically. 
-
-    ZOOMRADIUS:the zoom (circle centred on the (x,y) with a radius of
+</div>
+	    
+	    <h4 id="_inquad_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> use double precision to perform the computation 
+</div>
+	    
+	    <h4 id="_inquad_keyword_ZOOMRADIUS">ZOOMRADIUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> :the zoom (circle centred on the (x,y) with a radius of
     zoomradius degree where we look for the the quadrilateral which;    contains the (x,y) point) used for the satellite projection
     when /onsphere is activated. Default is 4 and seems to be the
     minimum which can be used. Can be increase if the cell size is
     larger than 5 degrees.
-   
-    /NOPRINT: to suppress the print messages.
-
- OUTPUTS:
-
-    res, a n element vector. Where n is the number of elements of
-    x. res[i]=j means that the point number i is located in the
-    quadrilateral number j with (0 <= j <= n_elements(x0)-1)
-
- COMMON BLOCKS:none
-
- SIDE EFFECTS:
-
- RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
- twisted) is not work. This has to be tested.
-
- EXAMPLE:
+   </div>
+	    
+	    <h4 id="_inquad_keyword_NOPRINT">NOPRINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to suppress the print messages.
+</div>
+	    
+	    <h4 id="_inquad_keyword_NEWCOORD">NEWCOORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+
+     res = inquad(x, y, x1, y1, x2, y2, x3, y3, x4, y4)
+
+ 
 
        x = 1.*[1, 2, 6, 7, 3]
@@ -176,229 +365,22 @@
 
       On a sphere see clickincell.pro...
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_inquad_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_x3">x3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_y3">y3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_x4">x4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inquad_param_y4">y4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_inquad_keyword_ONSPHERE">ONSPHERE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_inquad_keyword_DOUBLE">DOUBLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_inquad_keyword_ZOOMRADIUS">ZOOMRADIUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_inquad_keyword_NOPRINT">NOPRINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_inquad_keyword_NEWCOORD">NEWCOORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+      Sebastien Masson (smasson@lodyc.jussieu.fr)
+      August 2003
+      Based on Convert_clic_ij.pro written by Gurvan Madec 
+</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value"> I think degenerated quadrilateral (e.g. flat of
+ twisted) is not work. This has to be tested.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inrecgrid.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inrecgrid.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/inrecgrid.html	(revision 101)
@@ -87,5 +87,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments"> given - a list of points, (x,y) position  
+                - the x and y limits of a rectangular grid
+          find in which cell is located each given point.
+</div>
 
       
@@ -102,5 +105,6 @@
 	<div class="routine_details" id="_inrecgrid">
 
-	  <h2><a class="top" href="#container">top</a>inrecgrid </h2>
+	  <h2><a class="top" href="#container">top</a>inrecgrid <span class="categories"> no DO loop, use the wonderfull value_locate function!
+</span></h2>
 	
 	  <p class="header">
@@ -108,49 +112,115 @@
 	
 	  <div class="comments">
- NAME: inrecgrid
-
- PURPOSE: given - a list of points, (x,y) position  
-                - the x and y limits of a rectangular grid
-          find in which cell is located each given point.
-
- CATEGORY: no DO loop, use the wonderfull value_locate function!
-
- CALLING SEQUENCE:res = inrecgrid(xin, yin, left, bottom)
-
- INPUTS: 
-
-    x1d: a 1d array, the x position on the points
-    y1d: a 1d array, the y position on the points
-    left: a 1d, monotonically increasing array, the position of the
-    "left" border of each cell.
-    bottom: a 1d, monotonically increasing array, the position of the
+</div>
+
+	  <h3>Return value</h3><div class="value"> the index on the cell accoring to the 2d array defined by
+ left and bottom.
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_inrecgrid_param_x1d">x1d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  a 1d array, the x position on the points</div>
+	    
+	    <h4 id="_inrecgrid_param_y1d">y1d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  a 1d, monotonically increasing array, the position of the
+    "left" border of each cell.</div>
+	    
+	    <h4 id="_inrecgrid_param_left">left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_inrecgrid_param_bottom">bottom&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  a 1d, monotonically increasing array, the position of the
     "bottom" border of each cell.
 
- OPTIONAL INPUTS:
-
- KEYWORD PARAMETERS:;
-
-    /output2d: to get the output as a 2d array (2,n_elements(x1d)),
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_inrecgrid_keyword_output2d">output2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to get the output as a 2d array (2,n_elements(x1d)),
     with res[0,*] the x index accoring to the 1d array defined by
     left and res[1,*] the y index accoring to the 1d array defined by
     bottom.
-
-    checkout=[rbgrid,ubgrid] specify the right and upper bondaries of
+</div>
+	    
+	    <h4 id="_inrecgrid_keyword_checkout">checkout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">=[rbgrid,ubgrid] specify the right and upper bondaries of
     the grid and check if some points are out.
-
- OUTPUTS:the index on the cell accoring to the 2d array defined by
- left and bottom.
-
- OPTIONAL OUTPUTS:
-
- COMMON BLOCKS: no
-
- SIDE EFFECTS:
-
- RESTRICTIONS:
-
- PROCEDURE:
-
- EXAMPLE:
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+ res = inrecgrid(xin, yin, left, bottom)
+
+ 
 
   IDL> a=indgen(5)
@@ -164,105 +234,12 @@
         3.00000      2.00000
         2.00000      1.00000
-  
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_inrecgrid_param_x1d">x1d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inrecgrid_param_y1d">y1d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inrecgrid_param_left">left&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_inrecgrid_param_bottom">bottom&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_inrecgrid_keyword_output2d">output2d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_inrecgrid_keyword_checkout">checkout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+  </div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+            S. Masson (smasson@lodyc.jussieu.fr)
+                      July 3rd, 2002
+                      October 3rd, 2003: use value_locate</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/ll_narcs_distances.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/ll_narcs_distances.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/ll_narcs_distances.html	(revision 101)
@@ -87,5 +87,14 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+ This function returns the longitude and latitude [lon, lat] of
+a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az),
+from a specified location Lon0, lat0.
+       Same as LL_ARC_DISTANCE but for n points without do loop.
+
+
+Formula from Map Projections - a working manual.  USGS paper
+1395.  Equations (5-5) and (5-6).
+</div>
 
       
@@ -102,5 +111,6 @@
 	<div class="routine_details" id="_LL_NARCS_DISTANCES">
 
-	  <h2><a class="top" href="#container">top</a>LL_NARCS_DISTANCES </h2>
+	  <h2><a class="top" href="#container">top</a>LL_NARCS_DISTANCES <span class="categories"> Mapping, geography
+</span></h2>
 	
 	  <p class="header">
@@ -108,155 +118,132 @@
 	
 	  <div class="comments">
- NAME:
-	LL_NARCS_DISTANCES
-
- PURPOSE:
- 	This function returns the longitude and latitude [lon, lat] of
-	a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az),
-	from a specified location Lon0, lat0.
-       Same as LL_ARC_DISTANCE but for n points without do loop.
-
- CATEGORY:
-	Mapping, geography.
-
- CALLING SEQUENCE:
-	Result = LL_NARCS_DISTANCES(Lon, lat0, Arc_Dist, Az)
-
- INPUTS:
-    	Lon0: An array containing the longitude of the starting point.
-             Values are assumed to be in radians unless the keyword
-             DEGREES is set.
-    	Lat0: An array containing the latitude of the starting point.
-             Values are assumed to be in radians unless the keyword
-             DEGREES is set.
-    	Arc_Dist: The arc distance from Lon_lat0. The value must be between
-		  -!PI and +!PI. To express distances in arc units, divide
-		  by the radius of the globe expressed in the original units.
-		  For example, if the radius of the earth is 6371 km, divide
-		  the distance in km by 6371 to obtain the arc distance.    
-    	Az:	  The azimuth from Lon_lat0. The value is assumed to be in
-		  radians unless the keyword DEGREES is set.
-
- KEYWORD PARAMETERS:
-    	DEGREES:  Set this keyword to express all measurements and
-		  results in degrees.
-
- OUTPUTS:
-	This function returns a (2, n) array containing the 
+</div>
+
+	  <h3>Return value</h3><div class="value">
+ a (2, n) array containing the 
        longitude / latitude of the resultings points. Values are in radians
        unless the keyword DEGREES is set.
-
- PROCEDURE:
-	Formula from Map Projections - a working manual.  USGS paper
-	1395.  Equations (5-5) and (5-6).
-
- EXAMPLE:
-	Lon_lat0 = [1.0, 2.0]		; Initial point specified in radians	
-	Arc_Dist = 2.0			; Arc distance in radians
-	Az = 1.0			; Azimuth in radians
-	Result = LL_ARC_DISTANCE(Lon_lat0, Arc_Dist, Az)
-	PRINT, Result
-     	  2.91415    -0.622234
-
-	IDL> lon0 = [-10, 20, 100]
-	IDL> lat0 = [0, -10, 45]
-	IDL> lon1 = [10, 60, 280]
-	IDL> lat1 = [0, 10, 45]
-	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
-	IDL> earthradius = 6378206.4d0
-	IDL> res = ll_narcs_distances(lon0, lat0, dist/earthradius, azi, /degrees)
-	IDL> print, reform(res[0, *])
-	       10.000000       60.000000       280.00000
-	IDL> print, reform(res[1, *])
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_LL_NARCS_DISTANCES_param_lon0">lon0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  An array containing the longitude of the starting point.
+             Values are assumed to be in radians unless the keyword
+             DEGREES is set.</div>
+	    
+	    <h4 id="_LL_NARCS_DISTANCES_param_lat0">lat0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  An array containing the latitude of the starting point.
+             Values are assumed to be in radians unless the keyword
+             DEGREES is set.</div>
+	    
+	    <h4 id="_LL_NARCS_DISTANCES_param_arc_dist">arc_dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  The arc distance from Lon_lat0. The value must be between
+ -!PI and +!PI. To express distances in arc units, divide
+  by the radius of the globe expressed in the original units.
+  For example, if the radius of the earth is 6371 km, divide
+  the distance in km by 6371 to obtain the arc distance.    </div>
+	    
+	    <h4 id="_LL_NARCS_DISTANCES_param_az">az&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">   The azimuth from Lon_lat0. The value is assumed to be in
+  radians unless the keyword DEGREES is set.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_LL_NARCS_DISTANCES_keyword_DEGREES">DEGREES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments">  Set this keyword to express all measurements and
+  results in degrees.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+Result = LL_NARCS_DISTANCES(Lon, lat0, Arc_Dist, Az)
+
+ 
+Lon_lat0 = [1.0, 2.0]; Initial point specified in radians
+Arc_Dist = 2.0; Arc distance in radians
+Az = 1.0; Azimuth in radians
+Result = LL_ARC_DISTANCE(Lon_lat0, Arc_Dist, Az)
+PRINT, Result
+       2.91415    -0.622234
+
+IDL> lon0 = [-10, 20, 100]
+IDL> lat0 = [0, -10, 45]
+IDL> lon1 = [10, 60, 280]
+IDL> lat1 = [0, 10, 45]
+IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
+IDL> earthradius = 6378206.4d0
+IDL> res = ll_narcs_distances(lon0, lat0, dist/earthradius, azi, /degrees)
+IDL> print, reform(res[0, *])
+       10.000000       60.000000       280.00000
+IDL> print, reform(res[1, *])
           1.1999280e-15       10.000000       45.000000
-
- MODIFICATION HISTORY:
-       Based on the IDL function ll_arc_distance.pro,v 1.11 2003/02/03</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_LL_NARCS_DISTANCES_param_lon0">lon0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_LL_NARCS_DISTANCES_param_lat0">lat0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_LL_NARCS_DISTANCES_param_arc_dist">arc_dist&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_LL_NARCS_DISTANCES_param_az">az&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_LL_NARCS_DISTANCES_keyword_DEGREES">DEGREES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+       Based on the IDL function ll_arc_distance.pro,v 1.11 2003/02/03
+ Sebastien Masson (smasson@lodyc.jussieu.fr)
+                  August 2005</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/map_npoints.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/map_npoints.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/map_npoints.html	(revision 101)
@@ -87,30 +87,6 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_Map_npoints">
-
-	  <h2><a class="top" href="#container">top</a>Map_npoints </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>Map_npoints(<span class="result"><a href="#_Map_npoints_param_lon0">lon0</a>, <a href="#_Map_npoints_param_lat0">lat0</a>, <a href="#_Map_npoints_param_lon1">lon1</a>, <a href="#_Map_npoints_param_lat1">lat1</a></span>, <a href="#_Map_npoints_keyword_azimuth">azimuth</a>=<span class="result">azimuth</span>, <a href="#_Map_npoints_keyword_RADIANS">RADIANS</a>=<span class="result">RADIANS</span>, <a href="#_Map_npoints_keyword_RADIUS">RADIUS</a>=<span class="result">RADIUS</span>, <a href="#_Map_npoints_keyword_MIDDLE">MIDDLE</a>=<span class="result">MIDDLE</span>, <a href="#_Map_npoints_keyword_TWO_BY_TWO">TWO_BY_TWO</a>=<span class="result">TWO_BY_TWO</span>)</p>
-	
-	  <div class="comments">
- NAME:
-	Map_nPoints
-
- PURPOSE:
-	Return the distance in meter between all np0 points P0 and all
+      <div id="file_comments">
+Return the distance in meter between all np0 points P0 and all
        np1 points P1 on a sphere. If keyword /TWO_BY_TWO is given then
        returns the distances between number n of P0 points and number
@@ -118,32 +94,29 @@
        Same as map_2points with the meter parameter but for n points
        without do loop.
-
- CATEGORY:
-	Maps.
-
- CALLING SEQUENCE:
-	Result = Map_nPoints(lon0, lat0, lon1, lat1)
-
- INPUTS:
-	Lon0, Lat0 = np0 elements vector. longitudes and latitudes of
-	np0 points P0 
-	Lon1, Lat1 = np1 elements vector. longitude and latitude of
-	np1 points P1 
-
- KEYWORD PARAMETERS:
-
-   AZIMUTH: A named variable that will receive the azimuth of the great
-       circle  connecting the two points, P0 to P1
-   /MIDDLE: to get the longitude/latitude of the middle point betwen P0 and P1.
-   RADIANS = if set, inputs and angular outputs are in radians, otherwise
-	degrees.
-   RADIUS: If given, return the distance between the two points
-	calculated using the given radius.
-       Default value is the earth radius : 6378206.4d0
-   TWO_BY_TWO:If given,then Map_nPoints returns the distances between
-       number n of P0 points and number n of P1 points (in that case,
-       np0 and np1 must be equal).
-
- OUTPUTS:
+</div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_Map_npoints">
+
+	  <h2><a class="top" href="#container">top</a>Map_npoints <span class="categories"> Maps
+</span></h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>Map_npoints(<span class="result"><a href="#_Map_npoints_param_lon0">lon0</a>, <a href="#_Map_npoints_param_lat0">lat0</a>, <a href="#_Map_npoints_param_lon1">lon1</a>, <a href="#_Map_npoints_param_lat1">lat1</a></span>, <a href="#_Map_npoints_keyword_azimuth">azimuth</a>=<span class="result">azimuth</span>, <a href="#_Map_npoints_keyword_RADIANS">RADIANS</a>=<span class="result">RADIANS</span>, <a href="#_Map_npoints_keyword_RADIUS">RADIUS</a>=<span class="result">RADIUS</span>, <a href="#_Map_npoints_keyword_MIDDLE">MIDDLE</a>=<span class="result">MIDDLE</span>, <a href="#_Map_npoints_keyword_TWO_BY_TWO">TWO_BY_TWO</a>=<span class="result">TWO_BY_TWO</span>)</p>
+	
+	  <div class="comments">
+</div>
+
+	  <h3>Return value</h3><div class="value">
        An (np0,np1) array giving the distance in meter between np0
        points P0 and np1 points P1. Element (i,j) of the ouput is the
@@ -153,55 +126,5 @@
        and P1[i] (in that case, we have np0 = np1 = np)
        if /MIDDLE see this keyword.
-
- EXAMPLES:
-	IDL> print, $
-	map_npoints([-105.15,1],[40.02,1],[-0.07,100,50],[51.30,20,0])
-	       7551369.3       5600334.8
-	       12864354.       10921254.
-	       14919237.       5455558.8
-	
-	IDL> lon0 = [-10, 20, 100]
-	IDL> lat0 = [0, -10, 45]
-	IDL> lon1 = [10, 60, 280]
-	IDL> lat1 = [0, 10, 45]
-	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi)
-	IDL> help, dist, azi
-	DIST            DOUBLE    = Array[3, 3]
-	AZI             DOUBLE    = Array[3, 3]
-	IDL> print, dist[4*lindgen(3)], azi[4*lindgen(3)]
-	       2226414.0       4957944.5       10018863.
-	       90.000000       64.494450   4.9615627e-15
-	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
-	IDL> help, dist, azi
-	DIST            DOUBLE    = Array[3]
-	AZI             DOUBLE    = Array[3]
-	IDL> print, dist, azi
-	       2226414.0       4957944.5       10018863.
-	       90.000000       64.494450   4.9615627e-15
-	IDL> print, map_2points(lon0[0], lat0[0], lon1[0], lat1[0])
-	       20.000000       90.000000
-	IDL> print, map_npoints(lon0[0], lat0[0], lon1[0], lat1[0], azi=azi)/6378206.4d0 / !dtor, azi
-	       20.000000
-	       90.000000
-
-	IDL> lon0 = [-10, 20, 100]
-	IDL> lat0 = [0, -10, 45]
-	IDL> lon1 = [10, 60, 280]
-	IDL> lat1 = [0, 10, 45]
-	IDL> mid = map_npoints(lon0, lat0, lon1, lat1, /middle, /two_by_two)
-	IDL> print, reform(mid[0,*]), reform(mid[1,*])
-	       0.0000000       40.000000       190.00000
-	       0.0000000  -1.5902773e-15       90.000000
-	IDL> print, (map_2points(lon0[0], lat0[0], lon1[0], lat1[0], npath = 3))[*, 1]
-	       0.0000000       0.0000000
-	IDL> print, (map_2points(lon0[1], lat0[1], lon1[1], lat1[1], npath = 3))[*, 1]
-	       40.000000  -1.5902773e-15
-	IDL> print, (map_2points(lon0[2], lat0[2], lon1[2], lat1[2], npath = 3))[*, 1]
-	       190.00000       90.000000
-	
- MODIFICATION HISTORY:
-       Based on the IDL function map_2points.pro,v 1.6 2001/01/15</div>
-
-	  
+</div>
 
 	  
@@ -210,4 +133,17 @@
 	    
 	    <h4 id="_Map_npoints_param_lon0">lon0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> np0 elements vector. longitudes and latitudes of np0 points P0 </div>
+	    
+	    <h4 id="_Map_npoints_param_lat0">lat0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -222,5 +158,19 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_Map_npoints_param_lat0">lat0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	    <h4 id="_Map_npoints_param_lon1">lon1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  np1 elements vector. longitude and latitude of np1 points P1 
+</div>
+	    
+	    <h4 id="_Map_npoints_param_lat1">lat1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 	      
 	      
@@ -235,30 +185,4 @@
 	  <div class="comments"></div>
 	    
-	    <h4 id="_Map_npoints_param_lon1">lon1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_Map_npoints_param_lat1">lat1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
 
 	  
@@ -279,5 +203,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> A named variable that will receive the azimuth of the great
+       circle  connecting the two points, P0 to P1</div>
 	    
 	    <h4 id="_Map_npoints_keyword_RADIANS">RADIANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -292,5 +217,6 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> = if set, inputs and angular outputs are in radians, otherwise
+degrees.</div>
 	    
 	    <h4 id="_Map_npoints_keyword_RADIUS">RADIUS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -305,5 +231,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> If given, return the distance between the two points
+calculated using the given radius.
+       Default value is the earth radius : 6378206.4d0</div>
 	    
 	    <h4 id="_Map_npoints_keyword_MIDDLE">MIDDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -318,5 +246,5 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> to get the longitude/latitude of the middle point betwen P0 and P1.</div>
 	    
 	    <h4 id="_Map_npoints_keyword_TWO_BY_TWO">TWO_BY_TWO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -331,13 +259,67 @@
 	    </h4>
 	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+	    <div class="comments">:If given,then Map_nPoints returns the distances between
+       number n of P0 points and number n of P1 points (in that case,
+       np0 and np1 must be equal).
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+Result = Map_nPoints(lon0, lat0, lon1, lat1)
+
+
+IDL> print, $
+map_npoints([-105.15,1],[40.02,1],[-0.07,100,50],[51.30,20,0])
+       7551369.3       5600334.8
+       12864354.       10921254.
+       14919237.       5455558.8
+
+IDL> lon0 = [-10, 20, 100]
+IDL> lat0 = [0, -10, 45]
+IDL> lon1 = [10, 60, 280]
+IDL> lat1 = [0, 10, 45]
+IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi)
+IDL> help, dist, azi
+DIST            DOUBLE    = Array[3, 3]
+AZI             DOUBLE    = Array[3, 3]
+IDL> print, dist[4*lindgen(3)], azi[4*lindgen(3)]
+       2226414.0       4957944.5       10018863.
+       90.000000       64.494450   4.9615627e-15
+IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
+IDL> help, dist, azi
+DIST            DOUBLE    = Array[3]
+AZI             DOUBLE    = Array[3]
+IDL> print, dist, azi
+       2226414.0       4957944.5       10018863.
+       90.000000       64.494450   4.9615627e-15
+IDL> print, map_2points(lon0[0], lat0[0], lon1[0], lat1[0])
+       20.000000       90.000000
+IDL> print, map_npoints(lon0[0], lat0[0], lon1[0], lat1[0], azi=azi)/6378206.4d0 / !dtor, azi
+       20.000000
+       90.000000
+
+IDL> lon0 = [-10, 20, 100]
+IDL> lat0 = [0, -10, 45]
+IDL> lon1 = [10, 60, 280]
+IDL> lat1 = [0, 10, 45]
+IDL> mid = map_npoints(lon0, lat0, lon1, lat1, /middle, /two_by_two)
+IDL> print, reform(mid[0,*]), reform(mid[1,*])
+       0.0000000       40.000000       190.00000
+       0.0000000  -1.5902773e-15       90.000000
+IDL> print, (map_2points(lon0[0], lat0[0], lon1[0], lat1[0], npath = 3))[*, 1]
+       0.0000000       0.0000000
+IDL> print, (map_2points(lon0[1], lat0[1], lon1[1], lat1[1], npath = 3))[*, 1]
+       40.000000  -1.5902773e-15
+IDL> print, (map_2points(lon0[2], lat0[2], lon1[2], lat1[2], npath = 3))[*, 1]
+       190.00000       90.000000
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+       Based on the IDL function map_2points.pro,v 1.6 2001/01/15
+ Sebastien Masson (smasson@lodyc.jussieu.fr)
+                  October 2003</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/neighbor.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/neighbor.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/neighbor.html	(revision 101)
@@ -87,5 +87,8 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+find the closetest point of (P0) within a list of np1 points
+P1 Which can be on a sphere 
+</div>
 
       
@@ -102,5 +105,6 @@
 	<div class="routine_details" id="_neighbor">
 
-	  <h2><a class="top" href="#container">top</a>neighbor </h2>
+	  <h2><a class="top" href="#container">top</a>neighbor <span class="categories"> Maps
+</span></h2>
 	
 	  <p class="header">
@@ -108,34 +112,123 @@
 	
 	  <div class="comments">
- NAME:
-	neighbor
-
- PURPOSE:
-	find the closetest point of (P0) within a list of np1 points
-	P1 Which can be on a sphere 
-
- CATEGORY:
-	Maps.
-
- CALLING SEQUENCE:
-	Result = neighbor(lon0, lat0, lon1, lat1)
-
- INPUTS:
-	Lon0, Lat0 = scalar. longitudes and latitudes of point P0. 
-	Lon1, Lat1 = np1 elements vector. longitude and latitude of
-	np1 points P1 
-
- KEYWORD PARAMETERS:
-   RADIANS = if set, inputs and angular outputs are in radians, otherwise
-	degrees.
-   DISTANCE = dis, to get back the distances between P0 and the np1
-   points P1 in the variable dis.
-   /SPHERE to activate if points are located on a sphere.
-
- OUTPUTS:
+</div>
+
+	  <h3>Return value</h3><div class="value">
        index giving the P1[index] point that is the closetest point
        of (P0)
-
- EXAMPLES:
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_neighbor_param_p0lon">p0lon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  scalar. longitudes of point P0. </div>
+	    
+	    <h4 id="_neighbor_param_p0lat">p0lat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  scalar. latitudes of point P0. 
+</div>
+	    
+	    <h4 id="_neighbor_param_neighlon">neighlon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_neighbor_param_neighlat">neighlat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_neighbor_keyword_sphere">sphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to activate if points are located on a sphere.
+</div>
+	    
+	    <h4 id="_neighbor_keyword_distance">distance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> dis, to get back the distances between P0 and the np1
+   points P1 in the variable dis.</div>
+	    
+	    <h4 id="_neighbor_keyword_radians">radians&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> if set, inputs and angular outputs are in radians, otherwise
+degrees.</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+ IDL> Result = neighbor(lon0, lat0, lon1, lat1)
+
+
        IDL> print, neighbor(-105.15,40.02,[-0.07,100,50],[51.30,20,0], $
             distance=dis)
@@ -143,118 +236,11 @@
        IDL> print, dis
              105.684      206.125      160.228
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_neighbor_param_p0lon">p0lon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_neighbor_param_p0lat">p0lat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_neighbor_param_neighlon">neighlon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_neighbor_param_neighlat">neighlat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_neighbor_keyword_sphere">sphere&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_neighbor_keyword_distance">distance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_neighbor_keyword_radians">radians&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+ Sebastien Masson (smasson@lodyc.jussieu.fr)
+                  October 2003</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/quadrilateral2square.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/quadrilateral2square.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/quadrilateral2square.html	(revision 101)
@@ -87,28 +87,5 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_quadrilateral2square">
-
-	  <h2><a class="top" href="#container">top</a>quadrilateral2square </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>quadrilateral2square(<span class="result"><a href="#_quadrilateral2square_param_x0in">x0in</a>, <a href="#_quadrilateral2square_param_y0in">y0in</a>, <a href="#_quadrilateral2square_param_x1in">x1in</a>, <a href="#_quadrilateral2square_param_y1in">y1in</a>, <a href="#_quadrilateral2square_param_x2in">x2in</a>, <a href="#_quadrilateral2square_param_y2in">y2in</a>, <a href="#_quadrilateral2square_param_x3in">x3in</a>, <a href="#_quadrilateral2square_param_y3in">y3in</a>, <a href="#_quadrilateral2square_param_xxin">xxin</a>, <a href="#_quadrilateral2square_param_yyin">yyin</a></span>, <a href="#_quadrilateral2square_keyword_PERF">PERF</a>=<span class="result">PERF</span>)</p>
-	
-	  <div class="comments">
- NAME:quadrilateral2square
-
- PURPOSE:warm (or map) an arbitrary quadrilateral onto a unit square 
+      <div id="file_comments"> warm (or map) an arbitrary quadrilateral onto a unit square 
  according to the 4-point correspondences:
        (x0,y0) -> (0,0)
@@ -120,26 +97,29 @@
  lines in all orientations and permit quadrilateral to quadrilateral
  mappings. see ref. bellow.
-
- CATEGORY:image/grid manipulation
-
- CALLING SEQUENCE:
-
-     res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3,xin,yin)
- 
- INPUTS:
-
-     x0,y0,x1,y1,x2,y2,x3,y3 the coordinates of the quadrilateral
-     (see above for correspondance with the unit square). Can be
-     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
-     given in the anticlockwise order.
-
-     xin,yin:the coordinates of the point(s) for which we want to do the
-     mapping. Can be scalar or array.
-
- KEYWORD PARAMETERS:
-
-    /DOUBLE: use double precision to perform the computation 
-
- OUTPUTS:
+</div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_quadrilateral2square">
+
+	  <h2><a class="top" href="#container">top</a>quadrilateral2square <span class="categories"> image, grid manipulation
+</span></h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>quadrilateral2square(<span class="result"><a href="#_quadrilateral2square_param_x0in">x0in</a>, <a href="#_quadrilateral2square_param_y0in">y0in</a>, <a href="#_quadrilateral2square_param_x1in">x1in</a>, <a href="#_quadrilateral2square_param_y1in">y1in</a>, <a href="#_quadrilateral2square_param_x2in">x2in</a>, <a href="#_quadrilateral2square_param_y2in">y2in</a>, <a href="#_quadrilateral2square_param_x3in">x3in</a>, <a href="#_quadrilateral2square_param_y3in">y3in</a>, <a href="#_quadrilateral2square_param_xxin">xxin</a>, <a href="#_quadrilateral2square_param_yyin">yyin</a></span>, <a href="#_quadrilateral2square_keyword_PERF">PERF</a>=<span class="result">PERF</span>)</p>
+	
+	  <div class="comments">
+</div>
+
+	  <h3>Return value</h3><div class="value">
 
      (2,n) array: the new coodinates (xout, yout) of the (xin,yin)
@@ -148,13 +128,174 @@
      x0. If xin is an array , then n is equal to the number of
      elements of xin.
-
- COMMON BLOCKS:none
-
- SIDE EFFECTS:
-
- RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
- twisted) is not work. This has to be tested.
-
- EXAMPLE:
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_quadrilateral2square_param_x0in">x0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_y0in">y0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_x1in">x1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_y1in">y1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_x2in">x2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_y2in">y2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_x3in">x3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral</div>
+	    
+	    <h4 id="_quadrilateral2square_param_y3in">y3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  the coordinates of the quadrilateral
+     (see above for correspondance with the unit square). Can be
+     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+     given in the anticlockwise order.
+</div>
+	    
+	    <h4 id="_quadrilateral2square_param_xxin">xxin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the coordinates of the point(s) for which we want to do the
+     mapping. Can be scalar or array.</div>
+	    
+	    <h4 id="_quadrilateral2square_param_yyin">yyin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"> the coordinates of the point(s) for which we want to do the
+     mapping. Can be scalar or array.
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_quadrilateral2square_keyword_PERF">PERF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"></div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value"> 
+
+     res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3,xin,yin)
+ 
+ 
 
  IDL> splot,[0,5],[0,3],/nodata,xstyle=1,ystyle=1
@@ -167,177 +308,24 @@
  IDL> inorg=quadrilateral2square(2,1,3,0,5,1,2,3,out[0,*],out[1,*])
  IDL> tracegrille, reform(inorg[0,*],11,11), reform(inorg[1,*],11,11),color=indgen(12)*20
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_quadrilateral2square_param_x0in">x0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_y0in">y0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_x1in">x1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_y1in">y1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_x2in">x2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_y2in">y2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_x3in">x3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_y3in">y3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_xxin">xxin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_quadrilateral2square_param_yyin">yyin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_quadrilateral2square_keyword_PERF">PERF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+      Sebastien Masson (smasson@lodyc.jussieu.fr)
+      August 2003
+      Based on "Digital Image Warping" by G. Wolberg
+      IEEE Computer Society Press, Los Alamitos, California
+      Chapter 3, see p 52-56
+      </div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value"> I think degenerated quadrilateral (e.g. flat of
+ twisted) is not work. This has to be tested.
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_fstdrv.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_fstdrv.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_fstdrv.html	(revision 101)
@@ -87,28 +87,5 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_spl_fstdrv">
-
-	  <h2><a class="top" href="#container">top</a>spl_fstdrv </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>spl_fstdrv(<span class="result"><a href="#_spl_fstdrv_param_x">x</a>, <a href="#_spl_fstdrv_param_y">y</a>, <a href="#_spl_fstdrv_param_yscd">yscd</a>, <a href="#_spl_fstdrv_param_x2">x2</a></span>)</p>
-	
-	  <div class="comments">
- NAME:spl_fstdrv
-
- PURPOSE: SPL_FSTDRV returns the values of the first derivative of
+      <div id="file_comments"> SPL_FSTDRV returns the values of the first derivative of
  the interpolating function at the points X2i. it is a double
  precision array.
@@ -119,106 +96,108 @@
  of X2. The interpolation method is based on cubic spline, corrected
  in a way that interpolated value are also in ascending order
-
- CATEGORY:
-
- CALLING SEQUENCE: y2 =  spl_fstdrv(x, y, yscd, x2)
-
- INPUTS:
-
-    x: An n-element (at least 2) input vector that specifies the
+</div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_spl_fstdrv">
+
+	  <h2><a class="top" href="#container">top</a>spl_fstdrv </h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>spl_fstdrv(<span class="result"><a href="#_spl_fstdrv_param_x">x</a>, <a href="#_spl_fstdrv_param_y">y</a>, <a href="#_spl_fstdrv_param_yscd">yscd</a>, <a href="#_spl_fstdrv_param_x2">x2</a></span>)</p>
+	
+	  <div class="comments">
+</div>
+
+	  <h3>Return value</h3><div class="value"> 
+
+    y2: f'(x2) = y2. 
+
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_spl_fstdrv_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  An n-element (at least 2) input vector that specifies the
     tabulate points in ascending order.
-
-    y: f(x) = y. An n-element input vector that specifies the values
+</div>
+	    
+	    <h4 id="_spl_fstdrv_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  f(x) = y. An n-element input vector that specifies the values
     of the tabulated function F(Xi) corresponding to Xi.
-
-    yscd: The output from SPL_INIT for the specified X and Y.
-
-    x2: The input values for which the first derivative values are
+</div>
+	    
+	    <h4 id="_spl_fstdrv_param_yscd">yscd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  The output from SPL_INIT for the specified X and Y.
+</div>
+	    
+	    <h4 id="_spl_fstdrv_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  The input values for which the first derivative values are
     desired. X can be scalar or an array of values.
-
- KEYWORD PARAMETERS: none
-
- OUTPUTS: 
-
-    y2: f'(x2) = y2. 
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS: ?
-
- EXAMPLE:
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_spl_fstdrv_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_spl_fstdrv_param_y">y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_spl_fstdrv_param_yscd">yscd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_spl_fstdrv_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
+</div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="value">  y2 =  spl_fstdrv(x, y, yscd, x2)
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+  Sebastien Masson (smasson@lodyc.jussieu.fr): May 2005</div>
 	  
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_incr.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_incr.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_incr.html	(revision 101)
@@ -87,5 +87,12 @@
       </div>
 
-      <div id="file_comments"></div>
+      <div id="file_comments">
+
+ Given the arrays X and Y, which tabulate a function (with the X[i]
+ AND Y[i] in ascending order), and given an input value X2, the
+ SPL_INCR function returns an interpolated value for the given values
+ of X2. The interpolation method is based on cubic spline, corrected
+ in a way that interpolated values are also monotonically increasing.
+</div>
 
       
@@ -102,5 +109,5 @@
 	  
 	  <dt><p><a href="#_pure_concave"><span class="result">result = </span>pure_concave(<span class="result">x1, x2, y1, y2, der2, x</span>)</a></p><dt>
-	  <dd>  NAME:spl_incr   PURPOSE:   Given the arrays X and Y, which tabulate a function (with the X[i]  AND Y[i] in ascending order), and given an input value X2, the  SPL_INCR function returns an interpolated value for the given values  of X2.</dd>	
+	  <dd> </dd>	
 	  
 	  <dt><p><a href="#_pure_convex"><span class="result">result = </span>pure_convex(<span class="result">x1, x2, y1, y2, der2, x</span>)</a></p><dt>
@@ -125,54 +132,112 @@
 	
 	  <div class="comments">
- NAME:spl_incr
-
- PURPOSE:
-
- Given the arrays X and Y, which tabulate a function (with the X[i]
- AND Y[i] in ascending order), and given an input value X2, the
- SPL_INCR function returns an interpolated value for the given values
- of X2. The interpolation method is based on cubic spline, corrected
- in a way that interpolated values are also monotonically increasing.
-
- CATEGORY:
-
- CALLING SEQUENCE: y2 =  spl_incr(x, y, x2)
-
- INPUTS:
-
-    x: An n-element (at least 2) input vector that specifies the
+</div>
+
+	  <h3>Return value</h3><div class="value"> 
+
+    y2: f(x2) = y2. Double precision array
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_pure_concave_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  An n-element (at least 2) input vector that specifies the
     tabulate points in a strict ascending order.
-
-    y: f(x) = y. An n-element input vector that specifies the values
+</div>
+	    
+	    <h4 id="_pure_concave_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  The input values for which the interpolated values are
+    desired. Its values must be strictly monotonically increasing. 
+
+
+
+</div>
+	    
+	    <h4 id="_pure_concave_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  f(x) = y. An n-element input vector that specifies the values
     of the tabulated function F(Xi) corresponding to Xi. As f is
     supposed to be monotonically increasing, y values must be
     monotonically increasing. y can have equal consecutive values.
-
-    x2: The input values for which the interpolated values are
-    desired. Its values must be strictly monotonically increasing. 
-
- KEYWORD PARAMETERS:
-
-    YP0: The first derivative of the interpolating function at the
-    point X0. If YP0 is omitted, the second derivative at the
-    boundary is set to zero, resulting in a "natural spline."
-
-    YPN_1: The first derivative of the interpolating function at the
-    point Xn-1. If YPN_1 is omitted, the second derivative at the
-    boundary is set to zero, resulting in a "natural spline." 
-
- OUTPUTS: 
-
-    y2: f(x2) = y2. Double precision array
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS:
-   It might be possible that y2[i+1]-y2[i] has very small negative
-   values (amplitude smaller than 1.e-6)...
-
- EXAMPLE:
+</div>
+	    
+	    <h4 id="_pure_concave_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pure_concave_param_der2">der2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_pure_concave_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="value">  y2 =  spl_incr(x, y, x2)
+
+ 
 
      n = 100L
@@ -194,108 +259,20 @@
      splot,c,xstyle=1,ystyle=1, yrange=[-.01,.05], ysurx=.25, petit = [1, 2, 2], /noerase
      oplot,[0, n_elements(c)], [0, 0], linestyle = 1
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_pure_concave_param_x1">x1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pure_concave_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pure_concave_param_y1">y1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pure_concave_param_y2">y2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pure_concave_param_der2">der2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_pure_concave_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+  Sebastien Masson (smasson@lodyc.jussieu.fr): May-Dec 2005</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value">
+   It might be possible that y2[i+1]-y2[i] has very small negative
+   values (amplitude smaller than 1.e-6)...
+</div>
 	
 	  
@@ -508,5 +485,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> The first derivative of the interpolating function at the
+    point X0. If YP0 is omitted, the second derivative at the
+    boundary is set to zero, resulting in a "natural spline."</div>
 	    
 	    <h4 id="_spl_incr_keyword_YPN_1">YPN_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -521,5 +500,7 @@
 	    </h4>
 	
-	    <div class="comments"></div>
+	    <div class="comments"> The first derivative of the interpolating function at the
+    point Xn-1. If YPN_1 is omitted, the second derivative at the
+    boundary is set to zero, resulting in a "natural spline." </div>
 	    
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_keep_mean.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_keep_mean.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/spl_keep_mean.html	(revision 101)
@@ -87,28 +87,5 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_spl_keep_mean">
-
-	  <h2><a class="top" href="#container">top</a>spl_keep_mean </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>spl_keep_mean(<span class="result"><a href="#_spl_keep_mean_param_x">x</a>, <a href="#_spl_keep_mean_param_yin">yin</a>, <a href="#_spl_keep_mean_param_x2">x2</a></span>, <a href="#_spl_keep_mean_keyword_YP0">YP0</a>=<span class="result">YP0</span>, <a href="#_spl_keep_mean_keyword_YPN_1">YPN_1</a>=<span class="result">YPN_1</span>, <a href="#_spl_keep_mean_keyword_GE0">GE0</a>=<span class="result">GE0</span>)</p>
-	
-	  <div class="comments">
- NAME:spl_keep_mean
-
- PURPOSE:
+      <div id="file_comments">
 
  Given the arrays X and Y, which tabulate a function (with the X[i]
@@ -120,49 +97,142 @@
  from monthly mean and keep the monthly mean of the computed daily
  data equa to the original values)
-
- CATEGORY:
-
- CALLING SEQUENCE: y2 =  spl_keep_mean(x, y, x2)
-
- INPUTS:
-
-    x: An n-element (at least 2) input vector that specifies the
+</div>
+
+      
+
+      
+
+      
+
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_spl_keep_mean">
+
+	  <h2><a class="top" href="#container">top</a>spl_keep_mean </h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>spl_keep_mean(<span class="result"><a href="#_spl_keep_mean_param_x">x</a>, <a href="#_spl_keep_mean_param_yin">yin</a>, <a href="#_spl_keep_mean_param_x2">x2</a></span>, <a href="#_spl_keep_mean_keyword_YP0">YP0</a>=<span class="result">YP0</span>, <a href="#_spl_keep_mean_keyword_YPN_1">YPN_1</a>=<span class="result">YPN_1</span>, <a href="#_spl_keep_mean_keyword_GE0">GE0</a>=<span class="result">GE0</span>)</p>
+	
+	  <div class="comments"></div>
+
+	  <h3>Return value</h3><div class="value"> 
+
+    y2: the meean value between two consecutive values of x2. This
+    array has one element less than y2. y2 has double precision.
+</div>
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_spl_keep_mean_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  An n-element (at least 2) input vector that specifies the
     tabulate points in a strict ascending order.
-
-    y: an array with one element less than x. y[i] represents the
+</div>
+	    
+	    <h4 id="_spl_keep_mean_param_yin">yin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  an array with one element less than x. y[i] represents the
     mean value between x[i] and x[i+1]. if /GE0 is activated, y must
     have positive values.
-
-    x2: The input values for which the interpolated values are
+</div>
+	    
+	    <h4 id="_spl_keep_mean_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      <span class="attr">in</span>
+	      
+	      
+	      <span class="attr">required</span>
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments">  The input values for which the interpolated values are
     desired. Its values must be strictly monotonically increasing. 
 
- KEYWORD PARAMETERS:
-
-    /GE0: to force that y2 is always GE than 0. In that case, y must
-    also be GE than 0.
-
-    YP0: The first derivative of the interpolating function at the
+</div>
+	    
+
+	  
+
+	  
+
+	    <h3>Keywords</h3>
+	    
+	    <h4 id="_spl_keep_mean_keyword_YP0">YP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> The first derivative of the interpolating function at the
     point X0. If YP0 is omitted, the second derivative at the
     boundary is set to zero, resulting in a "natural spline."
-
-    YPN_1: The first derivative of the interpolating function at the
+</div>
+	    
+	    <h4 id="_spl_keep_mean_keyword_YPN_1">YPN_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> The first derivative of the interpolating function at the
     point Xn-1. If YPN_1 is omitted, the second derivative at the
     boundary is set to zero, resulting in a "natural spline." 
-
- OUTPUTS: 
-
-    y2: the meean value between two consecutive values of x2. This
-    array has one element less than y2. y2 has double precision.
-
- COMMON BLOCKS: none
-
- SIDE EFFECTS: ?
-
- RESTRICTIONS:
-   It might be possible that y2 has very small negative values
-   (amplitude smaller than 1.e-6)... 
-
-
- EXAMPLE:
+</div>
+	    
+	    <h4 id="_spl_keep_mean_keyword_GE0">GE0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+  	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	    <div class="comments"> to force that y2 is always GE than 0. In that case, y must
+    also be GE than 0.
+</div>
+	    
+	  
+
+	  <h3>Examples</h3><div class="value">  y2 =  spl_keep_mean(x, y, x2)
+
+ 
 
     12 monthly values of precipitations into daily values:
@@ -185,112 +255,21 @@
     print, total(y*(x[1:n1-1]-x[0:n1-2]))
     print, total(y2*(x2[1:n2-1]-x2[0:n2-2]))
-
- MODIFICATION HISTORY:</div>
-
-	  
-
-	  
-	    <h3>Parameters</h3>
-	
-	    
-	    <h4 id="_spl_keep_mean_param_x">x&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_spl_keep_mean_param_yin">yin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-	    <h4 id="_spl_keep_mean_param_x2">x2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	  <div class="comments"></div>
-	    
-
-	  
-
-	  
-
-	    <h3>Keywords</h3>
-	    
-	    <h4 id="_spl_keep_mean_keyword_YP0">YP0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_spl_keep_mean_keyword_YPN_1">YPN_1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	    <h4 id="_spl_keep_mean_keyword_GE0">GE0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-	      
-	      
-	      
-  	      
-	      
-	      
-	      
-	      
-	    </h4>
-	
-	    <div class="comments"></div>
-	    
-	  
-
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
-	  
+</div>
+	  <h3>Version history</h3>
+	  
+	  
+	  <h4>History</h4><div class="value">
+  Sebastien Masson (smasson@lodyc.jussieu.fr): May 2005</div>
+	  
+	  
+	  <h3>Known issues</h3>
+	  
+	  
+	  
+	  <h4>Restrictions</h4><div class="value">
+   It might be possible that y2 has very small negative values
+   (amplitude smaller than 1.e-6)... 
+
+</div>
 	
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Interpolation/square2quadrilateral.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Interpolation/square2quadrilateral.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Interpolation/square2quadrilateral.html	(revision 101)
@@ -72,5 +72,5 @@
 <div id="secondary_navbar">
 
-<a href="spl_keep_mean.html">&lt;&lt;prev file</a> | <a href="testinterp.html">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="square2quadrilateral.html" target="_TOP">view single page</a> | <a href="./../index.html?format=raw" target="_TOP">view frames</a>&nbsp;&nbsp;&nbsp;&nbsp;summary: fields | routine&nbsp;&nbsp;&nbsp;&nbsp;details: <a href="#routine_details">routine</a>
+<a href="spl_keep_mean.html">&lt;&lt;prev file</a> | <a href="testinterp.html">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="square2quadrilateral.html" target="_TOP">view single page</a> | <a href="./../index.html?format=raw" target="_TOP">view frames</a>&nbsp;&nbsp;&nbsp;&nbsp;summary: fields | <a href="#routine_summary">routine</a>&nbsp;&nbsp;&nbsp;&nbsp;details: <a href="#routine_details">routine</a>
 
 </div>
@@ -87,28 +87,5 @@
       </div>
 
-      <div id="file_comments"></div>
-
-      
-
-      
-
-      
-
-      
-
-      <div id="routine_details">
-	
-
-	<div class="routine_details" id="_square2quadrilateral">
-
-	  <h2><a class="top" href="#container">top</a>square2quadrilateral </h2>
-	
-	  <p class="header">
-	    <span class="result">result = </span>square2quadrilateral(<span class="result"><a href="#_square2quadrilateral_param_x0in">x0in</a>, <a href="#_square2quadrilateral_param_y0in">y0in</a>, <a href="#_square2quadrilateral_param_x1in">x1in</a>, <a href="#_square2quadrilateral_param_y1in">y1in</a>, <a href="#_square2quadrilateral_param_x2in">x2in</a>, <a href="#_square2quadrilateral_param_y2in">y2in</a>, <a href="#_square2quadrilateral_param_x3in">x3in</a>, <a href="#_square2quadrilateral_param_y3in">y3in</a>, <a href="#_square2quadrilateral_param_xxin">xxin</a>, <a href="#_square2quadrilateral_param_yyin">yyin</a></span>)</p>
-	
-	  <div class="comments">
- NAME:square2quadrilateral
-
- PURPOSE:warm (or map) a unit square onto an arbitrary quadrilateral
+      <div id="file_comments"> warm (or map) a unit square onto an arbitrary quadrilateral
  according to the 4-point correspondences:
        (0,0) -> (x0,y0)
@@ -119,52 +96,220 @@
  lines in all orientations and permit quadrilateral to quadrilateral
  mappings. see ref. bellow.
-
- CATEGORY:image/grid manipulation
-
- CALLING SEQUENCE:
+</div>
+
+      
+
+      
+
+      
+
+      
+      <div id="routine_summary">		
+	<h2>Routine summary</h2>
+	
+	<dl>
+	  
+	  <dt><p><a href="#_square2quadrilateral"><span class="result">result = </span>square2quadrilateral(<span class="result">x0in, y0in, x1in, y1in, x2in, y2in, x3in, y3in, xxin, yyin</span>)</a></p><dt>
+	  <dd> </dd>	
+	  
+	  <dt><p><a href="#_square2quadrilateral"><span class="result">result = </span>square2quadrilateral(<span class="result">x0in, y0in, x1in, y1in, x2in, y2in, x3in, y3in, xxin, yyin</span>)</a></p><dt>
+	  <dd></dd>	
+	  	
+	</dl>
+      </div>
+      
+
+      <div id="routine_details">
+	
+
+	<div class="routine_details" id="_square2quadrilateral">
+
+	  <h2><a class="top" href="#container">top</a>square2quadrilateral <span class="categories"> image, grid manipulation
+</span></h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>square2quadrilateral(<span class="result"><a href="#_square2quadrilateral_param_x0in">x0in</a>, <a href="#_square2quadrilateral_param_y0in">y0in</a>, <a href="#_square2quadrilateral_param_x1in">x1in</a>, <a href="#_square2quadrilateral_param_y1in">y1in</a>, <a href="#_square2quadrilateral_param_x2in">x2in</a>, <a href="#_square2quadrilateral_param_y2in">y2in</a>, <a href="#_square2quadrilateral_param_x3in">x3in</a>, <a href="#_square2quadrilateral_param_y3in">y3in</a>, <a href="#_square2quadrilateral_param_xxin">xxin</a>, <a href="#_square2quadrilateral_param_yyin">yyin</a></span>)</p>
+	
+	  <div class="comments">
+</div>
+
+	  
+
+	  
+	    <h3>Parameters</h3>
+	
+	    
+	    <h4 id="_square2quadrilateral_param_x0in">x0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_y0in">y0in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_x1in">x1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_y1in">y1in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_x2in">x2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_y2in">y2in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_x3in">x3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_y3in">y3in&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_xxin">xxin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+	    <h4 id="_square2quadrilateral_param_yyin">yyin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	      
+	    </h4>
+	
+	  <div class="comments"></div>
+	    
+
+	  
+
+	  
+
+	  <h3>Examples</h3><div class="value"> 
 
      res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3[,xin,yin])
- 
- INPUTS:
-
-     x0,y0,x1,y1,x2,y2,x3,y3 the coordinates of the quadrilateral
-     (see above for correspondance with the unit square). Can be
-     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
-     given in the anticlockwise order.
-
-     xin,yin:the coordinates of the point(s) for which we want to do the
-     mapping. Can be scalar or array.
-
- KEYWORD PARAMETERS:
-
-    /DOUBLE: use double precision to perform the computation 
-
- OUTPUTS:
-
-     (2,n) array: the new coodinates (xout, yout) of the (xin,yin)
-     point(s) after mapping. 
-     If xin is a scalar, then n is equal to the number of elements of
-     x0. If xin is an array , then n is equal to the number of
-     elements of xin.
-     If xin and yin are omited, square2quadrilateral returns the
-     matrix A which is used for the inverse transformation. 
-
- COMMON BLOCKS:none
-
- SIDE EFFECTS:
-
- RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
- twisted) is not work. This has to be tested.
-
- EXAMPLE:
-
- IDL> splot,[0,5],[0,3],/nodata,xstyle=1,ystyle=1
- IDL> tracegrille, findgen(11)*.1, findgen(11)*.1,color=indgen(12)*20
- IDL> xin = (findgen(11)*.1)#replicate(1, 11)
- IDL> yin = replicate(1, 11)#(findgen(11)*.1)
- IDL> out = square2quadrilateral(2,1,3,0,5,1,2,3, xin, yin)
- IDL> tracegrille, reform(out[0,*],11,11), reform(out[1,*],11,11),color=indgen(12)*20
-
- MODIFICATION HISTORY:</div>
+ </div>
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	  
+	  
+	  
+	  
+	  
+	  
+	
+	  
+	
+	</div>
+	
+
+	<div class="routine_details" id="_square2quadrilateral">
+
+	  <h2><a class="top" href="#container">top</a>square2quadrilateral </h2>
+	
+	  <p class="header">
+	    <span class="result">result = </span>square2quadrilateral(<span class="result"><a href="#_square2quadrilateral_param_x0in">x0in</a>, <a href="#_square2quadrilateral_param_y0in">y0in</a>, <a href="#_square2quadrilateral_param_x1in">x1in</a>, <a href="#_square2quadrilateral_param_y1in">y1in</a>, <a href="#_square2quadrilateral_param_x2in">x2in</a>, <a href="#_square2quadrilateral_param_y2in">y2in</a>, <a href="#_square2quadrilateral_param_x3in">x3in</a>, <a href="#_square2quadrilateral_param_y3in">y3in</a>, <a href="#_square2quadrilateral_param_xxin">xxin</a>, <a href="#_square2quadrilateral_param_yyin">yyin</a></span>)</p>
+	
+	  <div class="comments"></div>
 
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/Obsolete/nlec5j.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/Obsolete/nlec5j.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/Obsolete/nlec5j.html	(revision 101)
@@ -243,5 +243,6 @@
 	  
 	  
-	  
+	  <h4>Restrictions</h4><div class="value"> appele par nlec
+</div>
 	
 	  <h3>Other attributes</h3>
Index: /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/VECTEUR/velovect.html	(revision 101)
@@ -107,5 +107,95 @@
 	    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"></div>
+	  <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:
+	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.</div>
 
 	  
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html	(revision 101)
@@ -116,4 +116,26 @@
             
           </ul>
+        </li>        <li id="idldoc-Mapping">Mapping <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/ll_narcs_distances.html?format=raw#_LL_NARCS_DISTANCES">LL_NARCS_DISTANCES</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-Maps">Maps <span class="result">(2 routines)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/map_npoints.html?format=raw#_Map_npoints">Map_npoints</a></li>
+            
+            <li><a href="./Interpolation/neighbor.html?format=raw#_neighbor">neighbor</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-basic_work">basic work <span class="result">(2 routines)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/cutpar.html?format=raw#_cutpar">cutpar</a></li>
+            
+            <li><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">cutsegment</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-calendar">calendar <span class="result">(7 routines)</span>
           <ul>
@@ -140,4 +162,46 @@
             
           </ul>
+        </li>        <li id="idldoc-finding_where_is_a_point_on_a_grid">finding where is a point on a grid <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/clickincell.html?format=raw#_clickincell">clickincell</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-geography">geography <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/ll_narcs_distances.html?format=raw#_LL_NARCS_DISTANCES">LL_NARCS_DISTANCES</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-grid_manipulation">grid manipulation <span class="result">(3 routines)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/inquad.html?format=raw#_inquad">inquad</a></li>
+            
+            <li><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">quadrilateral2square</a></li>
+            
+            <li><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">square2quadrilateral</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-image">image <span class="result">(2 routines)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">quadrilateral2square</a></li>
+            
+            <li><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">square2quadrilateral</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-interpolation">interpolation <span class="result">(4 routines)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">compute_fromreg_bilinear_weigaddr</a></li>
+            
+            <li><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">compute_fromreg_imoms3_weigaddr</a></li>
+            
+            <li><a href="./Interpolation/fromreg.html?format=raw#_fromreg">fromreg</a></li>
+            
+            <li><a href="./Interpolation/get_gridparams.html?format=raw#_get_gridparams">get_gridparams</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-io">io <span class="result">(2 routines)</span>
           <ul>
@@ -168,8 +232,20 @@
             
           </ul>
+        </li>        <li id="idldoc-no_DO_loop">no DO loop <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/inrecgrid.html?format=raw#_inrecgrid">inrecgrid</a></li>
+            
+          </ul>
         </li>        <li id="idldoc-string">string <span class="result">(1 routine)</span>
           <ul>
             
             <li><a href="./Calendar/date2string.html?format=raw#_date2string">date2string</a></li>
+            
+          </ul>
+        </li>        <li id="idldoc-">use the wonderfull value_locate function! <span class="result">(1 routine)</span>
+          <ul>
+            
+            <li><a href="./Interpolation/inrecgrid.html?format=raw#_inrecgrid">inrecgrid</a></li>
             
           </ul>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html	(revision 101)
@@ -232,34 +232,34 @@
 	<dd>a keyword from the routine IMDISP</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">OV1D</a></dt>
+	<dd>a keyword from the routine plt1d</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">OV1D</a></dt>
+	<dd>a keyword from the routine pltt</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">OV1D</a></dt>
 	<dd>a keyword from the routine pltsc</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">OV1D</a></dt>
-	<dd>a keyword from the routine pltt</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">OV1D</a></dt>
-	<dd>a keyword from the routine plt1d</dd>
-	
 	<dt><a href="./ToBeReviewed/COULEURS/newpalette.html?format=raw#_newpalette">OVER</a></dt>
 	<dd>a keyword from the routine newpalette</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">OVERPLOT</a></dt>
+	<dd>a keyword from the routine pltt</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">OVERPLOT</a></dt>
+	<dd>a keyword from the routine pltz</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">OVERPLOT</a></dt>
+	<dd>a keyword from the routine VELOVECT</dd>
+	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">OVERPLOT</a></dt>
+	<dd>a keyword from the routine drawsectionbottom</dd>
+	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">OVERPLOT</a></dt>
+	<dd>a keyword from the routine tracemask</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">OVERPLOT</a></dt>
 	<dd>a keyword from the routine plt</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">OVERPLOT</a></dt>
-	<dd>a keyword from the routine pltt</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">OVERPLOT</a></dt>
-	<dd>a keyword from the routine pltz</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">OVERPLOT</a></dt>
-	<dd>a keyword from the routine VELOVECT</dd>
-	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">OVERPLOT</a></dt>
-	<dd>a keyword from the routine drawsectionbottom</dd>
-	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">OVERPLOT</a></dt>
-	<dd>a keyword from the routine tracemask</dd>
-	
 	<dt><a href="./Textoidl/matchdelim.html?format=raw#_Matchdelim">OpenPos</a></dt>
 	<dd>a parameter from the routine ./Textoidl/matchdelim.html</dd>
@@ -274,9 +274,12 @@
 	<dd>a keyword from the routine test</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">olat</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr.html</dd>
+	
 	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">olat</a></dt>
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
 	
-	<dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">olat</a></dt>
-	<dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr.html</dd>
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">olat</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
 	
 	<dt><a href="ForOldVersion/oldcm_empty.html?format=raw">oldcm_empty.pro</a></dt>
@@ -286,10 +289,13 @@
 	<dd>a file from the directory ./ForOldVersion</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">olonin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">olonin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
 	<dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">olonin</a></dt>
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr.html</dd>
 	
-	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">olonin</a></dt>
-	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
-	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">onemore</a></dt>
 	<dd>a keyword from the routine drawcoast_e</dd>
@@ -298,10 +304,10 @@
 	<dd>a keyword from the routine make_selection</dd>
 	
+	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">onsphere</a></dt>
+	<dd>a keyword from the routine cutsegment</dd>
+	
 	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">onsphere</a></dt>
 	<dd>a keyword from the routine cutpar</dd>
 	
-	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">onsphere</a></dt>
-	<dd>a keyword from the routine cutsegment</dd>
-	
 	<dt><a href="./ToBeReviewed/MATRICE/cmapply.html?format=raw#_cmapply">op</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmapply.html</dd>
@@ -319,16 +325,16 @@
 	<dd>a file from the directory ./ToBeReviewed/UTILITAIRE</dd>
 	
+	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html?format=raw#_tracecadre">out</a></dt>
+	<dd>a keyword from the routine tracecadre</dd>
+	
 	<dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_ftp_post">out</a></dt>
 	<dd>a keyword from the routine ftp_post</dd>
 	
-	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html?format=raw#_tracecadre">out</a></dt>
-	<dd>a keyword from the routine tracecadre</dd>
+	<dt><a href="./Grid/micromeshmask.html?format=raw#_ncdf_transfer">outid</a></dt>
+	<dd>a parameter from the routine ./Grid/micromeshmask.html</dd>
 	
 	<dt><a href="./Grid/smallmeshmask.html?format=raw#_ncdf_transfer">outid</a></dt>
 	<dd>a parameter from the routine ./Grid/smallmeshmask.html</dd>
 	
-	<dt><a href="./Grid/micromeshmask.html?format=raw#_ncdf_transfer">outid</a></dt>
-	<dd>a parameter from the routine ./Grid/micromeshmask.html</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html?format=raw#_bar_plot">outline</a></dt>
 	<dd>a keyword from the routine bar_plot</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-S.html	(revision 101)
@@ -208,10 +208,10 @@
 	<dd>a keyword from the routine computegrid</dd>
 	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">SHIFTED</a></dt>
+	<dd>a keyword from the routine triangule_e</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html?format=raw#_definetri_e">SHIFTED</a></dt>
 	<dd>a keyword from the routine definetri_e</dd>
 	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">SHIFTED</a></dt>
-	<dd>a keyword from the routine triangule_e</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/strsci.html?format=raw#_StrSci">SHORT</a></dt>
 	<dd>a keyword from the routine StrSci</dd>
@@ -232,22 +232,22 @@
 	<dd>a keyword from the routine report</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">SIN</a></dt>
+	<dd>a keyword from the routine plt1d</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">SIN</a></dt>
+	<dd>a keyword from the routine pltz</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">SIN</a></dt>
+	<dd>a keyword from the routine axis4pltz</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/axe.html?format=raw#_axe">SIN</a></dt>
 	<dd>a keyword from the routine axe</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">SIN</a></dt>
-	<dd>a keyword from the routine pltz</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">SIN</a></dt>
-	<dd>a keyword from the routine plt1d</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">SIN</a></dt>
-	<dd>a keyword from the routine axis4pltz</dd>
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">SMALL</a></dt>
+	<dd>a keyword from the routine placedessin</dd>
 	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">SMALL</a></dt>
 	<dd>a keyword from the routine terminedessin</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">SMALL</a></dt>
-	<dd>a keyword from the routine placedessin</dd>
-	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">SPACE</a></dt>
 	<dd>a keyword from the routine CW_BGROUP</dd>
@@ -277,25 +277,25 @@
 	<dd>a keyword from the routine cw_domain</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">STRICTFILL</a></dt>
+	<dd>a keyword from the routine label</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">STRICTFILL</a></dt>
+	<dd>a keyword from the routine pltz</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">STRICTFILL</a></dt>
+	<dd>a keyword from the routine plt</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">STRICTFILL</a></dt>
 	<dd>a keyword from the routine pltt</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">STRICTFILL</a></dt>
-	<dd>a keyword from the routine pltz</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">STRICTFILL</a></dt>
-	<dd>a keyword from the routine label</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">STRICTFILL</a></dt>
-	<dd>a keyword from the routine plt</dd>
+	<dt><a href="./Grid/computegrid.html?format=raw#_computegrid">STRIDE</a></dt>
+	<dd>a keyword from the routine computegrid</dd>
+	
+	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">STRIDE</a></dt>
+	<dd>a keyword from the routine ncdf_meshread</dd>
 	
 	<dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">STRIDE</a></dt>
 	<dd>a keyword from the routine xncdf_lec</dd>
 	
-	<dt><a href="./Grid/computegrid.html?format=raw#_computegrid">STRIDE</a></dt>
-	<dd>a keyword from the routine computegrid</dd>
-	
-	<dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">STRIDE</a></dt>
-	<dd>a keyword from the routine ncdf_meshread</dd>
-	
 	<dt><a href="./buildinit.html?format=raw#_CW_FIELD2">STRING</a></dt>
 	<dd>a keyword from the routine CW_FIELD2</dd>
@@ -310,13 +310,13 @@
 	<dd>a function from the file str_size.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">STY1D</a></dt>
+	<dd>a keyword from the routine pltsc</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">STY1D</a></dt>
+	<dd>a keyword from the routine pltt</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">STY1D</a></dt>
 	<dd>a keyword from the routine plt1d</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">STY1D</a></dt>
-	<dd>a keyword from the routine pltsc</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">STY1D</a></dt>
-	<dd>a keyword from the routine pltt</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">STYLE</a></dt>
 	<dd>a keyword from the routine pltz</dd>
@@ -349,10 +349,10 @@
 	<dd>a function from the file str_token.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/STRING/strcnt.html?format=raw#_Strcnt">Strcnt</a></dt>
+	<dd>a function from the file strcnt.pro</dd>
+	
 	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">Strcnt</a></dt>
 	<dd>a function from the file strcnt.pro</dd>
 	
-	<dt><a href="./ToBeReviewed/STRING/strcnt.html?format=raw#_Strcnt">Strcnt</a></dt>
-	<dd>a function from the file strcnt.pro</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">Strtok</a></dt>
 	<dd>a function from the file strtok.pro</dd>
@@ -367,19 +367,19 @@
 	<dd>a function from the file sub_sup_idl.pro</dd>
 	
+	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper3.html?format=raw#_ncdf_quickwrite_helper3">s</a></dt>
+	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper3.html</dd>
+	
+	<dt><a href="./ToBeReviewed/STRING/strright.html?format=raw#_strright">s</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STRING/strright.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/putfile.html?format=raw#_putfile">s</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/putfile.html</dd>
 	
-	<dt><a href="./ToBeReviewed/STRING/strright.html?format=raw#_strright">s</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STRING/strright.html</dd>
-	
-	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper3.html?format=raw#_ncdf_quickwrite_helper3">s</a></dt>
-	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper3.html</dd>
+	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_helper2">s</a></dt>
+	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html</dd>
 	
 	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_struct_free.html?format=raw#_ncdf_struct_free">s</a></dt>
 	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_struct_free.html</dd>
 	
-	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_helper2">s</a></dt>
-	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/saveatt.html?format=raw#_saveatt">saveatt</a></dt>
 	<dd>a function from the file saveatt.pro</dd>
@@ -532,10 +532,10 @@
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory.html</dd>
 	
+	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html?format=raw#_tracecadre">small</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html</dd>
+	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">small</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html</dd>
 	
-	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html?format=raw#_tracecadre">small</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html</dd>
-	
 	<dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">smalldraw</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre.html</dd>
@@ -595,13 +595,16 @@
 	<dd>a function from the file square2quadrilateral.pro</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">square2quadrilateral</a></dt>
+	<dd>a function from the file square2quadrilateral.pro</dd>
+	
 	<dt><a href="Interpolation/square2quadrilateral.html?format=raw">square2quadrilateral.pro</a></dt>
 	<dd>a file from the directory ./Interpolation</dd>
 	
+	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">startpos</a></dt>
+	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/strcnt.html?format=raw#_Strcnt">startpos</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strcnt.html</dd>
 	
-	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">startpos</a></dt>
-	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
-	
 	<dt><a href="./Grid/computegrid.html?format=raw#_computegrid">startx</a></dt>
 	<dd>a parameter from the routine ./Grid/computegrid.html</dd>
@@ -616,4 +619,7 @@
 	<dd>a parameter from the routine ./Grid/computegrid.html</dd>
 	
+	<dt><a href="./ToBeReviewed/STRING/strwhere.html?format=raw#_strwhere">str</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STRING/strwhere.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/strrepl.html?format=raw#_strrepl">str</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strrepl.html</dd>
@@ -622,7 +628,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/lenstr.html</dd>
 	
-	<dt><a href="./ToBeReviewed/STRING/strwhere.html?format=raw#_strwhere">str</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STRING/strwhere.html</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_string2struct">strVal</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/string2struct.html</dd>
@@ -634,10 +637,13 @@
 	<dd>a file from the directory ./Textoidl</dd>
 	
-	<dt><a href="ToBeReviewed/STRING/strcnt.html?format=raw">strcnt.pro</a></dt>
-	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
-	
 	<dt><a href="Textoidl/strcnt.html?format=raw">strcnt.pro</a></dt>
 	<dd>a file from the directory ./Textoidl</dd>
 	
+	<dt><a href="ToBeReviewed/STRING/strcnt.html?format=raw">strcnt.pro</a></dt>
+	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
+	
+	<dt><a href="./ToBeReviewed/STRING/str_size.html?format=raw#_STR_SIZE">string</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STRING/str_size.html</dd>
+	
 	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#__str">string</a></dt>
 	<dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html</dd>
@@ -649,7 +655,4 @@
 	<dd>a parameter from the routine ./Textoidl/str_token.html</dd>
 	
-	<dt><a href="./ToBeReviewed/STRING/str_size.html?format=raw#_STR_SIZE">string</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STRING/str_size.html</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_string2struct">string2struct</a></dt>
 	<dd>a function from the file string2struct.pro</dd>
@@ -667,4 +670,7 @@
 	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
 	
+	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">strn</a></dt>
+	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
+	
 	<dt><a href="./Textoidl/nexttok.html?format=raw#_nexttok">strn</a></dt>
 	<dd>a parameter from the routine ./Textoidl/nexttok.html</dd>
@@ -673,7 +679,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strcnt.html</dd>
 	
-	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">strn</a></dt>
-	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
-	
 	<dt><a href="./ToBeReviewed/STRING/strrepl.html?format=raw#_strrepl">strrepl</a></dt>
 	<dd>a function from the file strrepl.pro</dd>
@@ -700,10 +703,10 @@
 	<dd>a function from the file strtrans.pro</dd>
 	
-	<dt><a href="ToBeReviewed/STRING/strtrans.html?format=raw">strtrans.pro</a></dt>
-	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
-	
 	<dt><a href="Textoidl/strtrans.html?format=raw">strtrans.pro</a></dt>
 	<dd>a file from the directory ./Textoidl</dd>
 	
+	<dt><a href="ToBeReviewed/STRING/strtrans.html?format=raw">strtrans.pro</a></dt>
+	<dd>a file from the directory ./ToBeReviewed/STRING</dd>
+	
 	<dt><a href="./ToBeReviewed/STRUCTURE/extractstru.html?format=raw#_extractstru">stru</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRUCTURE/extractstru.html</dd>
@@ -715,4 +718,10 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STRUCTURE/mixstru.html</dd>
 	
+	<dt><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw#_litchamp">struct</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/LECTURE/litchamp.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/restoreatt.html?format=raw#_restoreatt">struct</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/restoreatt.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/strkeywd.html?format=raw#_strkeywd">struct</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strkeywd.html</dd>
@@ -721,10 +730,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STRUCTURE/struct2string.html</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/restoreatt.html?format=raw#_restoreatt">struct</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/restoreatt.html</dd>
-	
-	<dt><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw#_litchamp">struct</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/LECTURE/litchamp.html</dd>
-	
 	<dt><a href="./ToBeReviewed/STRUCTURE/struct2string.html?format=raw#_struct2string">struct2string</a></dt>
 	<dd>a function from the file struct2string.pro</dd>
@@ -757,10 +760,10 @@
 	<dd>a keyword from the routine read_gribtable</dd>
 	
+	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">substrn</a></dt>
+	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/strcnt.html?format=raw#_Strcnt">substrn</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strcnt.html</dd>
 	
-	<dt><a href="./Textoidl/strcnt.html?format=raw#_Strcnt">substrn</a></dt>
-	<dd>a parameter from the routine ./Textoidl/strcnt.html</dd>
-	
 	<dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickread/ncdf_quickread_helper.html?format=raw#_ncdf_quickread_getFile">suffix</a></dt>
 	<dd>a keyword from the routine ncdf_quickread_getFile</dd>
@@ -778,10 +781,10 @@
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield.html</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_2d">sz</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield.html</dd>
+	
 	<dt><a href="./ToBeReviewed/UTILITAIRE/fitintobox.html?format=raw#_err_mess">sz</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/UTILITAIRE/fitintobox.html</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_2d">sz</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield.html</dd>
-	
       </dl>
       
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-W.html	(revision 101)
@@ -175,28 +175,28 @@
 	<dd>a keyword from the routine dessinetri</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">WDEPTH</a></dt>
+	<dd>a keyword from the routine checkfield</dd>
+	
+	<dt><a href="./ToBeReviewed/UTILITAIRE/fitintobox.html?format=raw#_fitintobox">WDEPTH</a></dt>
+	<dd>a keyword from the routine fitintobox</dd>
+	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">WDEPTH</a></dt>
+	<dd>a keyword from the routine section</dd>
+	
+	<dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">WDEPTH</a></dt>
+	<dd>a keyword from the routine grossemoyenne</dd>
+	
+	<dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">WDEPTH</a></dt>
+	<dd>a keyword from the routine moyenne</dd>
+	
+	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">WDEPTH</a></dt>
+	<dd>a keyword from the routine decoupeterre</dd>
+	
+	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">WDEPTH</a></dt>
+	<dd>a keyword from the routine grille</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">WDEPTH</a></dt>
 	<dd>a keyword from the routine pltz</dd>
 	
-	<dt><a href="./ToBeReviewed/UTILITAIRE/fitintobox.html?format=raw#_fitintobox">WDEPTH</a></dt>
-	<dd>a keyword from the routine fitintobox</dd>
-	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">WDEPTH</a></dt>
-	<dd>a keyword from the routine section</dd>
-	
-	<dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">WDEPTH</a></dt>
-	<dd>a keyword from the routine grossemoyenne</dd>
-	
-	<dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">WDEPTH</a></dt>
-	<dd>a keyword from the routine moyenne</dd>
-	
-	<dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">WDEPTH</a></dt>
-	<dd>a keyword from the routine decoupeterre</dd>
-	
-	<dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">WDEPTH</a></dt>
-	<dd>a keyword from the routine grille</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">WDEPTH</a></dt>
-	<dd>a keyword from the routine checkfield</dd>
-	
 	<dt><a href="./Interpolation/fromreg.html?format=raw#_fromreg">WEIG</a></dt>
 	<dd>a keyword from the routine fromreg</dd>
@@ -214,4 +214,7 @@
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/VECTEUR/vecteur.html</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">weig</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
 	<dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">weig</a></dt>
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr.html</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html	(revision 101)
@@ -172,4 +172,16 @@
       <dl>
 	
+	<dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">X</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate.html</dd>
+	
+	<dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">X</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate.html</dd>
+	
+	<dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_A_TimeCorrelate">X</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate.html</dd>
+	
+	<dt><a href="./ToBeReviewed/STRING/isnumber.html?format=raw#_ISNUMBER">X</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STRING/isnumber.html</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">X</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/VECTEUR/velovect.html</dd>
@@ -181,22 +193,10 @@
 	<dd>a keyword from the routine plt1d</dd>
 	
-	<dt><a href="./ToBeReviewed/STRING/isnumber.html?format=raw#_ISNUMBER">X</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STRING/isnumber.html</dd>
-	
-	<dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">X</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate.html</dd>
-	
-	<dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_A_TimeCorrelate">X</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate.html</dd>
-	
-	<dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">X</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate.html</dd>
+	<dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_A_Correlate2d">X</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_correlate2d.html</dd>
 	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">X</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation.html</dd>
 	
-	<dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_A_Correlate2d">X</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_correlate2d.html</dd>
-	
 	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_IMSIZE">X0</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
@@ -208,10 +208,10 @@
 	<dd>a keyword from the routine initncdf</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">XINDEX</a></dt>
+	<dd>a keyword from the routine checktypeminmax</dd>
+	
 	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">XINDEX</a></dt>
 	<dd>a keyword from the routine domdef</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">XINDEX</a></dt>
-	<dd>a keyword from the routine checktypeminmax</dd>
-	
 	<dt><a href="./ToBeReviewed/COULEURS/xlct.html?format=raw#_XLCT_PSAVE">XLCT_PSAVE</a></dt>
 	<dd>a procedure from the file xlct.pro</dd>
@@ -262,9 +262,12 @@
 	<dd>a procedure from the file xpal.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">XSEUIL</a></dt>
+	<dd>a keyword from the routine drawcoast_e</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html?format=raw#_drawcoast_c">XSEUIL</a></dt>
 	<dd>a keyword from the routine drawcoast_c</dd>
 	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">XSEUIL</a></dt>
-	<dd>a keyword from the routine drawcoast_e</dd>
+	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">XSIZE</a></dt>
+	<dd>a keyword from the routine CW_BGROUP</dd>
 	
 	<dt><a href="./buildinit.html?format=raw#_CW_FIELD2">XSIZE</a></dt>
@@ -274,7 +277,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
 	
-	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">XSIZE</a></dt>
-	<dd>a keyword from the routine CW_BGROUP</dd>
-	
 	<dt><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">XSTRIDE</a></dt>
 	<dd>a keyword from the routine tracegrille</dd>
@@ -313,51 +313,54 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate.html</dd>
 	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./ToBeReviewed/MATRICE/congridseb.html?format=raw#_congridseb">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/congridseb.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_fstdrv.html</dd>
+	
+	<dt><a href="./ToBeReviewed/MATRICE/cmapply.html?format=raw#_cmapply_product">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmapply.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw#_reinitplt">x</a></dt>
+	<dd>a keyword from the routine reinitplt</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/splot.html</dd>
+	
+	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/scontour.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html?format=raw#_LABEL_DATE">x</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_date.html</dd>
+	
+	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x</a></dt>
+	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html?format=raw#_dessinetri">x</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/dessinetri.html</dd>
 	
-	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw#_reinitplt">x</a></dt>
-	<dd>a keyword from the routine reinitplt</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html?format=raw#_LABEL_DATE">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_date.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/splot.html</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/scontour.html</dd>
-	
-	<dt><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_fstdrv.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x</a></dt>
-	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
-	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase.html</dd>
-	
-	<dt><a href="./ToBeReviewed/MATRICE/congridseb.html?format=raw#_congridseb">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/congridseb.html</dd>
-	
-	<dt><a href="./ToBeReviewed/MATRICE/cmapply.html?format=raw#_cmapply_product">x</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmapply.html</dd>
+	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">x0</a></dt>
+	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
 	
 	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">x0</a></dt>
 	<dd>a parameter from the routine ./Interpolation/cutsegment.html</dd>
 	
-	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">x0</a></dt>
-	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x0in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
 	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x0in</a></dt>
@@ -367,13 +370,10 @@
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
 	
+	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">x1</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
+	
 	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">x1</a></dt>
 	<dd>a parameter from the routine ./Interpolation/cutsegment.html</dd>
 	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x1</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">x1</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
-	
 	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x1</a></dt>
 	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
@@ -382,4 +382,7 @@
 	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
 	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x1</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
 	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">x1</a></dt>
 	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
@@ -388,33 +391,39 @@
 	<dd>a parameter from the routine ./Interpolation/inrecgrid.html</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x1in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x1in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">x1in</a></dt>
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
 	
-	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x1in</a></dt>
-	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">x2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
 	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">x2</a></dt>
 	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
 	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">x2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">x2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">x2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
+	
 	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">x2</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
 	
-	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
-	
 	<dt><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">x2</a></dt>
 	<dd>a parameter from the routine ./Interpolation/spl_fstdrv.html</dd>
 	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">x2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">x2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">x2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x2in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">x2in</a></dt>
@@ -436,4 +445,7 @@
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">x3in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">x4</a></dt>
 	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
@@ -448,10 +460,10 @@
 	<dd>a procedure from the file buildinit.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw#_computehopegrid">xaxis</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/HOPE/computehopegrid.html</dd>
+	
 	<dt><a href="./ToBeReviewed/HOPE/findlineandpointtype.html?format=raw#_findlineandpointtype">xaxis</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/HOPE/findlineandpointtype.html</dd>
 	
-	<dt><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw#_computehopegrid">xaxis</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/HOPE/computehopegrid.html</dd>
-	
 	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html?format=raw#_xcreateanim">xcreateanim</a></dt>
 	<dd>a procedure from the file xcreateanim.pro</dd>
@@ -481,13 +493,13 @@
 	<dd>a file from the directory ./ToBeReviewed/UTILITAIRE</dd>
 	
+	<dt><a href="./Interpolation/imoms3.html?format=raw#_imoms3">xin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/imoms3.html</dd>
+	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">xin</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/fillcornermask.html</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">xin</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/tracemask.html</dd>
 	
-	<dt><a href="./Interpolation/imoms3.html?format=raw#_imoms3">xin</a></dt>
-	<dd>a parameter from the routine ./Interpolation/imoms3.html</dd>
-	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">xin</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/fillcornermask.html</dd>
-	
 	<dt><a href="ToBeReviewed/COULEURS/xlct.html?format=raw">xlct.pro</a></dt>
 	<dd>a file from the directory ./ToBeReviewed/COULEURS</dd>
@@ -562,4 +574,7 @@
 	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">xxin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">xxin</a></dt>
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html	(revision 101)
@@ -172,16 +172,16 @@
       <dl>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">Y</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/VECTEUR/velovect.html</dd>
+	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">Y</a></dt>
+	<dd>a keyword from the routine plt1d</dd>
+	
 	<dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">Y</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate.html</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">Y</a></dt>
-	<dd>a keyword from the routine plt1d</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">Y</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation.html</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">Y</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/VECTEUR/velovect.html</dd>
-	
 	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_IMSIZE">Y0</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
@@ -214,10 +214,10 @@
 	<dd>a keyword from the routine CW_BGROUP</dd>
 	
+	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">YP0</a></dt>
+	<dd>a keyword from the routine spl_keep_mean</dd>
+	
 	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">YP0</a></dt>
 	<dd>a keyword from the routine spl_incr</dd>
 	
-	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">YP0</a></dt>
-	<dd>a keyword from the routine spl_keep_mean</dd>
-	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">YPAD</a></dt>
 	<dd>a keyword from the routine CW_BGROUP</dd>
@@ -235,22 +235,22 @@
 	<dd>a keyword from the routine drawcoast_e</dd>
 	
+	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_IMSIZE">YSIZE</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
+	
+	<dt><a href="./buildinit.html?format=raw#_CW_FIELD2">YSIZE</a></dt>
+	<dd>a keyword from the routine CW_FIELD2</dd>
+	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">YSIZE</a></dt>
 	<dd>a keyword from the routine CW_BGROUP</dd>
 	
-	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_IMSIZE">YSIZE</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
-	
-	<dt><a href="./buildinit.html?format=raw#_CW_FIELD2">YSIZE</a></dt>
-	<dd>a keyword from the routine CW_FIELD2</dd>
-	
 	<dt><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">YSTRIDE</a></dt>
 	<dd>a keyword from the routine tracegrille</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">YT</a></dt>
+	<dd>a keyword from the routine pltt</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">YT</a></dt>
 	<dd>a keyword from the routine checktypeminmax</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">YT</a></dt>
-	<dd>a keyword from the routine pltt</dd>
-	
 	<dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">YXASPECT</a></dt>
 	<dd>a keyword from the routine calibre</dd>
@@ -262,10 +262,10 @@
 	<dd>a keyword from the routine ncdf_timeget</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">YZ</a></dt>
+	<dd>a keyword from the routine pltz</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">YZ</a></dt>
 	<dd>a keyword from the routine checktypeminmax</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">YZ</a></dt>
-	<dd>a keyword from the routine pltz</dd>
-	
 	<dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">Y_SCROLL_SIZE</a></dt>
 	<dd>a keyword from the routine CW_BGROUP</dd>
@@ -274,36 +274,39 @@
 	<dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate.html</dd>
 	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html?format=raw#_dessinetri">y</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/dessinetri.html</dd>
+	
+	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">y</a></dt>
+	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
+	
+	<dt><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">y</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_fstdrv.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">y</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./ToBeReviewed/MATRICE/congridseb.html?format=raw#_congridseb">y</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/congridseb.html</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">y</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase.html</dd>
 	
+	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">y</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/scontour.html</dd>
+	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">y</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/splot.html</dd>
 	
-	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">y</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/scontour.html</dd>
-	
-	<dt><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">y</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_fstdrv.html</dd>
-	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html?format=raw#_dessinetri">y</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/dessinetri.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">y</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/reinitplt.html?format=raw#_reinitplt">y</a></dt>
 	<dd>a keyword from the routine reinitplt</dd>
 	
-	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">y</a></dt>
-	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
-	
-	<dt><a href="./ToBeReviewed/MATRICE/congridseb.html?format=raw#_congridseb">y</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/congridseb.html</dd>
+	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y0</a></dt>
+	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
 	
 	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">y0</a></dt>
 	<dd>a parameter from the routine ./Interpolation/cutsegment.html</dd>
 	
-	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y0</a></dt>
-	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y0in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
 	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y0in</a></dt>
@@ -313,25 +316,28 @@
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
 	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">y1</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">y1</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
+	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">y1</a></dt>
+	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
+	
+	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y1</a></dt>
+	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
+	
+	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">y1</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
+	
 	<dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">y1</a></dt>
 	<dd>a parameter from the routine ./Interpolation/cutsegment.html</dd>
 	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">y1</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">y1</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
-	
-	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">y1</a></dt>
-	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
-	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">y1</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y1</a></dt>
-	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
-	
 	<dt><a href="./Interpolation/inrecgrid.html?format=raw#_inrecgrid">y1d</a></dt>
 	<dd>a parameter from the routine ./Interpolation/inrecgrid.html</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y1in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">y1in</a></dt>
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
@@ -340,18 +346,21 @@
 	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
+	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">y2</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
+	
+	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">y2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
+	
 	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_concave">y2</a></dt>
 	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
 	
-	<dt><a href="./Interpolation/spl_incr.html?format=raw#_pure_convex">y2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_incr.html</dd>
-	
-	<dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">y2</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/GRILLE/domdef.html</dd>
+	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y2</a></dt>
+	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
 	
 	<dt><a href="./Interpolation/inquad.html?format=raw#_inquad">y2</a></dt>
 	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
 	
-	<dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">y2</a></dt>
-	<dd>a parameter from the routine ./Interpolation/cutpar.html</dd>
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y2in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
 	
 	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y2in</a></dt>
@@ -367,4 +376,7 @@
 	<dd>a parameter from the routine ./Interpolation/inquad.html</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">y3in</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">y3in</a></dt>
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
@@ -382,4 +394,7 @@
 	<dd>a parameter from the routine ./ToBeReviewed/HOPE/findlineandpointtype.html</dd>
 	
+	<dt><a href="./Calendar/leapyr.html?format=raw#_leapyr">year</a></dt>
+	<dd>a parameter from the routine ./Calendar/leapyr.html</dd>
+	
 	<dt><a href="./Calendar/daysinmonth.html?format=raw#_daysinmonth">year</a></dt>
 	<dd>a parameter from the routine ./Calendar/daysinmonth.html</dd>
@@ -388,7 +403,4 @@
 	<dd>a parameter from the routine ./ToBeReviewed/CALENDRIER/caldat.html</dd>
 	
-	<dt><a href="./Calendar/leapyr.html?format=raw#_leapyr">year</a></dt>
-	<dd>a parameter from the routine ./Calendar/leapyr.html</dd>
-	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">yf</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e.html</dd>
@@ -397,13 +409,13 @@
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c.html</dd>
 	
+	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">yin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
+	
+	<dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">yin</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/fillcornermask.html</dd>
+	
 	<dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">yin</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/tracemask.html</dd>
 	
-	<dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">yin</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/fillcornermask.html</dd>
-	
-	<dt><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">yin</a></dt>
-	<dd>a parameter from the routine ./Interpolation/spl_keep_mean.html</dd>
-	
 	<dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">ym</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase.html</dd>
@@ -415,4 +427,7 @@
 	<dd>a keyword from the routine bar_plot</dd>
 	
+	<dt><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">yyin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/square2quadrilateral.html</dd>
+	
 	<dt><a href="./Interpolation/quadrilateral2square.html?format=raw#_quadrilateral2square">yyin</a></dt>
 	<dd>a parameter from the routine ./Interpolation/quadrilateral2square.html</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-index.html	(revision 101)
@@ -193,19 +193,19 @@
 	<dd>a keyword from the routine write_oasis</dd>
 	
+	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_GETPOS">ASPECT</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
+	
 	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP">ASPECT</a></dt>
 	<dd>a keyword from the routine IMDISP</dd>
 	
-	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_GETPOS">ASPECT</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/IMAGE/imdisp.html</dd>
-	
 	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP_IMSIZE">ASPECT</a></dt>
 	<dd>a keyword from the routine IMDISP_IMSIZE</dd>
 	
+	<dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">ATT</a></dt>
+	<dd>a keyword from the routine ncdf_lec</dd>
+	
 	<dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">ATT</a></dt>
 	<dd>a keyword from the routine xncdf_lec</dd>
 	
-	<dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">ATT</a></dt>
-	<dd>a keyword from the routine ncdf_lec</dd>
-	
 	<dt><a href="./ToBeReviewed/IMAGE/imdisp.html?format=raw#_IMDISP">AXIS</a></dt>
 	<dd>a keyword from the routine IMDISP</dd>
@@ -220,22 +220,22 @@
 	<dd>a function from the file a_correlate2d.pro</dd>
 	
+	<dt><a href="./ToBeReviewed/MATRICE/cmset_op.html?format=raw#_cmset_op">a</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmset_op.html</dd>
+	
+	<dt><a href="./ToBeReviewed/MATRICE/union.html?format=raw#_union">a</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/union.html</dd>
+	
 	<dt><a href="./ToBeReviewed/MATRICE/inter.html?format=raw#_inter">a</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/inter.html</dd>
 	
-	<dt><a href="./ToBeReviewed/MATRICE/cmset_op.html?format=raw#_cmset_op">a</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmset_op.html</dd>
+	<dt><a href="./ToBeReviewed/MATRICE/different.html?format=raw#_different">a</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/different.html</dd>
+	
+	<dt><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">a</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/CALCULS/determ2.html</dd>
 	
 	<dt><a href="./ToBeReviewed/MATRICE/cmset_op.html?format=raw#_cmset_op_uniq">a</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmset_op.html</dd>
 	
-	<dt><a href="./ToBeReviewed/MATRICE/union.html?format=raw#_union">a</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/union.html</dd>
-	
-	<dt><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">a</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/CALCULS/determ2.html</dd>
-	
-	<dt><a href="./ToBeReviewed/MATRICE/different.html?format=raw#_different">a</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/different.html</dd>
-	
 	<dt><a href="./ToBeReviewed/MATRICE/colle.html?format=raw#_colle">a0</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/colle.html</dd>
@@ -325,4 +325,7 @@
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">addr  PRO compute_fromreg_imoms3_weigaddr</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
 	<dt><a href="./ToBeReviewed/STRING/strrepl.html?format=raw#_strrepl">agument1</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/STRING/strrepl.html</dd>
@@ -337,4 +340,7 @@
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">alatin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
 	<dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">alatin</a></dt>
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr.html</dd>
@@ -352,4 +358,7 @@
 	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
 	
+	<dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">alonin</a></dt>
+	<dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr.html</dd>
+	
 	<dt><a href="./Interpolation/angle.html?format=raw#_angle">angle</a></dt>
 	<dd>a procedure from the file angle.pro</dd>
@@ -376,10 +385,10 @@
 	<dd>a parameter from the routine ./Interpolation/ll_narcs_distances.html</dd>
 	
+	<dt><a href="./ToBeReviewed/WIDGET/xxx.html?format=raw#_xxx">argspro</a></dt>
+	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/xxx.html</dd>
+	
 	<dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html?format=raw#_selectfile">argspro</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html</dd>
 	
-	<dt><a href="./ToBeReviewed/WIDGET/xxx.html?format=raw#_xxx">argspro</a></dt>
-	<dd>a parameter from the routine ./ToBeReviewed/WIDGET/xxx.html</dd>
-	
 	<dt><a href="./ToBeReviewed/MATRICE/cmapply.html?format=raw#_cmapply">array</a></dt>
 	<dd>a parameter from the routine ./ToBeReviewed/MATRICE/cmapply.html</dd>
Index: /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html	(revision 101)
@@ -265,12 +265,4 @@
 <tr>
 <td class="docroutine"><a href="./Interpolation/angle.html?format=raw#_angle">angle</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./Interpolation/clickincell.html?format=raw">./Interpolation/clickincell.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./Interpolation/clickincell.html?format=raw#_clickincell">clickincell</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -313,5 +305,5 @@
 <tr>
 <td class="docroutine"><a href="./Interpolation/extrapolate.html?format=raw#_extrapolate">extrapolate</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -337,5 +329,5 @@
 <tr>
 <td class="docroutine"><a href="./Interpolation/imoms3.html?format=raw#_imoms3">imoms3</a></td>
-<td class="docstat notdoc">not documented</td>
+<td class="docstat partialdoc">partially documented</td>
 </tr>
 
@@ -356,12 +348,4 @@
 </tr>
 
-</table><a href="./Interpolation/ll_narcs_distances.html?format=raw">./Interpolation/ll_narcs_distances.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./Interpolation/ll_narcs_distances.html?format=raw#_LL_NARCS_DISTANCES">LL_NARCS_DISTANCES</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./Interpolation/map_npoints.html?format=raw">./Interpolation/map_npoints.pro</a>
 <table>
@@ -388,12 +372,4 @@
 </tr>
 
-</table><a href="./Interpolation/spl_fstdrv.html?format=raw">./Interpolation/spl_fstdrv.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./Interpolation/spl_fstdrv.html?format=raw#_spl_fstdrv">spl_fstdrv</a></td>
-<td class="docstat partialdoc">partially documented</td>
-</tr>
-
 </table><a href="./Interpolation/spl_incr.html?format=raw">./Interpolation/spl_incr.pro</a>
 <table>
@@ -411,12 +387,4 @@
 <tr>
 <td class="docroutine"><a href="./Interpolation/spl_incr.html?format=raw#_spl_incr">spl_incr</a></td>
-<td class="docstat notdoc">not documented</td>
-</tr>
-
-</table><a href="./Interpolation/spl_keep_mean.html?format=raw">./Interpolation/spl_keep_mean.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./Interpolation/spl_keep_mean.html?format=raw#_spl_keep_mean">spl_keep_mean</a></td>
 <td class="docstat partialdoc">partially documented</td>
 </tr>
@@ -430,9 +398,6 @@
 </tr>
 
-</table><a href="./Interpolation/testinterp.html?format=raw">./Interpolation/testinterp.pro</a>
-<table>
-
-<tr>
-<td class="docroutine"><a href="./Interpolation/testinterp.html?format=raw#_testinterp">testinterp</a></td>
+<tr>
+<td class="docroutine"><a href="./Interpolation/square2quadrilateral.html?format=raw#_square2quadrilateral">square2quadrilateral</a></td>
 <td class="docstat notdoc">not documented</td>
 </tr>
@@ -2189,5 +2154,5 @@
 <tr>
 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">VELOVECT</a></td>
-<td class="docstat notdoc">not documented</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 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/overview.html	(revision 101)
@@ -356,9 +356,9 @@
 	<tr>
 	  <td>Routines/methods</td>
-	  <td class="value">         755</td>
+	  <td class="value">         756</td>
 	</tr>
 	<tr>
 	  <td>Lines of code</td>
-	  <td class="value">       55778</td>
+	  <td class="value">       55663</td>
 	</tr>
       </table>
Index: /trunk/SRC/Documentation/idldoc_html_output/search.js
===================================================================
--- /trunk/SRC/Documentation/idldoc_html_output/search.js	(revision 100)
+++ /trunk/SRC/Documentation/idldoc_html_output/search.js	(revision 101)
@@ -28,29 +28,29 @@
 a[26] = new Array("./Grid/n48gaussian.html", "n48gaussian.pro", "", "    NAME:n48gaussian     PURPOSE:compute the latitudes of the n48 gaussian grid  See:   http: www ecmwf int products data technical gaussian n48FIS html     CATEGORY:grid     CALLING SEQUENCE:lat n48gaussian      INPUTS:None     KEYWORD PARAMETERS:None     OUTPUTS:a 1d array     COMMON BLOCKS:None     SIDE EFFECTS:None     RESTRICTIONS:None     EXAMPLE:     MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         June 2004     FUNCTION n48gaussian              latitude   reduced     regular  latitude             number     points      points                              n48         1          20         192   88 57216                  2          25         192   86 72253                  3          36         192   84 86197                  4          40         192   82 99894                  5          45         192   81 13497                  6          50         192   79 27055                  7          60         192   77 40588                  8          60         192   75 54106                  9          72         192   73 67613                  10          75         192   71 81113                  11          80         192   69 94608                  12          90         192   68 08099                  13          96         192   66 21587                  14         100         192   64 35073                  15         108         192   62 48557                  16         120         192   60 62039                  17         120         192   58 75520                  18         120         192   56 89001                  19         128         192   55 02480                  20         135         192   53 15959                  21         144         192   51 29437                  22         144         192   49 42915                  23         160         192   47 56392                  24         160         192   45 69869                  25         160         192   43 83345                  26         160         192   41 96822                  27         160         192   40 10297                  28         180         192   38 23773                  29         180         192   36 37249                  30         180         192   34 50724                  31         180         192   32 64199                  32         180         192   30 77674                  33         192         192   28 91149                  34         192         192   27 04623                  35         192         192   25 18098                  36         192         192   23 31573                  37         192         192   21 45047                  38         192         192   19 58521                  39         192         192   17 71996                  40         192         192   15 85470                  41         192         192   13 98944                  42         192         192   12 12418                  43         192         192   10 25892                  44         192         192    8 39366                  45         192         192    6 52840                  46         192         192    4 66314                  47         192         192    2 79788                  48         192         192    0 93262      n48   reform n48  4  48   over    n48   reform n48 3     over    n48    n48   reverse n48     return  n48 end");
 a[27] = new Array("./Grid/n80gaussian.html", "n80gaussian.pro", "", "    NAME:n80gaussian     PURPOSE:compute the latitudes of the n80 gaussian grid  See:   http: www ecmwf int products data technical gaussian n80FIS html     CATEGORY:grid     CALLING SEQUENCE:lat n80gaussian      INPUTS:None     KEYWORD PARAMETERS:None     OUTPUTS:a 1d array     COMMON BLOCKS:None     SIDE EFFECTS:None     RESTRICTIONS:None     EXAMPLE:     MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         June 2004     FUNCTION n80gaussian              latitude   reduced     regular  latitude             number     points      points                              n80         1          18         320   89 14152                  2          25         320   88 02943                  3          36         320   86 91077                  4          40         320   85 79063                  5          45         320   84 66992                  6          54         320   83 54895                  7          60         320   82 42782                  8          64         320   81 30659                  9          72         320   80 18531                  10          72         320   79 06398                  11          80         320   77 94262                  12          90         320   76 82124                  13          96         320   75 69984                  14         100         320   74 57843                  15         108         320   73 45701                  16         120         320   72 33558                  17         120         320   71 21414                  18         128         320   70 09269                  19         135         320   68 97124                  20         144         320   67 84978                  21         144         320   66 72833                  22         150         320   65 60686                  23         160         320   64 48540                  24         160         320   63 36393                  25         180         320   62 24246                  26         180         320   61 12099                  27         180         320   59 99952                  28         192         320   58 87804                  29         192         320   57 75657                  30         200         320   56 63509                  31         200         320   55 51361                  32         216         320   54 39214                  33         216         320   53 27066                  34         216         320   52 14917                  35         225         320   51 02769                  36         225         320   49 90621                  37         240         320   48 78473                  38         240         320   47 66325                  39         240         320   46 54176                  40         256         320   45 42028                  41         256         320   44 29879                  42         256         320   43 17731                  43         256         320   42 05582                  44         288         320   40 93434                  45         288         320   39 81285                  46         288         320   38 69137                  47         288         320   37 56988                  48         288         320   36 44839                  49         288         320   35 32691                  50         288         320   34 20542                  51         288         320   33 08393                  52         288         320   31 96244                  53         300         320   30 84096                  54         300         320   29 71947                  55         300         320   28 59798                  56         300         320   27 47649                  57         320         320   26 35500                  58         320         320   25 23351                  59         320         320   24 11203                  60         320         320   22 99054                  61         320         320   21 86905                  62         320         320   20 74756                  63         320         320   19 62607                  64         320         320   18 50458                  65         320         320   17 38309                  66         320         320   16 26160                  67         320         320   15 14011                  68         320         320   14 01862                  69         320         320   12 89713                  70         320         320   11 77564                  71         320         320   10 65415                  72         320         320    9 53266                  73         320         320    8 41117                  74         320         320    7 28968                  75         320         320    6 16819                  76         320         320    5 04670                  77         320         320    3 92521                  78         320         320    2 80372                  79         320         320    1 68223                  80         320         320    0 56074      n80   reform n80  4  80   over    n80   reform n80 3     over    n80    n80   reverse n80     return  n80 end");
-a[28] = new Array("./Grid/ncdf_meshread.html", "ncdf_meshread.pro", "", "          NAME:ncdf_meshread     PURPOSE:read NetCDF meshmask file created by OPA     CATEGORY:grid reading     CALLING SEQUENCE:ncdf_meshread   filename       INPUTS:        filename: the name of the meshmask file to read  Default is      meshmask nc  if this name does not contain any   and if      iodirectory keyword is not specify  then the common variable      iodir will be use to define the mesh file path     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 automaticaly defined according to GLAMBOUNDARY          CHECKDAT: Suppressed  Use micromeshmask pro to create an      appropriate meshmask         ONEARTH   0 or 1: to force the manual definition of      key_onearth  to specify if the data are on earth   use longitude       latitude etc  By default  key_onearth   1       note that ONEARTH   0 forces PERIODIC   0  SHIFT   0 and is      cancelling GLAMBOUNDARY        PERIODIC   0 or 1: to force the manual definition of      key_periodic  By default  key_periodic is automaticaly      computed by using the first line of glamt         SHIFT   : to force the manual definition of key_shift  By      debault  key_shift is automaticaly computed according to the      glamboundary  when defined  by using the first line of glamt  if      key_periodic 0 then in any case key_shift   0          STRCALLING: a string containing the calling command used to call      computegrid  this is used by xxx pro         STRIDE   : a 3 elements vector to specify the stride in x  y  z      direction  Default definition is key_stride  The resulting value      will be stored in the common  cm_4mesh  variable key_stride       OUTPUTS:none     COMMON BLOCKS: cm_4mesh  cm_4data  cm_4cal     SIDE EFFECTS: define and or use common variables from                  cm_4mesh  cm_4data  cm_4cal     RESTRICTIONS:      ixminmesh ixmaxmesh iyminmesh iymaxmesh izminmesh izmaxmesh must    be defined febore calling ncdf_meshread  if some of those value    are equal to  1 they will be automatically defined      EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         12 1999   July 2004  Sebastien Masson: Several modifications  micromeshmask    clean partial steps  clean use of key_stride  automatic definition   of key_shift      Oct  2004  Sebastien Masson: add PERIODIC and SHIFT   Aug  2005  Sebastien Masson: some cleaning   english          PRO ncdf_meshread  filename  GLAMBOUNDARY   glamboundary  CHECKDAT   checkdat                       ONEARTH   onearth  GETDIMENSIONS   getdimensions                       PERIODIC   periodic  SHIFT   shift  STRIDE   stride                       STRCALLING   strcalling  _EXTRA   ex      cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       tempsun   systime 1             for key_performance   IF keyword_set CHECKDAT  THEN BEGIN     print    The keyword CHECKDAT has been suppressed  it could create bugs      print    Remove it from the call of ncdf_meshread      print    Please use smallmeshmask pro or micromeshmask pro to create a       print    meshmask that has manageable size      return   ENDIF     find meshfile name and open it      def de filename par defaut   IF n_params  EQ 0 then filename    meshmask nc    meshname   isafile file   filename  iodirectory   iodir  _EXTRA   ex    meshname   meshname 0      noticebase   xnotice Reading file  C  meshname C     if the meshmask is on tape archive   get it back   IF  version OS_FAMILY EQ  unix  THEN spawn   file  meshname     dev null    cdfid   ncdf_open meshname    contient   ncdf_inquire cdfid      dimensions     ncdf_diminq  cdfid   x  name  jpiglo   ncdf_diminq  cdfid   y  name  jpjglo   listdims   strlowcase ncdf_listdims cdfid    IF  where listdims EQ  z 0  NE  1 THEN ncdf_diminq  cdfid   z  name  jpkglo ELSE BEGIN      dimid    where strmid listdims  0  5  EQ  depth 0      IF dimid NE  1 THEN ncdf_diminq  cdfid  dimid  name  jpkglo ELSE BEGIN        report   We could not find the vertical dimension  its name must be z or start with depth        stop     ENDELSE    ENDELSE      if keyword_set getdimensions  then begin     widget_control  noticebase  bad_id   nothing   destroy     ncdf_close   cdfid     return   endif     check that all i xyz min ax mesh are well defined     if n_elements ixminmesh  EQ 0 THEN ixminmesh   0   if n_elements ixmaxmesh  EQ 0 then ixmaxmesh   jpiglo 1   if ixminmesh EQ  1 THEN ixminmesh   0   IF ixmaxmesh EQ  1 then ixmaxmesh   jpiglo 1   if n_elements iyminmesh  EQ 0 THEN iyminmesh   0   IF n_elements iymaxmesh  EQ 0 then iymaxmesh   jpjglo 1   if iyminmesh EQ  1 THEN iyminmesh   0   IF iymaxmesh EQ  1 then iymaxmesh   jpjglo 1   if n_elements izminmesh  EQ 0 THEN izminmesh   0   IF n_elements izmaxmesh  EQ 0 then izmaxmesh   jpkglo 1   if izminmesh EQ  1 THEN izminmesh   0   IF izmaxmesh EQ  1 then izmaxmesh   jpkglo 1   definition of jpi jpj jpj   jpi      long ixmaxmesh ixminmesh 1    jpj      long iymaxmesh iyminmesh 1    jpk      long izmaxmesh izminmesh 1      check onearth and its consequences     IF n_elements onearth  EQ 0 THEN key_onearth   1     ELSE key_onearth   keyword_set onearth     IF NOT key_onearth THEN BEGIN     periodic   0     shift   0   ENDIF     automatic definition of key_periodic     IF n_elements periodic  EQ 0 THEN BEGIN     IF jpi GT 1 THEN BEGIN       varinq   ncdf_varinq cdfid   glamt        CASE varinq ndims OF         2:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  count    jpi  1          3:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  count    jpi  1  1          4:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  0  count    jpi  1  1  1        ENDCASE       xaxis    xaxis 720  MOD 360       xaxis   xaxis sort xaxis        key_periodic    xaxis jpi 1 2 xaxis jpi 1 xaxis jpi 2                         GE  xaxis 0 360      ENDIF ELSE key_periodic   0   ENDIF ELSE key_periodic   keyword_set periodic      automatic definition of key_shift     IF n_elements shift  EQ 0 THEN BEGIN     key_shift   long testvar var   key_shift     key_shift will be defined according to the first line of glamt      if keyword_set glamboundary  AND jpi GT 1 AND key_periodic EQ 1       THEN BEGIN       varinq   ncdf_varinq cdfid   glamt        CASE varinq ndims OF         2:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  count    jpi  1          3:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  count    jpi  1  1          4:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  0  count    jpi  1  1  1        ENDCASE   xaxis between glamboundary 0  and glamboundary 1        xaxis   xaxis MOD 360       smaller   where xaxis LT glamboundary 0        if smaller 0  NE  1 then xaxis smaller    xaxis smaller 360       bigger   where xaxis GE glamboundary 1        if bigger 0  NE  1 then xaxis bigger    xaxis bigger 360          key_shift    where xaxis EQ min xaxis 0        IF key_shift NE 0 THEN BEGIN          key_shift   jpi key_shift         xaxis   shift xaxis  key_shift        ENDIF         IF array_equal sort xaxis  lindgen jpi  NE 1 THEN BEGIN         print   the x axis  1st line of glamt  is not sorted in the inceasing order after the automatic definition of key_shift          print   please use the keyword shift  and periodic  to suppress the automatic definition of key_shift  and key_periodic  and define by hand a more suitable value          widget_control  noticebase  bad_id   nothing   destroy         return       ENDIF        ENDIF ELSE key_shift   0   ENDIF ELSE key_shift   long shift key_periodic EQ 1      check key_stride and related things     if n_elements stride  eq 3 then key_stride   stride   if n_elements key_stride  LE 2 then key_stride    1  1  1    key_stride   1l   long key_stride    IF total key_stride  NE 3  THEN BEGIN     IF key_shift NE 0 THEN BEGIN   for explanation  see header of read_ncdf_varget pro       jpiright   key_shift       jpileft   jpi   key_shift      key_stride 0 1 key_shift 1  MOD key_stride 0          jpi    jpiright 1 key_stride 0 1     jpileft 1 key_stride 0 1      ENDIF ELSE jpi    jpi 1 key_stride 0 1     jpj    jpj 1 key_stride 1 1     jpk    jpk 1 key_stride 2 1   ENDIF     default definitions to be able to use read_ncdf_varget     default definitions to be able to use read_ncdf_varget   ixmindtasauve   testvar var   ixmindta    iymindtasauve   testvar var   iymindta    izmindtasauve   testvar var   izmindta      ixmindta   0l   iymindta   0l   izmindta   0l     jpt   1   time   1   firsttps   0     firstx   0   lastx   jpi 1   firsty   0   lasty   jpj 1   firstz   0   lastz   jpk 1   nx   jpi   ny   jpj   nz   1   izminmeshsauve   izminmesh   izminmesh   0     2d arrays:     list the 2d variables that must be read   namevar    glamt   glamu   glamv   glamf                    gphit   gphiu   gphiv   gphif                    e1t   e1u   e1v   e1f                    e2t   e2u   e2v   e2f    for the variables related to the partial steps   allvarname    ncdf_listvars cdfid    IF  where allvarname EQ  hdept 0  NE  1 THEN BEGIN     key_partialstep   1     namevar    namevar   hdept   hdepw    ENDIF ELSE BEGIN     key_partialstep   0     hdept    1     hdepw    1   ENDELSE   for compatibility with old versions of meshmask partial steps   IF  where allvarname EQ  e3tp 0  NE  1 THEN       namevar    namevar   e3tp   e3wp  ELSE BEGIN      e3t_ps    1     e3w_ps    1   ENDELSE   IF  where allvarname EQ  e3t_ps 0  NE  1     THEN namevar    namevar   e3t_ps   e3w_ps   ELSE BEGIN      e3t_ps    1     e3w_ps    1   ENDELSE   IF  where allvarname EQ  e3u_ps 0  NE  1     THEN namevar    namevar   e3u_ps   e3v_ps  ELSE BEGIN      e3u_ps    1     e3v_ps    1   ENDELSE     read all the 2d variables     for i   0  n_elements namevar 1 do begin     varcontient   ncdf_varinq cdfid  namevar i      name   varcontient name  read_ncdf_varget     commande   namevar i float res      rien   execute commande    ENDFOR   for compatibility with old versions of meshmask partial steps   change e3 tw p to e3 tw _ps   IF n_elements e3tp  NE 0 THEN e3t_ps   temporary e3tp    IF n_elements e3wp  NE 0 THEN e3w_ps   temporary e3wp    in the kase of key_stride ne  1  1  1  redefine f points   coordinates: they must be in the middle of 3 T points   if key_stride 0  NE 1 OR key_stride 1  NE 1 then BEGIN   we must recompute glamf and gphif      IF jpi GT 1 THEN BEGIN        if  keyword_set key_onearth  AND keyword_set xnotsorted            OR  keyword_set key_periodic  AND key_irregular  then BEGIN         stepxf    glamt   720  MOD 360         stepxf   shift stepxf   1   1    stepxf         stepxf      stepxf   stepxf   360   stepxf   360            stepxf   min abs stepxf  dimension   3          IF NOT keyword_set key_periodic  THEN             stepxf jpi 1      stepxf jpi 2          ENDIF ELSE BEGIN         stepxf   shift glamt   1   1    glamt         IF keyword_set key_periodic  THEN             stepxf jpi 1      360   stepxf jpi 1              ELSE stepxf jpi 1      stepxf jpi 2          ENDELSE       IF jpj GT 1 THEN BEGIN          stepxf  jpj 1    stepxf  jpj 2          stepxf jpi 1  jpj 1    stepxf jpi 2  jpj 2        ENDIF       glamf   glamt   0 5   stepxf     ENDIF ELSE glamf   glamt   0 5     IF jpj GT 1 THEN BEGIN    we must compute stepyf: y distance between T i j  T i 1 j 1        stepyf   shift gphit   1   1    gphit       stepyf  jpj 1    stepyf  jpj 2        IF jpi GT 1 THEN BEGIN         if NOT keyword_set key_periodic  THEN             stepyf jpi 1      stepyf jpi 2            stepyf jpi 1  jpj 1    stepyf jpi 2  jpj 2        ENDIF        gphif   gphit   0 5   stepyf     ENDIF ELSE gphif   gphit   0 5   ENDIF     3d arrays:     nz   jpk   izminmesh   izminmeshsauve     listdims   ncdf_listdims cdfid    micromask    where listdims EQ  y_m 0      varcontient   ncdf_varinq cdfid   tmask    name   varcontient name   IF micromask NE  1 THEN BEGIN   keep original values     iyminmeshtrue   iyminmesh     key_stridetrue   key_stride     yyy1   firsty key_stridetrue 1 iyminmeshtrue     yyy2   lasty key_stridetrue 1 iyminmeshtrue   the mask is stored as the bit values of the byte array  along the y   dimension  see micromeshmask pro    we must modify several parameters       iyminmesh   0L     firsty   yyy1 8     lasty   yyy2 8     ny   lasty firsty 1     key_stride    key_stride 0  1  key_stride 2   read_ncdf_varget     tmask   bytarr jpi  jpj  jpk    now we must get back the mask   loop on the level to save memory  the loop is short and  thus    should be fast enough      FOR k   0  jpk 1 DO BEGIN       zzz   transpose res    k        zzz   reform binary zzz  8 ny  nx   over        zzz   transpose temporary zzz        zzz   zzz  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN BEGIN           IF float strmid version release 0 3  LT 5 6 THEN BEGIN         nnny    size zzz 2          yind   key_stridetrue 1 lindgen nnny 1 key_stridetrue 1 1          tmask    k    temporary zzz  yind           ENDIF ELSE tmask    k    temporary zzz  0: :key_stridetrue 1        ENDIF ELSE tmask    k    temporary zzz      ENDFOR   ENDIF ELSE BEGIN  read_ncdf_varget     tmask   byte res    ENDELSE   boudary conditions used to compute umask    varcontient   ncdf_varinq cdfid   umask    name   varcontient name   nx   1L   firstx   jpi 1   lastx   jpi 1   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     umaskred   reform binary res  8 ny  jpk   over      umaskred   umaskred yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN umaskred   temporary umaskred yind      ENDIF ELSE BEGIN  read_ncdf_varget     umaskred   reform byte res   over    ENDELSE   boudary conditions used to compute fmask  1    varcontient   ncdf_varinq cdfid   fmask    name   varcontient name   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     fmaskredy   reform binary res  8 ny  jpk   over      fmaskredy   fmaskredy yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN fmaskredy   temporary fmaskredy yind      ENDIF ELSE BEGIN  read_ncdf_varget     fmaskredy   reform byte res   over      fmaskredy   temporary fmaskredy  MOD 2   ENDELSE   boudary conditions used to compute vmask   varcontient   ncdf_varinq cdfid   vmask    name   varcontient name   nx   jpi   firstx   0L   lastx   jpi 1L   ny   1L   firsty   jpj 1   lasty   jpj 1   IF micromask NE  1 THEN BEGIN     yyy1   firsty key_stridetrue 1 iyminmeshtrue     yyy2   lasty key_stridetrue 1 iyminmeshtrue     iyminmesh   0L     firsty   yyy1 8     lasty   yyy2 8     ny   lasty firsty 1  read_ncdf_varget     vmaskred   transpose temporary res   1  0  2      vmaskred   reform binary vmaskred  8 ny  nx  nz   over      vmaskred   transpose temporary vmaskred   1  0  2      vmaskred   reform vmaskred  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8      ENDIF ELSE BEGIN  read_ncdf_varget     vmaskred   reform byte res   over    ENDELSE   boudary conditions used to compute fmask  2    varcontient   ncdf_varinq cdfid   fmask    name   varcontient name   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     fmaskredx   transpose temporary res   1  0  2      fmaskredx   reform binary fmaskredx  8 ny  nx  nz   over      fmaskredx   transpose temporary fmaskredx   1  0  2      fmaskredx   reform fmaskredx  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8          iyminmesh   iyminmeshtrue     key_stride   key_stridetrue   ENDIF ELSE BEGIN  read_ncdf_varget     fmaskredx   reform byte res   over      fmaskredx   fmaskredx MOD 2   ENDELSE     1d arrays     namevar    e3t   e3w   gdept   gdepw    for i   0  n_elements namevar 1 do begin     varcontient   ncdf_varinq cdfid  namevar i      CASE n_elements varcontient dim  OF       4:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    0 0 izminmesh 0  count    1 1 jpk 1          if key_stride 2  NE 1 then commande   commande  stride 1 1 key_stride 2 1        END        2:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    izminmesh 0  count    jpk 1          if key_stride 2  NE 1 then commande   commande  stride key_stride 2        END        1:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    izminmesh  count    jpk          if key_stride 2  NE 1 then commande   commande  stride key_stride 2        END     ENDCASE     rien   execute commande      commande   namevar i float namevar i      rien   execute commande      commande    if size namevar i   n_dimension  gt 0 then  namevar i    reform namevar i   over      rien   execute commande    ENDFOR     ncdf_close   cdfid     Apply Glamboudary     if keyword_set glamboundary  AND key_onearth then BEGIN     if glamboundary 0  NE glamboundary 1  then BEGIN       glamt   glamt MOD 360       smaller   where glamt LT glamboundary 0        if smaller 0  NE  1 then glamt smaller    glamt smaller 360       bigger   where glamt GE glamboundary 1        if bigger 0  NE  1 then glamt bigger    glamt bigger 360       glamu   glamu MOD 360       smaller   where glamu LT glamboundary 0        if smaller 0  NE  1 then glamu smaller    glamu smaller 360       bigger   where glamu GE glamboundary 1        if bigger 0  NE  1 then glamu bigger    glamu bigger 360       glamv   glamv MOD 360       smaller   where glamv LT glamboundary 0        if smaller 0  NE  1 then glamv smaller    glamv smaller 360       bigger   where glamv GE glamboundary 1        if bigger 0  NE  1 then glamv bigger    glamv bigger 360       glamf   glamf MOD 360       smaller   where glamf LT glamboundary 0        if smaller 0  NE  1 then glamf smaller    glamf smaller 360       bigger   where glamf GE glamboundary 1        if bigger 0  NE  1 then glamf bigger    glamf bigger 360       toosmall   where glamu EQ glamboundary 0        IF toosmall 0  NE  1 THEN glamu toosmall    glamu toosmall    360       toosmall   where glamf EQ glamboundary 0        IF toosmall 0  NE  1 THEN glamf toosmall    glamf toosmall    360     endif   endif     make sure we do have 2d arrays when jpj eq 1     IF jpj EQ 1 THEN BEGIN      glamt   reform glamt  jpi  jpj   over      gphit   reform gphit  jpi  jpj   over      e1t   reform e1t  jpi  jpj   over      e2t   reform e2t  jpi  jpj   over      glamu   reform glamu  jpi  jpj   over      gphiu   reform gphiu  jpi  jpj   over      e1u   reform e1u  jpi  jpj   over      e2u   reform e2u  jpi  jpj   over      glamv   reform glamv  jpi  jpj   over      gphiv   reform gphiv  jpi  jpj   over      e1v   reform e1v  jpi  jpj   over      e2v   reform e2v  jpi  jpj   over      glamf   reform glamf  jpi  jpj   over      gphif   reform gphif  jpi  jpj   over      e1f   reform e1f  jpi  jpj   over      e2f   reform e2f  jpi  jpj   over      IF keyword_set key_partialstep  THEN BEGIN       hdept   reform hdept  jpi  jpj   over        hdepw   reform hdepw  jpi  jpj   over        e3t_ps   reform e3t_ps  jpi  jpj   over        e3w_ps   reform e3w_ps  jpi  jpj   over      ENDIF    ENDIF     ixmindta   ixmindtasauve   iymindta   iymindtasauve   izmindta   izmindtasauve     widget_control  noticebase  bad_id   nothing   destroy     key_yreverse   0   key_zreverse   0   key_gridtype    c        grid parameters used by xxx       IF NOT keyword_set strcalling  THEN BEGIN      IF n_elements ccmeshparameters  EQ 0 THEN strcalling    ncdf_meshread        ELSE strcalling   ccmeshparameters filename   ENDIF    IF n_elements glamt  GE 2 THEN BEGIN     glaminfo   moment glamt      IF finite glaminfo 2  EQ 0 THEN glaminfo   glaminfo 0:1      gphiinfo   moment gphit      IF finite gphiinfo 2  EQ 0 THEN gphiinfo   gphiinfo 0:1    ENDIF ELSE BEGIN      glaminfo   glamt     gphiinfo   gphit   ENDELSE    ccmeshparameters    filename:strcalling                glaminfo:float string glaminfo  format    E11 4                gphiinfo:float string gphiinfo  format    E11 4                jpiglo:jpiglo  jpjglo:jpjglo  jpkglo:jpkglo               jpi:jpi  jpj:jpj  jpk:jpk               ixminmesh:ixminmesh  ixmaxmesh:ixmaxmesh               iyminmesh:iyminmesh  iymaxmesh:iymaxmesh               izminmesh:izminmesh  izmaxmesh:izmaxmesh               key_shift:key_shift  key_periodic:key_periodic               key_stride:key_stride  key_gridtype:key_gridtype               key_yreverse:key_yreverse  key_zreverse:key_zreverse               key_partialstep:key_partialstep  key_onearth:key_onearth      if keyword_set key_performance  THEN       print   time ncdf_meshread  systime 1 tempsun         updateold      return  end");
+a[28] = new Array("./Grid/ncdf_meshread.html", "ncdf_meshread.pro", "", "          NAME:ncdf_meshread     PURPOSE:read NetCDF meshmask file created by OPA     CATEGORY:grid reading     CALLING SEQUENCE:ncdf_meshread   filename       INPUTS:        filename: the name of the meshmask file to read  Default is      meshmask nc  if this name does not contain any   and if      iodirectory keyword is not specify  then the common variable      iodir will be use to define the mesh file path     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 automaticaly defined according to GLAMBOUNDARY          CHECKDAT: Suppressed  Use micromeshmask pro to create an      appropriate meshmask         ONEARTH   0 or 1: to force the manual definition of      key_onearth  to specify if the data are on earth   use longitude       latitude etc  By default  key_onearth   1       note that ONEARTH   0 forces PERIODIC   0  SHIFT   0 and is      cancelling GLAMBOUNDARY        PERIODIC   0 or 1: to force the manual definition of      key_periodic  By default  key_periodic is automaticaly      computed by using the first line of glamt         SHIFT   : to force the manual definition of key_shift  By      debault  key_shift is automaticaly computed according to the      glamboundary  when defined  by using the first line of glamt  if      key_periodic 0 then in any case key_shift   0          STRCALLING: a string containing the calling command used to call      computegrid  this is used by xxx pro         STRIDE   : a 3 elements vector to specify the stride in x  y  z      direction  Default definition is key_stride  The resulting value      will be stored in the common  cm_4mesh  variable key_stride       OUTPUTS:none     COMMON BLOCKS: cm_4mesh  cm_4data  cm_4cal     SIDE EFFECTS: define and or use common variables from                  cm_4mesh  cm_4data  cm_4cal     RESTRICTIONS:      ixminmesh ixmaxmesh iyminmesh iymaxmesh izminmesh izmaxmesh must    be defined febore calling ncdf_meshread  if some of those value    are equal to  1 they will be automatically defined      EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         12 1999   July 2004  Sebastien Masson: Several modifications  micromeshmask    clean partial steps  clean use of key_stride  automatic definition   of key_shift      Oct  2004  Sebastien Masson: add PERIODIC and SHIFT   Aug  2005  Sebastien Masson: some cleaning   english          PRO ncdf_meshread  filename  GLAMBOUNDARY   glamboundary  CHECKDAT   checkdat                       ONEARTH   onearth  GETDIMENSIONS   getdimensions                       PERIODIC   periodic  SHIFT   shift  STRIDE   stride                       STRCALLING   strcalling  _EXTRA   ex      cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       tempsun   systime 1             for key_performance   IF keyword_set CHECKDAT  THEN BEGIN     print    The keyword CHECKDAT has been suppressed  it could create bugs      print    Remove it from the call of ncdf_meshread      print    Please use smallmeshmask pro or micromeshmask pro to create a       print    meshmask that has manageable size      return   ENDIF     find meshfile name and open it      def de filename par defaut   IF n_params  EQ 0 then filename    meshmask nc    meshname   isafile file   filename  iodirectory   iodir  _EXTRA   ex    meshname   meshname 0      noticebase   xnotice Reading file  C  meshname C     if the meshmask is on tape archive   get it back   IF  version OS_FAMILY EQ  unix  THEN spawn   file  meshname     dev null    cdfid   ncdf_open meshname    contient   ncdf_inquire cdfid      dimensions     ncdf_diminq  cdfid   x  name  jpiglo   ncdf_diminq  cdfid   y  name  jpjglo   listdims   strlowcase ncdf_listdims cdfid    IF  where listdims EQ  z 0  NE  1 THEN ncdf_diminq  cdfid   z  name  jpkglo ELSE BEGIN      dimid    where strmid listdims  0  5  EQ  depth 0      IF dimid NE  1 THEN ncdf_diminq  cdfid  dimid  name  jpkglo ELSE BEGIN        report   We could not find the vertical dimension  its name must be z or start with depth        stop     ENDELSE    ENDELSE      if keyword_set getdimensions  then begin     widget_control  noticebase  bad_id   nothing   destroy     ncdf_close   cdfid     return   endif     check that all i xyz min ax mesh are well defined     if n_elements ixminmesh  EQ 0 THEN ixminmesh   0   if n_elements ixmaxmesh  EQ 0 then ixmaxmesh   jpiglo 1   if ixminmesh EQ  1 THEN ixminmesh   0   IF ixmaxmesh EQ  1 then ixmaxmesh   jpiglo 1   if n_elements iyminmesh  EQ 0 THEN iyminmesh   0   IF n_elements iymaxmesh  EQ 0 then iymaxmesh   jpjglo 1   if iyminmesh EQ  1 THEN iyminmesh   0   IF iymaxmesh EQ  1 then iymaxmesh   jpjglo 1   if n_elements izminmesh  EQ 0 THEN izminmesh   0   IF n_elements izmaxmesh  EQ 0 then izmaxmesh   jpkglo 1   if izminmesh EQ  1 THEN izminmesh   0   IF izmaxmesh EQ  1 then izmaxmesh   jpkglo 1   definition of jpi jpj jpj   jpi      long ixmaxmesh ixminmesh 1    jpj      long iymaxmesh iyminmesh 1    jpk      long izmaxmesh izminmesh 1      check onearth and its consequences     IF n_elements onearth  EQ 0 THEN key_onearth   1     ELSE key_onearth   keyword_set onearth     IF NOT key_onearth THEN BEGIN     periodic   0     shift   0   ENDIF     automatic definition of key_periodic     IF n_elements periodic  EQ 0 THEN BEGIN     IF jpi GT 1 THEN BEGIN       varinq   ncdf_varinq cdfid   glamt        CASE varinq ndims OF         2:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  count    jpi  1          3:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  count    jpi  1  1          4:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  0  count    jpi  1  1  1        ENDCASE       xaxis    xaxis 720  MOD 360       xaxis   xaxis sort xaxis        key_periodic    xaxis jpi 1 2 xaxis jpi 1 xaxis jpi 2                         GE  xaxis 0 360      ENDIF ELSE key_periodic   0   ENDIF ELSE key_periodic   keyword_set periodic      automatic definition of key_shift     IF n_elements shift  EQ 0 THEN BEGIN     key_shift   long testvar var   key_shift     key_shift will be defined according to the first line of glamt      if keyword_set glamboundary  AND jpi GT 1 AND key_periodic EQ 1       THEN BEGIN       varinq   ncdf_varinq cdfid   glamt        CASE varinq ndims OF         2:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  count    jpi  1          3:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  count    jpi  1  1          4:ncdf_varget  cdfid   glamt  xaxis                            offset    ixminmesh  iyminmesh  0  0  count    jpi  1  1  1        ENDCASE   xaxis between glamboundary 0  and glamboundary 1        xaxis   xaxis MOD 360       smaller   where xaxis LT glamboundary 0        if smaller 0  NE  1 then xaxis smaller    xaxis smaller 360       bigger   where xaxis GE glamboundary 1        if bigger 0  NE  1 then xaxis bigger    xaxis bigger 360          key_shift    where xaxis EQ min xaxis 0        IF key_shift NE 0 THEN BEGIN          key_shift   jpi key_shift         xaxis   shift xaxis  key_shift        ENDIF         IF array_equal sort xaxis  lindgen jpi  NE 1 THEN BEGIN         print   the x axis  1st line of glamt  is not sorted in the inceasing order after the automatic definition of key_shift          print   please use the keyword shift  and periodic  to suppress the automatic definition of key_shift  and key_periodic  and define by hand a more suitable value          widget_control  noticebase  bad_id   nothing   destroy         return       ENDIF        ENDIF ELSE key_shift   0   ENDIF ELSE key_shift   long shift key_periodic EQ 1      check key_stride and related things     if n_elements stride  eq 3 then key_stride   stride   if n_elements key_stride  LE 2 then key_stride    1  1  1    key_stride   1l   long key_stride    IF total key_stride  NE 3  THEN BEGIN     IF key_shift NE 0 THEN BEGIN   for explanation  see header of read_ncdf_varget pro       jpiright   key_shift       jpileft   jpi   key_shift      key_stride 0 1 key_shift 1  MOD key_stride 0          jpi    jpiright 1 key_stride 0 1     jpileft 1 key_stride 0 1      ENDIF ELSE jpi    jpi 1 key_stride 0 1     jpj    jpj 1 key_stride 1 1     jpk    jpk 1 key_stride 2 1   ENDIF     default definitions to be able to use read_ncdf_varget     default definitions to be able to use read_ncdf_varget   ixmindtasauve   testvar var   ixmindta    iymindtasauve   testvar var   iymindta    izmindtasauve   testvar var   izmindta      ixmindta   0l   iymindta   0l   izmindta   0l     jpt   1   time   1   firsttps   0     firstx   0   lastx   jpi 1   firsty   0   lasty   jpj 1   firstz   0   lastz   jpk 1   nx   jpi   ny   jpj   nz   1   izminmeshsauve   izminmesh   izminmesh   0     2d arrays:     list the 2d variables that must be read   namevar    glamt   glamu   glamv   glamf                    gphit   gphiu   gphiv   gphif                    e1t   e1u   e1v   e1f                    e2t   e2u   e2v   e2f    for the variables related to the partial steps   allvarname    ncdf_listvars cdfid    IF  where allvarname EQ  hdept 0  NE  1 THEN BEGIN     key_partialstep   1     namevar    namevar   hdept   hdepw    ENDIF ELSE BEGIN     key_partialstep   0     hdept    1     hdepw    1   ENDELSE   for compatibility with old versions of meshmask partial steps   IF  where allvarname EQ  e3tp 0  NE  1 THEN       namevar    namevar   e3tp   e3wp  ELSE BEGIN      e3t_ps    1     e3w_ps    1   ENDELSE   IF  where allvarname EQ  e3t_ps 0  NE  1     THEN namevar    namevar   e3t_ps   e3w_ps   ELSE BEGIN      e3t_ps    1     e3w_ps    1   ENDELSE   IF  where allvarname EQ  e3u_ps 0  NE  1     THEN namevar    namevar   e3u_ps   e3v_ps  ELSE BEGIN      e3u_ps    1     e3v_ps    1   ENDELSE     read all the 2d variables     for i   0  n_elements namevar 1 do begin     varcontient   ncdf_varinq cdfid  namevar i      name   varcontient name  read_ncdf_varget     commande   namevar i float res      rien   execute commande    ENDFOR   for compatibility with old versions of meshmask partial steps   change e3 tw p to e3 tw _ps   IF n_elements e3tp  NE 0 THEN e3t_ps   temporary e3tp    IF n_elements e3wp  NE 0 THEN e3w_ps   temporary e3wp    in the kase of key_stride ne  1  1  1  redefine f points   coordinates: they must be in the middle of 3 T points   if key_stride 0  NE 1 OR key_stride 1  NE 1 then BEGIN   we must recompute glamf and gphif      IF jpi GT 1 THEN BEGIN        if  keyword_set key_onearth  AND keyword_set xnotsorted            OR  keyword_set key_periodic  AND key_irregular  then BEGIN         stepxf    glamt   720  MOD 360         stepxf   shift stepxf   1   1    stepxf         stepxf      stepxf   stepxf   360   stepxf   360            stepxf   min abs stepxf  dimension   3          IF NOT keyword_set key_periodic  THEN             stepxf jpi 1      stepxf jpi 2          ENDIF ELSE BEGIN         stepxf   shift glamt   1   1    glamt         IF keyword_set key_periodic  THEN             stepxf jpi 1      360   stepxf jpi 1              ELSE stepxf jpi 1      stepxf jpi 2          ENDELSE       IF jpj GT 1 THEN BEGIN          stepxf  jpj 1    stepxf  jpj 2          stepxf jpi 1  jpj 1    stepxf jpi 2  jpj 2        ENDIF       glamf   glamt   0 5   stepxf     ENDIF ELSE glamf   glamt   0 5     IF jpj GT 1 THEN BEGIN    we must compute stepyf: y distance between T i j  T i 1 j 1        stepyf   shift gphit   1   1    gphit       stepyf  jpj 1    stepyf  jpj 2        IF jpi GT 1 THEN BEGIN         if NOT keyword_set key_periodic  THEN             stepyf jpi 1      stepyf jpi 2            stepyf jpi 1  jpj 1    stepyf jpi 2  jpj 2        ENDIF        gphif   gphit   0 5   stepyf     ENDIF ELSE gphif   gphit   0 5   ENDIF     3d arrays:     nz   jpk   izminmesh   izminmeshsauve     listdims   ncdf_listdims cdfid    micromask    where listdims EQ  y_m 0      varcontient   ncdf_varinq cdfid   tmask    name   varcontient name   IF micromask NE  1 THEN BEGIN   keep original values     iyminmeshtrue   iyminmesh     key_stridetrue   key_stride     yyy1   firsty key_stridetrue 1 iyminmeshtrue     yyy2   lasty key_stridetrue 1 iyminmeshtrue   the mask is stored as the bit values of the byte array  along the y   dimension  see micromeshmask pro    we must modify several parameters       iyminmesh   0L     firsty   yyy1 8     lasty   yyy2 8     ny   lasty firsty 1     key_stride    key_stride 0  1  key_stride 2   read_ncdf_varget     tmask   bytarr jpi  jpj  jpk    now we must get back the mask   loop on the level to save memory  the loop is short and  thus    should be fast enough      FOR k   0  jpk 1 DO BEGIN       zzz   transpose res    k        zzz   reform binary zzz  8 ny  nx   over        zzz   transpose temporary zzz        zzz   zzz  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN BEGIN           IF float strmid version release 0 3  LT 5 6 THEN BEGIN         nnny    size zzz 2          yind   key_stridetrue 1 lindgen nnny 1 key_stridetrue 1 1          tmask    k    temporary zzz  yind           ENDIF ELSE tmask    k    temporary zzz  0: :key_stridetrue 1        ENDIF ELSE tmask    k    temporary zzz      ENDFOR   ENDIF ELSE BEGIN  read_ncdf_varget     tmask   byte res    ENDELSE   boudary conditions used to compute umask    varcontient   ncdf_varinq cdfid   umask    name   varcontient name   nx   1L   firstx   jpi 1   lastx   jpi 1   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     umaskred   reform binary res  8 ny  jpk   over      umaskred   umaskred yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN umaskred   temporary umaskred yind      ENDIF ELSE BEGIN  read_ncdf_varget     umaskred   reform byte res   over    ENDELSE   boudary conditions used to compute fmask  1    varcontient   ncdf_varinq cdfid   fmask    name   varcontient name   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     fmaskredy   reform binary res  8 ny  jpk   over      fmaskredy   fmaskredy yyy1 MOD 8: 8 ny   8   yyy2 MOD 8        IF key_stridetrue 1  NE 1 THEN fmaskredy   temporary fmaskredy yind      ENDIF ELSE BEGIN  read_ncdf_varget     fmaskredy   reform byte res   over      fmaskredy   temporary fmaskredy  MOD 2   ENDELSE   boudary conditions used to compute vmask   varcontient   ncdf_varinq cdfid   vmask    name   varcontient name   nx   jpi   firstx   0L   lastx   jpi 1L   ny   1L   firsty   jpj 1   lasty   jpj 1   IF micromask NE  1 THEN BEGIN     yyy1   firsty key_stridetrue 1 iyminmeshtrue     yyy2   lasty key_stridetrue 1 iyminmeshtrue     iyminmesh   0L     firsty   yyy1 8     lasty   yyy2 8     ny   lasty firsty 1  read_ncdf_varget     IF jpk EQ 1 THEN res   reform res  jpi  1  jpk   over      vmaskred   transpose temporary res   1  0  2      vmaskred   reform binary vmaskred  8 ny  nx  nz   over      vmaskred   transpose temporary vmaskred   1  0  2      vmaskred   reform vmaskred  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8      ENDIF ELSE BEGIN  read_ncdf_varget     vmaskred   reform byte res   over    ENDELSE   boudary conditions used to compute fmask  2    varcontient   ncdf_varinq cdfid   fmask    name   varcontient name   IF micromask NE  1 THEN BEGIN  read_ncdf_varget     IF jpk EQ 1 THEN res   reform res  jpi  1  jpk   over      fmaskredx   transpose temporary res   1  0  2      fmaskredx   reform binary fmaskredx  8 ny  nx  nz   over      fmaskredx   transpose temporary fmaskredx   1  0  2      fmaskredx   reform fmaskredx  yyy1 MOD 8: 8 ny   8   yyy2 MOD 8          iyminmesh   iyminmeshtrue     key_stride   key_stridetrue   ENDIF ELSE BEGIN  read_ncdf_varget     fmaskredx   reform byte res   over      fmaskredx   fmaskredx MOD 2   ENDELSE     1d arrays     namevar    e3t   e3w   gdept   gdepw    for i   0  n_elements namevar 1 do begin     varcontient   ncdf_varinq cdfid  namevar i      CASE n_elements varcontient dim  OF       4:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    0 0 izminmesh 0  count    1 1 jpk 1          if key_stride 2  NE 1 then commande   commande  stride 1 1 key_stride 2 1        END        2:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    izminmesh 0  count    jpk 1          if key_stride 2  NE 1 then commande   commande  stride key_stride 2        END        1:BEGIN         commande    ncdf_varget cdfid namevar i namevar i                        offset    izminmesh  count    jpk          if key_stride 2  NE 1 then commande   commande  stride key_stride 2        END     ENDCASE     rien   execute commande      commande   namevar i float namevar i      rien   execute commande      commande    if size namevar i   n_dimension  gt 0 then  namevar i    reform namevar i   over      rien   execute commande    ENDFOR     ncdf_close   cdfid     Apply Glamboudary     if keyword_set glamboundary  AND key_onearth then BEGIN     if glamboundary 0  NE glamboundary 1  then BEGIN       glamt   glamt MOD 360       smaller   where glamt LT glamboundary 0        if smaller 0  NE  1 then glamt smaller    glamt smaller 360       bigger   where glamt GE glamboundary 1        if bigger 0  NE  1 then glamt bigger    glamt bigger 360       glamu   glamu MOD 360       smaller   where glamu LT glamboundary 0        if smaller 0  NE  1 then glamu smaller    glamu smaller 360       bigger   where glamu GE glamboundary 1        if bigger 0  NE  1 then glamu bigger    glamu bigger 360       glamv   glamv MOD 360       smaller   where glamv LT glamboundary 0        if smaller 0  NE  1 then glamv smaller    glamv smaller 360       bigger   where glamv GE glamboundary 1        if bigger 0  NE  1 then glamv bigger    glamv bigger 360       glamf   glamf MOD 360       smaller   where glamf LT glamboundary 0        if smaller 0  NE  1 then glamf smaller    glamf smaller 360       bigger   where glamf GE glamboundary 1        if bigger 0  NE  1 then glamf bigger    glamf bigger 360       toosmall   where glamu EQ glamboundary 0        IF toosmall 0  NE  1 THEN glamu toosmall    glamu toosmall    360       toosmall   where glamf EQ glamboundary 0        IF toosmall 0  NE  1 THEN glamf toosmall    glamf toosmall    360     endif   endif     make sure we do have 2d arrays when jpj eq 1     IF jpj EQ 1 THEN BEGIN      glamt   reform glamt  jpi  jpj   over      gphit   reform gphit  jpi  jpj   over      e1t   reform e1t  jpi  jpj   over      e2t   reform e2t  jpi  jpj   over      glamu   reform glamu  jpi  jpj   over      gphiu   reform gphiu  jpi  jpj   over      e1u   reform e1u  jpi  jpj   over      e2u   reform e2u  jpi  jpj   over      glamv   reform glamv  jpi  jpj   over      gphiv   reform gphiv  jpi  jpj   over      e1v   reform e1v  jpi  jpj   over      e2v   reform e2v  jpi  jpj   over      glamf   reform glamf  jpi  jpj   over      gphif   reform gphif  jpi  jpj   over      e1f   reform e1f  jpi  jpj   over      e2f   reform e2f  jpi  jpj   over      IF keyword_set key_partialstep  THEN BEGIN       hdept   reform hdept  jpi  jpj   over        hdepw   reform hdepw  jpi  jpj   over        e3t_ps   reform e3t_ps  jpi  jpj   over        e3w_ps   reform e3w_ps  jpi  jpj   over      ENDIF    ENDIF     ixmindta   ixmindtasauve   iymindta   iymindtasauve   izmindta   izmindtasauve     widget_control  noticebase  bad_id   nothing   destroy     key_yreverse   0   key_zreverse   0   key_gridtype    c        grid parameters used by xxx       IF NOT keyword_set strcalling  THEN BEGIN      IF n_elements ccmeshparameters  EQ 0 THEN strcalling    ncdf_meshread        ELSE strcalling   ccmeshparameters filename   ENDIF    IF n_elements glamt  GE 2 THEN BEGIN     glaminfo   moment glamt      IF finite glaminfo 2  EQ 0 THEN glaminfo   glaminfo 0:1      gphiinfo   moment gphit      IF finite gphiinfo 2  EQ 0 THEN gphiinfo   gphiinfo 0:1    ENDIF ELSE BEGIN      glaminfo   glamt     gphiinfo   gphit   ENDELSE    ccmeshparameters    filename:strcalling                glaminfo:float string glaminfo  format    E11 4                gphiinfo:float string gphiinfo  format    E11 4                jpiglo:jpiglo  jpjglo:jpjglo  jpkglo:jpkglo               jpi:jpi  jpj:jpj  jpk:jpk               ixminmesh:ixminmesh  ixmaxmesh:ixmaxmesh               iyminmesh:iyminmesh  iymaxmesh:iymaxmesh               izminmesh:izminmesh  izmaxmesh:izmaxmesh               key_shift:key_shift  key_periodic:key_periodic               key_stride:key_stride  key_gridtype:key_gridtype               key_yreverse:key_yreverse  key_zreverse:key_zreverse               key_partialstep:key_partialstep  key_onearth:key_onearth      if keyword_set key_performance  THEN       print   time ncdf_meshread  systime 1 tempsun         updateold      return  end");
 a[29] = new Array("./Grid/restoreboxparam.html", "restoreboxparam.pro", "", "          NAME: restoreboxparam     PURPOSE: restore all the zoom parameters  defined by calling domdef             perviously defined by saveboxparam     CATEGORY:     CALLING SEQUENCE: restoreboxparam  filename      INPUTS: filename a scalar string defining the file name      KEYWORD PARAMETERS: none     OUTPUTS:none     COMMON BLOCKS:  cm_4mesh and  cm_demomode_used if we are in demo mode     SIDE EFFECTS: call def_myuniquetmpdir  if myuniquetmpdir is undefined:                    define  create and add it to  path     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         July 2005         PRO restoreboxparam  filename  cm_4mesh     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        lon1   boxzoomparam bound 0       lon2   boxzoomparam bound 1       lat1   boxzoomparam bound 2       lat2   boxzoomparam bound 3       vert1   boxzoomparam bound 4       vert2   boxzoomparam bound 5       firstxt   boxzoomparam indexes 0       lastxt   boxzoomparam indexes 1       firstyt   boxzoomparam indexes 2       lastyt   boxzoomparam indexes 3       firstxu   boxzoomparam indexes 4       lastxu   boxzoomparam indexes 5       firstyu   boxzoomparam indexes 6       lastyu   boxzoomparam indexes 7       firstxv   boxzoomparam indexes 8       lastxv   boxzoomparam indexes 9       firstyv   boxzoomparam indexes 10       lastyv   boxzoomparam indexes 11       firstxf   boxzoomparam indexes 12       lastxf   boxzoomparam indexes 13       firstyf   boxzoomparam indexes 14       lastyf   boxzoomparam indexes 15       firstzt   boxzoomparam indexes 16       lastzt   boxzoomparam indexes 17       firstzw   boxzoomparam indexes 18       lastzw   boxzoomparam indexes 19       nxt   boxzoomparam indexes 20       nyt   boxzoomparam indexes 21       nxu   boxzoomparam indexes 22       nyu   boxzoomparam indexes 23       nxv   boxzoomparam indexes 24       nyv   boxzoomparam indexes 25       nxf   boxzoomparam indexes 26       nyf   boxzoomparam indexes 27       nzt   boxzoomparam indexes 28       nzw   boxzoomparam indexes 29       key_irregular   boxzoomparam key         boxzoomparam    1      ENDIF ELSE BEGIN         restore  myuniquetmpdir   filename       file_delete  myuniquetmpdir   filename      ENDELSE       updateold     return end     ");
 a[30] = new Array("./Grid/saveboxparam.html", "saveboxparam.pro", "", "          NAME: saveboxparam     PURPOSE: save all the zoom parameters  defined by calling domdef             in a file  using save command  located in myuniquetmpdir             common variable defined by def_myuniquetmpdir      CATEGORY:     CALLING SEQUENCE: saveboxparam  filename      INPUTS: filename a scalar string defining the file name      KEYWORD PARAMETERS: none     OUTPUTS:none     COMMON BLOCKS:  cm_4mesh and  cm_demomode_used if we are in demo mode     SIDE EFFECTS: call def_myuniquetmpdir  if myuniquetmpdir is undefined:                    define  create and add it to  path     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr                         June 2005         PRO saveboxparam  filename  cm_4mesh     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         boxzoomparam    bound: lon1  lon2  lat1  lat2  vert1  vert2             indexes: firstxt  lastxt  firstyt  lastyt            firstxu  lastxu  firstyu  lastyu            firstxv  lastxv  firstyv  lastyv            firstxf  lastxf  firstyf  lastyf            firstzt  lastzt  firstzw  lastzw            nxt  nyt  nxu  nyu  nxv  nyv  nxf  nyf  nzt  nzw             key:key_irregular       ENDIF ELSE BEGIN         save  lon1  lon2  lat1  lat2  vert1  vert2            firstxt  lastxt  firstyt  lastyt            firstxu  lastxu  firstyu  lastyu            firstxv  lastxv  firstyv  lastyv            firstxf  lastxf  firstyf  lastyf            firstzt  lastzt  firstzw  lastzw            nxt  nyt  nxu  nyu  nxv  nyv  nxf  nyf  nzt  nzw            key_irregular  filename   myuniquetmpdir   filename      ENDELSE     return end");
 a[31] = new Array("./Grid/smallmeshmask.html", "smallmeshmask.pro", "", "    NAME: smallmeshmask pro     PURPOSE: reduce the size of the NetCDF meshmask created by OPA by   using byte format for the masks and the foat format for the other   fields      CATEGORY:for OPA meshmask files     CALLING SEQUENCE: smallmeshmask  ncfilein  ncfileout      INPUTS:         ncfilein:        1  the name of the meshmask file to be reduced  In that case         there is only one meshmask file          OR          2  the xxx part in the names: xxx mesh_hgr nc xxx mesh_zgr nc        xxx mask nc  In that case  the meshmask is split into 3 files           ncfileout: the name of the reduced meshmask file  default        definition is smallmeshmask nc     KEYWORD PARAMETERS:        IODIR:to define the files path      OUTPUTS: no     COMMON BLOCKS: no     EXAMPLE:      IDL  meshdir d1fes2 raid2 smasson DATA ORCA05       IDL  smallmeshmask   meshmask_ORCA_R05 nc iodir meshdir     MODIFICATION HISTORY:        July 2004 Sebastien Masson  smasson lodyc jussieu fr        PRO ncdf_transfer  inid  outid  inname  outname   IF n_elements outname  EQ 0 THEN outname   inname   ncdf_varget  inid  inname  zzz   ncdf_varput  outid  outname  float reform zzz   over    RETURN END   PRO smallmeshmask  ncfilein  ncfileout  IODIR   iodir     filein   isafile FILE   ncfilein  IODIR   iodir   NEW    test    findfile filein 0    IF test EQ   THEN BEGIN     filein_hgr    findfile filein mesh_hgr nc 0      filein_zgr    findfile filein mesh_zgr nc 0      filein_msk    findfile filein mask nc 0      IF filein_hgr EQ   OR filein_zgr EQ   OR filein_msk EQ    THEN BEGIN       print   meshmask file s  not found        print  filein  does not exist        print  filein mesh_hgr nc does not exist        print  filein mesh_zgr nc does not exist        print  filein mask nc does not exist        return     ENDIF   ENDIF ELSE filein   test       get the horizontal dimensions   IF n_elements filein_hgr  NE 0  THEN cdfid   ncdf_open filein_hgr      ELSE cdfid   ncdf_open filein     ncdf_diminq  cdfid   x  name  jpi   ncdf_diminq  cdfid   y  name  jpj   get the vertical dimensions   IF n_elements filein_zgr  NE 0  THEN BEGIN     ncdf_close  cdfid     cdfid   ncdf_open filein_zgr    ENDIF   listdims   strlowcase ncdf_listdims cdfid    IF  where listdims EQ  z 0  NE  1 THEN ncdf_diminq  cdfid   z  name  jpk ELSE BEGIN      dimid    where strmid listdims  0  5  EQ  depth 0      IF dimid NE  1 THEN ncdf_diminq  cdfid  dimid  name  jpk ELSE BEGIN        report   We could not find the vertical dimension  its name must be z or start with depth        return     ENDELSE    ENDELSE    get the variables list related to the partial steps   varlist_ps   ncdf_listvars cdfid    varlist_ps   strtrim strlowcase varlist_ps  2            define the output file     IF n_elements ncfileout  EQ 0  THEN ncfileout    smallmeshmask nc       cdfidout   ncdf_create isafile FILE   ncfileout  IODIR   iodir   NEW   clobber    ncdf_control  cdfidout   nofill   dimension   dimidx   ncdf_dimdef cdfidout   x  jpi    dimidy   ncdf_dimdef cdfidout   y  jpj    dimidz   ncdf_dimdef cdfidout   z  jpk    global attributs   ncdf_attput  cdfidout   IDL_Program_Name   smallmeshmask pro   GLOBAL   ncdf_attput  cdfidout   Creation_Date  systime   GLOBAL   declaration des variables   varid   lonarr 20    horizontal variables   hgrlist    glamt   glamu   glamv   glamf                    gphit   gphiu   gphiv   gphif                    e1t   e1u   e1v   e1f                    e2t   e2u   e2v   e2f    FOR h   0  n_elements hgrlist 1 DO       varid h    ncdf_vardef cdfidout  hgrlist h   dimidx  dimidy   float    vertical variables   zgrlist    e3t   e3w   gdept   gdepw    FOR z   0  n_elements zgrlist 1 DO       varid 16 z    ncdf_vardef cdfidout  zgrlist z   dimidz   float    variables related to the partial steps   IF  where varlist_ps EQ  hdept 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   hdept   dimidx  dimidy   float    IF  where varlist_ps EQ  hdepw 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   hdepw   dimidx  dimidy   float    old variable name  keep for compatibility with old run  Change e3tp to e3t_ps   IF  where varlist_ps EQ  e3tp 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   e3t_ps   dimidx  dimidy   float    old variable name  keep for compatibility with old run  Change e3wp to e3w_ps   IF  where varlist_ps EQ  e3wp 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   e3w_ps   dimidx  dimidy   float      IF  where varlist_ps EQ  e3t_ps 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   e3t_ps   dimidx  dimidy   float    IF  where varlist_ps EQ  e3w_ps 0  NE  1 THEN       varid    varid  ncdf_vardef cdfidout   e3w_ps   dimidx  dimidy   float      IF  where varlist_ps EQ  e3u_ps 0  NE  1 THEN         varid    varid  ncdf_vardef cdfidout   e3u_ps   dimidx  dimidy   float      IF  where varlist_ps EQ  e3v_ps 0  NE  1 THEN         varid    varid  ncdf_vardef cdfidout   e3v_ps   dimidx  dimidy   float    mask variable   msklist    tmask   umask   vmask   fmask    FOR m   0  n_elements msklist 1 DO       varid    varid  ncdf_vardef cdfidout  msklist m                                       dimidx  dimidy  dimidz   byte        ncdf_control  cdfidout   endef       get the horizontal variables     IF n_elements filein_hgr  NE 0  THEN BEGIN     ncdf_close  cdfid     cdfid   ncdf_open filein_hgr    ENDIF     FOR h   0  n_elements hgrlist 1 DO       ncdf_transfer  cdfid  cdfidout  hgrlist h      get the vertical variables     IF n_elements filein_zgr  NE 0  THEN BEGIN     ncdf_close  cdfid     cdfid   ncdf_open filein_zgr    ENDIF     FOR z   0  n_elements zgrlist 1 DO       ncdf_transfer  cdfid  cdfidout  zgrlist z    partial step variables    IF  where varlist_ps EQ  hdept 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   hdept    IF  where varlist_ps EQ  hdepw 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   hdepw    IF  where varlist_ps EQ  e3tp 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   e3tp   e3t_ps    IF  where varlist_ps EQ  e3wp 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   e3wp   e3w_ps    IF  where varlist_ps EQ  e3t_ps 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   e3t_ps    IF  where varlist_ps EQ  e3w_ps 0  NE  1 THEN       ncdf_transfer  cdfid  cdfidout   e3w_ps      IF  where varlist_ps EQ  e3u_ps 0  NE  1 THEN         ncdf_transfer  cdfid  cdfidout   e3u_ps      IF  where varlist_ps EQ  e3v_ps 0  NE  1 THEN         ncdf_transfer  cdfid  cdfidout   e3v_ps      mask     IF n_elements filein_msk  NE 0  THEN BEGIN     ncdf_close  cdfid     cdfid   ncdf_open filein_msk    ENDIF   loop on the vertical levels to limit the memory use   FOR k   0  jpk 1 DO BEGIN     FOR m   0  3 DO BEGIN       CASE  ncdf_varinq cdfid  msklist m ndims OF         3:ncdf_varget  cdfid  msklist m  zzz  offset    0  0  k              count    jpi  jpj  1          4:ncdf_varget  cdfid  msklist m  zzz  offset    0  0  k  0              count    jpi  jpj  1  1        ENDCASE       ncdf_varput  cdfidout  msklist m  byte temporary zzz              offset    0  0  k  count    jpi  jpj  1      ENDFOR   ENDFOR       ncdf_close  cdfid   ncdf_close  cdfidout    RETURN END");
-a[32] = new Array("./Interpolation/angle.html", "angle.pro", "", "      NAME:angle pro  fom angle F v 2 2 in OPA8 2      PURPOSE:Compute angles between grid lines and direction of the North     CALLING SEQUENCE:        angle  fileocemesh  gcosu  gsinu  gcosv  gsinv  gcost  gsint     INPUTS:       fileocemesh a netcdf file that contains  at least :          glamu  gphiu: longitudes and latitudes at U points          glamv  gphiv: longitudes and latitudes at V points          glamf  gphif: longitudes and latitudes at F points     KEYWORD PARAMETERS:        IODIRECTORY: the directory path where is located fileocemesh         DOUBLE: use double precision  default is float      OUTPUTS:         gsinu gcosu : sinus and cosinus of the angle          gsinv gcosv   between north south direction          gsint gcost   and the j direction of the mesh                        RESTRICTIONS: to compute the lateral boundary conditions  we assume   that:         1  the first line is similar to the second line              gcosu  0    gcosu  1                gsinu  0    gsinu  1          2  the grid follows OPA x periodicity rule  first column is       equal to the next to last column              gcosv 0      gcosv jpj 2                 gsinv 0      gsinv jpj 2          MODIFICATION HISTORY:               Original :  96 07  O  Marti                      98 06  G  Madec          Feb 2005: IDL adaptation S  Masson           fsnspp: north stereographic polar projection FUNCTION fsnspp  plam  pphi  DOUBLE   double   IF keyword_set double  THEN BEGIN     a   2 d   tan   dpi 4 d    dpi 180 d pphi 2 d       x   cos   dpi 180 d plam     a     y   sin   dpi 180 d plam     a   ENDIF ELSE BEGIN     a   2    tan   pi 4     pi 180 float pphi 2        x   cos   pi 180 float plam      a     y   sin   pi 180 float plam      a       ENDELSE   RETURN   x:x  y:y  END       PRO angle  fileocemesh  gcosu  gsinu  gcosv  gsinv  gcost  gsint                IODIRECTORY   iodirectory  DOUBLE   double     0  read oceanic grid parameters         IF keyword_set IODIRECTORY  THEN BEGIN     IF  strpos iodirectory reverse_search  NE  strlen iodirectory 1  THEN         iodirectory   iodirectory    ENDIF ELSE iodirectory       fileoce   iodirectory fileocemesh     fileoce   findfile fileoce  count   okfile    IF okfile NE 1 THEN BEGIN     print   the file  fileoce  is not found  we stop      stop   ENDIF     cdfido   ncdf_open fileoce 0    ncdf_varget  cdfido   glamt  glamt   ncdf_varget  cdfido   glamu  glamu   ncdf_varget  cdfido   glamv  glamv   ncdf_varget  cdfido   glamf  glamf   ncdf_varget  cdfido   gphit  gphit   ncdf_varget  cdfido   gphiu  gphiu   ncdf_varget  cdfido   gphiv  gphiv   ncdf_varget  cdfido   gphif  gphif   ncdf_close  cdfido     glamt   reform glamt   over    glamu   reform glamu   over    glamv   reform glamv   over    glamf   reform glamf   over    gphit   reform gphit   over    gphiu   reform gphiu   over    gphiv   reform gphiv   over    gphif   reform gphif   over    jpj    size glamf   dimension 1      I  Compute the cosinus and sinus        computation done on the north stereographic polar plan         north pole direction   modulous  at t point    znpt   fsnspp  glamt  gphit  DOUBLE   double     glamt    1   gphit    1  free memory   znpt x     znpt x   znpt y     znpt y   znnpt   znpt x znpt x   znpt y znpt y       north pole direction   modulous  at u point    znpu   fsnspp  glamu  gphiu  DOUBLE   double     glamu    1   gphiu    1  free memory   znpu x     znpu x   znpu y     znpu y   znnpu   znpu x znpu x   znpu y znpu y       north pole direction   modulous  at v point    znpv   fsnspp  glamv  gphiv  DOUBLE   double     znpv00   znpv   znpv01   fsnspp  shift glamv  0  1  shift gphiv  0  1  DOUBLE   double     glamv    1   gphiv    1  free memory   znpv x     znpv x   znpv y     znpv y   znnpv   znpv x znpv x   znpv y znpv y       f point   znpf00   fsnspp  glamf  gphif  DOUBLE   double     znpf01   fsnspp  shift glamf  0  1  shift gphif  0  1  DOUBLE   double     znpf10   fsnspp  shift glamf  1  0  shift gphif  1  0  DOUBLE   double     glamf    1   gphif    1  free memory       j direction: v point segment direction  t point    zxvvt   znpv00 x   znpv01 x   zyvvt   znpv00 y   znpv01 y   zmnpvt   sqrt   temporary znnpt      zxvvt zxvvt   zyvvt zyvvt        znpv00    1  free memory   znpv01    1  free memory   IF keyword_set double  THEN zmnpvt   1 e 14   zmnpvt     ELSE zmnpvt   1 e 6   zmnpvt        j direction: f point segment direction  u point    zxffu   znpf00 x   znpf01 x   zyffu   znpf00 y   znpf01 y   zmnpfu   sqrt   temporary znnpu      zxffu zxffu   zyffu zyffu        znpf01    1  free memory   IF keyword_set double  THEN zmnpfu   1 e 14   zmnpfu     ELSE zmnpfu   1 e 6   zmnpfu        i direction: f point segment direction  v point    zxffv   znpf00 x   znpf10 x   zyffv   znpf00 y   znpf10 y    znpf00    1    znpf10    1  free memory   zmnpfv   sqrt   temporary znnpv      zxffv zxffv   zyffv zyffv        IF keyword_set double  THEN zmnpfv   1 e 14   zmnpfv     ELSE zmnpfv   1 e 6   zmnpfv        cosinus and sinus using scalar and vectorial products   gsint     znpt x zyvvt   znpt y zxvvt     zmnpvt   gcost     znpt x zxvvt   znpt y zyvvt     zmnpvt       cosinus and sinus using scalar and vectorial products   gsinu     znpu x zyffu   znpu y zxffu     zmnpfu   gcosu     znpu x zxffu   znpu y zyffu     zmnpfu       cosinus and sinus using scalar and vectorial products          caution  rotation of 90 degres    gsinv      znpv x zxffv   znpv y zyffv     zmnpfv   gcosv     znpv x zyffv   znpv y zxffv     zmnpfv     II  Geographic mesh               bad   where abs glamf shift glamf  0  1  LT 1 e 8          IF bad 0  NE  1 THEN BEGIN           gcosu bad    1            gsinu bad    0          ENDIF         bad   where abs gphif shift gphif  1  0  LT 1 e 8          IF bad 0  NE  1 THEN BEGIN           gcosv bad    1            gsinv bad    0          ENDIF     III  Lateral boundary conditions         gcost  0    gcost  1     gsint  0    gsint  1     gcosu  0    gcosu  1     gsinu  0    gsinu  1     gcosv 0      gcosv jpj 2      gsinv 0      gsinv jpj 2        RETURN END");
-a[33] = new Array("./Interpolation/clickincell.html", "clickincell.pro", "", "    NAME:clickincell     PURPOSE: click on a map and find in which cell the click was     CATEGORY:finding where is a point on a grid     CALLING SEQUENCE:         res   clickincell        Click with the left button to select a cell  Clicking one more       time in the same cell remove the cell from the selection        Click on the right button to quit        INPUTS:None     KEYWORD PARAMETERS:         CELLTYPE    T   W   U   V  or  F : This this the type of point       that is located in the center of the cell which the click is       located  default is T type of cell  with corner defined by F       points           DRAWCELL: to draw the cell in which we clicked         COLOR   the color used to draw the cells  Clicking one more       time in the same cell will draw the cell with the white color           ORIGINAL: to get the position of the cell regarding the original       grid  with no key_shift  ixminmesh  iyminmesh           IJ: see outpus         _EXTRA: to pass extra keywords to inquad and plot  when  drawcell      OUTPUTS:       the the index of the selected cells regarding to the grid which       is in memory in the variable of the common  If  ij keyword is       activated give 2D array  2  n  which are the i j position of the       n selected cells       COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:       IDL  plt  findgen jpi jpj nodata map 90 0 0 ortho     IDL  print  clickincell draw color 150 xy      MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         August 2003     FUNCTION clickincell  CELLTYPE   celltype  DRAWCELL   drawcell  COLOR   color  ORIGINAL   original  IJ   ij  _EXTRA   extra  common     initialization   cellnum    1L   selected   0     Cell list   get the grid parameter according to celltype   oldgrid   vargrid   IF NOT keyword_set celltype  THEN celltype    T    CASE strupcase celltype  OF      T :vargrid    F       W :vargrid    F       U :vargrid    V       V :vargrid    U       F :vargrid    T    ENDCASE   grille   1  glam  gphi   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz   vargrid   oldgrid   define the corner of the cells in the clockwise direction   IF keyword_set key_periodic  AND nx EQ jpi THEN BEGIN     x1   glam  0:ny 2      y1   gphi  0:ny 2      x2   glam  1:ny 1      y2   gphi  1:ny 1      x3   shift glam  1:ny 1   1  0      y3   shift gphi  1:ny 1   1  0      x4   shift glam  0:ny 2   1  0      y4   shift gphi  0:ny 2   1  0    ENDIF ELSE BEGIN     x1   glam 0:nx 2  0:ny 2      y1   gphi 0:nx 2  0:ny 2      x2   glam 0:nx 2  1:ny 1      y2   gphi 0:nx 2  1:ny 1      x3   glam 1:nx 1  1:ny 1      y3   gphi 1:nx 1  1:ny 1      x4   glam 1:nx 1  0:ny 2      y4   gphi 1:nx 1  0:ny 2    ENDELSE   glam    1   free memory   gphi    1   free memory     get mousse position on the reference map   cursor  x  y   data   up     while  mouse button ne 4  do BEGIN     IF finite x finite x  EQ 0 THEN GOTO  outwhile       case  mouse button of       1:BEGIN   What is the longitude          WHILE x GT  x range 1  DO x   x 360         WHILE x LT  x range 0  DO x   x 360         IF x GT  x range 1  THEN GOTO  outwhile         IF y GT  y range 1  THEN GOTO  outwhile         IF y LT  y range 0  THEN GOTO  outwhile           cell   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4                            onsphere  _extra   extra            IF cell 0  EQ  1 OR n_elements cell  GT 1 THEN GOTO  outwhile         cell   cell 0          already    where cellnum EQ cell 0          IF already EQ  1 THEN BEGIN           cellnum    cellnum  cell            selected    selected  1            already   n_elements selected 1          ENDIF ELSE selected already    1 selected already          IF keyword_set drawcell  THEN BEGIN           oplot   x1 cell  x2 cell  x3 cell  x4 cell  x1 cell                   y1 cell  y2 cell  y3 cell  y4 cell  y1 cell                  color   color selected already                   d n_colors   255 1 selected already                  _extra   extra         ENDIF       END       2:                          middle button       ELSE:     ENDCASE       get mousse position on the reference map outwhile:     cursor  x  y   data   up   ENDWHILE     good   where selected NE 0    IF good 0  EQ  1 THEN RETURN   1      cellnum   cellnum good      yy   cellnum nx 1 key_periodic nx EQ jpi    xx   cellnum MOD  nx 1 key_periodic nx EQ jpi      CASE strupcase celltype  OF      T :BEGIN       xx   xx firstx 1       yy   yy firsty 1     END      W :BEGIN       xx   xx firstx 1       yy   yy firsty 1     END      U :BEGIN       xx   xx firstx       yy   yy firsty 1     END      V :BEGIN       xx   xx firstx 1       yy   yy firsty     END      F :BEGIN       xx   xx firstx       yy   yy firsty     END   ENDCASE     bad   where xx GE jpi    IF bad 0  NE  1 THEN BEGIN     xx bad    xx bad jpi     yy bad    yy bad 1   ENDIF   bad   where yy GE jpj    IF bad 0  NE  1 THEN stop     IF keyword_set original  THEN BEGIN     xx   xx key_shift     bad   where xx LT 0      IF bad 0  NE  1 THEN xx bad    xx bad jpi     xx   xx MOD jpi     xx   xx  ixminmesh     yy   yy iyminmesh   ENDIF     ncell   n_elements xx     IF keyword_set ij  THEN       RETURN   reform xx  1  ncell   over                   reform yy  1  ncell   over       IF keyword_set original  THEN RETURN  xx jpiglo yy     ELSE RETURN  xx jpi yy  END ");
-a[34] = new Array("./Interpolation/compute_fromreg_bilinear_weigaddr.html", "compute_fromreg_bilinear_weigaddr.pro", "", "    NAME: compute_fromreg_bilinear_weigaddr     PURPOSE: compute the weight and address neede to interpolate data from a             regular grid  to any grid using the bilinear method        CATEGORY:interpolation     CALLING SEQUENCE:        compute_fromreg_bilinear_weigaddr  alon  alat  olon  olat  weig  addr     INPUTS:       lonin and latin: longitude latitude of the input data        lonout and latout: longitude latitude of the output data      KEYWORD PARAMETERS:           NONORTHERNLINE and  NOSOUTHERNLINE: activate if you don t whant to take into            account the northen southern line of the input data when perfoming the            interpolation      OUTPUTS:        weig  addr: 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over      COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:       the input grid must be a  regular grid  defined as a grid for which each       lontitudes lines have the same latitude and each latitudes columns have the       same longitude        We supposed the data are located on a sphere  with a periodicity along       the longitude        points located out of the southern and northern boundaries are interpolated       using a linear interpolation only along the longitudinal direction       EXAMPLE:      MODIFICATION HISTORY:    November 2005: Sebastien Masson  smasson lodyc jussieu fr                PRO compute_fromreg_bilinear_weigaddr  alonin  alatin  olonin  olat  weig  addr       NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      alon   alonin   alat   alatin   olon   olonin     jpia   n_elements alon    jpja   n_elements alat      jpio    size olon   dimensions 0    jpjo    size olon   dimensions 1      alon   minalon   min alon   max   maxalon    IF maxalon minalon GE 360  THEN stop   alon must be monotonically increasing   IF array_equal sort alon  lindgen jpia  NE 1 THEN BEGIN      shiftx    where alon EQ min alon 0      alon   shift alon  shiftx      IF array_equal sort alon  lindgen jpia  NE 1 THEN stop   ENDIF ELSE shiftx   0   for longitude periodic bondary condition we add the fist   column on the right side of the array and    alon    alon  alon 0 360    jpia   jpia 1L   alat   revy   alat 0  GT alat 1    IF revy THEN alat   reverse alat    alat must be monotonically increasing   IF array_equal sort alat  lindgen jpja  NE 1 THEN stop     if keyword_set nonorthernline  then BEGIN      jpja   jpja   1L     alat   alat 0: jpja 1L    ENDIF   if keyword_set nosouthernline  then BEGIN      alat   alat 1: jpja 1L      jpja   jpja   1L   ENDIF   olon between minalon et minalon 360   out   where olon LT minalon    WHILE out 0  NE  1 DO BEGIN     olon out    olon out 360      out   where olon LT minalon    ENDWHILE   out   where olon GE minalon 360    WHILE out 0  NE  1 DO BEGIN     olon out    olon out  360      out   where olon GE minalon 360    ENDWHILE   make sure that all values of olon are located within values of alon   IF min olon  max   ma  LT minalon THEN stop   IF ma GE minalon 360  THEN stop     we want to do biliear interpolation   for each ocean point  we must   find in which atm cell it is located    if the ocean point is out of the atm grid  we use closest neighbor   interpolation      for each T point of oce grid  we find in which armospheric cell it is   located    As the atmospheric grid is regular  we can use inrecgrid instead   of inquad    pos   inrecgrid olon  olat  alon 0:jpia 2L  alat 0:jpja 2L                        checkout    alon jpia 1L  alat jpja 1L   output2d    checks    for longitude  each ocean points must be located in atm cell    IF  where pos 0    EQ  1 0  NE  1 THEN stop   no ocean point should be located westward of the left bondary of the   atm cell in which it is supposed to be located    IF total olon LT alon pos 0    NE 0 THEN stop   no ocean point should be located eastward of the right bondary of the   atm cell in which it is supposed to be located    IF total olon GT alon pos 0   1  NE 0 THEN stop     we use bilinear interpolation     we change the coordinates of each ocean points to fit into a   rectangle defined by:       y2                                                                     y1         x1          x2        X    x x1 x2 x1       Y    y y1 y2 y1      indx   pos 0      indy    temporary pos 1      points located out of the atmospheric grid too much northward or southward    bad   where indy EQ  1    indy   0   indy     IF max indx  GT jpia 2 THEN stop   checks    IF max indy  GT jpja 2 THEN stop   checks    x coordinates of the atm cell    x1   alon indx    x2   alon indx 1    new x coordinates of the ocean points in each cell   divi   temporary x2 x1   glamnew    olon x1 temporary divi    x1    1   free memory    olon    1   free memory    y coordinates of the atm cell    y1   alat indy    y2   alat indy 1                  new y coordinates of the ocean points in each cell   divi   temporary y2 y1   zero   where divi EQ 0    IF zero 0  NE  1 THEN divi zero    1    gphinew    olat y1 temporary divi    y1    1   free memory    checks    IF min glamnew  LT 0 THEN stop   IF max glamnew  GT 1 THEN stop     weight and address array used for bilinear interpolation    xaddr   lonarr 4  jpio jpjo    xaddr 0      indx     xaddr 1      indx   1L   xaddr 2      indx   1L   xaddr 3      indx        yaddr   lonarr 4  jpio jpjo    yaddr 0      indy   yaddr 1      indy   yaddr 2      indy   1L   yaddr 3      indy   1L   compute the weight for the bilinear interpolation    weig   fltarr 4  jpio jpjo    weig 0       1 glamnew     1 gphinew    weig 1          glamnew     1 gphinew    weig 2          glamnew        gphinew   weig 3       1 glamnew        gphinew    free memory   gphinew    1   IF bad 0  EQ  1 THEN glamnew    1 ELSE glamnew    temporary glamnew bad    we work now on the  bad  points   linear interpolation only along the longitudinal direction   IF bad 0  NE  1 THEN BEGIN     ybad   olat bad    the ocean points that are not located into an atm cell should be   located northward of the northern boudary of the atm grid         or southward of the southern boudary of the atm grid      IF total ybad GE min alat  AND ybad LE max alat  GE 1 THEN stop       weig 0  bad     1 glamnew      weig 1  bad    temporary glamnew      weig 2  bad    0      weig 3  bad    0      south   where ybad LT alat 0      IF south 0  NE  1 THEN yaddr  bad temporary south    0L     north   where ybad GT alat jpja 1      IF north 0  NE  1 THEN yaddr  bad temporary north    0L     ybad    1   bad    1   free memory   ENDIF   check totalweight   1   totalweig   abs 1 total weig  1    IF  where temporary totalweig  GE 1 e 5 0  NE  1 THEN stop     come back to the original atm grid without longitudinal overlap      jpia   jpia 1L   xaddr   temporary xaddr  MOD jpia   take into account shiftx if needed   IF shiftx NE 0 THEN xaddr    temporary xaddr    shiftx  MOD jpia   take into account nosouthernline and nonorthernline   if keyword_set nosouthernline  then BEGIN     yaddr   temporary yaddr    1L     jpja   jpja   1L   ENDIF   if keyword_set nonorthernline  then jpja   jpja   1L   take into account revy if needed   IF revy EQ 1 THEN yaddr   jpja   1L   temporary yaddr                                addr   temporary yaddr jpia   temporary xaddr       return end ");
-a[35] = new Array("./Interpolation/compute_fromreg_imoms3_weigaddr.html", "compute_fromreg_imoms3_weigaddr.pro", "", "    NAME: compute_fromreg_imoms3_weigaddr     PURPOSE: compute the weight and address neede to interpolate data from a             regular grid  to any grid using the imoms3 method        CATEGORY:interpolation     CALLING SEQUENCE:        compute_fromreg_imoms3_weigaddr  alon  alat  olon  olat  weig  addr     INPUTS:       lonin and latin: longitude latitude of the input data        lonout and latout: longitude latitude of the output data      KEYWORD PARAMETERS:           NONORTHERNLINE and  NOSOUTHERNLINE: activate if you don t whant to take into            account the northen southern line of the input data when perfoming the            interpolation      OUTPUTS:        weig  addr: 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over      COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:       the input grid must be a  regular rectangular grid  defined as a grid for       which each lontitudes lines have the same latitude and each latitudes columns       have the same longitude        We supposed the data are located on a sphere  with a periodicity along       the longitude        points located between the first last 2 lines are interpolated       using a imoms3 interpolation along the longitudinal direction and linear       interpolation along the latitudinal direction       points located out of the southern and northern boundaries are interpolated       using a imoms3 interpolation only along the longitudinal direction       EXAMPLE:      MODIFICATION HISTORY:    November 2005: Sebastien Masson  smasson lodyc jussieu fr      March 2006: works for rectangular grids           PRO compute_fromreg_imoms3_weigaddr  alonin  alatin  olonin  olat  weig  addr                                          NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      alon   alonin   alat   alatin   olon   olonin     jpia   n_elements alon    jpja   n_elements alat      jpio    size olon   dimensions 0    jpjo    size olon   dimensions 1      alon   minalon   min alon   max   maxalon    IF maxalon minalon GE 360  THEN stop   alon must be monotonically increasing   IF array_equal sort alon  lindgen jpia  NE 1 THEN BEGIN      shiftx    where alon EQ min alon 0      alon   shift alon  shiftx      IF array_equal sort alon  lindgen jpia  NE 1 THEN stop   ENDIF ELSE shiftx   0   alon is it regularly spaced    step   alon shift alon  1    step 0    step 0    360    IF total step step 0  GE 1 e 6  NE 0 THEN noregx   1   we extend the longitude range of alon   easy interpolation even   near minalon et maxalon    toadd   10 jpia 360 1   alon    alon jpia toadd:jpia 1 360  alon  alon 0:toadd 1 360    jpia   jpia 2 toadd   alat   revy   alat 0  GT alat 1    IF revy THEN alat   reverse alat    alat must be monotonically increasing   IF array_equal sort alat  lindgen jpja  NE 1 THEN stop   alat is it regularly spaced    step   alat shift alat  1    step   step 1:jpja   1L    IF total step step 0  GE 1 e 6  NE 0 THEN noregy   1     if keyword_set nonorthernline  then BEGIN      jpja   jpja   1L     alat   alat 0: jpja 1L    ENDIF   if keyword_set nosouthernline  then BEGIN      alat   alat 1: jpja 1L      jpja   jpja   1L   ENDIF   olon between minalon et minalon 360   out   where olon LT minalon    WHILE out 0  NE  1 DO BEGIN     olon out    olon out 360      out   where olon LT minalon    ENDWHILE   out   where olon GE minalon 360    WHILE out 0  NE  1 DO BEGIN     olon out    olon out  360      out   where olon GE minalon 360    ENDWHILE   make sure that all values of olon are located within values of alon   IF min olon  max   ma  LT minalon THEN stop   IF ma GE minalon 360  THEN stop     xaddr   lonarr 16  jpio jpjo    yaddr   lonarr 16  jpio jpjo    weig   fltarr 16  jpio jpjo      indexlon   value_locate alon  olon    IF total alon indexlon  GT olon  NE 0 THEN stop   IF total alon indexlon   1L  LE olon  NE 0 THEN stop   IF  where indexlon LE 1L      0  NE  1 THEN stop   IF  where indexlon GE jpia 3L 0  NE  1 THEN stop   indexlat   value_locate alat  olat      for the ocean points located below the atm line    jpja 2 and above the line 1   for those points we can always find 16 neighbors   imoms interpolation along longitude and latitude     short   where indexlat LT jpja 2L AND indexlat GE 1L    ilon   indexlon short    ilat   indexlat short       IF NOT keyword_set noregy  THEN BEGIN      delta   alat ilat 1L alat ilat      IF max abs delta delta 0  GE 1 e 6 THEN stop     delta   delta 0        d0    alat ilat 1L olat short delta     IF min d0  max   ma  LE  2 THEN stop     IF ma GT  1 THEN stop     wy0   imoms3 temporary d0      d1    alat ilat    olat short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wy1   imoms3 temporary d1      d2    alat ilat 1L olat short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop       wy2   imoms3 temporary d2      d3    alat ilat 2L olat short delta     IF min d3  max   ma  LE 1 THEN stop     IF ma GT 2 THEN stop       wy3   imoms3 temporary d3    ENDIF ELSE BEGIN      nele   n_elements short      wy0   fltarr nele      wy1   fltarr nele      wy2   fltarr nele      wy3   fltarr nele      FOR i   0L  nele 1 DO BEGIN       IF i MOD 10000 EQ 0 THEN print  i       newlat   spl_incr alat ilat i 1L:ilat i 2L   1  0  1  2  olat short i        IF newlat LE 0 THEN stop       IF newlat GT 1 THEN stop       wy0 i    imoms3 newlat 1        wy1 i    imoms3 newlat        wy2 i    imoms3 1 newlat        wy3 i    imoms3 2 newlat      ENDFOR   ENDELSE      mi   min wy0 wy1 wy2 wy3  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     IF NOT keyword_set noregx  THEN BEGIN      delta   alon ilon alon ilon 1L      IF max abs delta delta 0  GE 1 e 6 THEN stop     delta   delta 0        d0    alon ilon 1L olon short delta     IF min d0  max   ma  LE  2 THEN stop     IF ma GT  1 THEN stop     wx0   imoms3 temporary d0      d1    alon ilon    olon short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wx1   imoms3 temporary d1      d2    alon ilon 1L olon short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop     wx2   imoms3 temporary d2      d3    alon ilon 2L olon short delta     IF min d3  max   ma  LE 1 THEN stop     IF ma GT 2 THEN stop       wx3   imoms3 temporary d3    ENDIF ELSE BEGIN      nele   n_elements short      wx0   fltarr nele      wx1   fltarr nele      wx2   fltarr nele      wx3   fltarr nele      FOR i   0L  nele 1 DO BEGIN       IF i MOD 10000 EQ 0 THEN print  i       newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i        IF newlon LE 0 THEN stop       IF newlon GT 1 THEN stop       wx0 i    imoms3 newlon 1        wx1 i    imoms3 newlon        wx2 i    imoms3 1 newlon        wx3 i    imoms3 2 newlon      ENDFOR   ENDELSE      mi   min wx0 wx1 wx2 wx3  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     line 0   xaddr 0  short    ilon   1L   xaddr 1  short    ilon     xaddr 2  short    ilon   1L   xaddr 3  short    ilon   2L   yaddr 0  short    ilat   1L   yaddr 1  short    yaddr 0  short    yaddr 2  short    yaddr 0  short    yaddr 3  short    yaddr 0  short    weig 0  short    wx0   wy0   weig 1  short    wx1   wy0   weig 2  short    wx2   wy0   weig 3  short    wx3   wy0   line 1   xaddr 4  short    ilon   1L   xaddr 5  short    ilon     xaddr 6  short    ilon   1L   xaddr 7  short    ilon   2L   yaddr 4  short    ilat     yaddr 5  short    ilat     yaddr 6  short    ilat     yaddr 7  short    ilat     weig 4  short    wx0   wy1   weig 5  short    wx1   wy1   weig 6  short    wx2   wy1   weig 7  short    wx3   wy1   line 2   xaddr 8  short    ilon   1L   xaddr 9  short    ilon     xaddr 10  short    ilon   1L   xaddr 11  short    ilon   2L   yaddr 8  short    ilat   1L   yaddr 9  short    yaddr 8  short    yaddr 10  short    yaddr 8  short    yaddr 11  short    yaddr 8  short    weig 8  short    wx0   wy2   weig 9  short    wx1   wy2   weig 10  short    wx2   wy2   weig 11  short    wx3   wy2   line 3   xaddr 12  short    ilon   1L   xaddr 13  short    ilon     xaddr 14  short    ilon   1L   xaddr 15  short    ilon   2L   yaddr 12  short    ilat   2L   yaddr 13  short    yaddr 12  short    yaddr 14  short    yaddr 12  short    yaddr 15  short    yaddr 12  short    weig 12  short    wx0   wy3   weig 13  short    wx1   wy3   weig 14  short    wx2   wy3   weig 15  short    wx3   wy3     mi   min total weig  short  1  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     for the ocean points located between the atm lines    jpja 2 and jpja 1 or between the atm lines 0 and 1   linear interpolation between line 1 and line 2     short   where indexlat EQ jpja 2L OR indexlat EQ 0    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short      ilat   indexlat short        delta   alat ilat 1L alat ilat      IF NOT keyword_set noregy  THEN BEGIN        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0       ENDIF        d1    alat ilat    olat short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wy1   1  temporary d1      d2    alat ilat 1L olat short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop       wy2   1  temporary d2        mi   min wy1 wy2  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   but imoms3 along the longitude     IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon   1L     xaddr 1  short    ilon       xaddr 2  short    ilon   1L     xaddr 3  short    ilon   2L     yaddr 0  short    ilat       yaddr 1  short    ilat       yaddr 2  short    ilat       yaddr 3  short    ilat       weig 0  short    wx0   wy1     weig 1  short    wx1   wy1     weig 2  short    wx2   wy1     weig 3  short    wx3   wy1   line 2     xaddr 4  short    ilon   1L     xaddr 5  short    ilon       xaddr 6  short    ilon   1L     xaddr 7  short    ilon   2L     yaddr 4  short    ilat   1L     yaddr 5  short    yaddr 4  short      yaddr 6  short    yaddr 4  short      yaddr 7  short    yaddr 4  short      weig 4  short    wx0   wy2     weig 5  short    wx1   wy2     weig 6  short    wx2   wy2     weig 7  short    wx3   wy2       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     for the ocean points located below the line 0   Interpolation only along the longitude      short   where indexlat EQ  1    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short        IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon   1L     xaddr 1  short    ilon       xaddr 2  short    ilon   1L     xaddr 3  short    ilon   2L     yaddr 0:3  short    0      weig 0  short    wx0     weig 1  short    wx1     weig 2  short    wx2     weig 3  short    wx3       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     for the ocean points located above jpia 1    Interpolation only along the longitude      short   where indexlat EQ jpja 1L    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short        IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon 1L     xaddr 1  short    ilon       xaddr 2  short    ilon 1L     xaddr 3  short    ilon 2L     yaddr 0:3  short    jpja 1L     weig 0  short    wx0     weig 1  short    wx1     weig 2  short    wx2     weig 3  short    wx3       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     Come back to the original index of atm grid without longitudinal overlap        xaddr   temporary xaddr    toadd   jpia   jpia   2 toadd   make sure all values are ge 0   xaddr   temporary xaddr    jpia   range the values between 0 and jpia 1   xaddr   temporary xaddr  mod jpia     take into account shiftx if needed   IF shiftx NE 0 THEN xaddr    temporary xaddr    shiftx  MOD jpia   take into account nosouthernline and nonorthernline   if keyword_set nosouthernline  then BEGIN     yaddr   temporary yaddr    1L     jpja   jpja   1L   ENDIF   if keyword_set nonorthernline  then jpja   jpja   1L   take into account revy if needed   IF revy EQ 1 THEN yaddr   jpja   1L   temporary yaddr                               addr   temporary yaddr jpia temporary xaddr       RETURN END");
-a[36] = new Array("./Interpolation/cutpar.html", "cutpar.pro", "", "    NAME: cutpar     PURPOSE: cut p parallelogram s  into p n 2 parallelograms     CATEGORY: basic work     CALLING SEQUENCE:res   cutpar x0  y0  x1  y1  x2  y2  x3  y3  n      INPUTS:         x0 y0 1d arrays of p elements  giving the edge positions  The         edges must be given as in plot to traw the parallelogram   see         example          n: each parallelogram will be cutted in n 2 pieces     KEYWORD PARAMETERS:               endpoints: see outputs              onsphere: to specify that the points are located on a           sphere  In this case  x and y corresponds to longitude and           latitude in degrees      OUTPUTS:           defaut: 3d array 2 n 2 p  giving the center position of each          piece of the parallelograms           endpoints: 3d array 2 n 1 2 p  giving the edge positions          of each piece of the parallelograms     COMMON BLOCKS: no     SIDE EFFECTS: need cutsegment pro     RESTRICTIONS:       EXAMPLE:     x0    2 6 2    y0    0 2 6    x1    3 8 4    y1    4 4 6    x2    1 6 4    y2    5 6 8    x3    0 4 2    y3    1 4 8    n   4   splot   0 10   0 10  xstyle   1  ystyle   1 nodata   for i 0 2 do oplot   x0 i x1 i x2 i x3 i x0 i y0 i y1 i y2 i y3 i y0 i    res cutpar x0  y0  x1  y1  x2  y2  x3  y3  n    for i 0 2 do oplot   res 0 i   res 1 i  color   20 10 i  psym   1  thick   3     MODIFICATION HISTORY:             S  Masson  smasson lodyc jussieu fr              July 5th  2002   FUNCTION cutpar  x0  y0  x1  y1  x2  y2  x3  y3  n  endpoints   endpoints  onsphere   onsphere   is it a parallelogram    eps   1e 4   IF total abs x0 x2 2 x1 x3 2  GE eps  GT 0       OR total abs y0 y2 2 y1 y3 2  GE eps  GT 0       THEN stop  print   NOT a parallelogram    x0 npar    npar   n_elements x0     firstborder 2 n keyword_set endpoints npar    firstborder   cutsegment x0  y0  x1  y1  n                                endpoints   endpoints  onsphere   onsphere    thirdborder   cutsegment x3  y3  x2  y2  n                                endpoints   endpoints  onsphere   onsphere    res 2 n keyword_set endpoints n keyword_set endpoints npar    res   cutsegment firstborder 0      firstborder 1                             thirdborder 0      thirdborder 1                             n  endpoints   endpoints  onsphere   onsphere    free memory   firstborder    1   thirdborder    1   reform the result   res   reform res  2   n keyword_set endpoints 2  npar   overwrite     RETURN  res END");
-a[37] = new Array("./Interpolation/cutsegment.html", "cutsegment.pro", "", "    NAME: cutsegment     PURPOSE: cut p segments into p n equal parts     CATEGORY: basic work     CALLING SEQUENCE: res   cutsegment x0  y0  x1  y1  n      INPUTS:            x0 y0 and x1 y1  1d arrays of p elements  the coordinates of           the endpoints of the p segmements           n: the number of pieces we want to cut each segment     KEYWORD PARAMETERS:              endpoints: see ouputs              onsphere: to specify that the points are located on a           sphere  In this case  x and y corresponds to longitude and           latitude in degrees      OUTPUTS:          defaut: a 3d array  2 n p  that gives the coordinates of the          middle of the cutted segments           if  endpoints  a 3d array  2 n 1 p  that gives the          coordinates of the endpoints of the cutted segments      COMMON BLOCKS: no     SIDE EFFECTS: no     RESTRICTIONS:       EXAMPLE:      IDL  x0 2 5     IDL  y0 5 1     IDL  x1 9 3     IDL  y1 1 8     IDL  res cutsegment x0  y0  x1  y1  10     IDL  splot   0 10   0 10  xstyle   1  ystyle   1 nodata    IDL  oplot   x0 0  x1 0   y0 0  y1 0     IDL  oplot   res 0 0   res 1 0  color   20  psym   1  thick   3    IDL  oplot   x0 1  x1 1   y0 1  y1 1     IDL  oplot   res 0 1   res 1 1  color   40  psym   1  thick   3     MODIFICATION HISTORY:             S  Masson  smasson lodyc jussieu fr              July 5th  2002   FUNCTION cutsegment  x0  y0  x1  y1  n  endpoints   endpoints  onsphere   onsphere   number of segment   nseg   n_elements x0     number of point to find on each segment   n2find   n keyword_set endpoints       IF keyword_set onsphere  THEN BEGIN   save the inputs arrays     x0in   temporary x0      y0in   temporary y0      x1in   temporary x1      y1in   temporary y1      sp_cood    transpose x0in transpose y0in replicate 1  1  nseg      rect_coord   CV_COORD FROM_SPHERE   temporary sp_cood   TO_RECT   DEGREES      x0   rect_coord 0        y0   rect_coord 1        z0   rect_coord 2        rect_coord    1  free memory     sp_cood    transpose x1in transpose y1in replicate 1  1  nseg      rect_coord   CV_COORD FROM_SPHERE   temporary sp_cood   TO_RECT   DEGREES      x1   rect_coord 0        y1   rect_coord 1        z1   rect_coord 2        rect_coord    1  free memory   ENDIF     resx   replicate 1  n2find x0    resx   temporary resx 1 n findgen n2find                                     5 1 keyword_set endpoints x1 x0    resx    temporary resx      resy   replicate 1  n2find y0    resy   temporary resy 1 n findgen n2find                                     5 1 keyword_set endpoints y1 y0    resy    temporary resy     IF keyword_set onsphere  THEN BEGIN     resz   replicate 1  n2find z0      resz   temporary resz 1 n findgen n2find                                       5 1 keyword_set endpoints z1 z0      resz    temporary resz       rec_cood    transpose temporary resx  transpose temporary resy                      transpose temporary resz      res   CV_COORD FROM_RECT   temporary rec_cood   TO_SPHERE   DEGREES    restore the input arrays     x0   temporary x0in      y0   temporary y0in      x1   temporary x1in      y1   temporary y1in    ENDIF ELSE res    transpose temporary resx  transpose temporary resy     res   reform res 0:1    2  n2find  nseg   overwrite     RETURN  res END");
-a[38] = new Array("./Interpolation/extrapolate.html", "extrapolate.pro", "", "FUNCTION extrapolate  zinput  maskinput  nb_iteration  x_periodic   x_periodic  MINVAL   minval  MAXVAL   maxval     compile_opt strictarr  strictarrsubs      extrapolate data  zinput  where maskinput eq 0 by filling step by   step the coastline points with the mean value of the 8 neighbourgs      check the number of iteration used in the extrapolation    IF n_elements nb_iteration  EQ 0 THEN nb_iteration   10 E20   IF nb_iteration EQ 0 THEN return  zinput   nx    size zinput 1    ny    size zinput 2    take care of the boundary conditions       for the x direction  we put 2 additional columns at the left and   right side of the array     for the y direction  we put 2 additional lines at the bottom and   top side of the array     These changes allow us to use shift function without taking care of   the x and y periodicity      ztmp   bytarr nx 2  ny 2    ztmp 1:nx  1:ny    byte maskinput    msk   temporary ztmp      ztmp   replicate 1 e20  nx 2  ny 2    ztmp 1:nx  1:ny    zinput   if keyword_set x_periodic  then begin     ztmp 0  1:ny    zinput nx 1        ztmp nx 1  1:ny    zinput 0      ENDIF   remove NaN points if there is some    nan   where finite ztmp  EQ 0  cnt_nan    IF cnt_nan NE 0 THEN ztmp temporary nan    1 e20   z   temporary ztmp    nx2   nx 2   ny2   ny 2       extrapolation      sqrtinv   1 sqrt 2      cnt   1   When we look for the coast line  we don t whant to select the   borderlines of the array    we force the value of the mask for   those lines    msk 0      1b   msk nx 1      1b   msk  0    1b   msk  ny 1    1b   find the land points   land   where msk EQ 0  cnt_land      WHILE cnt LE nb_iteration AND cnt_land NE 0 DO BEGIN     find the coast line points      Once the land points list has been found  we change back the the   mask values for the boundary conditions      msk 0      0b     msk nx 1      0b     msk  0    0b     msk  ny 1    0b     if keyword_set x_periodic  then begin       msk 0      msk nx          msk nx 1      msk 1        endif     we compute the weighted number of sea neighbourgs    those 4 neighbours have a weight of 1:                                          those 4 neighbours have a weight of 1 sqrt 2 :                                        As we make sure that none of the land points are located on the   border of the array  we can compute the weight without shift    faster        weight   msk land 1 msk land 1 msk land nx2 msk land nx2                  sqrtinv msk land nx2 1 msk land nx2 1                            msk land nx2 1 msk land nx2 1    list all the points that have sea neighbourgs     ok   where weight GT 0    the coastline points     coast   land ok    their weighted number of sea neighbourgs      weight   weight temporary ok      fill the coastine points       z   temporary z msk       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            IF n_elements minval  NE 0 THEN zcoast   minval   temporary zcoast      IF n_elements maxval  NE 0 THEN zcoast   temporary zcoast   we force the value of the mask for   those lines      msk 0      1b     msk nx 1      1b     msk  0    1b     msk  ny 1    1b   find the land points     land   where msk EQ 0  cnt_land      ENDWHILE     we return the original size of the array        return  z 1:nx  1:ny  END  ");
-a[39] = new Array("./Interpolation/fromreg.html", "fromreg.pro", "", "    NAME: fromreg     PURPOSE: interpolate data from a  regular rectangular grid  to any grid      2 metods availables: bilinear and imoms3      A  regular rectangular grid  is defined as a grid for which each lontitudes lines have      the same latitude and each latitudes columns have the same longitude         CATEGORY:interpolation     CALLING SEQUENCE: dataout   fromreg method  datain   lonin  latin  lonout  latout      INPUTS:      method: a string defining the interpolation method                must be  bilinear  or  imoms3       datain: a 2D array the input data to interpolate      lonin and latin: longitude latitude of the input data  optionals if              WEIG and ADDR keywords used       lonout and latout: longitude latitude of the output data  optionals if              WEIG and ADDR keywords used      KEYWORD PARAMETERS:          WEIG  ADDR: 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over        Those keywords can be set to named variables into which the values will be       copied when the current routine exits  Next  they can be used to perform       the interpolation whithout computing again those 2 parameters  In that       case  lonin  latin  lonout and latout are not necessary           NONORTHERNLINE and  NOSOUTHERNLINE: activate if you don t whant to take into            account the northen southern line of the input data when perfoming the            interpolation      OUTPUTS: 2D array: the interpolated data     COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:We supposed the data are located on a sphere  with a periodicity along                the longitude      EXAMPLE:         topa   fromreg bilinear  tncep  xncep  yncep  glamt  gphit       or       t1opa   fromreg bilinear  t1ncep  xncep  yncep  glamt  gphit  WEIG   a  ADDR   b     help  a  b    t2opa   fromreg bilinear  t2ncep  xncep  WEIG   a  ADDR   b      MODIFICATION HISTORY:    November 2005: Sebastien Masson  smasson lodyc jussieu fr                FUNCTION fromreg  method  datain  lonin  latin  lonout  latout                       WEIG   weig  ADDR   addr                       NONORTHERNLINE   nonorthernline                       NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      IF NOT  keyword_set weig  AND keyword_set addr  THEN BEGIN     atmospheric grid parameters       alon   lonin     alat   latin     get_gridparams  alon  alat  jpia  jpja  1   double     Oceanic grid parameters       olon   lonout     olat   latout     get_gridparams  olon  olat  jpio  jpjo  2   double     Compute weight and address       CASE method OF        bilinear :compute_fromreg_bilinear_weigaddr  alon  alat  olon  olat  weig  addr  NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline        imoms3 :  compute_fromreg_imoms3_weigaddr    alon  alat  olon  olat  weig  addr  NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline       ELSE:BEGIN          print    unknown interpolation method  we stop          stop       ENDELSE     ENDCASE   ENDIF     dataout   total weig datain addr  1    dataout   reform dataout  jpio  jpjo   over      RETURN  dataout END");
-a[40] = new Array("./Interpolation/get_gridparams.html", "get_gridparams.pro", "", "    NAME: get_gridparams     PURPOSE:      1  extract from a NetCDF file the longitude  latidude  and their dimensions        and make sure it is 1D or 2D arrays           or 2  given longitude and latitude arrays get their dimensions and make sure         they are 1D or 2D arrays      CATEGORY:for interpolations tools     CALLING SEQUENCE:      1  get_gridparams  file  lonname  latname  lon  lat  jpi  jpj  n_dimensions     or      2  get_gridparams  lon  lat  jpi  jpj  n_dimensions     INPUTS:     1      file: the name of the netcdf file    loname: the name of the variable that contains the longitude in the NetCDF file    latname: the name of the variable that contains the latitude in the NetCDF file     or      2  lon and lat: 1d or 2D arrays defining longitudes and latitudes        Note that these arrays are also outputs and can therefore be modified      KEYWORD PARAMETERS: none     OUTPUTS:    lon the variable that will contain the longitudes    lat the variable that will contain the latitudes    jpi the number of points in the longitudinal direction    jpj the number of points in the latitudinal direction    n_dimensions: 1 or 2 to specify if lon and lat should be 1D  jpi or jpj       arrays or 2D arrays  jpi jpj  Note that of  n_dimensions   1  then the      grid must be regular  each longitudes must be the same for all latitudes      and each latitudes should be the sae for all longitudes       COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:       EXAMPLE:       1  ncdf_get_gridparams   coordinates_ORCA_R05 nc   glamt   gphit                   olon  olat  jpio  jpjo  2     2  ncdf_get_gridparams  olon  olat  jpio  jpjo  2     MODIFICATION HISTORY:    November 2005: Sebastien Masson  smasson lodyc jussieu fr                 PRO get_gridparams  in1    in2    in3      in4  in5  in6  in7  in8  DOUBLE   double                    file  lonname  latname  lon  lat  jpi  jpj  n_dimensions                     lon    lat    jpi      jpj  n_dimensions     CASE n_params  OF     8:BEGIN   get longitude and latitude       IF file_test in1  EQ 0 THEN BEGIN          print   file     in1     does not exist          stop       ENDIF       cdfido   ncdf_open in1        ncdf_varget  cdfido  in2  lon       ncdf_varget  cdfido  in3  lat       ncdf_close  cdfido        n_dimensions   in8     END     5:BEGIN        lon   temporary in1        lat   temporary in2        n_dimensions   in5     END     ELSE:BEGIN        print   Bad nimber of input parameters        stop     end   ENDCASE     sizelon   size lon    sizelat   size lat    CASE 1 OF      lon and lat are 1D arrays       sizelon 0  EQ 1 AND sizelat 0  EQ 1:BEGIN    get jpi and jpj       jpi   sizelon 1        jpj   sizelat 1    make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:         2:BEGIN   make lon and lat 2D arrays           lon   temporary lon    replicate 1  jpj            lat   replicate 1  jpi    temporary lat          END         ELSE:stop       ENDCASE     END     lon is 2D array and lat is 1D array       sizelon 0  EQ 2 AND sizelat 0  EQ 1:BEGIN    get jpi and jpj       jpi   sizelon 1        jpj   sizelon 2        IF jpj NE n_elements lat  THEN stop   make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lon  lon  0    replicate 1  jpj  NE 1 THEN BEGIN              print   Longitudes are not the same for all latitudes  imposible to extract a 1D array of the longitudes              stop           ENDIF           lon   lon  0          END         2:lat   replicate 1  jpi    temporary lat          ELSE:stop       ENDCASE     END     lon is 1D array and lat is 2D array       sizelon 0  EQ 1 AND sizelat 0  EQ 2:BEGIN    get jpi and jpj       jpi   sizelat 1        jpj   sizelat 2        IF jpi NE n_elements lon  THEN stop   make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lat  replicate 1  jpi    lat 0    NE 1 THEN BEGIN              print   Latitudes are not the same for all longitudes  imposible to extract a 1D array of the latitudes              stop           ENDIF           lat   reform lat 0            END         2:lon   temporary lon    replicate 1  jpj          ELSE:stop       ENDCASE     END     lon and lat are 2D arrays       sizelon 0  EQ 2 AND sizelat 0  EQ 2:BEGIN    get jpi and jpj       IF array_equal sizelon 1:2  sizelat 1:2  NE 1 THEN stop       jpi   sizelon 1        jpj   sizelon 2          make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lon  lon  0    replicate 1  jpj  NE 1 THEN BEGIN              print   Longitudes are not the same for all latitudes  imposible to extract a 1D array of the longitudes              stop           ENDIF           lon   lon  0            IF array_equal lat  replicate 1  jpi    reform lat 0    NE 1 THEN BEGIN              print   Latitudes are not the same for all longitudes  imposible to extract a 1D array of the latitudes              stop           ENDIF         lat   reform lat 0            END         2:         ELSE:stop       ENDCASE     END     lon and lat are not 1D and or 2D arrays       ELSE:stop   ENDCASE       double keyword     if keyword_set double  then BEGIN      lon   double temporary lon      lat   double temporary lat    ENDIF     give back the right outparameters       CASE n_params  OF     8:BEGIN       in4   temporary lon        in5   temporary lat        in6   temporary jpi        in7   temporary jpj      END     5:BEGIN       in1   temporary lon        in2   temporary lat        in3   temporary jpi        in4   temporary jpj      END   ENDCASE    return END");
-a[41] = new Array("./Interpolation/imoms3.html", "imoms3.pro", "", "FUNCTION imoms3  xin    x   abs xin    y   fltarr n_elements x      test1   where x LT 1    IF test1 0  NE  1 THEN BEGIN     xtmp   x test1      y test1    0 5 xtmp xtmp xtmp  xtmp xtmp  0 5 xtmp   1   ENDIF   test1   where x LT 2 AND x GE 1    IF test1 0  NE  1 THEN BEGIN     xtmp   x test1      y test1     1 6 xtmp xtmp xtmp   xtmp xtmp    11 6 xtmp   1   ENDIF    RETURN  y END");
-a[42] = new Array("./Interpolation/inquad.html", "inquad.pro", "", "    NAME:inquad     PURPOSE: to find if an  x y  point is in a quadrilateral  x1 x2 x3 x4      CATEGORY:grid manipulation     CALLING SEQUENCE:         res   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4      INPUTS:         x y: the coordinates of the point we want to know where it       is  Must be a scalar if  onsphere activated else can be scalar       or array           x1  y1  x2  y2  x3  y3  x4  y4: the coordinates of the       quadrilateral given in the CLOCKWISE order  Scalar or array      KEYWORD PARAMETERS:         DOUBLE: use double precision to perform the computation          ONSPHERE: to specify that the quadilateral are on a sphere and      that teir coordinates are longitude latitude coordinates  In this      case  est west periodicity  poles singularity and other pbs      related to longitude latitude coordinates are managed      automatically          ZOOMRADIUS:the zoom  circle centred on the  x y  with a radius of      zoomradius degree where we look for the the quadrilateral which     contains the  x y  point  used for the satellite projection      when  onsphere is activated  Default is 4 and seems to be the      minimum which can be used  Can be increase if the cell size is      larger than 5 degrees             NOPRINT: to suppress the print messages      OUTPUTS:        res  a n element vector  Where n is the number of elements of      x  res i j means that the point number i is located in the      quadrilateral number j with  0   j   n_elements x0 1      COMMON BLOCKS:none     SIDE EFFECTS:     RESTRICTIONS: I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested      EXAMPLE:           x   1 1  2  6  7  3          y   1 1  3  3  4  7          x1   1 0 4 2          y1   1 1 4 8          x2   1 1 6 4          y2   1 5 6 8          x3   1 3 8 4          y3   1 4 4 6          x4   1 2 6 2          y4   1 0 2 6          splot   0 10   0 10  xstyle   1  ystyle   1 nodata         for i 0 2 do oplot   x4 i x1 i x2 i x3 i x4 i y4 i y1 i y2 i y3 i y4 i          oplot  x  y  color   20  psym   1  thick   2         print  inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4           On a sphere see clickincell pro      MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on Convert_clic_ij pro written by Gurvan Madec      FUNCTION inquad  x  y  x1  y1  x2  y2  x3  y3  x4  y4  ONSPHERE   onsphere   DOUBLE   double  ZOOMRADIUS   zoomradius  NOPRINT   noprint  NEWCOORD   newcoord       ntofind   n_elements x    nquad   n_elements x2      IF keyword_set onsphere  THEN BEGIN   save the inputs parameters     xin   x     yin   y     x1in   x1     y1in   y1     x2in   x2     y2in   y2     x3in   x3     y3in   y3     x4in   x4     y4in   y4   for map_set     x   x MOD 360     x1   x1 MOD 360     x2   x2 MOD 360     x3   x3 MOD 360     x4   x4 MOD 360   save  map      save    map: map  x: x  y: y  z: z  p: p    do a satellite projection      IF NOT keyword_set zoomradius  THEN zoomradius   4     map_set  y 0  x 0  0   satellite  sat_p    1 zoomradius 20 6371 229  0  0   noerase   iso   noborder   use normal coordinates to reject cells which are out of the projection      tmp    convert_coord x  y   DATA   TO_NORMAL  DOUBLE   double       tmp1   convert_coord x1  y1   DATA   TO_NORMAL  DOUBLE   double       tmp2   convert_coord x2  y2   DATA   TO_NORMAL  DOUBLE   double       tmp3   convert_coord x3  y3   DATA   TO_NORMAL  DOUBLE   double       tmp4   convert_coord x4  y4   DATA   TO_NORMAL  DOUBLE   double     remove cell which have one corner with coordinates equal to NaN     test   finite tmp1 0   tmp1 1   tmp2 0   tmp2 1                         tmp3 0   tmp3 1   tmp4 0   tmp4 1        good   where temporary test  EQ 1        IF good 0  EQ  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   The point is out of the cells    restore the input parameters       x   temporary xin        y   temporary yin        x1   temporary x1in        y1   temporary y1in        x2   temporary x2in        y2   temporary y2in        x3   temporary x3in        y3   temporary y3in        x4   temporary x4in        y4   temporary y4in    restore old  map         map   save map        x   save x        y   save y        z   save z        p   save p       RETURN    1     ENDIF       x    tmp 0      y    tmp 1      x1   tmp1 0  good      y1   tmp1 1  good      x2   tmp2 0  good      y2   tmp2 1  good      x3   tmp3 0  good      y3   tmp3 1  good      x4   tmp4 0  good      y4   tmp4 1  good        tmp1    1   tmp2    1   tmp3    1   tmp4    1   remove cells which are obviously bad      test    x1 GT x AND x2 GT x AND x3 GT x AND x4 GT x          OR  x1 LT x AND x2 LT x AND x3 LT x AND x4 LT x          OR  y1 GT y AND y2 GT y AND y3 GT y AND y4 GT y          OR  y1 LT y AND y2 LT y AND y3 LT y AND y4 LT y      good2   where temporary test  EQ 0        IF good2 0  EQ  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   The point is out of the cells    restore the input parameters       x   temporary xin        y   temporary yin        x1   temporary x1in        y1   temporary y1in        x2   temporary x2in        y2   temporary y2in        x3   temporary x3in        y3   temporary y3in        x4   temporary x4in        y4   temporary y4in    restore old  map         map   save map        x   save x        y   save y        z   save z        p   save p       RETURN    1     ENDIF       nquad   n_elements good2       x1   x1 good2      y1   y1 good2      x2   x2 good2      y2   y2 good2      x3   x3 good2      y3   y3 good2      x4   x4 good2      y4   y4 good2    ENDIF       the point is inside the quadilateral if test eq 1   with test equal to:       test    x x1 y2 y1  GE  x2 x1 y y1             x x2 y3 y2  GT  x3 x2 y y2             x x3 y4 y3  GT  x4 x3 y y3             x x4 y1 y4  GE  x1 x4 y y4       computation of test without any do loop for ntofind points  x y  and   nquad quadilateral x1 x2 x3 x4 y1 y2 y3 y4    test dimensions are  ntofind  nquad    column i of test corresponds to the intersection of point i with all   quadirlateral     row j of test corresponds to all the points localized in cell j    test        x x1     x replicate 1  nquad replicate 1  ntofind x1       y2 y1     replicate 1  ntofind y2 y1      GE  x2 x1    GE  replicate 1  ntofind x2 x1       y y1     y replicate 1  nquad replicate 1  ntofind y1      test   temporary test       x x2     x replicate 1  nquad replicate 1  ntofind x2       y3 y2     replicate 1  ntofind y3 y2      GE  x3 x2    GE  replicate 1  ntofind x3 x2       y y2     y replicate 1  nquad replicate 1  ntofind y2      test   temporary test       x x3     x replicate 1  nquad replicate 1  ntofind x3       y4 y3     replicate 1  ntofind y4 y3      GE  x4 x3    GE  replicate 1  ntofind x4 x3       y y3     y replicate 1  nquad replicate 1  ntofind y3      test   temporary test       x x4     x replicate 1  nquad replicate 1  ntofind x4       y1 y4     replicate 1  ntofind y1 y4      GE  x1 x4    GE  replicate 1  ntofind x1 x4       y y4     y replicate 1  nquad replicate 1  ntofind y4      check test if ntofind gt 1   if ntofind gt 1  each point must be localised in one uniq cell    IF ntofind GT 1 THEN BEGIN   each column of test must have only 1 position equal to one     chtest   total test  2    points out of the cells     IF  where chtest EQ 0 0  NE  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   Points number  strjoin strtrim where chtest EQ 0  1      are out of the grid        stop     ENDIF   points in more than one cell     IF  where chtest GT 1 0  NE  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   Points number  strjoin strtrim where chtest GT 1  1      are in more than one cell        stop     ENDIF   ENDIF   find the points for which test eq 1   found   where temporary test  EQ 1    if ntofind eq 1  the point may be localised in more than one grid   cell ou may also be out of the cells   IF ntofind EQ 1 THEN BEGIN     CASE 1 OF       found 0  EQ  1:BEGIN         IF NOT keyword_set noprint  THEN print   The point is out of the cells          IF keyword_set onsphere  THEN BEGIN   restore old  map             map   save map            x   save x            y   save y            z   save z            p   save p         ENDIF         return    1       END        n_elements found  GT ntofind:BEGIN         IF NOT keyword_set noprint  THEN print   The point is in more than one cell        END        ELSE:     ENDCASE   ENDIF ELSE BEGIN   if ntofind GT 1  found must be sorted    i position of found  this corresponds to one x y point     forsort   found MOD ntofind   j position of found  this corresponds to cell in which is one x y   point     found   temporary found ntofind   found must be sorted accordind to forsort     found   found sort forsort    ENDELSE     IF keyword_set onsphere  THEN BEGIN     IF arg_present newcoord  THEN BEGIN       newcoord    x1 found  y1 found                         x2 found  y2 found                         x3 found  y3 found                         x4 found  y4 found                         x  y      ENDIF       found   good good2 found    restore the input parameters     x   temporary xin      y   temporary yin      x1   temporary x1in      y1   temporary y1in      x2   temporary x2in      y2   temporary y2in      x3   temporary x3in      y3   temporary y3in      x4   temporary x4in      y4   temporary y4in    restore old  map       map   save map      x   save x      y   save y      z   save z      p   save p   ENDIF     RETURN  found END");
-a[43] = new Array("./Interpolation/inrecgrid.html", "inrecgrid.pro", "", "    NAME: inrecgrid     PURPOSE: given   a list of points   x y  position                      the x and y limits of a rectangular grid            find in which cell is located each given point      CATEGORY: no DO loop  use the wonderfull value_locate function      CALLING SEQUENCE:res   inrecgrid xin  yin  left  bottom      INPUTS:         x1d: a 1d array  the x position on the points      y1d: a 1d array  the y position on the points      left: a 1d  monotonically increasing array  the position of the       left  border of each cell       bottom: a 1d  monotonically increasing array  the position of the       bottom  border of each cell      OPTIONAL INPUTS:     KEYWORD PARAMETERS:          output2d: to get the output as a 2d array  2 n_elements x1d       with res 0  the x index accoring to the 1d array defined by      left and res 1  the y index accoring to the 1d array defined by      bottom         checkout rbgrid ubgrid  specify the right and upper bondaries of      the grid and check if some points are out      OUTPUTS:the index on the cell accoring to the 2d array defined by   left and bottom      OPTIONAL OUTPUTS:     COMMON BLOCKS: no     SIDE EFFECTS:     RESTRICTIONS:     PROCEDURE:     EXAMPLE:      IDL  a indgen 5     IDL  b indgen 7     IDL  r inrecgrid 0 25 3 25 2 4 25 2 8 1 4 a b     IDL  print  r              20          13           7    IDL  r inrecgrid 0 25 3 25 2 4 25 2 8 1 4 a a 1 b b 1 output2d     IDL  print  r          0 00000      4 00000          3 00000      2 00000          2 00000      1 00000       MODIFICATION HISTORY:              S  Masson  smasson lodyc jussieu fr                         July 3rd  2002                        October 3rd  2003: use value_locate    FUNCTION inrecgrid  x1d  y1d  left  bottom  output2d   output2d  checkout   checkout     ncellx   n_elements left    ncelly   n_elements bottom      xpos   value_locate left  x1d    ypos   value_locate bottom  y1d      IF n_elements checkout  EQ 2 THEN BEGIN     out   where x1d GT checkout 0      IF out 0  NE  1 THEN xpos out     1     out   where y1d GT checkout 1      IF out 0  NE  1 THEN ypos out     1   ENDIF     IF keyword_set output2d  THEN return   transpose xpos  transpose ypos      IF NOT keyword_set checkout  THEN RETURN  xpos ncellx ypos     res   xpos ncellx ypos   out   where xpos EQ  1 OR ypos EQ  1    IF out 0  NE  1 THEN res out     1       RETURN  res  END");
-a[44] = new Array("./Interpolation/ll_narcs_distances.html", "ll_narcs_distances.pro", "", "    NAME:  LL_NARCS_DISTANCES     PURPOSE:    This function returns the longitude and latitude  lon  lat  of  a point a given arc distance  pi  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   two_by_two   IDL  earthradius   6378206 4d0  IDL  res   ll_narcs_distances lon0  lat0  dist earthradius  azi   degrees   IDL  print  reform res 0            10 000000       60 000000       280 00000  IDL  print  reform res 1               1 1999280e 15       10 000000       45 000000     MODIFICATION HISTORY:         Based on the IDL function ll_arc_distance pro v 1 11 2003 02 03    Sebastien Masson  smasson lodyc jussieu fr                     August 2005      Return the  lon  lat  of the point a given arc distance   pi   arc_dist   pi    and azimuth  az  from lon_lat0    FUNCTION LL_NARCS_DISTANCES  lon0  lat0  arc_dist  az  DEGREES   degs     IF n_elements lon0  NE n_elements lat0        OR n_elements lon0  NE n_elements arc_dist        OR n_elements lon0  NE n_elements az  THEN return   1    cdist   cos arc_dist        Arc_Dist is always in radians    sdist   sin arc_dist     if keyword_set degs  then s    dpi 180 0 else s   1 0d0    ll   lat0    s               To radians   sinll1   sin ll    cosll1   cos ll    azs   az    s   phi   asin sinll1   cdist   cosll1   sdist   cos azs    ll   lon0    s               To radians   lam   ll   atan sdist   sin azs                      cosll1   cdist   sinll1   sdist   cos azs     zero   where arc_dist eq 0  count    IF count NE 0 THEN BEGIN      lam zero    lon0 zero      phi zero    lat0 zero    ENDIF     if keyword_set degs  then return  transpose lam   phi    s     ELSE return  transpose lam   phi   end  ");
-a[45] = new Array("./Interpolation/map_npoints.html", "map_npoints.pro", "", "    NAME:  Map_nPoints     PURPOSE:  Return the distance in meter between all np0 points P0 and all         np1 points P1 on a sphere  If keyword  TWO_BY_TWO is given then         returns the distances between number n of P0 points and number         n of P1 points  in that case  np0 and np1 must be equal          Same as map_2points with the meter parameter but for n points         without do loop      CATEGORY:  Maps      CALLING SEQUENCE:  Result   Map_nPoints lon0  lat0  lon1  lat1      INPUTS:  Lon0  Lat0   np0 elements vector  longitudes and latitudes of  np0 points P0   Lon1  Lat1   np1 elements vector  longitude and latitude of  np1 points P1      KEYWORD PARAMETERS:       AZIMUTH: A named variable that will receive the azimuth of the great         circle  connecting the two points  P0 to P1      MIDDLE: to get the longitude latitude of the middle point betwen P0 and P1      RADIANS   if set  inputs and angular outputs are in radians  otherwise  degrees      RADIUS: If given  return the distance between the two points  calculated using the given radius          Default value is the earth radius : 6378206 4d0     TWO_BY_TWO:If given then Map_nPoints returns the distances between         number n of P0 points and number n of P1 points  in that case          np0 and np1 must be equal      OUTPUTS:         An  np0 np1  array giving the distance in meter between np0         points P0 and np1 points P1  Element  i j  of the ouput is the         distance between element P0 i  and P1 j          If keyword  TWO_BY_TWO is given then Map_nPoints returns         an np element vector giving the distance in meter between P0 i          and P1 i   in that case  we have np0   np1   np          if  MIDDLE see this keyword      EXAMPLES:  IDL  print     map_npoints 105 15 1 40 02 1 0 07 100 50 51 30 20 0          7551369 3       5600334 8         12864354        10921254          14919237        5455558 8    IDL  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   IDL  help  dist  azi  DIST            DOUBLE      Array 3  3   AZI             DOUBLE      Array 3  3   IDL  print  dist 4 lindgen 3  azi 4 lindgen 3          2226414 0       4957944 5       10018863          90 000000       64 494450   4 9615627e 15  IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   two_by_two   IDL  help  dist  azi  DIST            DOUBLE      Array 3   AZI             DOUBLE      Array 3   IDL  print  dist  azi         2226414 0       4957944 5       10018863          90 000000       64 494450   4 9615627e 15  IDL  print  map_2points lon0 0  lat0 0  lon1 0  lat1 0          20 000000       90 000000  IDL  print  map_npoints lon0 0  lat0 0  lon1 0  lat1 0  azi azi 6378206 4d0    dtor  azi         20 000000         90 000000    IDL  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  mid   map_npoints lon0  lat0  lon1  lat1   middle   two_by_two   IDL  print  reform mid 0  reform mid 1          0 0000000       40 000000       190 00000         0 0000000   1 5902773e 15       90 000000  IDL  print   map_2points lon0 0  lat0 0  lon1 0  lat1 0  npath   3  1          0 0000000       0 0000000  IDL  print   map_2points lon0 1  lat0 1  lon1 1  lat1 1  npath   3  1          40 000000   1 5902773e 15  IDL  print   map_2points lon0 2  lat0 2  lon1 2  lat1 2  npath   3  1          190 00000       90 000000     MODIFICATION HISTORY:         Based on the IDL function map_2points pro v 1 6 2001 01 15    Sebastien Masson  smasson lodyc jussieu fr                     October 2003   Function Map_npoints  lon0  lat0  lon1  lat1  azimuth   azimuth        RADIANS   radians  RADIUS   radius  MIDDLE   middle  TWO_BY_TWO   two_by_two    COMPILE_OPT idl2   ON_ERROR  2                     return to caller    IF  N_PARAMS  LT 4  THEN       MESSAGE   Incorrect number of arguments     np0   n_elements lon0     IF n_elements lat0  NE np0 THEN       MESSAGE   lon0 and lat0 must have the same number of elements    np1   n_elements lon1     IF n_elements lat1  NE np1 THEN       MESSAGE   lon1 and lat1 must have the same number of elements    if keyword_set two_by_two  AND np0 NE np1 then       MESSAGE   When using two_by_two keyword  P0 and P1 must have the same number of elements     mx   MAX ABS lat0  lat1    pi2    dpi 2   IF  mx GT  KEYWORD_SET radians    pi2 : 90  THEN       MESSAGE   Value of Latitude is out of allowed range     k   KEYWORD_SET radians    1 0d0 :  dpi 180 0  Earth equatorial radius  meters  Clarke 1866 ellipsoid   r_sphere    n_elements RADIUS  NE 0   RADIUS : 6378206 4d0      coslt1   cos k lat1    sinlt1   sin k lat1    coslt0   cos k lat0    sinlt0   sin k lat0      IF np0 EQ np1 AND np1 EQ 1 THEN two_by_two   1     if NOT keyword_set two_by_two  THEN BEGIN      coslt1   replicate 1 0d0  np0 temporary coslt1      sinlt1   replicate 1 0d0  np0 temporary sinlt1      coslt0   temporary coslt0 replicate 1 0d0  np1      sinlt0   temporary sinlt0 replicate 1 0d0  np1    ENDIF      if keyword_set two_by_two  THEN BEGIN      cosl0l1   cos k lon1 lon0      sinl0l1   sin k lon1 lon0    ENDIF ELSE BEGIN      cosl0l1   cos k replicate 1 0d0  np0 lon1 lon0 replicate 1 0d0  np1      sinl0l1   sin k replicate 1 0d0  np0 lon1 lon0 replicate 1 0d0  np1    ENDELSE     cosc   sinlt0   sinlt1   coslt0   coslt1   cosl0l1  Cos of angle between pnts   Avoid roundoff problems by clamping cosine range to  1 1    cosc    1 0d0   cosc   1 0d0     if arg_present azimuth  OR keyword_set middle  then begin     sinc   sqrt 1 0d0   cosc cosc      bad   where abs sinc  le 1 0e 7      IF bad 0  NE  1 THEN sinc bad    1     cosaz    coslt0   sinlt1   sinlt0 coslt1 cosl0l1    sinc      sinaz   sinl0l1 coslt1 sinc     IF bad 0  NE  1 THEN BEGIN        sinc bad    0 0d0       sinaz bad    0 0d0       cosaz bad    1 0d0     ENDIF   ENDIF     IF keyword_set middle  then BEGIN      s0   0 5d0   acos cosc         coss   cos s0      sins   sin s0            lats   asin sinlt0   coss   coslt0   sins   cosaz    k     lons   atan sins   sinaz  coslt0   coss   sinlt0   sins   cosaz    k       if keyword_set two_by_two  THEN BEGIN        return  transpose lon0    lons   lats      ENDIF ELSE BEGIN        return     lon0 replicate 1 0d0  np1    lons   lats        ENDELSE      ENDIF     if arg_present azimuth  then begin     azimuth   atan sinaz  cosaz      IF k NE 1 0d0 THEN azimuth   temporary azimuth    k    ENDIF  return  acos cosc    r_sphere   end");
-a[46] = new Array("./Interpolation/neighbor.html", "neighbor.pro", "", "    NAME:  neighbor     PURPOSE:  find the closetest point of  P0  within a list of np1 points  P1 Which can be on a sphere      CATEGORY:  Maps      CALLING SEQUENCE:  Result   neighbor lon0  lat0  lon1  lat1      INPUTS:  Lon0  Lat0   scalar  longitudes and latitudes of point P0    Lon1  Lat1   np1 elements vector  longitude and latitude of  np1 points P1      KEYWORD PARAMETERS:     RADIANS   if set  inputs and angular outputs are in radians  otherwise  degrees      DISTANCE   dis  to get back the distances between P0 and the np1     points P1 in the variable dis       SPHERE to activate if points are located on a sphere      OUTPUTS:         index giving the P1 index  point that is the closetest point         of  P0      EXAMPLES:         IDL  print  neighbor 105 15 40 02 0 07 100 50 51 30 20 0                 distance dis                     0         IDL  print  dis               105 684      206 125      160 228     MODIFICATION HISTORY:    Sebastien Masson  smasson lodyc jussieu fr                     October 2003   FUNCTION neighbor  p0lon  p0lat  neighlon  neighlat  sphere   sphere  distance   distance  radians   radians     somme checks   IF  n_elements p0lon  NE 1 THEN MESSAGE   Sorry p0lon must be a scalar    p0lon   p0lon 0    IF  n_elements p0lat  NE 1 THEN MESSAGE   Sorry p0lat must be a scalar    p0lat   p0lat 0    nneig   n_elements neighlon     IF  n_elements neighlat  NE nneig  THEN       MESSAGE   neighlon and neighlat must have the same number of elements    distance between P0 and the others points   IF keyword_set sphere  THEN BEGIN     IF sphere NE 1 THEN radius   sphere     distance   Map_nPoints p0lon  p0lat  neighlon  neighlat                            radius   radius  radians   radians    ENDIF ELSE BEGIN      distance    neighlon p0lon 2 neighlat p0lat 2     IF arg_present distance  THEN distance   sqrt distance    ENDELSE   RETURN  where distance EQ min distance  END");
-a[47] = new Array("./Interpolation/quadrilateral2square.html", "quadrilateral2square.pro", "", "    NAME:quadrilateral2square     PURPOSE:warm  or map  an arbitrary quadrilateral onto a unit square    according to the 4 point correspondences:          x0 y0     0 0           x1 y1     1 0           x2 y2     1 1           x3 y3     0 1    This is the inverse function of square2quadrilateral pro   The mapping is done using perspective transformation which preserve   lines in all orientations and permit quadrilateral to quadrilateral   mappings  see ref  bellow      CATEGORY:image grid manipulation     CALLING SEQUENCE:         res   square2quadrilateral x0 y0 x1 y1 x2 y2 x3 y3 xin yin       INPUTS:         x0 y0 x1 y1 x2 y2 x3 y3 the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order          xin yin:the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array      KEYWORD PARAMETERS:         DOUBLE: use double precision to perform the computation      OUTPUTS:          2 n  array: the new coodinates  xout  yout  of the  xin yin        point s  after mapping         If xin is a scalar  then n is equal to the number of elements of       x0  If xin is an array   then n is equal to the number of       elements of xin      COMMON BLOCKS:none     SIDE EFFECTS:     RESTRICTIONS: I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested      EXAMPLE:     IDL  splot 0 5 0 3 nodata xstyle 1 ystyle 1   IDL  tracegrille  findgen 11 1  findgen 11 1 color indgen 12 20   IDL  xin    findgen 11 1 replicate 1  11    IDL  yin   replicate 1  11 findgen 11 1    IDL  out   square2quadrilateral 2 1 3 0 5 1 2 3  xin  yin    IDL  tracegrille  reform out 0 11 11  reform out 1 11 11 color indgen 12 20     IDL  inorg quadrilateral2square 2 1 3 0 5 1 2 3 out 0 out 1    IDL  tracegrille  reform inorg 0 11 11  reform inorg 1 11 11 color indgen 12 20     MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on  Digital Image Warping  by G  Wolberg        IEEE Computer Society Press  Los Alamitos  California        Chapter 3  see p 52 56                 FUNCTION quadrilateral2square  x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in  xxin  yyin  PERF   perf   tempsone   systime 1      Warning  wrong definition of  x2 y2  and  x3 y3  at the bottom of   page 54 of Wolberg s book  see figure 3 7 page 56 for the good   definition      IF keyword_set double  THEN BEGIN     x0   double x0in      x1   double x1in      x2   double x2in      x3   double x3in      y0   double y0in      y1   double y1in      y2   double y2in      y3   double y3in      xin   double xxin      yin   double yyin    ENDIF ELSE BEGIN     x0   float x0in      x1   float x1in      x2   float x2in      x3   float x3in      y0   float y0in      y1   float y1in      y2   float y2in      y3   float y3in      xin   float xxin      yin   float yyin    ENDELSE     get the matrix A     a   square2quadrilateral x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in      compute the adjoint matrix      IF keyword_set double  THEN adj   dblarr 9  n_elements x0      ELSE adj   fltarr 9  n_elements x0      adj 0      a 4            a 7   a 5      adj 1      a 7   a 2   a 1      adj 2      a 1   a 5   a 4   a 2      adj 3      a 6   a 5   a 3      adj 4      a 0            a 6   a 2      adj 5      a 3   a 2   a 0   a 5      adj 6      a 3   a 7   a 6   a 4      adj 7      a 6   a 1   a 0   a 7      adj 8      a 0   a 4   a 3   a 1          IF n_elements xin  EQ 1 THEN BEGIN     xin   replicate xin  n_elements x0       yin   replicate yin  n_elements x0     ENDIF     compute xprime  yprime and wprime     IF n_elements x0  EQ 1 THEN BEGIN     wpr   1 adj 6 xin   adj 7 yin   adj 8    ENDIF ELSE BEGIN     wpr   1 adj 6   xin   adj 7   yin   adj 8      ENDELSE   xpr   xin wpr   ypr   yin wpr     IF keyword_set double  THEN res   dblarr 2  n_elements xin      ELSE res   fltarr 2  n_elements xin      IF n_elements x0  EQ 1 THEN BEGIN     res 0      xpr adj 0    ypr adj 1   wpr adj 2      res 1      xpr adj 3    ypr adj 4   wpr adj 5    ENDIF ELSE BEGIN     res 0      xpr adj 0      ypr adj 1     wpr adj 2        res 1      xpr adj 3      ypr adj 4     wpr adj 5      ENDELSE     IF keyword_set perf  THEN print   time quadrilateral2square  systime 1 tempsone    RETURN  res END");
-a[48] = new Array("./Interpolation/spl_fstdrv.html", "spl_fstdrv.pro", "", "          NAME:spl_fstdrv     PURPOSE: SPL_FSTDRV returns the values of the first derivative of   the interpolating function at the points X2i  it is a double   precision array      Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that interpolated value are also in ascending order     CATEGORY:     CALLING SEQUENCE: y2    spl_fstdrv x  y  yscd  x2      INPUTS:        x: An n element  at least 2  input vector that specifies the      tabulate points in ascending order         y: f x    y  An n element input vector that specifies the values      of the tabulated function F Xi  corresponding to Xi         yscd: The output from SPL_INIT for the specified X and Y         x2: The input values for which the first derivative values are      desired  X can be scalar or an array of values     KEYWORD PARAMETERS: none     OUTPUTS:         y2: f x2    y2       COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:       EXAMPLE:     MODIFICATION HISTORY:    Sebastien Masson  smasson lodyc jussieu fr : May 2005         FUNCTION spl_fstdrv  x  y  yscd  x2     compute the first derivative of the spline function      nx   n_elements x    ny   n_elements y    x must have at least 2 elements   IF nx LT 2 THEN stop      y must have the same number of elements than x   IF nx NE ny THEN stop   define loc in a way that     if loc i  eq  1   :                 x2 i    x nx 1     else              :    x loc i   extrapolation   use x nx 2  and x nx 1  even if x2 i    x nx 1    extrapolation   loc   0   temporary loc     nx 2     distance between to consecutive x   deltax   x loc 1 x loc    distance between to consecutive y   deltay   y loc 1 y loc    relative distance between x2 i  and x loc i 1    a    x loc 1 x2 deltax   relative distance between x2 i  and x loc i    b   1 0d   a   compute the first derivative on x  see numerical recipes Chap 3 3    yfrst   temporary deltay deltax         1 0d 6 0d    3 0d a a   1 0d    deltax   yscd loc          1 0d 6 0d    3 0d b b   1 0d    deltax   yscd loc 1    beware of the computation precision     force near zero values to be exactly 0 0   zero   where abs yfrst  LT 1 e 10    IF zero 0  NE  1 THEN yfrst zero    0 0d    RETURN  yfrst END ");
-a[49] = new Array("./Interpolation/spl_incr.html", "spl_incr.pro", "", "          NAME:spl_incr     PURPOSE:     Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that interpolated values are also monotonically increasing      CATEGORY:     CALLING SEQUENCE: y2    spl_incr x  y  x2      INPUTS:        x: An n element  at least 2  input vector that specifies the      tabulate points in a strict ascending order         y: f x    y  An n element input vector that specifies the values      of the tabulated function F Xi  corresponding to Xi  As f is      supposed to be monotonically increasing  y values must be      monotonically increasing  y can have equal consecutive values         x2: The input values for which the interpolated values are      desired  Its values must be strictly monotonically increasing       KEYWORD PARAMETERS:        YP0: The first derivative of the interpolating function at the      point X0  If YP0 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline         YPN_1: The first derivative of the interpolating function at the      point Xn 1  If YPN_1 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline       OUTPUTS:         y2: f x2    y2  Double precision array     COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:     It might be possible that y2 i 1 y2 i  has very small negative     values  amplitude smaller than 1 e 6      EXAMPLE:         n   100L       x    dindgen n 2       y   abs randomn 0  n        y n 2:n 2 1    0        y n n 3    0        y n n 6:n n 6 5    0        y   total y   cumulative   double        x2   dindgen n 1 2        n2   n_elements x2        print  min y 1:n 1 y 0:n 2  LT 0       y2   spl_incr  x  y  x2        splot  x  y  xstyle   1  ystyle   1  ysurx 25  petit    1  2  1   land       oplot  x2  y2  color   100       c   y2 1:n2 1    y2 0:n2 2        print  min c  LT 0        print  min c  max   ma  ma       splot c xstyle 1 ystyle 1  yrange 01 05  ysurx 25  petit    1  2  2   noerase       oplot 0  n_elements c   0  0  linestyle   1     MODIFICATION HISTORY:    Sebastien Masson  smasson lodyc jussieu fr : May Dec 2005         FUNCTION pure_concave  x1  x2  y1  y2  der2  x   X n type   xx    double x double x1 double x2 double x1    f    double x2 double x1 double y2 double y1    n   der2 temporary f    res   xx n      IF check_math  GT 0 THEN BEGIN         zero   where abs res  LT 1 e 10          IF zero 0  NE  1 THEN res zero    0 0d     END   res   temporary res double y2 double y1 y1      IF array_equal sort res  lindgen n_elements res    NE 1 THEN stop   RETURN  res END  FUNCTION pure_convex  x1  x2  y1  y2  der2  x   1 1 X n type   xx   1 0d    double x double x1 double x2 double x1    f    double x2 double x1 double y2 double y1    n   der2 temporary f    res   xx n      IF check_math  GT 0 THEN BEGIN         zero   where abs res  LT 1 e 10          IF zero 0  NE  1 THEN res zero    0 0d     END   res   1 0d   temporary res    res   temporary res y2 y1 y1      IF array_equal sort res  lindgen n_elements res    NE 1 THEN stop   RETURN  res END  FUNCTION spl_incr  x  y  x2  YP0   yp0  YPN_1   ypn_1       check and initialisation       nx   n_elements x    ny   n_elements y    nx2   n_elements x2    x must have at least 2 elements   IF nx LT 2 THEN stop    y must have the same number of elements than x   IF nx NE ny THEN stop   x be monotonically increasing   IF min x 1:nx 1 x 0:nx 2  LE 0 THEN stop    x2 be monotonically increasing   IF N_ELEMENTS X2  GE 2 THEN     IF min x2 1:nx2 1 x2 0:nx2 2   LE 0 THEN stop    y be monotonically increasing   IF min y 1:ny 1 y 0:ny 2  LT 0 THEN stop      first check: check if two consecutive values are equal     bad   where y 1:ny 1 y 0:ny 2  EQ 0  cntbad    IF cntbad NE 0 THEN BEGIN   define the results: y2       y2   dblarr nx2    define xinx2: see help of value_locate    if xinx2 i  eq  1   :                 x bad i    x2 nx2 1     else                : x2 xinx2 i    x2 nx2 1     else                : x2 xinx2 i   we have middle pieces for which    we force yp0   0 0d and ypn_1   0 0d       IF cntbad GT 1 THEN BEGIN   we take care of the piece located wetween bad ib 1  and bad ib          FOR ib   1  cntbad 1 DO BEGIN   if there is x2 values smaller that x bad ib  then the x2 values   located between bad ib 1  and bad ib  are  xinx2 ib 1 1:xinx2 ib            IF xinx2 ib  NE  1 THEN begin             y2 xinx2 ib 1 1   0                y i 1    y i      2  y  reach its minimum value between  x i  and x i 1            0  y i 1    0   y i      we do a first selection by looking for those points      loc   lindgen nx 1    maybebad   where yscd loc  LE 0 0d AND yscd loc 1  GE 0 0d  cntbad      IF cntbad NE 0 THEN BEGIN      mbbloc   loc maybebad       aaa    yscd mbbloc 1 yscd mbbloc 6 0d x mbbloc 1 x mbbloc      bbb   0 5d   yscd mbbloc      ccc   yifrst mbbloc      ddd   y mbbloc      definitive selection:   y  can become negative if and only if  2b 2   4 3a c   0   y  can become negative if and only if    b 2     3a c   0       delta   bbb bbb   3 0d aaa ccc       bad   where delta GT 0  cntbad        IF cntbad NE 0 THEN BEGIN       delta   delta bad        aaa   aaa bad        bbb   bbb bad        ccc   ccc bad        ddd   ddd bad        bad   maybebad bad    define xinx2_1: see help of value_locate    if xinx2_1 i  eq  1   :                   x bad i    x2 nx2 1     else                  : x2 xinx2_1 i    x2 nx2 1     else                  : x2 xinx2_2 i   y bad ib 1  then we cannot applay the method we want to   apply   we use then convex concave case by changing by hand the   value of yinfl and xinfl                   IF yzero GT y bad ib 1  THEN BEGIN                     yinfl   0 5d y bad ib 1 y bad ib                      xinfl   0 5d x bad ib 1 x bad ib                      GOTO  convexconcave                   ENDIF   define xinx2_3: see help of value_locate    if xinx2_3 ib  eq  1   :                x bad ib xzero   x2 nx2 1     else                   : x2 xinx2_3   we use then convex concave case by changing by hand the   value of yinfl and xinfl                   IF yzero lt y bad ib  THEN BEGIN                     yinfl   0 5d y bad ib 1 y bad ib                      xinfl   0 5d x bad ib 1 x bad ib                      GOTO  convexconcave                   ENDIF   define xinx2_3: see help of value_locate    if xinx2_3 ib  eq  1   :                x bad ib xzero   x2 nx2 1     else                   : x2 xinx2_3    x2 nx2 1     else                   : x2 xinx2_3    x bad ib xzero    x2 xinx3_2 1                    xinx2_3   value_locate x2  x bad ib xinfl                     IF xinx2_3 ge xinx2_1 ib 1 THEN BEGIN                     y2 xinx2_1 ib 1:xinx2_3                            pure_convex x bad ib  x bad ib xinfl                                          y bad ib  yinfl                                          yifrst bad ib                                          x2 xinx2_1 ib 1:xinx2_3                                         ENDIF                                   IF xinx2_2 ib  GE xinx2_3 1 THEN BEGIN                     y2 xinx2_3 1:xinx2_2 ib                            pure_concave x bad ib xinfl  x bad ib 1                                           yinfl  y bad ib 1                                           yifrst bad ib 1                                           x2 xinx2_3 1:xinx2_2 ib                    ENDIF                                 END               ENDCASE              END            ENDCASE         ENDIF       ENDFOR      ENDIF   ENDIF     RETURN  y2         END");
-a[50] = new Array("./Interpolation/spl_keep_mean.html", "spl_keep_mean.pro", "", "          NAME:spl_keep_mean     PURPOSE:     Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that integral of the interpolated values is the same as the   integral of the input values    for exemple to build daily data   from monthly mean and keep the monthly mean of the computed daily   data equa to the original values      CATEGORY:     CALLING SEQUENCE: y2    spl_keep_mean x  y  x2      INPUTS:        x: An n element  at least 2  input vector that specifies the      tabulate points in a strict ascending order         y: an array with one element less than x  y i  represents the      mean value between x i  and x i 1  if  GE0 is activated  y must      have positive values         x2: The input values for which the interpolated values are      desired  Its values must be strictly monotonically increasing       KEYWORD PARAMETERS:         GE0: to force that y2 is always GE than 0  In that case  y must      also be GE than 0         YP0: The first derivative of the interpolating function at the      point X0  If YP0 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline         YPN_1: The first derivative of the interpolating function at the      point Xn 1  If YPN_1 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline       OUTPUTS:         y2: the meean value between two consecutive values of x2  This      array has one element less than y2  y2 has double precision      COMMON BLOCKS: none     SIDE EFFECTS:       RESTRICTIONS:     It might be possible that y2 has very small negative values      amplitude smaller than 1 e 6         EXAMPLE:        12 monthly values of precipitations into daily values:        yr1   1990      yr2   1992      nyr   yr2 yr1 1      n1   12 nyr 1      x   julday 1 findgen n1  replicate 1  n1                  replicate yr1  n1  fltarr n1       n2   365 nyr   total leapyr yr1 indgen nyr    1      x2   julday replicate 1  n2  1 findgen n2                      replicate yr1  n2  fltarr n2       y   abs randomn 0  n1 1       y2   spl_keep_mean x  y  x2   ge0        print  min x  max   ma  ma      print  min x2  max   ma  ma      print  vairdate min x  max   ma  ma       print  total y x 1:n1 1 x 0:n1 2       print  total y2 x2 1:n2 1 x2 0:n2 2      MODIFICATION HISTORY:    Sebastien Masson  smasson lodyc jussieu fr : May 2005         FUNCTION spl_keep_mean  x  yin  x2  YP0   yp0  YPN_1   ypn_1  GE0   ge0       check and initialisation         nx   n_elements x    ny   n_elements yin    nx2   n_elements x2    x must have at least 2 elements   IF nx LT 2 THEN stop    x2 must have at least 2 elements   IF nx2 LT 2 THEN stop    x be monotonically increasing   IF min x 1:nx 1 x 0:nx 2  LE 0 THEN stop    x2 be monotonically increasing   IF min x2 1:nx2 1 x2 0:nx2 2   LE 0 THEN stop        compute the integral of y     if spl_keep_mean is called by the user  and not by itself  we must compute   the integral of y  yin must have one element less than x   IF nx NE ny 1 THEN stop   y   double yin double x 1:nx 1 x 0:nx 2    y    0 0d  temporary y    y   total temporary y   cumulative   double        compute the  spline  interpolation       IF keyword_set ge0  THEN BEGIN   if the want that the interpolated values are always   0  we must   have yin   0 0d     IF min yin  LT 0 THEN stop   call spl_incr     y2   spl_incr x  temporary y  x2  yp0   yp0  ypn_1   ypn_1    ENDIF ELSE BEGIN     yscd   spl_init x  y  yp0   yp0  ypn_1   ypn_1   double      y2   spl_interp x  y  temporary yscd  x2   double    ENDELSE                        Compute the derivative of y       yfrst    y2 1:nx2 1 y2 0:nx2 2 x2 1:nx2 1 x2 0:nx2 2    it can happen that we have very small negative values  1 e 6 for ex     yfrst   0 0d   temporary yfrst    RETURN  yfrst           END");
-a[51] = new Array("./Interpolation/square2quadrilateral.html", "square2quadrilateral.pro", "", "    NAME:square2quadrilateral     PURPOSE:warm  or map  a unit square onto an arbitrary quadrilateral   according to the 4 point correspondences:          0 0     x0 y0           1 0     x1 y1           1 1     x2 y2           0 1     x3 y3    The mapping is done using perspective transformation which preserve   lines in all orientations and permit quadrilateral to quadrilateral   mappings  see ref  bellow      CATEGORY:image grid manipulation     CALLING SEQUENCE:         res   square2quadrilateral x0 y0 x1 y1 x2 y2 x3 y3 xin yin       INPUTS:         x0 y0 x1 y1 x2 y2 x3 y3 the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order          xin yin:the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array      KEYWORD PARAMETERS:         DOUBLE: use double precision to perform the computation      OUTPUTS:          2 n  array: the new coodinates  xout  yout  of the  xin yin        point s  after mapping         If xin is a scalar  then n is equal to the number of elements of       x0  If xin is an array   then n is equal to the number of       elements of xin        If xin and yin are omited  square2quadrilateral returns the       matrix A which is used for the inverse transformation       COMMON BLOCKS:none     SIDE EFFECTS:     RESTRICTIONS: I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested      EXAMPLE:     IDL  splot 0 5 0 3 nodata xstyle 1 ystyle 1   IDL  tracegrille  findgen 11 1  findgen 11 1 color indgen 12 20   IDL  xin    findgen 11 1 replicate 1  11    IDL  yin   replicate 1  11 findgen 11 1    IDL  out   square2quadrilateral 2 1 3 0 5 1 2 3  xin  yin    IDL  tracegrille  reform out 0 11 11  reform out 1 11 11 color indgen 12 20     MODIFICATION HISTORY:        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on  Digital Image Warping  by G  Wolberg        IEEE Computer Society Press  Los Alamitos  California        Chapter 3  see p 52 56                 FUNCTION square2quadrilateral  x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in  xxin  yyin     Warning  wrong definition of  x2 y2  and  x3 y3  at the bottom of   page 54 of Wolberg s book  see figure 3 7 page 56 for the good   definition      IF keyword_set double  THEN BEGIN     x0   double x0in      x1   double x1in      x2   double x2in      x3   double x3in      y0   double y0in      y1   double y1in      y2   double y2in      y3   double y3in      IF arg_present xxin  THEN BEGIN       xin   double xxin        yin   double yyin      ENDIF   ENDIF ELSE BEGIN     x0   float x0in      x1   float x1in      x2   float x2in      x3   float x3in      y0   float y0in      y1   float y1in      y2   float y2in      y3   float y3in      IF arg_present xxin  THEN BEGIN       xin   float xxin        yin   float yyin      ENDIF   ENDELSE     IF keyword_set double  THEN a   dlbarr 8  n_elements x0      ELSE a   fltarr 8  n_elements x0       delx3   x0 x1 x2 x3   dely3   y0 y1 y2 y3     affinemap   where delx3 EQ 0 AND dely3 EQ 0    IF affinemap 0  NE  1 THEN BEGIN     xx0   x0 affinemap      xx1   x1 affinemap      xx2   x2 affinemap      yy0   y0 affinemap      yy1   y1 affinemap      yy2   y2 affinemap        a 0  affinemap    xx1 xx0     a 1  affinemap    xx2 xx1     a 2  affinemap    xx0     a 3  affinemap    yy1 yy0     a 4  affinemap    yy2 yy1     a 5  affinemap    yy0     a 6  affinemap    0     a 7  affinemap    0   ENDIF     projectivemap   where delx3 NE 0 OR dely3 NE 0    IF projectivemap 0  NE  1 THEN BEGIN     xx0   x0 projectivemap      xx1   x1 projectivemap      xx2   x2 projectivemap      xx3   x3 projectivemap      yy0   y0 projectivemap      yy1   y1 projectivemap      yy2   y2 projectivemap      yy3   y3 projectivemap            delx1   xx1 xx2     dely1   yy1 yy2     delx2   xx3 xx2     dely2   yy3 yy2     delx3   delx3 projectivemap      dely3   dely3 projectivemap        div   delx1 dely2 dely1 delx2     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     a13    delx3 dely2 dely3 delx2 div     a23    delx1 dely3 dely1 delx3 div       a 0  projectivemap    xx1 xx0 a13 xx1     a 1  projectivemap    xx3 xx0 a23 xx3     a 2  projectivemap    xx0     a 3  projectivemap    yy1 yy0 a13 yy1     a 4  projectivemap    yy3 yy0 a23 yy3     a 5  projectivemap    yy0     a 6  projectivemap    a13     a 7  projectivemap    a23   ENDIF         IF NOT arg_present xxin  THEN return  a     IF n_elements xin  EQ 1 THEN BEGIN     xin   replicate xin  n_elements x0       yin   replicate yin  n_elements x0     ENDIF     IF keyword_set double  THEN res   dblarr 2  n_elements xin      ELSE res   fltarr 2  n_elements xin    IF n_elements x0  EQ 1 THEN BEGIN     div   a 6 xin    a 7 yin    1     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     res 0       a 0 xin    a 1 yin    a 2 div     res 1       a 3 xin    a 4 yin    a 5 div   ENDIF ELSE BEGIN     div   a 6   xin  a 7   yin   1     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     res 0       a 0   xin    a 1   yin    a 2   div     res 1       a 3   xin    a 4   yin    a 5   div   ENDELSE     RETURN  res END");
-a[52] = new Array("./Interpolation/testinterp.html", "testinterp.pro", "", "PRO testinterp    method    bilinear     method    imoms3        jpia   300L   jpja   200L   torg   findgen jpia  jpja    xorg    20 d   360 d jpia dindgen jpia    yorg    89 d   178 d jpja 1 dindgen jpja      jpio   400L   jpjo   150L   xnew    0 d   360 d jpio dindgen jpio    ynew    89 5d   179 d jpjo 1 dindgen jpjo        outnorth   where ynew GT yorg jpja 2  noutn    outsouth   where ynew LT yorg 1  nouts     t2   fromreg method  torg  xorg  yorg  xnew  ynew     t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok1      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  torg2  xorg2  yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok2      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok3      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    t3   fromreg method  torg2  xorg2  yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok4     xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok5     t3   fromreg method  torg  xorg  yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok6    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok7  i   t3   fromreg method  torg  xorg  yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok8    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok9  i     t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok10    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok11  i   t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok12    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok13  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop    t3   fromreg method  torg2  xorg2  yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok14    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok15  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  torg2  xorg2  yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok16    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok17  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok18    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok19  i     xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok20    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok21  i     return end");
+a[32] = new Array("./Interpolation/angle.html", "angle.pro", "", "       file_comments north stereographic polar projection      keyword     DOUBLE use double precision  default is float       returns         gsinu gcosu : sinus and cosinus of the angle          gsinv gcosv   between north south direction          gsint gcost   and the j direction of the mesh      restrictions to compute the lateral boundary conditions  we assume   that:         1  the first line is similar to the second line              gcosu  0    gcosu  1                gsinu  0    gsinu  1          2  the grid follows OPA x periodicity rule  first column is       equal to the next to last column              gcosv 0      gcosv jpj 2                 gsinv 0      gsinv jpj 2           history               Original :  96 07  O  Marti                      98 06  G  Madec          Feb 2005: IDL adaptation S  Masson        FUNCTION fsnspp  plam  pphi  DOUBLE   double   IF keyword_set double  THEN BEGIN     a   2 d   tan   dpi 4 d    dpi 180 d pphi 2 d       x   cos   dpi 180 d plam     a     y   sin   dpi 180 d plam     a   ENDIF ELSE BEGIN     a   2    tan   pi 4     pi 180 float pphi 2        x   cos   pi 180 float plam      a     y   sin   pi 180 float plam      a       ENDELSE   RETURN   x:x  y:y  END        file_comments Compute angles between grid lines and direction of the North  fom angle F v 2 2 in OPA8 2       param fileocemesh  in required  a netcdf file that contains  at least :          glamu  gphiu: longitudes and latitudes at U points          glamv  gphiv: longitudes and latitudes at V points          glamf  gphif: longitudes and latitudes at F points      keyword IODIRECTORY the directory path where is located fileocemesh    keyword     DOUBLE use double precision  default is float        PRO angle  fileocemesh  gcosu  gsinu  gcosv  gsinv  gcost  gsint                IODIRECTORY   iodirectory  DOUBLE   double     0  read oceanic grid parameters         IF keyword_set IODIRECTORY  THEN BEGIN     IF  strpos iodirectory reverse_search  NE  strlen iodirectory 1  THEN         iodirectory   iodirectory    ENDIF ELSE iodirectory       fileoce   iodirectory fileocemesh     fileoce   findfile fileoce  count   okfile    IF okfile NE 1 THEN BEGIN     print   the file  fileoce  is not found  we stop      stop   ENDIF     cdfido   ncdf_open fileoce 0    ncdf_varget  cdfido   glamt  glamt   ncdf_varget  cdfido   glamu  glamu   ncdf_varget  cdfido   glamv  glamv   ncdf_varget  cdfido   glamf  glamf   ncdf_varget  cdfido   gphit  gphit   ncdf_varget  cdfido   gphiu  gphiu   ncdf_varget  cdfido   gphiv  gphiv   ncdf_varget  cdfido   gphif  gphif   ncdf_close  cdfido     glamt   reform glamt   over    glamu   reform glamu   over    glamv   reform glamv   over    glamf   reform glamf   over    gphit   reform gphit   over    gphiu   reform gphiu   over    gphiv   reform gphiv   over    gphif   reform gphif   over    jpj    size glamf   dimension 1      I  Compute the cosinus and sinus        computation done on the north stereographic polar plan         north pole direction   modulous  at t point    znpt   fsnspp  glamt  gphit  DOUBLE   double     glamt    1   gphit    1  free memory   znpt x     znpt x   znpt y     znpt y   znnpt   znpt x znpt x   znpt y znpt y       north pole direction   modulous  at u point    znpu   fsnspp  glamu  gphiu  DOUBLE   double     glamu    1   gphiu    1  free memory   znpu x     znpu x   znpu y     znpu y   znnpu   znpu x znpu x   znpu y znpu y       north pole direction   modulous  at v point    znpv   fsnspp  glamv  gphiv  DOUBLE   double     znpv00   znpv   znpv01   fsnspp  shift glamv  0  1  shift gphiv  0  1  DOUBLE   double     glamv    1   gphiv    1  free memory   znpv x     znpv x   znpv y     znpv y   znnpv   znpv x znpv x   znpv y znpv y       f point   znpf00   fsnspp  glamf  gphif  DOUBLE   double     znpf01   fsnspp  shift glamf  0  1  shift gphif  0  1  DOUBLE   double     znpf10   fsnspp  shift glamf  1  0  shift gphif  1  0  DOUBLE   double     glamf    1   gphif    1  free memory       j direction: v point segment direction  t point    zxvvt   znpv00 x   znpv01 x   zyvvt   znpv00 y   znpv01 y   zmnpvt   sqrt   temporary znnpt      zxvvt zxvvt   zyvvt zyvvt        znpv00    1  free memory   znpv01    1  free memory   IF keyword_set double  THEN zmnpvt   1 e 14   zmnpvt     ELSE zmnpvt   1 e 6   zmnpvt        j direction: f point segment direction  u point    zxffu   znpf00 x   znpf01 x   zyffu   znpf00 y   znpf01 y   zmnpfu   sqrt   temporary znnpu      zxffu zxffu   zyffu zyffu        znpf01    1  free memory   IF keyword_set double  THEN zmnpfu   1 e 14   zmnpfu     ELSE zmnpfu   1 e 6   zmnpfu        i direction: f point segment direction  v point    zxffv   znpf00 x   znpf10 x   zyffv   znpf00 y   znpf10 y    znpf00    1    znpf10    1  free memory   zmnpfv   sqrt   temporary znnpv      zxffv zxffv   zyffv zyffv        IF keyword_set double  THEN zmnpfv   1 e 14   zmnpfv     ELSE zmnpfv   1 e 6   zmnpfv        cosinus and sinus using scalar and vectorial products   gsint     znpt x zyvvt   znpt y zxvvt     zmnpvt   gcost     znpt x zxvvt   znpt y zyvvt     zmnpvt       cosinus and sinus using scalar and vectorial products   gsinu     znpu x zyffu   znpu y zxffu     zmnpfu   gcosu     znpu x zxffu   znpu y zyffu     zmnpfu       cosinus and sinus using scalar and vectorial products          caution  rotation of 90 degres    gsinv      znpv x zxffv   znpv y zyffv     zmnpfv   gcosv     znpv x zyffv   znpv y zxffv     zmnpfv     II  Geographic mesh               bad   where abs glamf shift glamf  0  1  LT 1 e 8          IF bad 0  NE  1 THEN BEGIN           gcosu bad    1            gsinu bad    0          ENDIF         bad   where abs gphif shift gphif  1  0  LT 1 e 8          IF bad 0  NE  1 THEN BEGIN           gcosv bad    1            gsinv bad    0          ENDIF     III  Lateral boundary conditions         gcost  0    gcost  1     gsint  0    gsint  1     gcosu  0    gcosu  1     gsinu  0    gsinu  1     gcosv 0      gcosv jpj 2      gsinv 0      gsinv jpj 2        RETURN END");
+a[33] = new Array("./Interpolation/clickincell.html", "clickincell.pro", "", "     file_comments click on a map and find in which cell the click was      categories finding where is a point on a grid      examples          res   clickincell        Click with the left button to select a cell  Clicking one more       time in the same cell remove the cell from the selection        Click on the right button to quit         keyword     CELLTYPE    T   W   U   V  or  F  This this the type of point       that is located in the center of the cell which the click is       located  default is T type of cell  with corner defined by F       points       keyword      DRAWCELL to draw the cell in which we clicked      keyword     COLOR  the color used to draw the cells  Clicking one more       time in the same cell will draw the cell with the white color       keyword      ORIGINAL to get the position of the cell regarding the original       grid  with no key_shift  ixminmesh  iyminmesh       keyword      IJ see outpus      keyword     _EXTRA to pass extra keywords to inquad and plot  when  drawcell       returns       the index of the selected cells regarding to the grid which       is in memory in the variable of the common  If  ij keyword is       activated give 2D array  2  n  which are the i j position of the       n selected cells        uses common pro      examples        IDL  plt  findgen jpi jpj nodata map 90 0 0 ortho     IDL  print  clickincell draw color 150 xy       history        Sebastien Masson  smasson lodyc jussieu fr         August 2003     FUNCTION clickincell  CELLTYPE   celltype  DRAWCELL   drawcell  COLOR   color  ORIGINAL   original  IJ   ij  _EXTRA   extra  common     initialization   cellnum    1L   selected   0     Cell list   get the grid parameter according to celltype   oldgrid   vargrid   IF NOT keyword_set celltype  THEN celltype    T    CASE strupcase celltype  OF      T :vargrid    F       W :vargrid    F       U :vargrid    V       V :vargrid    U       F :vargrid    T    ENDCASE   grille   1  glam  gphi   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz   vargrid   oldgrid   define the corner of the cells in the clockwise direction   IF keyword_set key_periodic  AND nx EQ jpi THEN BEGIN     x1   glam  0:ny 2      y1   gphi  0:ny 2      x2   glam  1:ny 1      y2   gphi  1:ny 1      x3   shift glam  1:ny 1   1  0      y3   shift gphi  1:ny 1   1  0      x4   shift glam  0:ny 2   1  0      y4   shift gphi  0:ny 2   1  0    ENDIF ELSE BEGIN     x1   glam 0:nx 2  0:ny 2      y1   gphi 0:nx 2  0:ny 2      x2   glam 0:nx 2  1:ny 1      y2   gphi 0:nx 2  1:ny 1      x3   glam 1:nx 1  1:ny 1      y3   gphi 1:nx 1  1:ny 1      x4   glam 1:nx 1  0:ny 2      y4   gphi 1:nx 1  0:ny 2    ENDELSE   glam    1   free memory   gphi    1   free memory     get mousse position on the reference map   cursor  x  y   data   up     while  mouse button ne 4  do BEGIN     IF finite x finite x  EQ 0 THEN GOTO  outwhile       case  mouse button of       1:BEGIN   What is the longitude          WHILE x GT  x range 1  DO x   x 360         WHILE x LT  x range 0  DO x   x 360         IF x GT  x range 1  THEN GOTO  outwhile         IF y GT  y range 1  THEN GOTO  outwhile         IF y LT  y range 0  THEN GOTO  outwhile           cell   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4                            onsphere  _extra   extra            IF cell 0  EQ  1 OR n_elements cell  GT 1 THEN GOTO  outwhile         cell   cell 0          already    where cellnum EQ cell 0          IF already EQ  1 THEN BEGIN           cellnum    cellnum  cell            selected    selected  1            already   n_elements selected 1          ENDIF ELSE selected already    1 selected already          IF keyword_set drawcell  THEN BEGIN           oplot   x1 cell  x2 cell  x3 cell  x4 cell  x1 cell                   y1 cell  y2 cell  y3 cell  y4 cell  y1 cell                  color   color selected already                   d n_colors   255 1 selected already                  _extra   extra         ENDIF       END       2:                          middle button       ELSE:     ENDCASE       get mousse position on the reference map outwhile:     cursor  x  y   data   up   ENDWHILE     good   where selected NE 0    IF good 0  EQ  1 THEN RETURN   1      cellnum   cellnum good      yy   cellnum nx 1 key_periodic nx EQ jpi    xx   cellnum MOD  nx 1 key_periodic nx EQ jpi      CASE strupcase celltype  OF      T :BEGIN       xx   xx firstx 1       yy   yy firsty 1     END      W :BEGIN       xx   xx firstx 1       yy   yy firsty 1     END      U :BEGIN       xx   xx firstx       yy   yy firsty 1     END      V :BEGIN       xx   xx firstx 1       yy   yy firsty     END      F :BEGIN       xx   xx firstx       yy   yy firsty     END   ENDCASE     bad   where xx GE jpi    IF bad 0  NE  1 THEN BEGIN     xx bad    xx bad jpi     yy bad    yy bad 1   ENDIF   bad   where yy GE jpj    IF bad 0  NE  1 THEN stop     IF keyword_set original  THEN BEGIN     xx   xx key_shift     bad   where xx LT 0      IF bad 0  NE  1 THEN xx bad    xx bad jpi     xx   xx MOD jpi     xx   xx  ixminmesh     yy   yy iyminmesh   ENDIF     ncell   n_elements xx     IF keyword_set ij  THEN       RETURN   reform xx  1  ncell   over                   reform yy  1  ncell   over       IF keyword_set original  THEN RETURN  xx jpiglo yy     ELSE RETURN  xx jpi yy  END ");
+a[34] = new Array("./Interpolation/compute_fromreg_bilinear_weigaddr.html", "compute_fromreg_bilinear_weigaddr.pro", "", "     file_comments compute the weight and address neede to interpolate data from a             regular grid  to any grid using the bilinear method         categories interpolation          param alonin  in required  longitudeof the input data         param alatin   in required  latitude of the input data         param olonin  in required  longitude of the output data         param olat   in required  latitude of the output data       keyword      NONORTHERNLINE activate if you don t whant to take into            account the northen line of the input data when perfoming the    keyword      NOSOUTHERNLINE activate if you don t whant to take into            account the southern line of the input data when perfoming the            interpolation       returns        weig  addr: 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over       restrictions       the input grid must be a  regular grid  defined as a grid for which each       lontitudes lines have the same latitude and each latitudes columns have the       same longitude        We supposed the data are located on a sphere  with a periodicity along       the longitude        points located out of the southern and northern boundaries are interpolated       using a linear interpolation only along the longitudinal direction        history    November 2005: Sebastien Masson  smasson lodyc jussieu fr                PRO compute_fromreg_bilinear_weigaddr  alonin  alatin  olonin  olat  weig  addr       NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      alon   alonin   alat   alatin   olon   olonin     jpia   n_elements alon    jpja   n_elements alat      jpio    size olon   dimensions 0    jpjo    size olon   dimensions 1      alon   minalon   min alon   max   maxalon    IF maxalon minalon GE 360  THEN stop   alon must be monotonically increasing   IF array_equal sort alon  lindgen jpia  NE 1 THEN BEGIN      shiftx    where alon EQ min alon 0      alon   shift alon  shiftx      IF array_equal sort alon  lindgen jpia  NE 1 THEN stop   ENDIF ELSE shiftx   0   for longitude periodic bondary condition we add the fist   column on the right side of the array and    alon    alon  alon 0 360    jpia   jpia 1L   alat   revy   alat 0  GT alat 1    IF revy THEN alat   reverse alat    alat must be monotonically increasing   IF array_equal sort alat  lindgen jpja  NE 1 THEN stop     if keyword_set nonorthernline  then BEGIN      jpja   jpja   1L     alat   alat 0: jpja 1L    ENDIF   if keyword_set nosouthernline  then BEGIN      alat   alat 1: jpja 1L      jpja   jpja   1L   ENDIF   olon between minalon et minalon 360   out   where olon LT minalon    WHILE out 0  NE  1 DO BEGIN     olon out    olon out 360      out   where olon LT minalon    ENDWHILE   out   where olon GE minalon 360    WHILE out 0  NE  1 DO BEGIN     olon out    olon out  360      out   where olon GE minalon 360    ENDWHILE   make sure that all values of olon are located within values of alon   IF min olon  max   ma  LT minalon THEN stop   IF ma GE minalon 360  THEN stop     we want to do biliear interpolation   for each ocean point  we must   find in which atm cell it is located    if the ocean point is out of the atm grid  we use closest neighbor   interpolation      for each T point of oce grid  we find in which armospheric cell it is   located    As the atmospheric grid is regular  we can use inrecgrid instead   of inquad    pos   inrecgrid olon  olat  alon 0:jpia 2L  alat 0:jpja 2L                        checkout    alon jpia 1L  alat jpja 1L   output2d    checks    for longitude  each ocean points must be located in atm cell    IF  where pos 0    EQ  1 0  NE  1 THEN stop   no ocean point should be located westward of the left bondary of the   atm cell in which it is supposed to be located    IF total olon LT alon pos 0    NE 0 THEN stop   no ocean point should be located eastward of the right bondary of the   atm cell in which it is supposed to be located    IF total olon GT alon pos 0   1  NE 0 THEN stop     we use bilinear interpolation     we change the coordinates of each ocean points to fit into a   rectangle defined by:       y2                                                                     y1         x1          x2        X    x x1 x2 x1       Y    y y1 y2 y1      indx   pos 0      indy    temporary pos 1      points located out of the atmospheric grid too much northward or southward    bad   where indy EQ  1    indy   0   indy     IF max indx  GT jpia 2 THEN stop   checks    IF max indy  GT jpja 2 THEN stop   checks    x coordinates of the atm cell    x1   alon indx    x2   alon indx 1    new x coordinates of the ocean points in each cell   divi   temporary x2 x1   glamnew    olon x1 temporary divi    x1    1   free memory    olon    1   free memory    y coordinates of the atm cell    y1   alat indy    y2   alat indy 1                  new y coordinates of the ocean points in each cell   divi   temporary y2 y1   zero   where divi EQ 0    IF zero 0  NE  1 THEN divi zero    1    gphinew    olat y1 temporary divi    y1    1   free memory    checks    IF min glamnew  LT 0 THEN stop   IF max glamnew  GT 1 THEN stop     weight and address array used for bilinear interpolation    xaddr   lonarr 4  jpio jpjo    xaddr 0      indx     xaddr 1      indx   1L   xaddr 2      indx   1L   xaddr 3      indx        yaddr   lonarr 4  jpio jpjo    yaddr 0      indy   yaddr 1      indy   yaddr 2      indy   1L   yaddr 3      indy   1L   compute the weight for the bilinear interpolation    weig   fltarr 4  jpio jpjo    weig 0       1 glamnew     1 gphinew    weig 1          glamnew     1 gphinew    weig 2          glamnew        gphinew   weig 3       1 glamnew        gphinew    free memory   gphinew    1   IF bad 0  EQ  1 THEN glamnew    1 ELSE glamnew    temporary glamnew bad    we work now on the  bad  points   linear interpolation only along the longitudinal direction   IF bad 0  NE  1 THEN BEGIN     ybad   olat bad    the ocean points that are not located into an atm cell should be   located northward of the northern boudary of the atm grid         or southward of the southern boudary of the atm grid      IF total ybad GE min alat  AND ybad LE max alat  GE 1 THEN stop       weig 0  bad     1 glamnew      weig 1  bad    temporary glamnew      weig 2  bad    0      weig 3  bad    0      south   where ybad LT alat 0      IF south 0  NE  1 THEN yaddr  bad temporary south    0L     north   where ybad GT alat jpja 1      IF north 0  NE  1 THEN yaddr  bad temporary north    0L     ybad    1   bad    1   free memory   ENDIF   check totalweight   1   totalweig   abs 1 total weig  1    IF  where temporary totalweig  GE 1 e 5 0  NE  1 THEN stop     come back to the original atm grid without longitudinal overlap      jpia   jpia 1L   xaddr   temporary xaddr  MOD jpia   take into account shiftx if needed   IF shiftx NE 0 THEN xaddr    temporary xaddr    shiftx  MOD jpia   take into account nosouthernline and nonorthernline   if keyword_set nosouthernline  then BEGIN     yaddr   temporary yaddr    1L     jpja   jpja   1L   ENDIF   if keyword_set nonorthernline  then jpja   jpja   1L   take into account revy if needed   IF revy EQ 1 THEN yaddr   jpja   1L   temporary yaddr                                addr   temporary yaddr jpia   temporary xaddr       return end ");
+a[35] = new Array("./Interpolation/compute_fromreg_imoms3_weigaddr.html", "compute_fromreg_imoms3_weigaddr.pro", "", "       file_comments compute the weight and address neede to interpolate data from a             regular grid  to any grid using the imoms3 method         categories interpolation PRO compute_fromreg_imoms3_weigaddr  alonin  alatin  olonin  olat  weig  addr            param alonin  in required  longitude of the input data         param alatin   in required  latitude of the input data         param olonin  in required  longitude of the output data         param olat  in required  latitude of the output data       keyword  NONORTHERNLINE and  NOSOUTHERNLINE activate if you don t whant to take into            account the northen southern line of the input data when perfoming the            interpolation       returns        weig  addr: 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over       restrictions       the input grid must be a  regular rectangular grid  defined as a grid for       which each lontitudes lines have the same latitude and each latitudes columns       have the same longitude        We supposed the data are located on a sphere  with a periodicity along       the longitude        points located between the first last 2 lines are interpolated       using a imoms3 interpolation along the longitudinal direction and linear       interpolation along the latitudinal direction       points located out of the southern and northern boundaries are interpolated       using a imoms3 interpolation only along the longitudinal direction        history    November 2005: Sebastien Masson  smasson lodyc jussieu fr      March 2006: works for rectangular grids           PRO compute_fromreg_imoms3_weigaddr  alonin  alatin  olonin  olat  weig  addr                                          NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      alon   alonin   alat   alatin   olon   olonin     jpia   n_elements alon    jpja   n_elements alat      jpio    size olon   dimensions 0    jpjo    size olon   dimensions 1      alon   minalon   min alon   max   maxalon    IF maxalon minalon GE 360  THEN stop   alon must be monotonically increasing   IF array_equal sort alon  lindgen jpia  NE 1 THEN BEGIN      shiftx    where alon EQ min alon 0      alon   shift alon  shiftx      IF array_equal sort alon  lindgen jpia  NE 1 THEN stop   ENDIF ELSE shiftx   0   alon is it regularly spaced    step   alon shift alon  1    step 0    step 0    360    IF total step step 0  GE 1 e 6  NE 0 THEN noregx   1   we extend the longitude range of alon   easy interpolation even   near minalon et maxalon    toadd   10 jpia 360 1   alon    alon jpia toadd:jpia 1 360  alon  alon 0:toadd 1 360    jpia   jpia 2 toadd   alat   revy   alat 0  GT alat 1    IF revy THEN alat   reverse alat    alat must be monotonically increasing   IF array_equal sort alat  lindgen jpja  NE 1 THEN stop   alat is it regularly spaced    step   alat shift alat  1    step   step 1:jpja   1L    IF total step step 0  GE 1 e 6  NE 0 THEN noregy   1     if keyword_set nonorthernline  then BEGIN      jpja   jpja   1L     alat   alat 0: jpja 1L    ENDIF   if keyword_set nosouthernline  then BEGIN      alat   alat 1: jpja 1L      jpja   jpja   1L   ENDIF   olon between minalon et minalon 360   out   where olon LT minalon    WHILE out 0  NE  1 DO BEGIN     olon out    olon out 360      out   where olon LT minalon    ENDWHILE   out   where olon GE minalon 360    WHILE out 0  NE  1 DO BEGIN     olon out    olon out  360      out   where olon GE minalon 360    ENDWHILE   make sure that all values of olon are located within values of alon   IF min olon  max   ma  LT minalon THEN stop   IF ma GE minalon 360  THEN stop     xaddr   lonarr 16  jpio jpjo    yaddr   lonarr 16  jpio jpjo    weig   fltarr 16  jpio jpjo      indexlon   value_locate alon  olon    IF total alon indexlon  GT olon  NE 0 THEN stop   IF total alon indexlon   1L  LE olon  NE 0 THEN stop   IF  where indexlon LE 1L      0  NE  1 THEN stop   IF  where indexlon GE jpia 3L 0  NE  1 THEN stop   indexlat   value_locate alat  olat      for the ocean points located below the atm line    jpja 2 and above the line 1   for those points we can always find 16 neighbors   imoms interpolation along longitude and latitude     short   where indexlat LT jpja 2L AND indexlat GE 1L    ilon   indexlon short    ilat   indexlat short       IF NOT keyword_set noregy  THEN BEGIN      delta   alat ilat 1L alat ilat      IF max abs delta delta 0  GE 1 e 6 THEN stop     delta   delta 0        d0    alat ilat 1L olat short delta     IF min d0  max   ma  LE  2 THEN stop     IF ma GT  1 THEN stop     wy0   imoms3 temporary d0      d1    alat ilat    olat short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wy1   imoms3 temporary d1      d2    alat ilat 1L olat short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop       wy2   imoms3 temporary d2      d3    alat ilat 2L olat short delta     IF min d3  max   ma  LE 1 THEN stop     IF ma GT 2 THEN stop       wy3   imoms3 temporary d3    ENDIF ELSE BEGIN      nele   n_elements short      wy0   fltarr nele      wy1   fltarr nele      wy2   fltarr nele      wy3   fltarr nele      FOR i   0L  nele 1 DO BEGIN       IF i MOD 10000 EQ 0 THEN print  i       newlat   spl_incr alat ilat i 1L:ilat i 2L   1  0  1  2  olat short i        IF newlat LE 0 THEN stop       IF newlat GT 1 THEN stop       wy0 i    imoms3 newlat 1        wy1 i    imoms3 newlat        wy2 i    imoms3 1 newlat        wy3 i    imoms3 2 newlat      ENDFOR   ENDELSE      mi   min wy0 wy1 wy2 wy3  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     IF NOT keyword_set noregx  THEN BEGIN      delta   alon ilon alon ilon 1L      IF max abs delta delta 0  GE 1 e 6 THEN stop     delta   delta 0        d0    alon ilon 1L olon short delta     IF min d0  max   ma  LE  2 THEN stop     IF ma GT  1 THEN stop     wx0   imoms3 temporary d0      d1    alon ilon    olon short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wx1   imoms3 temporary d1      d2    alon ilon 1L olon short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop     wx2   imoms3 temporary d2      d3    alon ilon 2L olon short delta     IF min d3  max   ma  LE 1 THEN stop     IF ma GT 2 THEN stop       wx3   imoms3 temporary d3    ENDIF ELSE BEGIN      nele   n_elements short      wx0   fltarr nele      wx1   fltarr nele      wx2   fltarr nele      wx3   fltarr nele      FOR i   0L  nele 1 DO BEGIN       IF i MOD 10000 EQ 0 THEN print  i       newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i        IF newlon LE 0 THEN stop       IF newlon GT 1 THEN stop       wx0 i    imoms3 newlon 1        wx1 i    imoms3 newlon        wx2 i    imoms3 1 newlon        wx3 i    imoms3 2 newlon      ENDFOR   ENDELSE      mi   min wx0 wx1 wx2 wx3  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     line 0   xaddr 0  short    ilon   1L   xaddr 1  short    ilon     xaddr 2  short    ilon   1L   xaddr 3  short    ilon   2L   yaddr 0  short    ilat   1L   yaddr 1  short    yaddr 0  short    yaddr 2  short    yaddr 0  short    yaddr 3  short    yaddr 0  short    weig 0  short    wx0   wy0   weig 1  short    wx1   wy0   weig 2  short    wx2   wy0   weig 3  short    wx3   wy0   line 1   xaddr 4  short    ilon   1L   xaddr 5  short    ilon     xaddr 6  short    ilon   1L   xaddr 7  short    ilon   2L   yaddr 4  short    ilat     yaddr 5  short    ilat     yaddr 6  short    ilat     yaddr 7  short    ilat     weig 4  short    wx0   wy1   weig 5  short    wx1   wy1   weig 6  short    wx2   wy1   weig 7  short    wx3   wy1   line 2   xaddr 8  short    ilon   1L   xaddr 9  short    ilon     xaddr 10  short    ilon   1L   xaddr 11  short    ilon   2L   yaddr 8  short    ilat   1L   yaddr 9  short    yaddr 8  short    yaddr 10  short    yaddr 8  short    yaddr 11  short    yaddr 8  short    weig 8  short    wx0   wy2   weig 9  short    wx1   wy2   weig 10  short    wx2   wy2   weig 11  short    wx3   wy2   line 3   xaddr 12  short    ilon   1L   xaddr 13  short    ilon     xaddr 14  short    ilon   1L   xaddr 15  short    ilon   2L   yaddr 12  short    ilat   2L   yaddr 13  short    yaddr 12  short    yaddr 14  short    yaddr 12  short    yaddr 15  short    yaddr 12  short    weig 12  short    wx0   wy3   weig 13  short    wx1   wy3   weig 14  short    wx2   wy3   weig 15  short    wx3   wy3     mi   min total weig  short  1  max   ma    IF abs mi 1  GE 1 e 6 THEN stop   IF abs ma 1  GE 1 e 6 THEN stop     for the ocean points located between the atm lines    jpja 2 and jpja 1 or between the atm lines 0 and 1   linear interpolation between line 1 and line 2     short   where indexlat EQ jpja 2L OR indexlat EQ 0    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short      ilat   indexlat short        delta   alat ilat 1L alat ilat      IF NOT keyword_set noregy  THEN BEGIN        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0       ENDIF        d1    alat ilat    olat short delta     IF min d1  max   ma  LE  1 THEN stop     IF ma GT 0 THEN stop     wy1   1  temporary d1      d2    alat ilat 1L olat short delta     IF min d2  max   ma  LE 0 THEN stop     IF ma GT 1 THEN stop       wy2   1  temporary d2        mi   min wy1 wy2  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   but imoms3 along the longitude     IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon   1L     xaddr 1  short    ilon       xaddr 2  short    ilon   1L     xaddr 3  short    ilon   2L     yaddr 0  short    ilat       yaddr 1  short    ilat       yaddr 2  short    ilat       yaddr 3  short    ilat       weig 0  short    wx0   wy1     weig 1  short    wx1   wy1     weig 2  short    wx2   wy1     weig 3  short    wx3   wy1   line 2     xaddr 4  short    ilon   1L     xaddr 5  short    ilon       xaddr 6  short    ilon   1L     xaddr 7  short    ilon   2L     yaddr 4  short    ilat   1L     yaddr 5  short    yaddr 4  short      yaddr 6  short    yaddr 4  short      yaddr 7  short    yaddr 4  short      weig 4  short    wx0   wy2     weig 5  short    wx1   wy2     weig 6  short    wx2   wy2     weig 7  short    wx3   wy2       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     for the ocean points located below the line 0   Interpolation only along the longitude      short   where indexlat EQ  1    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short        IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon   1L     xaddr 1  short    ilon       xaddr 2  short    ilon   1L     xaddr 3  short    ilon   2L     yaddr 0:3  short    0      weig 0  short    wx0     weig 1  short    wx1     weig 2  short    wx2     weig 3  short    wx3       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     for the ocean points located above jpia 1    Interpolation only along the longitude      short   where indexlat EQ jpja 1L    IF short 0  NE  1 THEN BEGIN     ilon   indexlon short        IF NOT keyword_set noregx  THEN BEGIN        delta   alon ilon alon ilon 1L        IF max abs delta delta 0  GE 1 e 6 THEN stop       delta   delta 0          d0    alon ilon 1L olon short delta       IF min d0  max   ma  LE  2 THEN stop       IF ma GT  1 THEN stop       wx0   imoms3 temporary d0        d1    alon ilon    olon short delta       IF min d1  max   ma  LE  1 THEN stop       IF ma GT 0 THEN stop       wx1   imoms3 temporary d1        d2    alon ilon 1L olon short delta       IF min d2  max   ma  LE 0 THEN stop       IF ma GT 1 THEN stop       wx2   imoms3 temporary d2        d3    alon ilon 2L olon short delta       IF min d3  max   ma  LE 1 THEN stop       IF ma GT 2 THEN stop         wx3   imoms3 temporary d3      ENDIF ELSE BEGIN        nele   n_elements short        wx0   fltarr nele        wx1   fltarr nele        wx2   fltarr nele        wx3   fltarr nele        FOR i   0L  nele 1 DO BEGIN         IF i MOD 10000 EQ 0 THEN print  i         newlon   spl_incr alon ilon i 1L:ilon i 2L   1  0  1  2  olon short i          IF newlon LE 0 THEN stop         IF newlon GT 1 THEN stop         wx0 i    imoms3 newlon 1          wx1 i    imoms3 newlon          wx2 i    imoms3 1 newlon          wx3 i    imoms3 2 newlon        ENDFOR     ENDELSE        mi   min wx0 wx1 wx2 wx3  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop   line 1     xaddr 0  short    ilon 1L     xaddr 1  short    ilon       xaddr 2  short    ilon 1L     xaddr 3  short    ilon 2L     yaddr 0:3  short    jpja 1L     weig 0  short    wx0     weig 1  short    wx1     weig 2  short    wx2     weig 3  short    wx3       mi   min total weig  short  1  max   ma      IF abs mi 1  GE 1 e 6 THEN stop     IF abs ma 1  GE 1 e 6 THEN stop     ENDIF     Come back to the original index of atm grid without longitudinal overlap        xaddr   temporary xaddr    toadd   jpia   jpia   2 toadd   make sure all values are ge 0   xaddr   temporary xaddr    jpia   range the values between 0 and jpia 1   xaddr   temporary xaddr  mod jpia     take into account shiftx if needed   IF shiftx NE 0 THEN xaddr    temporary xaddr    shiftx  MOD jpia   take into account nosouthernline and nonorthernline   if keyword_set nosouthernline  then BEGIN     yaddr   temporary yaddr    1L     jpja   jpja   1L   ENDIF   if keyword_set nonorthernline  then jpja   jpja   1L   take into account revy if needed   IF revy EQ 1 THEN yaddr   jpja   1L   temporary yaddr                               addr   temporary yaddr jpia temporary xaddr       RETURN END");
+a[36] = new Array("./Interpolation/cutpar.html", "cutpar.pro", "", "       file_comments cut p parallelogram s  into p n 2 parallelograms      categories basic work      examples    res   cutpar x0  y0  x1  y1  x2  y2  x3  y3  n             param x0 y0   in required  1d arrays of p elements  giving the edge positions  The         edges must be given as in plot to traw the parallelogram   see         example           param n  in required  each parallelogram will be cutted in n 2 pieces      keyword          endpoints see outputs      keyword          onsphere to specify that the points are located on a           sphere  In this case  x and y corresponds to longitude and           latitude in degrees       returns           defaut: 3d array 2 n 2 p  giving the center position of each          piece of the parallelograms           endpoints: 3d array 2 n 1 2 p  giving the edge positions          of each piece of the parallelograms      uses cutsegment pro      examples      x0    2 6 2    y0    0 2 6    x1    3 8 4    y1    4 4 6    x2    1 6 4    y2    5 6 8    x3    0 4 2    y3    1 4 8    n   4   splot   0 10   0 10  xstyle   1  ystyle   1 nodata   for i 0 2 do oplot   x0 i x1 i x2 i x3 i x0 i y0 i y1 i y2 i y3 i y0 i    res cutpar x0  y0  x1  y1  x2  y2  x3  y3  n    for i 0 2 do oplot   res 0 i   res 1 i  color   20 10 i  psym   1  thick   3      history             S  Masson  smasson lodyc jussieu fr              July 5th  2002   FUNCTION cutpar  x0  y0  x1  y1  x2  y2  x3  y3  n  endpoints   endpoints  onsphere   onsphere   is it a parallelogram    eps   1e 4   IF total abs x0 x2 2 x1 x3 2  GE eps  GT 0       OR total abs y0 y2 2 y1 y3 2  GE eps  GT 0       THEN stop  print   NOT a parallelogram    x0 npar    npar   n_elements x0     firstborder 2 n keyword_set endpoints npar    firstborder   cutsegment x0  y0  x1  y1  n                                endpoints   endpoints  onsphere   onsphere    thirdborder   cutsegment x3  y3  x2  y2  n                                endpoints   endpoints  onsphere   onsphere    res 2 n keyword_set endpoints n keyword_set endpoints npar    res   cutsegment firstborder 0      firstborder 1                             thirdborder 0      thirdborder 1                             n  endpoints   endpoints  onsphere   onsphere    free memory   firstborder    1   thirdborder    1   reform the result   res   reform res  2   n keyword_set endpoints 2  npar   overwrite     RETURN  res END");
+a[37] = new Array("./Interpolation/cutsegment.html", "cutsegment.pro", "", "       file_comments cut p segments into p n equal parts      categories basic work      examples     res   cutsegment x0  y0  x1  y1  n               param x0 y0 and x1 y1   in required   1d arrays of p elements  the coordinates of           the endpoints of the p segmements            param  n  in required   the number of pieces we want to cut each segment        keyword          endpoints see ouputs      keyword          onsphere to specify that the points are located on a           sphere  In this case  x and y corresponds to longitude and           latitude in degrees       returns          defaut: a 3d array  2 n p  that gives the coordinates of the          middle of the cutted segments           if  endpoints  a 3d array  2 n 1 p  that gives the          coordinates of the endpoints of the cutted segments       examples       IDL  x0 2 5     IDL  y0 5 1     IDL  x1 9 3     IDL  y1 1 8     IDL  res cutsegment x0  y0  x1  y1  10     IDL  splot   0 10   0 10  xstyle   1  ystyle   1 nodata    IDL  oplot   x0 0  x1 0   y0 0  y1 0     IDL  oplot   res 0 0   res 1 0  color   20  psym   1  thick   3    IDL  oplot   x0 1  x1 1   y0 1  y1 1     IDL  oplot   res 0 1   res 1 1  color   40  psym   1  thick   3      history             S  Masson  smasson lodyc jussieu fr              July 5th  2002   FUNCTION cutsegment  x0  y0  x1  y1  n  endpoints   endpoints  onsphere   onsphere   number of segment   nseg   n_elements x0     number of point to find on each segment   n2find   n keyword_set endpoints       IF keyword_set onsphere  THEN BEGIN   save the inputs arrays     x0in   temporary x0      y0in   temporary y0      x1in   temporary x1      y1in   temporary y1      sp_cood    transpose x0in transpose y0in replicate 1  1  nseg      rect_coord   CV_COORD FROM_SPHERE   temporary sp_cood   TO_RECT   DEGREES      x0   rect_coord 0        y0   rect_coord 1        z0   rect_coord 2        rect_coord    1  free memory     sp_cood    transpose x1in transpose y1in replicate 1  1  nseg      rect_coord   CV_COORD FROM_SPHERE   temporary sp_cood   TO_RECT   DEGREES      x1   rect_coord 0        y1   rect_coord 1        z1   rect_coord 2        rect_coord    1  free memory   ENDIF     resx   replicate 1  n2find x0    resx   temporary resx 1 n findgen n2find                                     5 1 keyword_set endpoints x1 x0    resx    temporary resx      resy   replicate 1  n2find y0    resy   temporary resy 1 n findgen n2find                                     5 1 keyword_set endpoints y1 y0    resy    temporary resy     IF keyword_set onsphere  THEN BEGIN     resz   replicate 1  n2find z0      resz   temporary resz 1 n findgen n2find                                       5 1 keyword_set endpoints z1 z0      resz    temporary resz       rec_cood    transpose temporary resx  transpose temporary resy                      transpose temporary resz      res   CV_COORD FROM_RECT   temporary rec_cood   TO_SPHERE   DEGREES    restore the input arrays     x0   temporary x0in      y0   temporary y0in      x1   temporary x1in      y1   temporary y1in    ENDIF ELSE res    transpose temporary resx  transpose temporary resy     res   reform res 0:1    2  n2find  nseg   overwrite     RETURN  res END");
+a[38] = new Array("./Interpolation/extrapolate.html", "extrapolate.pro", "", "     file_comments extrapolate data  zinput  where maskinput eq 0 by filling step by   step the coastline points with the mean value of the 8 neighbourgs      FUNCTION extrapolate  zinput  maskinput  nb_iteration  x_periodic   x_periodic  MINVAL   minval  MAXVAL   maxval     compile_opt strictarr  strictarrsubs      check the number of iteration used in the extrapolation    IF n_elements nb_iteration  EQ 0 THEN nb_iteration   10 E20   IF nb_iteration EQ 0 THEN return  zinput   nx    size zinput 1    ny    size zinput 2    take care of the boundary conditions       for the x direction  we put 2 additional columns at the left and   right side of the array     for the y direction  we put 2 additional lines at the bottom and   top side of the array     These changes allow us to use shift function without taking care of   the x and y periodicity      ztmp   bytarr nx 2  ny 2    ztmp 1:nx  1:ny    byte maskinput    msk   temporary ztmp      ztmp   replicate 1 e20  nx 2  ny 2    ztmp 1:nx  1:ny    zinput   if keyword_set x_periodic  then begin     ztmp 0  1:ny    zinput nx 1        ztmp nx 1  1:ny    zinput 0      ENDIF   remove NaN points if there is some    nan   where finite ztmp  EQ 0  cnt_nan    IF cnt_nan NE 0 THEN ztmp temporary nan    1 e20   z   temporary ztmp    nx2   nx 2   ny2   ny 2       extrapolation      sqrtinv   1 sqrt 2      cnt   1   When we look for the coast line  we don t whant to select the   borderlines of the array    we force the value of the mask for   those lines    msk 0      1b   msk nx 1      1b   msk  0    1b   msk  ny 1    1b   find the land points   land   where msk EQ 0  cnt_land      WHILE cnt LE nb_iteration AND cnt_land NE 0 DO BEGIN     find the coast line points      Once the land points list has been found  we change back the the   mask values for the boundary conditions      msk 0      0b     msk nx 1      0b     msk  0    0b     msk  ny 1    0b     if keyword_set x_periodic  then begin       msk 0      msk nx          msk nx 1      msk 1        endif     we compute the weighted number of sea neighbourgs    those 4 neighbours have a weight of 1:                                          those 4 neighbours have a weight of 1 sqrt 2 :                                        As we make sure that none of the land points are located on the   border of the array  we can compute the weight without shift    faster        weight   msk land 1 msk land 1 msk land nx2 msk land nx2                  sqrtinv msk land nx2 1 msk land nx2 1                            msk land nx2 1 msk land nx2 1    list all the points that have sea neighbourgs     ok   where weight GT 0    the coastline points     coast   land ok    their weighted number of sea neighbourgs      weight   weight temporary ok      fill the coastine points       z   temporary z msk       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            IF n_elements minval  NE 0 THEN zcoast   minval   temporary zcoast      IF n_elements maxval  NE 0 THEN zcoast   temporary zcoast   we force the value of the mask for   those lines      msk 0      1b     msk nx 1      1b     msk  0    1b     msk  ny 1    1b   find the land points     land   where msk EQ 0  cnt_land      ENDWHILE     we return the original size of the array        return  z 1:nx  1:ny  END  ");
+a[39] = new Array("./Interpolation/fromreg.html", "fromreg.pro", "", "       file_comments interpolate data from a  regular rectangular grid  to any grid      2 metods availables: bilinear and imoms3      A  regular rectangular grid  is defined as a grid for which each lontitudes lines have      the same latitude and each latitudes columns have the same longitude          categories interpolation      examples     dataout   fromreg method  datain   lonin  latin  lonout  latout          param method  in required   a string defining the interpolation method                must be  bilinear  or  imoms3        param datain  in required   a 2D array the input data to interpolate       param lonin latin  in required   longitude latitude of the input data  optionals if              WEIG and ADDR keywords used        param lonout latout  in required   longitude latitude of the output data  optionals if              WEIG and ADDR keywords used       keyword     WEIG  ADDR 2D arrays  weig and addr are the weight and addresses used to       perform the interpolation:            dataout   total weig datain addr  1             dataout   reform dataout  jpio  jpjo   over        Those keywords can be set to named variables into which the values will be       copied when the current routine exits  Next  they can be used to perform       the interpolation whithout computing again those 2 parameters  In that       case  lonin  latin  lonout and latout are not necessary       keyword      NONORTHERNLINE and  NOSOUTHERNLINE activate if you don t whant to take into            account the northen southern line of the input data when perfoming the            interpolation       returns 2D array: the interpolated data      restrictions We supposed the data are located on a sphere  with a    periodicity along the longitude       examples          topa   fromreg bilinear  tncep  xncep  yncep  glamt  gphit       or       t1opa   fromreg bilinear  t1ncep  xncep  yncep  glamt  gphit  WEIG   a  ADDR   b     help  a  b    t2opa   fromreg bilinear  t2ncep  xncep  WEIG   a  ADDR   b       history    November 2005: Sebastien Masson  smasson lodyc jussieu fr                FUNCTION fromreg  method  datain  lonin  latin  lonout  latout                       WEIG   weig  ADDR   addr                       NONORTHERNLINE   nonorthernline                       NOSOUTHERNLINE   nosouthernline     compile_opt strictarr  strictarrsubs      IF NOT  keyword_set weig  AND keyword_set addr  THEN BEGIN     atmospheric grid parameters       alon   lonin     alat   latin     get_gridparams  alon  alat  jpia  jpja  1   double     Oceanic grid parameters       olon   lonout     olat   latout     get_gridparams  olon  olat  jpio  jpjo  2   double     Compute weight and address       CASE method OF        bilinear :compute_fromreg_bilinear_weigaddr  alon  alat  olon  olat  weig  addr  NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline        imoms3 :  compute_fromreg_imoms3_weigaddr    alon  alat  olon  olat  weig  addr  NONORTHERNLINE   nonorthernline  NOSOUTHERNLINE   nosouthernline       ELSE:BEGIN          print    unknown interpolation method  we stop          stop       ENDELSE     ENDCASE   ENDIF     dataout   total weig datain addr  1    dataout   reform dataout  jpio  jpjo   over      RETURN  dataout END");
+a[40] = new Array("./Interpolation/get_gridparams.html", "get_gridparams.pro", "", "       file_comments      1  extract from a NetCDF file the longitude  latidude  and their dimensions        and make sure it is 1D or 2D arrays           or 2  given longitude and latitude arrays get their dimensions and make sure         they are 1D or 2D arrays       categories interpolation      examples       1  get_gridparams  file  lonname  latname  lon  lat  jpi  jpj  n_dimensions     or      2  get_gridparams  lon  lat  jpi  jpj  n_dimensions     1      param in1  in required   the name of the netcdf file     param in2  in required   the name of the variable that contains the longitude in the NetCDF file     param in3  in required   the name of the variable that contains the latitude in the NetCDF file     param in4   out  the number of points in the longitudinal direction     param in5   out  the number of points in the latitudinal direction    param in6  out  the variable that will contain the longitudes     param in7   out  the variable that will contain the latitudes     param in8  out  1 or 2 to specify if lon and lat should be 1D  jpi or jpj      or      2      param lon lat  in required   1d or 2D arrays defining longitudes and latitudes        Note that these arrays are also outputs and can therefore be modified       param in1  out  the variable that will contain the longitudes     param in2   out  the variable that will contain the latitudes     param in3   out  the number of points in the longitudinal direction     param in4   out  the number of points in the latitudinal direction     param in5  out  1 or 2 to specify if lon and lat should be 1D  jpi or jpj       arrays or 2D arrays  jpi jpj  Note that of  n_dimensions   1  then the      grid must be regular  each longitudes must be the same for all latitudes      and each latitudes should be the sae for all longitudes        examples        1  ncdf_get_gridparams   coordinates_ORCA_R05 nc   glamt   gphit                   olon  olat  jpio  jpjo  2     2  ncdf_get_gridparams  olon  olat  jpio  jpjo  2      history    November 2005: Sebastien Masson  smasson lodyc jussieu fr                 PRO get_gridparams  in1    in2    in3      in4  in5  in6  in7  in8  DOUBLE   double                    file  lonname  latname  lon  lat  jpi  jpj  n_dimensions                     lon    lat    jpi      jpj  n_dimensions     CASE n_params  OF     8:BEGIN   get longitude and latitude       IF file_test in1  EQ 0 THEN BEGIN          print   file     in1     does not exist          stop       ENDIF       cdfido   ncdf_open in1        ncdf_varget  cdfido  in2  lon       ncdf_varget  cdfido  in3  lat       ncdf_close  cdfido        n_dimensions   in8     END     5:BEGIN        lon   temporary in1        lat   temporary in2        n_dimensions   in5     END     ELSE:BEGIN        print   Bad nimber of input parameters        stop     end   ENDCASE     sizelon   size lon    sizelat   size lat    CASE 1 OF      lon and lat are 1D arrays       sizelon 0  EQ 1 AND sizelat 0  EQ 1:BEGIN    get jpi and jpj       jpi   sizelon 1        jpj   sizelat 1    make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:         2:BEGIN   make lon and lat 2D arrays           lon   temporary lon    replicate 1  jpj            lat   replicate 1  jpi    temporary lat          END         ELSE:stop       ENDCASE     END     lon is 2D array and lat is 1D array       sizelon 0  EQ 2 AND sizelat 0  EQ 1:BEGIN    get jpi and jpj       jpi   sizelon 1        jpj   sizelon 2        IF jpj NE n_elements lat  THEN stop   make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lon  lon  0    replicate 1  jpj  NE 1 THEN BEGIN              print   Longitudes are not the same for all latitudes  imposible to extract a 1D array of the longitudes              stop           ENDIF           lon   lon  0          END         2:lat   replicate 1  jpi    temporary lat          ELSE:stop       ENDCASE     END     lon is 1D array and lat is 2D array       sizelon 0  EQ 1 AND sizelat 0  EQ 2:BEGIN    get jpi and jpj       jpi   sizelat 1        jpj   sizelat 2        IF jpi NE n_elements lon  THEN stop   make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lat  replicate 1  jpi    lat 0    NE 1 THEN BEGIN              print   Latitudes are not the same for all longitudes  imposible to extract a 1D array of the latitudes              stop           ENDIF           lat   reform lat 0            END         2:lon   temporary lon    replicate 1  jpj          ELSE:stop       ENDCASE     END     lon and lat are 2D arrays       sizelon 0  EQ 2 AND sizelat 0  EQ 2:BEGIN    get jpi and jpj       IF array_equal sizelon 1:2  sizelat 1:2  NE 1 THEN stop       jpi   sizelon 1        jpj   sizelon 2          make sure that lon and lat have the good number of dimensions       CASE n_dimensions OF          1:BEGIN            IF array_equal lon  lon  0    replicate 1  jpj  NE 1 THEN BEGIN              print   Longitudes are not the same for all latitudes  imposible to extract a 1D array of the longitudes              stop           ENDIF           lon   lon  0            IF array_equal lat  replicate 1  jpi    reform lat 0    NE 1 THEN BEGIN              print   Latitudes are not the same for all longitudes  imposible to extract a 1D array of the latitudes              stop           ENDIF         lat   reform lat 0            END         2:         ELSE:stop       ENDCASE     END     lon and lat are not 1D and or 2D arrays       ELSE:stop   ENDCASE       double keyword     if keyword_set double  then BEGIN      lon   double temporary lon      lat   double temporary lat    ENDIF     give back the right outparameters       CASE n_params  OF     8:BEGIN       in4   temporary lon        in5   temporary lat        in6   temporary jpi        in7   temporary jpj      END     5:BEGIN       in1   temporary lon        in2   temporary lat        in3   temporary jpi        in4   temporary jpj      END   ENDCASE    return END");
+a[41] = new Array("./Interpolation/imoms3.html", "imoms3.pro", "", "       FUNCTION imoms3  xin    x   abs xin    y   fltarr n_elements x      test1   where x LT 1    IF test1 0  NE  1 THEN BEGIN     xtmp   x test1      y test1    0 5 xtmp xtmp xtmp  xtmp xtmp  0 5 xtmp   1   ENDIF   test1   where x LT 2 AND x GE 1    IF test1 0  NE  1 THEN BEGIN     xtmp   x test1      y test1     1 6 xtmp xtmp xtmp   xtmp xtmp    11 6 xtmp   1   ENDIF    RETURN  y END");
+a[42] = new Array("./Interpolation/inquad.html", "inquad.pro", "", "     file_comments to find if an  x y  point is in a quadrilateral  x1 x2 x3 x4       categories grid manipulation      examples          res   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4           param x y  in required   the coordinates of the point we want to know where it       is  Must be a scalar if  onsphere activated else can be scalar       or array            param x1 y1 x2 y2 x3 y3 x4 y4  in required   the coordinates of the       quadrilateral given in the CLOCKWISE order  Scalar or array         keyword     DOUBLE use double precision to perform the computation       keyword     ONSPHERE to specify that the quadilateral are on a sphere and      that teir coordinates are longitude latitude coordinates  In this      case  est west periodicity  poles singularity and other pbs      related to longitude latitude coordinates are managed      automatically        keyword    ZOOMRADIUS :the zoom  circle centred on the  x y  with a radius of      zoomradius degree where we look for the the quadrilateral which     contains the  x y  point  used for the satellite projection      when  onsphere is activated  Default is 4 and seems to be the      minimum which can be used  Can be increase if the cell size is      larger than 5 degrees          keyword     NOPRINT to suppress the print messages       returns      a n element vector  Where n is the number of elements of      x  res i j means that the point number i is located in the      quadrilateral number j with  0   j   n_elements x0 1       restrictions I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested       examples            x   1 1  2  6  7  3          y   1 1  3  3  4  7          x1   1 0 4 2          y1   1 1 4 8          x2   1 1 6 4          y2   1 5 6 8          x3   1 3 8 4          y3   1 4 4 6          x4   1 2 6 2          y4   1 0 2 6          splot   0 10   0 10  xstyle   1  ystyle   1 nodata         for i 0 2 do oplot   x4 i x1 i x2 i x3 i x4 i y4 i y1 i y2 i y3 i y4 i          oplot  x  y  color   20  psym   1  thick   2         print  inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4           On a sphere see clickincell pro       history        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on Convert_clic_ij pro written by Gurvan Madec      FUNCTION inquad  x  y  x1  y1  x2  y2  x3  y3  x4  y4  ONSPHERE   onsphere   DOUBLE   double  ZOOMRADIUS   zoomradius  NOPRINT   noprint  NEWCOORD   newcoord       ntofind   n_elements x    nquad   n_elements x2      IF keyword_set onsphere  THEN BEGIN   save the inputs parameters     xin   x     yin   y     x1in   x1     y1in   y1     x2in   x2     y2in   y2     x3in   x3     y3in   y3     x4in   x4     y4in   y4   for map_set     x   x MOD 360     x1   x1 MOD 360     x2   x2 MOD 360     x3   x3 MOD 360     x4   x4 MOD 360   save  map      save    map: map  x: x  y: y  z: z  p: p    do a satellite projection      IF NOT keyword_set zoomradius  THEN zoomradius   4     map_set  y 0  x 0  0   satellite  sat_p    1 zoomradius 20 6371 229  0  0   noerase   iso   noborder   use normal coordinates to reject cells which are out of the projection      tmp    convert_coord x  y   DATA   TO_NORMAL  DOUBLE   double       tmp1   convert_coord x1  y1   DATA   TO_NORMAL  DOUBLE   double       tmp2   convert_coord x2  y2   DATA   TO_NORMAL  DOUBLE   double       tmp3   convert_coord x3  y3   DATA   TO_NORMAL  DOUBLE   double       tmp4   convert_coord x4  y4   DATA   TO_NORMAL  DOUBLE   double     remove cell which have one corner with coordinates equal to NaN     test   finite tmp1 0   tmp1 1   tmp2 0   tmp2 1                         tmp3 0   tmp3 1   tmp4 0   tmp4 1        good   where temporary test  EQ 1        IF good 0  EQ  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   The point is out of the cells    restore the input parameters       x   temporary xin        y   temporary yin        x1   temporary x1in        y1   temporary y1in        x2   temporary x2in        y2   temporary y2in        x3   temporary x3in        y3   temporary y3in        x4   temporary x4in        y4   temporary y4in    restore old  map         map   save map        x   save x        y   save y        z   save z        p   save p       RETURN    1     ENDIF       x    tmp 0      y    tmp 1      x1   tmp1 0  good      y1   tmp1 1  good      x2   tmp2 0  good      y2   tmp2 1  good      x3   tmp3 0  good      y3   tmp3 1  good      x4   tmp4 0  good      y4   tmp4 1  good        tmp1    1   tmp2    1   tmp3    1   tmp4    1   remove cells which are obviously bad      test    x1 GT x AND x2 GT x AND x3 GT x AND x4 GT x          OR  x1 LT x AND x2 LT x AND x3 LT x AND x4 LT x          OR  y1 GT y AND y2 GT y AND y3 GT y AND y4 GT y          OR  y1 LT y AND y2 LT y AND y3 LT y AND y4 LT y      good2   where temporary test  EQ 0        IF good2 0  EQ  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   The point is out of the cells    restore the input parameters       x   temporary xin        y   temporary yin        x1   temporary x1in        y1   temporary y1in        x2   temporary x2in        y2   temporary y2in        x3   temporary x3in        y3   temporary y3in        x4   temporary x4in        y4   temporary y4in    restore old  map         map   save map        x   save x        y   save y        z   save z        p   save p       RETURN    1     ENDIF       nquad   n_elements good2       x1   x1 good2      y1   y1 good2      x2   x2 good2      y2   y2 good2      x3   x3 good2      y3   y3 good2      x4   x4 good2      y4   y4 good2    ENDIF       the point is inside the quadilateral if test eq 1   with test equal to:       test    x x1 y2 y1  GE  x2 x1 y y1             x x2 y3 y2  GT  x3 x2 y y2             x x3 y4 y3  GT  x4 x3 y y3             x x4 y1 y4  GE  x1 x4 y y4       computation of test without any do loop for ntofind points  x y  and   nquad quadilateral x1 x2 x3 x4 y1 y2 y3 y4    test dimensions are  ntofind  nquad    column i of test corresponds to the intersection of point i with all   quadirlateral     row j of test corresponds to all the points localized in cell j    test        x x1     x replicate 1  nquad replicate 1  ntofind x1       y2 y1     replicate 1  ntofind y2 y1      GE  x2 x1    GE  replicate 1  ntofind x2 x1       y y1     y replicate 1  nquad replicate 1  ntofind y1      test   temporary test       x x2     x replicate 1  nquad replicate 1  ntofind x2       y3 y2     replicate 1  ntofind y3 y2      GE  x3 x2    GE  replicate 1  ntofind x3 x2       y y2     y replicate 1  nquad replicate 1  ntofind y2      test   temporary test       x x3     x replicate 1  nquad replicate 1  ntofind x3       y4 y3     replicate 1  ntofind y4 y3      GE  x4 x3    GE  replicate 1  ntofind x4 x3       y y3     y replicate 1  nquad replicate 1  ntofind y3      test   temporary test       x x4     x replicate 1  nquad replicate 1  ntofind x4       y1 y4     replicate 1  ntofind y1 y4      GE  x1 x4    GE  replicate 1  ntofind x1 x4       y y4     y replicate 1  nquad replicate 1  ntofind y4      check test if ntofind gt 1   if ntofind gt 1  each point must be localised in one uniq cell    IF ntofind GT 1 THEN BEGIN   each column of test must have only 1 position equal to one     chtest   total test  2    points out of the cells     IF  where chtest EQ 0 0  NE  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   Points number  strjoin strtrim where chtest EQ 0  1      are out of the grid        stop     ENDIF   points in more than one cell     IF  where chtest GT 1 0  NE  1 THEN BEGIN       IF NOT keyword_set noprint  THEN print   Points number  strjoin strtrim where chtest GT 1  1      are in more than one cell        stop     ENDIF   ENDIF   find the points for which test eq 1   found   where temporary test  EQ 1    if ntofind eq 1  the point may be localised in more than one grid   cell ou may also be out of the cells   IF ntofind EQ 1 THEN BEGIN     CASE 1 OF       found 0  EQ  1:BEGIN         IF NOT keyword_set noprint  THEN print   The point is out of the cells          IF keyword_set onsphere  THEN BEGIN   restore old  map             map   save map            x   save x            y   save y            z   save z            p   save p         ENDIF         return    1       END        n_elements found  GT ntofind:BEGIN         IF NOT keyword_set noprint  THEN print   The point is in more than one cell        END        ELSE:     ENDCASE   ENDIF ELSE BEGIN   if ntofind GT 1  found must be sorted    i position of found  this corresponds to one x y point     forsort   found MOD ntofind   j position of found  this corresponds to cell in which is one x y   point     found   temporary found ntofind   found must be sorted accordind to forsort     found   found sort forsort    ENDELSE     IF keyword_set onsphere  THEN BEGIN     IF arg_present newcoord  THEN BEGIN       newcoord    x1 found  y1 found                         x2 found  y2 found                         x3 found  y3 found                         x4 found  y4 found                         x  y      ENDIF       found   good good2 found    restore the input parameters     x   temporary xin      y   temporary yin      x1   temporary x1in      y1   temporary y1in      x2   temporary x2in      y2   temporary y2in      x3   temporary x3in      y3   temporary y3in      x4   temporary x4in      y4   temporary y4in    restore old  map       map   save map      x   save x      y   save y      z   save z      p   save p   ENDIF     RETURN  found END");
+a[43] = new Array("./Interpolation/inrecgrid.html", "inrecgrid.pro", "", "       file_comments given   a list of points   x y  position                      the x and y limits of a rectangular grid            find in which cell is located each given point       categories no DO loop  use the wonderfull value_locate function       examples    res   inrecgrid xin  yin  left  bottom          param x1d  in required   a 1d array  the x position on the points       param y1d  in required   a 1d array  the y position on the points      left  in required   a 1d  monotonically increasing array  the position of the       left  border of each cell        param bottom  in required   a 1d  monotonically increasing array  the position of the       bottom  border of each cell         keyword     output2d to get the output as a 2d array  2 n_elements x1d       with res 0  the x index accoring to the 1d array defined by      left and res 1  the y index accoring to the 1d array defined by      bottom       keyword    checkout rbgrid ubgrid  specify the right and upper bondaries of      the grid and check if some points are out       returns the index on the cell accoring to the 2d array defined by   left and bottom       examples       IDL  a indgen 5     IDL  b indgen 7     IDL  r inrecgrid 0 25 3 25 2 4 25 2 8 1 4 a b     IDL  print  r              20          13           7    IDL  r inrecgrid 0 25 3 25 2 4 25 2 8 1 4 a a 1 b b 1 output2d     IDL  print  r          0 00000      4 00000          3 00000      2 00000          2 00000      1 00000        history              S  Masson  smasson lodyc jussieu fr                         July 3rd  2002                        October 3rd  2003: use value_locate    FUNCTION inrecgrid  x1d  y1d  left  bottom  output2d   output2d  checkout   checkout     ncellx   n_elements left    ncelly   n_elements bottom      xpos   value_locate left  x1d    ypos   value_locate bottom  y1d      IF n_elements checkout  EQ 2 THEN BEGIN     out   where x1d GT checkout 0      IF out 0  NE  1 THEN xpos out     1     out   where y1d GT checkout 1      IF out 0  NE  1 THEN ypos out     1   ENDIF     IF keyword_set output2d  THEN return   transpose xpos  transpose ypos      IF NOT keyword_set checkout  THEN RETURN  xpos ncellx ypos     res   xpos ncellx ypos   out   where xpos EQ  1 OR ypos EQ  1    IF out 0  NE  1 THEN res out     1       RETURN  res  END");
+a[44] = new Array("./Interpolation/ll_narcs_distances.html", "ll_narcs_distances.pro", "", "       file_comments   This function returns the longitude and latitude  lon  lat  of  a point a given arc distance  pi  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   two_by_two   IDL  earthradius   6378206 4d0  IDL  res   ll_narcs_distances lon0  lat0  dist earthradius  azi   degrees   IDL  print  reform res 0            10 000000       60 000000       280 00000  IDL  print  reform res 1               1 1999280e 15       10 000000       45 000000      history         Based on the IDL function ll_arc_distance pro v 1 11 2003 02 03   Sebastien Masson  smasson lodyc jussieu fr                     August 2005         file_comments Return the  lon  lat  of the point a given arc distance   pi   arc_dist   pi    and azimuth  az  from lon_lat0      FUNCTION LL_NARCS_DISTANCES  lon0  lat0  arc_dist  az  DEGREES   degs     IF n_elements lon0  NE n_elements lat0        OR n_elements lon0  NE n_elements arc_dist        OR n_elements lon0  NE n_elements az  THEN return   1    cdist   cos arc_dist        Arc_Dist is always in radians    sdist   sin arc_dist     if keyword_set degs  then s    dpi 180 0 else s   1 0d0    ll   lat0    s               To radians   sinll1   sin ll    cosll1   cos ll    azs   az    s   phi   asin sinll1   cdist   cosll1   sdist   cos azs    ll   lon0    s               To radians   lam   ll   atan sdist   sin azs                      cosll1   cdist   sinll1   sdist   cos azs     zero   where arc_dist eq 0  count    IF count NE 0 THEN BEGIN      lam zero    lon0 zero      phi zero    lat0 zero    ENDIF     if keyword_set degs  then return  transpose lam   phi    s     ELSE return  transpose lam   phi   end  ");
+a[45] = new Array("./Interpolation/map_npoints.html", "map_npoints.pro", "", "       file_comments  Return the distance in meter between all np0 points P0 and all         np1 points P1 on a sphere  If keyword  TWO_BY_TWO is given then         returns the distances between number n of P0 points and number         n of P1 points  in that case  np0 and np1 must be equal          Same as map_2points with the meter parameter but for n points         without do loop       categories Maps      examples   Result   Map_nPoints lon0  lat0  lon1  lat1     param Lon0 Lat0   in required  np0 elements vector  longitudes and latitudes of np0 points P0   param Lon1 Lat1   in required   np1 elements vector  longitude and latitude of np1 points P1       keyword   AZIMUTH A named variable that will receive the azimuth of the great         circle  connecting the two points  P0 to P1    keyword    MIDDLE to get the longitude latitude of the middle point betwen P0 and P1     keyword   RADIANS   if set  inputs and angular outputs are in radians  otherwise  degrees     keyword   RADIUS If given  return the distance between the two points  calculated using the given radius          Default value is the earth radius : 6378206 4d0    keyword   TWO_BY_TWO:If given then Map_nPoints returns the distances between         number n of P0 points and number n of P1 points  in that case          np0 and np1 must be equal       returns         An  np0 np1  array giving the distance in meter between np0         points P0 and np1 points P1  Element  i j  of the ouput is the         distance between element P0 i  and P1 j          If keyword  TWO_BY_TWO is given then Map_nPoints returns         an np element vector giving the distance in meter between P0 i          and P1 i   in that case  we have np0   np1   np          if  MIDDLE see this keyword       examples  IDL  print     map_npoints 105 15 1 40 02 1 0 07 100 50 51 30 20 0          7551369 3       5600334 8         12864354        10921254          14919237        5455558 8    IDL  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   IDL  help  dist  azi  DIST            DOUBLE      Array 3  3   AZI             DOUBLE      Array 3  3   IDL  print  dist 4 lindgen 3  azi 4 lindgen 3          2226414 0       4957944 5       10018863          90 000000       64 494450   4 9615627e 15  IDL  dist   map_npoints lon0  lat0  lon1  lat1  azimuth   azi   two_by_two   IDL  help  dist  azi  DIST            DOUBLE      Array 3   AZI             DOUBLE      Array 3   IDL  print  dist  azi         2226414 0       4957944 5       10018863          90 000000       64 494450   4 9615627e 15  IDL  print  map_2points lon0 0  lat0 0  lon1 0  lat1 0          20 000000       90 000000  IDL  print  map_npoints lon0 0  lat0 0  lon1 0  lat1 0  azi azi 6378206 4d0    dtor  azi         20 000000         90 000000    IDL  lon0    10  20  100   IDL  lat0    0   10  45   IDL  lon1    10  60  280   IDL  lat1    0  10  45   IDL  mid   map_npoints lon0  lat0  lon1  lat1   middle   two_by_two   IDL  print  reform mid 0  reform mid 1          0 0000000       40 000000       190 00000         0 0000000   1 5902773e 15       90 000000  IDL  print   map_2points lon0 0  lat0 0  lon1 0  lat1 0  npath   3  1          0 0000000       0 0000000  IDL  print   map_2points lon0 1  lat0 1  lon1 1  lat1 1  npath   3  1          40 000000   1 5902773e 15  IDL  print   map_2points lon0 2  lat0 2  lon1 2  lat1 2  npath   3  1          190 00000       90 000000      history         Based on the IDL function map_2points pro v 1 6 2001 01 15   Sebastien Masson  smasson lodyc jussieu fr                     October 2003   Function Map_npoints  lon0  lat0  lon1  lat1  azimuth   azimuth        RADIANS   radians  RADIUS   radius  MIDDLE   middle  TWO_BY_TWO   two_by_two    COMPILE_OPT idl2   ON_ERROR  2                     return to caller    IF  N_PARAMS  LT 4  THEN       MESSAGE   Incorrect number of arguments     np0   n_elements lon0     IF n_elements lat0  NE np0 THEN       MESSAGE   lon0 and lat0 must have the same number of elements    np1   n_elements lon1     IF n_elements lat1  NE np1 THEN       MESSAGE   lon1 and lat1 must have the same number of elements    if keyword_set two_by_two  AND np0 NE np1 then       MESSAGE   When using two_by_two keyword  P0 and P1 must have the same number of elements     mx   MAX ABS lat0  lat1    pi2    dpi 2   IF  mx GT  KEYWORD_SET radians    pi2 : 90  THEN       MESSAGE   Value of Latitude is out of allowed range     k   KEYWORD_SET radians    1 0d0 :  dpi 180 0  Earth equatorial radius  meters  Clarke 1866 ellipsoid   r_sphere    n_elements RADIUS  NE 0   RADIUS : 6378206 4d0      coslt1   cos k lat1    sinlt1   sin k lat1    coslt0   cos k lat0    sinlt0   sin k lat0      IF np0 EQ np1 AND np1 EQ 1 THEN two_by_two   1     if NOT keyword_set two_by_two  THEN BEGIN      coslt1   replicate 1 0d0  np0 temporary coslt1      sinlt1   replicate 1 0d0  np0 temporary sinlt1      coslt0   temporary coslt0 replicate 1 0d0  np1      sinlt0   temporary sinlt0 replicate 1 0d0  np1    ENDIF      if keyword_set two_by_two  THEN BEGIN      cosl0l1   cos k lon1 lon0      sinl0l1   sin k lon1 lon0    ENDIF ELSE BEGIN      cosl0l1   cos k replicate 1 0d0  np0 lon1 lon0 replicate 1 0d0  np1      sinl0l1   sin k replicate 1 0d0  np0 lon1 lon0 replicate 1 0d0  np1    ENDELSE     cosc   sinlt0   sinlt1   coslt0   coslt1   cosl0l1  Cos of angle between pnts   Avoid roundoff problems by clamping cosine range to  1 1    cosc    1 0d0   cosc   1 0d0     if arg_present azimuth  OR keyword_set middle  then begin     sinc   sqrt 1 0d0   cosc cosc      bad   where abs sinc  le 1 0e 7      IF bad 0  NE  1 THEN sinc bad    1     cosaz    coslt0   sinlt1   sinlt0 coslt1 cosl0l1    sinc      sinaz   sinl0l1 coslt1 sinc     IF bad 0  NE  1 THEN BEGIN        sinc bad    0 0d0       sinaz bad    0 0d0       cosaz bad    1 0d0     ENDIF   ENDIF     IF keyword_set middle  then BEGIN      s0   0 5d0   acos cosc         coss   cos s0      sins   sin s0            lats   asin sinlt0   coss   coslt0   sins   cosaz    k     lons   atan sins   sinaz  coslt0   coss   sinlt0   sins   cosaz    k       if keyword_set two_by_two  THEN BEGIN        return  transpose lon0    lons   lats      ENDIF ELSE BEGIN        return     lon0 replicate 1 0d0  np1    lons   lats        ENDELSE      ENDIF     if arg_present azimuth  then begin     azimuth   atan sinaz  cosaz      IF k NE 1 0d0 THEN azimuth   temporary azimuth    k    ENDIF  return  acos cosc    r_sphere   end");
+a[46] = new Array("./Interpolation/neighbor.html", "neighbor.pro", "", "       file_comments  find the closetest point of  P0  within a list of np1 points  P1 Which can be on a sphere       categories Maps      examples    IDL  Result   neighbor lon0  lat0  lon1  lat1     param p0lon  in required   scalar  longitudes of point P0    param p0lat   in required   scalar  latitudes of point P0        keyword   RADIANS if set  inputs and angular outputs are in radians  otherwise  degrees     keyword   DISTANCE dis  to get back the distances between P0 and the np1     points P1 in the variable dis     keyword    SPHERE to activate if points are located on a sphere       returns         index giving the P1 index  point that is the closetest point         of  P0       examples         IDL  print  neighbor 105 15 40 02 0 07 100 50 51 30 20 0                 distance dis                     0         IDL  print  dis               105 684      206 125      160 228      history   Sebastien Masson  smasson lodyc jussieu fr                     October 2003   FUNCTION neighbor  p0lon  p0lat  neighlon  neighlat  sphere   sphere  distance   distance  radians   radians     somme checks   IF  n_elements p0lon  NE 1 THEN MESSAGE   Sorry p0lon must be a scalar    p0lon   p0lon 0    IF  n_elements p0lat  NE 1 THEN MESSAGE   Sorry p0lat must be a scalar    p0lat   p0lat 0    nneig   n_elements neighlon     IF  n_elements neighlat  NE nneig  THEN       MESSAGE   neighlon and neighlat must have the same number of elements    distance between P0 and the others points   IF keyword_set sphere  THEN BEGIN     IF sphere NE 1 THEN radius   sphere     distance   Map_nPoints p0lon  p0lat  neighlon  neighlat                            radius   radius  radians   radians    ENDIF ELSE BEGIN      distance    neighlon p0lon 2 neighlat p0lat 2     IF arg_present distance  THEN distance   sqrt distance    ENDELSE   RETURN  where distance EQ min distance  END");
+a[47] = new Array("./Interpolation/quadrilateral2square.html", "quadrilateral2square.pro", "", "       file_comments warm  or map  an arbitrary quadrilateral onto a unit square    according to the 4 point correspondences:          x0 y0     0 0           x1 y1     1 0           x2 y2     1 1           x3 y3     0 1    This is the inverse function of square2quadrilateral pro   The mapping is done using perspective transformation which preserve   lines in all orientations and permit quadrilateral to quadrilateral   mappings  see ref  bellow       categories image  grid manipulation      examples          res   square2quadrilateral x0 y0 x1 y1 x2 y2 x3 y3 xin yin            param x0in  in required   the coordinates of the quadrilateral        param y0in  in required   the coordinates of the quadrilateral        param x1in  in required   the coordinates of the quadrilateral        param y1in  in required   the coordinates of the quadrilateral        param x2in  in required   the coordinates of the quadrilateral        param y2in  in required   the coordinates of the quadrilateral        param x3in  in required   the coordinates of the quadrilateral        param y3in   in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order           param xxin  in required  the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array         param yyin  in required  the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array       returns          2 n  array: the new coodinates  xout  yout  of the  xin yin        point s  after mapping         If xin is a scalar  then n is equal to the number of elements of       x0  If xin is an array   then n is equal to the number of       elements of xin       restrictions I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested       examples      IDL  splot 0 5 0 3 nodata xstyle 1 ystyle 1   IDL  tracegrille  findgen 11 1  findgen 11 1 color indgen 12 20   IDL  xin    findgen 11 1 replicate 1  11    IDL  yin   replicate 1  11 findgen 11 1    IDL  out   square2quadrilateral 2 1 3 0 5 1 2 3  xin  yin    IDL  tracegrille  reform out 0 11 11  reform out 1 11 11 color indgen 12 20     IDL  inorg quadrilateral2square 2 1 3 0 5 1 2 3 out 0 out 1    IDL  tracegrille  reform inorg 0 11 11  reform inorg 1 11 11 color indgen 12 20      history        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on  Digital Image Warping  by G  Wolberg        IEEE Computer Society Press  Los Alamitos  California        Chapter 3  see p 52 56                 FUNCTION quadrilateral2square  x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in  xxin  yyin  PERF   perf   tempsone   systime 1      Warning  wrong definition of  x2 y2  and  x3 y3  at the bottom of   page 54 of Wolberg s book  see figure 3 7 page 56 for the good   definition      IF keyword_set double  THEN BEGIN     x0   double x0in      x1   double x1in      x2   double x2in      x3   double x3in      y0   double y0in      y1   double y1in      y2   double y2in      y3   double y3in      xin   double xxin      yin   double yyin    ENDIF ELSE BEGIN     x0   float x0in      x1   float x1in      x2   float x2in      x3   float x3in      y0   float y0in      y1   float y1in      y2   float y2in      y3   float y3in      xin   float xxin      yin   float yyin    ENDELSE     get the matrix A     a   square2quadrilateral x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in      compute the adjoint matrix      IF keyword_set double  THEN adj   dblarr 9  n_elements x0      ELSE adj   fltarr 9  n_elements x0      adj 0      a 4            a 7   a 5      adj 1      a 7   a 2   a 1      adj 2      a 1   a 5   a 4   a 2      adj 3      a 6   a 5   a 3      adj 4      a 0            a 6   a 2      adj 5      a 3   a 2   a 0   a 5      adj 6      a 3   a 7   a 6   a 4      adj 7      a 6   a 1   a 0   a 7      adj 8      a 0   a 4   a 3   a 1          IF n_elements xin  EQ 1 THEN BEGIN     xin   replicate xin  n_elements x0       yin   replicate yin  n_elements x0     ENDIF     compute xprime  yprime and wprime     IF n_elements x0  EQ 1 THEN BEGIN     wpr   1 adj 6 xin   adj 7 yin   adj 8    ENDIF ELSE BEGIN     wpr   1 adj 6   xin   adj 7   yin   adj 8      ENDELSE   xpr   xin wpr   ypr   yin wpr     IF keyword_set double  THEN res   dblarr 2  n_elements xin      ELSE res   fltarr 2  n_elements xin      IF n_elements x0  EQ 1 THEN BEGIN     res 0      xpr adj 0    ypr adj 1   wpr adj 2      res 1      xpr adj 3    ypr adj 4   wpr adj 5    ENDIF ELSE BEGIN     res 0      xpr adj 0      ypr adj 1     wpr adj 2        res 1      xpr adj 3      ypr adj 4     wpr adj 5      ENDELSE     IF keyword_set perf  THEN print   time quadrilateral2square  systime 1 tempsone    RETURN  res END");
+a[48] = new Array("./Interpolation/spl_fstdrv.html", "spl_fstdrv.pro", "", "             file_comments SPL_FSTDRV returns the values of the first derivative of   the interpolating function at the points X2i  it is a double   precision array      Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that interpolated value are also in ascending order      examples  y2    spl_fstdrv x  y  yscd  x2          param x  in required   An n element  at least 2  input vector that specifies the      tabulate points in ascending order          param y  in required   f x    y  An n element input vector that specifies the values      of the tabulated function F Xi  corresponding to Xi          param yscd  in required   The output from SPL_INIT for the specified X and Y          param x2  in required   The input values for which the first derivative values are      desired  X can be scalar or an array of values      returns         y2: f x2    y2          history    Sebastien Masson  smasson lodyc jussieu fr : May 2005         FUNCTION spl_fstdrv  x  y  yscd  x2     compute the first derivative of the spline function      nx   n_elements x    ny   n_elements y    x must have at least 2 elements   IF nx LT 2 THEN stop      y must have the same number of elements than x   IF nx NE ny THEN stop   define loc in a way that     if loc i  eq  1   :                 x2 i    x nx 1     else              :    x loc i   extrapolation   use x nx 2  and x nx 1  even if x2 i    x nx 1    extrapolation   loc   0   temporary loc     nx 2     distance between to consecutive x   deltax   x loc 1 x loc    distance between to consecutive y   deltay   y loc 1 y loc    relative distance between x2 i  and x loc i 1    a    x loc 1 x2 deltax   relative distance between x2 i  and x loc i    b   1 0d   a   compute the first derivative on x  see numerical recipes Chap 3 3    yfrst   temporary deltay deltax         1 0d 6 0d    3 0d a a   1 0d    deltax   yscd loc          1 0d 6 0d    3 0d b b   1 0d    deltax   yscd loc 1    beware of the computation precision     force near zero values to be exactly 0 0   zero   where abs yfrst  LT 1 e 10    IF zero 0  NE  1 THEN yfrst zero    0 0d    RETURN  yfrst END ");
+a[49] = new Array("./Interpolation/spl_incr.html", "spl_incr.pro", "", "             file_comments     Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that interpolated values are also monotonically increasing       examples  y2    spl_incr x  y  x2       param x1  in required   An n element  at least 2  input vector that specifies the      tabulate points in a strict ascending order          param y1  in required   f x    y  An n element input vector that specifies the values      of the tabulated function F Xi  corresponding to Xi  As f is      supposed to be monotonically increasing  y values must be      monotonically increasing  y can have equal consecutive values          param x2  in required   The input values for which the interpolated values are      desired  Its values must be strictly monotonically increasing              returns         y2: f x2    y2  Double precision array      restrictions     It might be possible that y2 i 1 y2 i  has very small negative     values  amplitude smaller than 1 e 6       examples          n   100L       x    dindgen n 2       y   abs randomn 0  n        y n 2:n 2 1    0        y n n 3    0        y n n 6:n n 6 5    0        y   total y   cumulative   double        x2   dindgen n 1 2        n2   n_elements x2        print  min y 1:n 1 y 0:n 2  LT 0       y2   spl_incr  x  y  x2        splot  x  y  xstyle   1  ystyle   1  ysurx 25  petit    1  2  1   land       oplot  x2  y2  color   100       c   y2 1:n2 1    y2 0:n2 2        print  min c  LT 0        print  min c  max   ma  ma       splot c xstyle 1 ystyle 1  yrange 01 05  ysurx 25  petit    1  2  2   noerase       oplot 0  n_elements c   0  0  linestyle   1      history    Sebastien Masson  smasson lodyc jussieu fr : May Dec 2005         FUNCTION pure_concave  x1  x2  y1  y2  der2  x   X n type   xx    double x double x1 double x2 double x1    f    double x2 double x1 double y2 double y1    n   der2 temporary f    res   xx n      IF check_math  GT 0 THEN BEGIN         zero   where abs res  LT 1 e 10          IF zero 0  NE  1 THEN res zero    0 0d     END   res   temporary res double y2 double y1 y1      IF array_equal sort res  lindgen n_elements res    NE 1 THEN stop   RETURN  res END  FUNCTION pure_convex  x1  x2  y1  y2  der2  x   1 1 X n type   xx   1 0d    double x double x1 double x2 double x1    f    double x2 double x1 double y2 double y1    n   der2 temporary f    res   xx n      IF check_math  GT 0 THEN BEGIN         zero   where abs res  LT 1 e 10          IF zero 0  NE  1 THEN res zero    0 0d     END   res   1 0d   temporary res    res   temporary res y2 y1 y1      IF array_equal sort res  lindgen n_elements res    NE 1 THEN stop   RETURN  res END       keyword    YP0 The first derivative of the interpolating function at the      point X0  If YP0 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline     keyword    YPN_1 The first derivative of the interpolating function at the      point Xn 1  If YPN_1 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline     FUNCTION spl_incr  x  y  x2  YP0   yp0  YPN_1   ypn_1       check and initialisation       nx   n_elements x    ny   n_elements y    nx2   n_elements x2    x must have at least 2 elements   IF nx LT 2 THEN stop    y must have the same number of elements than x   IF nx NE ny THEN stop   x be monotonically increasing   IF min x 1:nx 1 x 0:nx 2  LE 0 THEN stop    x2 be monotonically increasing   IF N_ELEMENTS X2  GE 2 THEN     IF min x2 1:nx2 1 x2 0:nx2 2   LE 0 THEN stop    y be monotonically increasing   IF min y 1:ny 1 y 0:ny 2  LT 0 THEN stop      first check: check if two consecutive values are equal     bad   where y 1:ny 1 y 0:ny 2  EQ 0  cntbad    IF cntbad NE 0 THEN BEGIN   define the results: y2       y2   dblarr nx2    define xinx2: see help of value_locate    if xinx2 i  eq  1   :                 x bad i    x2 nx2 1     else                : x2 xinx2 i    x2 nx2 1     else                : x2 xinx2 i   we have middle pieces for which    we force yp0   0 0d and ypn_1   0 0d       IF cntbad GT 1 THEN BEGIN   we take care of the piece located wetween bad ib 1  and bad ib          FOR ib   1  cntbad 1 DO BEGIN   if there is x2 values smaller that x bad ib  then the x2 values   located between bad ib 1  and bad ib  are  xinx2 ib 1 1:xinx2 ib            IF xinx2 ib  NE  1 THEN begin             y2 xinx2 ib 1 1   0                y i 1    y i      2  y  reach its minimum value between  x i  and x i 1            0  y i 1    0   y i      we do a first selection by looking for those points      loc   lindgen nx 1    maybebad   where yscd loc  LE 0 0d AND yscd loc 1  GE 0 0d  cntbad      IF cntbad NE 0 THEN BEGIN      mbbloc   loc maybebad       aaa    yscd mbbloc 1 yscd mbbloc 6 0d x mbbloc 1 x mbbloc      bbb   0 5d   yscd mbbloc      ccc   yifrst mbbloc      ddd   y mbbloc      definitive selection:   y  can become negative if and only if  2b 2   4 3a c   0   y  can become negative if and only if    b 2     3a c   0       delta   bbb bbb   3 0d aaa ccc       bad   where delta GT 0  cntbad        IF cntbad NE 0 THEN BEGIN       delta   delta bad        aaa   aaa bad        bbb   bbb bad        ccc   ccc bad        ddd   ddd bad        bad   maybebad bad    define xinx2_1: see help of value_locate    if xinx2_1 i  eq  1   :                   x bad i    x2 nx2 1     else                  : x2 xinx2_1 i    x2 nx2 1     else                  : x2 xinx2_2 i   y bad ib 1  then we cannot applay the method we want to   apply   we use then convex concave case by changing by hand the   value of yinfl and xinfl                   IF yzero GT y bad ib 1  THEN BEGIN                     yinfl   0 5d y bad ib 1 y bad ib                      xinfl   0 5d x bad ib 1 x bad ib                      GOTO  convexconcave                   ENDIF   define xinx2_3: see help of value_locate    if xinx2_3 ib  eq  1   :                x bad ib xzero   x2 nx2 1     else                   : x2 xinx2_3   we use then convex concave case by changing by hand the   value of yinfl and xinfl                   IF yzero lt y bad ib  THEN BEGIN                     yinfl   0 5d y bad ib 1 y bad ib                      xinfl   0 5d x bad ib 1 x bad ib                      GOTO  convexconcave                   ENDIF   define xinx2_3: see help of value_locate    if xinx2_3 ib  eq  1   :                x bad ib xzero   x2 nx2 1     else                   : x2 xinx2_3    x2 nx2 1     else                   : x2 xinx2_3    x bad ib xzero    x2 xinx3_2 1                    xinx2_3   value_locate x2  x bad ib xinfl                     IF xinx2_3 ge xinx2_1 ib 1 THEN BEGIN                     y2 xinx2_1 ib 1:xinx2_3                            pure_convex x bad ib  x bad ib xinfl                                          y bad ib  yinfl                                          yifrst bad ib                                          x2 xinx2_1 ib 1:xinx2_3                                         ENDIF                                   IF xinx2_2 ib  GE xinx2_3 1 THEN BEGIN                     y2 xinx2_3 1:xinx2_2 ib                            pure_concave x bad ib xinfl  x bad ib 1                                           yinfl  y bad ib 1                                           yifrst bad ib 1                                           x2 xinx2_3 1:xinx2_2 ib                    ENDIF                                 END               ENDCASE              END            ENDCASE         ENDIF       ENDFOR      ENDIF   ENDIF     RETURN  y2         END");
+a[50] = new Array("./Interpolation/spl_keep_mean.html", "spl_keep_mean.pro", "", "           file_comments     Given the arrays X and Y  which tabulate a function  with the X i    AND Y i  in ascending order  and given an input value X2  the   SPL_INCR function returns an interpolated value for the given values   of X2  The interpolation method is based on cubic spline  corrected   in a way that integral of the interpolated values is the same as the   integral of the input values    for exemple to build daily data   from monthly mean and keep the monthly mean of the computed daily   data equa to the original values       examples  y2    spl_keep_mean x  y  x2          param x  in required   An n element  at least 2  input vector that specifies the      tabulate points in a strict ascending order          param yin  in required   an array with one element less than x  y i  represents the      mean value between x i  and x i 1  if  GE0 is activated  y must      have positive values          param x2  in required   The input values for which the interpolated values are      desired  Its values must be strictly monotonically increasing          keyword     GE0 to force that y2 is always GE than 0  In that case  y must      also be GE than 0       keyword    YP0 The first derivative of the interpolating function at the      point X0  If YP0 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline       keyword    YPN_1 The first derivative of the interpolating function at the      point Xn 1  If YPN_1 is omitted  the second derivative at the      boundary is set to zero  resulting in a  natural spline        returns         y2: the meean value between two consecutive values of x2  This      array has one element less than y2  y2 has double precision       restrictions     It might be possible that y2 has very small negative values      amplitude smaller than 1 e 6          examples         12 monthly values of precipitations into daily values:        yr1   1990      yr2   1992      nyr   yr2 yr1 1      n1   12 nyr 1      x   julday 1 findgen n1  replicate 1  n1                  replicate yr1  n1  fltarr n1       n2   365 nyr   total leapyr yr1 indgen nyr    1      x2   julday replicate 1  n2  1 findgen n2                      replicate yr1  n2  fltarr n2       y   abs randomn 0  n1 1       y2   spl_keep_mean x  y  x2   ge0        print  min x  max   ma  ma      print  min x2  max   ma  ma      print  vairdate min x  max   ma  ma       print  total y x 1:n1 1 x 0:n1 2       print  total y2 x2 1:n2 1 x2 0:n2 2       history    Sebastien Masson  smasson lodyc jussieu fr : May 2005         FUNCTION spl_keep_mean  x  yin  x2  YP0   yp0  YPN_1   ypn_1  GE0   ge0       check and initialisation         nx   n_elements x    ny   n_elements yin    nx2   n_elements x2    x must have at least 2 elements   IF nx LT 2 THEN stop    x2 must have at least 2 elements   IF nx2 LT 2 THEN stop    x be monotonically increasing   IF min x 1:nx 1 x 0:nx 2  LE 0 THEN stop    x2 be monotonically increasing   IF min x2 1:nx2 1 x2 0:nx2 2   LE 0 THEN stop        compute the integral of y     if spl_keep_mean is called by the user  and not by itself  we must compute   the integral of y  yin must have one element less than x   IF nx NE ny 1 THEN stop   y   double yin double x 1:nx 1 x 0:nx 2    y    0 0d  temporary y    y   total temporary y   cumulative   double        compute the  spline  interpolation       IF keyword_set ge0  THEN BEGIN   if the want that the interpolated values are always   0  we must   have yin   0 0d     IF min yin  LT 0 THEN stop   call spl_incr     y2   spl_incr x  temporary y  x2  yp0   yp0  ypn_1   ypn_1    ENDIF ELSE BEGIN     yscd   spl_init x  y  yp0   yp0  ypn_1   ypn_1   double      y2   spl_interp x  y  temporary yscd  x2   double    ENDELSE                        Compute the derivative of y       yfrst    y2 1:nx2 1 y2 0:nx2 2 x2 1:nx2 1 x2 0:nx2 2    it can happen that we have very small negative values  1 e 6 for ex     yfrst   0 0d   temporary yfrst    RETURN  yfrst           END");
+a[51] = new Array("./Interpolation/square2quadrilateral.html", "square2quadrilateral.pro", "", "       file_comments warm  or map  a unit square onto an arbitrary quadrilateral   according to the 4 point correspondences:          0 0     x0 y0           1 0     x1 y1           1 1     x2 y2           0 1     x3 y3    The mapping is done using perspective transformation which preserve   lines in all orientations and permit quadrilateral to quadrilateral   mappings  see ref  bellow       categories image  grid manipulation      examples          res   square2quadrilateral x0 y0 x1 y1 x2 y2 x3 y3 xin yin     FUNCTION square2quadrilateral  x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in  xxin  yyin        param x0in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param y0in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param x1in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param y1in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param x2in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param y2in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param x3in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order         param y3in  in required   the coordinates of the quadrilateral        see above for correspondance with the unit square  Can be       scalar or array   x0 y0   x1 y1   x2 y2  and  x3 y3  are       given in the anticlockwise order           param xxin  in required  the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array         param yyin  in required  the coordinates of the point s  for which we want to do the       mapping  Can be scalar or array       returns          2 n  array: the new coodinates  xout  yout  of the  xin yin        point s  after mapping         If xin is a scalar  then n is equal to the number of elements of       x0  If xin is an array   then n is equal to the number of       elements of xin        If xin and yin are omited  square2quadrilateral returns the       matrix A which is used for the inverse transformation          restrictions I think degenerated quadrilateral  e g  flat of   twisted  is not work  This has to be tested       examples      IDL  splot 0 5 0 3 nodata xstyle 1 ystyle 1   IDL  tracegrille  findgen 11 1  findgen 11 1 color indgen 12 20   IDL  xin    findgen 11 1 replicate 1  11    IDL  yin   replicate 1  11 findgen 11 1    IDL  out   square2quadrilateral 2 1 3 0 5 1 2 3  xin  yin    IDL  tracegrille  reform out 0 11 11  reform out 1 11 11 color indgen 12 20      history        Sebastien Masson  smasson lodyc jussieu fr         August 2003        Based on  Digital Image Warping  by G  Wolberg        IEEE Computer Society Press  Los Alamitos  California        Chapter 3  see p 52 56                 FUNCTION square2quadrilateral  x0in  y0in  x1in  y1in  x2in  y2in  x3in  y3in  xxin  yyin     Warning  wrong definition of  x2 y2  and  x3 y3  at the bottom of   page 54 of Wolberg s book  see figure 3 7 page 56 for the good   definition      IF keyword_set double  THEN BEGIN     x0   double x0in      x1   double x1in      x2   double x2in      x3   double x3in      y0   double y0in      y1   double y1in      y2   double y2in      y3   double y3in      IF arg_present xxin  THEN BEGIN       xin   double xxin        yin   double yyin      ENDIF   ENDIF ELSE BEGIN     x0   float x0in      x1   float x1in      x2   float x2in      x3   float x3in      y0   float y0in      y1   float y1in      y2   float y2in      y3   float y3in      IF arg_present xxin  THEN BEGIN       xin   float xxin        yin   float yyin      ENDIF   ENDELSE     IF keyword_set double  THEN a   dlbarr 8  n_elements x0      ELSE a   fltarr 8  n_elements x0       delx3   x0 x1 x2 x3   dely3   y0 y1 y2 y3     affinemap   where delx3 EQ 0 AND dely3 EQ 0    IF affinemap 0  NE  1 THEN BEGIN     xx0   x0 affinemap      xx1   x1 affinemap      xx2   x2 affinemap      yy0   y0 affinemap      yy1   y1 affinemap      yy2   y2 affinemap        a 0  affinemap    xx1 xx0     a 1  affinemap    xx2 xx1     a 2  affinemap    xx0     a 3  affinemap    yy1 yy0     a 4  affinemap    yy2 yy1     a 5  affinemap    yy0     a 6  affinemap    0     a 7  affinemap    0   ENDIF     projectivemap   where delx3 NE 0 OR dely3 NE 0    IF projectivemap 0  NE  1 THEN BEGIN     xx0   x0 projectivemap      xx1   x1 projectivemap      xx2   x2 projectivemap      xx3   x3 projectivemap      yy0   y0 projectivemap      yy1   y1 projectivemap      yy2   y2 projectivemap      yy3   y3 projectivemap            delx1   xx1 xx2     dely1   yy1 yy2     delx2   xx3 xx2     dely2   yy3 yy2     delx3   delx3 projectivemap      dely3   dely3 projectivemap        div   delx1 dely2 dely1 delx2     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     a13    delx3 dely2 dely3 delx2 div     a23    delx1 dely3 dely1 delx3 div       a 0  projectivemap    xx1 xx0 a13 xx1     a 1  projectivemap    xx3 xx0 a23 xx3     a 2  projectivemap    xx0     a 3  projectivemap    yy1 yy0 a13 yy1     a 4  projectivemap    yy3 yy0 a23 yy3     a 5  projectivemap    yy0     a 6  projectivemap    a13     a 7  projectivemap    a23   ENDIF         IF NOT arg_present xxin  THEN return  a     IF n_elements xin  EQ 1 THEN BEGIN     xin   replicate xin  n_elements x0       yin   replicate yin  n_elements x0     ENDIF     IF keyword_set double  THEN res   dblarr 2  n_elements xin      ELSE res   fltarr 2  n_elements xin    IF n_elements x0  EQ 1 THEN BEGIN     div   a 6 xin    a 7 yin    1     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     res 0       a 0 xin    a 1 yin    a 2 div     res 1       a 3 xin    a 4 yin    a 5 div   ENDIF ELSE BEGIN     div   a 6   xin  a 7   yin   1     zero   where div EQ 0      IF zero 0  NE  1 THEN BEGIN       stop     ENDIF     res 0       a 0   xin    a 1   yin    a 2   div     res 1       a 3   xin    a 4   yin    a 5   div   ENDELSE     RETURN  res END");
+a[52] = new Array("./Interpolation/testinterp.html", "testinterp.pro", "", "    PRO testinterp    method    bilinear     method    imoms3        jpia   300L   jpja   200L   torg   findgen jpia  jpja    xorg    20 d   360 d jpia dindgen jpia    yorg    89 d   178 d jpja 1 dindgen jpja      jpio   400L   jpjo   150L   xnew    0 d   360 d jpio dindgen jpio    ynew    89 5d   179 d jpjo 1 dindgen jpjo        outnorth   where ynew GT yorg jpja 2  noutn    outsouth   where ynew LT yorg 1  nouts     t2   fromreg method  torg  xorg  yorg  xnew  ynew     t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok1      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  torg2  xorg2  yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok2      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok3      xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    t3   fromreg method  torg2  xorg2  yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok4     xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew    IF  array_equal t2  t3  EQ 0 THEN stop ELSE print   ok5     t3   fromreg method  torg  xorg  yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok6    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok7  i   t3   fromreg method  torg  xorg  yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok8    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok9  i     t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok10    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok11  i   t3   fromreg method  reverse torg  2  xorg  reverse yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok12    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok13  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop    t3   fromreg method  torg2  xorg2  yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok14    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok15  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  torg2  xorg2  yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok16    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok17  i    xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew   nonorthernline    IF  array_equal t2  0:jpjo 1 noutn  t3  0:jpjo 1 noutn  EQ 0 THEN stop ELSE print   ok18    FOR i   1  noutn 1 DO if array_equal t3  jpjo 1  t3  jpjo 1 i  EQ 0 THEN stop ELSE print   ok19  i     xshift   20   torg2   shift torg  xshift  0    xorg2   shift xorg  xshift    xorg2 0: xshift 1    xorg2 0: xshift 1 360   IF array_equal sort xorg2  lindgen n_elements xorg2  EQ 0 THEN stop   t3   fromreg method  reverse torg2  2  xorg2  reverse yorg  xnew  ynew   nosouthernline    IF  array_equal t2  nouts:  t3  nouts:  EQ 0 THEN stop ELSE print   ok20    FOR i   1  nouts 1 DO if array_equal t3  0  t3  i  EQ 0 THEN stop ELSE print   ok21  i     return end");
 a[53] = new Array("./Obsolete/common.html", "common.pro", "", "");
 a[54] = new Array("./Obsolete/cp.html", "cp.pro", "", "           file_comments copy files    obsolete    file_comments file_copy should be used instead       history   June 2005: Sebastien Masson   obsolete routine            PRO cp  filenamein  filenameout  _extra   ex   file_copy  filenamein  filenameout  _extra   ex   RETURN END");
@@ -59,5 +59,5 @@
 a[57] = new Array("./Obsolete/imprime.html", "imprime.pro", "", "           file_comments  use printps instead     obsolete      history   June 2005: Sebastien Masson  english version         PRO imprime  filename  TRANS   trans  NB   nb     this is working only with unix linux osX machines   thisOS   strupcase strmid version os_family  0  3    CASE thisOS OF       MAC :return      WIN :return     ELSE:   ENDCASE     call printps     CASE N_PARAMS  OF     0:printps     1:printps  filename     ELSE: BEGIN        ras   report imprime accept only one element: psfilename        return     END    ENDCASE            return END  ");
 a[58] = new Array("./Obsolete/jourdsmois.html", "jourdsmois.pro", "", "           file_comments used daysinmonth instead     obsolete      history Sebastien Masson  smasson lodyc jussieu fr    June 2005: Sebastien Masson  english version         function jourdsmois  mois  annee  case n_params  OF   0:return  daysinmonth    1:return  daysinmonth mois    2:return  daysinmonth mois  annee  endcase  end");
-a[59] = new Array("./Obsolete/juldate.html", "juldate.pro", "", "           file_comments you better use date2jul    obsolete      file_comments  gives julian date equivalent of a date in vairmer                yymmdd or yyyymmdd   format              sets month  day and year to the corresp values      categories calendar      param vvdate  in  date de la forme yymmdd ou yyyymmdd      keyword  VRAIDATE pour ne pas transformer l annnee 01 en 1901     keyword  GRADS if  1 le year le 49 then year   2000 year                 if 50 le year le 99 then year   1900 year      uses common pro vraidate      returns date en jour julien     l annee 0 n existant pas  qd year est nulle on calcule le       jour julien de l annee  1      COMPATIBLE AVEC L AN 2000  : une date de la forme yymmdd est      donvertit sous la forme yyyymmdd a l aide de vraidate      Attention  les variables globales year  month day sont attribuees      examples    IDL  date   juldate 930124       history Jerome Vialard   jv lodyc jussieu fr    2 7 98         function juldate  vvdate  _EXTRA   ex vdate   vvdate vdate   vraidate vdate  _EXTRA   ex   common      year vdate 10000    month vdate 100   year 100    day abs vdate   year 10000   month 100     month   abs month       mm   month   dd   day   yy   year      ndate   n_elements vdate      if total mm EQ 0  EQ ndate then mm    6    if total dd EQ 0  EQ ndate then dd    15    if total yy EQ 0  EQ ndate THEN yy     1      return  julday mm dd yy  _EXTRA   ex       return   1 end   ");
+a[59] = new Array("./Obsolete/juldate.html", "juldate.pro", "", "           file_comments you better use date2jul    obsolete      file_comments  gives julian date equivalent of a date in vairmer                yymmdd or yyyymmdd   format              sets month  day and year to the corresp values      categories calendar      param vvdate  in  date de la forme yymmdd ou yyyymmdd      uses common pro vraidate      returns date en jour julien     l annee 0 n existant pas  qd year est nulle on calcule le       jour julien de l annee  1      COMPATIBLE AVEC L AN 2000  : une date de la forme yymmdd est      donvertit sous la forme yyyymmdd a l aide de vraidate      Attention  les variables globales year  month day sont attribuees      examples    IDL  date   juldate 930124       history Jerome Vialard   jv lodyc jussieu fr    2 7 98         function juldate  vvdate  _EXTRA   ex vdate   vvdate vdate   vraidate vdate  _EXTRA   ex   common      year vdate 10000    month vdate 100   year 100    day abs vdate   year 10000   month 100     month   abs month       mm   month   dd   day   yy   year      ndate   n_elements vdate      if total mm EQ 0  EQ ndate then mm    6    if total dd EQ 0  EQ ndate then dd    15    if total yy EQ 0  EQ ndate THEN yy     1      return  julday mm dd yy  _EXTRA   ex       return   1 end  ");
 a[60] = new Array("./Obsolete/lec.html", "lec.pro", "", "           file_comments         lit les fichiers Vairmer en sort:  un tableau 2d ou 3d en fonction de nomchamp qui est le nom  du champ a extaire  2d s il commence par SO et 3d s il commence par VO   cette fonction modifie aussi les variables globales:  varname: trois lettres: nom de l experience  vargrid: nom de la grille  vardate: date  yy yymmdd  varexp: nom Vairmer du champ a tarcer      obsolete    categories Graphics  lecture de fichier Vaimer      examples   IDL resultat lec nom_Vairmer date nom_experience       param nomchamp  in required  2 choix possibles:               1  nom de champ Vairmer  chaine de 8 caracteres en majuscule ou    minuscule commencant par vo ou so  Dans cette methode on saute directement   d en tete en en tete jusqu a trouver le bon fichier                2  chaine de characteres commencant par vo ou so suivit du   numero de champ a aller chercher  par ex  vo5  Cette methode est un peu   plus rapide car elle va directement chercher le fichier qui nous interesse       param date  in optional  nombres de 6 ou 8 chiffres  anneemoisjour  par ex:19980507     param nomexp  in optional  trois lettres designant le nom de l experience        keyword  ANOM  in  type du fichier vairmer par rapport auquel on doit calculer                l anomalie  EX AN SE MO       keyword  ECRIT  in  permet d imprimer tous les noms vairmer que contient le fichier    ds ce cas en input on met seulement  vo  ou  so  la fonction retourne le   nombre de fichiers lus       keyword  EXPANOM  in  si on calcule l anom par rapport a une exper         differente      keyword FILENAME string pour passer directement le nom du champ sans         utiliser les inputs: nom_Vairmer date nom_experience  Rq si         ces inputs sont qd meme donnes ils ne sont pas modifies par         filename       keyword  GRID lorsque ce mot clef est active  lec retourne la liste         des types de grilles  T  U  auxquelles se rapportent les         variables  ds ce cas en input on met seulement  vo  ou  so       keyword  NAME lorsque ce mot clef est active  lec retourne la liste         des noms des variables  ds ce cas en input on met seulement          vo  ou  so       keyword  TOUT  oblige lec a lire le champ sur tout le domaine qui a         etait selectionne pour la cession en cours  jpi jpj jpk       returns un tableau 2 ou 3d  sans le mot cle  TOUT  sa taille est   celle du sous domaine definit par domdef  nx ny nz  avec  TOUT le   champ a la taille du  domaine qui a etait selectionne pour la   cession en cours  jpi jpj jpk     pour les sous domaines cf:            http: www ipsl jussieu fr smlod sousdomaine html   Retourne  1 en cas d erreur       uses common pro isnumber pro fivardate pro        history Sebastien Masson  smasson lodyc jussieu fr   26 5 98                         Jerome Vialard : adaptation au format vairmer                                          keyword anom et expanom  1 7 98                         Sebastien Masson  masque des terres   14 8 98                         Sebastien Masson  decoupe pour les sous domaines   2 99         function lec  nomchamp date nomexp ECRIT ecrit ANOM anom  BOITE   boite EXPANOM expanom  TOUT   tout  GRID   grid  NAME   name  filename   FILENAME  common    tempsun   systime 1            pour key_performance    z    1      if keyword_set filename  then BEGIN       CASE strupcase strmid version os_family  0  3  of           MAC :sep    :            WIN :sep              ELSE:sep           ENDCASE       fname   strmid filename  rstrpos filename  sep 1        if n_elements nomchamp  EQ 0 then nomchamp   strmid fname 6  2        if n_elements date  EQ 0 then date   long strmid fname 8        if n_elements nomexp  EQ 0 then nomexp   strmid fname 0  3     endif      nomchamp strupcase nomchamp     dim string format a2 nomchamp   print   nom de l experience:  nomchamp     specification de la date et de l experience      case n_params  OF       0:BEGIN          if keyword_set filename  then begin             rien juldate date              prefix nomexp          ENDIF ELSE return  report Donnez un argument en entree ou utilisez le mot clef FILENAME        END       1:date long day long month 100 long year 10000       2:rien juldate date        3:begin          rien juldate date           prefix nomexp       end    endcase     verification de la dim du fichier      if dim ne  SO  and dim ne  VO  then return  report le nom du champ doit commencer par VO ou SO        constitution de l adresse ou aller chercher le fichier      s_fichier ficdate date dim      ouverture du fichier a l adresse s_fichier      openr  numlec  s_fichier   get_lun ERROR err   swap_if_little_endian    if err ne 0 then begin    print err_string       return   1    endif  taille en octet du fichier    infofichier fstat numlec      definition de la taille du fichier a aller chercher: jpidta jpjdta jpkdta       if n_elements jpidta  EQ 0 THEN BEGIN        if n_elements ixmindta  EQ 0 OR n_elements ixmaxdta  EQ 0 then          jpidta   jpiglo else jpidta   ixmaxdta ixmindta 1    endif    if n_elements jpjdta  EQ 0 THEN BEGIN        if n_elements iymindta  EQ 0 OR n_elements iymaxdta  EQ 0 then          jpjdta   jpjglo else jpjdta   iymaxdta iymindta 1    endif    if n_elements jpkdta  EQ 0 THEN BEGIN        if n_elements izmindta  EQ 0 OR n_elements izmaxdta  EQ 0 then          jpkdta   jpkglo else jpkdta   izmaxdta izmindta 1    endif     lecture des champs directement vers le champ ou l en tete que l on recherche   il faut savoir que:    le fortran ajoute au debut et a la fin de chaque write 4 octets de controle    les reels du model sont codes sur 4 octets    un charactere fait 1 octet    4 chaines de 8 characteres un tableau de reels 4 trucs de controle  pour les   2 write :    if dim eq  VO  then       taillebloc 4 8 long jpidta jpjdta jpkdta 4 4 4 else       taillebloc 4 8 long jpidta jpjdta 4 4 4     choix du type de lecture      typelec strmid nomchamp 2 strlen nomchamp     test isnumber typelec numerochamp     if test eq 0 then begin     1  LECTURE DIRECTE D EN TETE en EN TETE         numerochamp 1     lecture des noms de champ         resname           resgrid           while numerochamp taillebloc le infofichier size do begin          offset numerochamp 1 taillebloc 4          a assoc numlec bytarr 8 nozero  offset           varname string a 0           if keyword_set ecrit  OR keyword_set name  OR keyword_set grid              then begin             vargrid a 1              vargrid string vargrid 7              vardate strtrim long string a 2  2              varexp strtrim a 3  2              if keyword_set ecrit  THEN                print  numerochamp   varname   vargrid   vardate   varexp             resname    resname  varname              resgrid    resgrid  vargrid           endif          if nomchamp eq varname then begin             vargrid a 1              vargrid string vargrid 7              vardate strtrim long string a 2  2              varexp strtrim a 3  2              goto sortieboucle          endif          numerochamp numerochamp 1       ENDWHILE       free_lun numlec       close  numlec       case 1 of          keyword_set ecrit :return  numerochamp 1          keyword_set name :return  resname 1:numerochamp 1           keyword_set grid :            return  strmid resgrid 1:numerochamp 1 0    strlen resgrid 0 2           ELSE:return  report Ce nom Vairmer de champ n existe pas ds le fichier:  infofichier name        endcase    endif else begin     2  LECTURE DIRECTEMENT DU CHAMP QUE L ON VEUT       test pour savoir si numero de champ est accessible         if taillebloc numerochamp gt infofichier size then          return  report Ce numero de champ n exite pas  Le fichier  infofichier name  ne contient que  infofichier size taillebloc  champs      lecture de l en tete numero numerochamp         offset numerochamp 1 taillebloc 4       a assoc numlec bytarr 8 nozero  offset        varname string a 0        vargrid a 1        vargrid string vargrid 7        vardate string a 2        varexp string a 3     endelse sortieboucle:     lecture du champ lui meme      offset numerochamp 1 taillebloc 8 4 8 4    if dim eq  VO  then       a assoc numlec fltarr jpidta jpjdta jpkdta nozero  offset  else       a assoc numlec fltarr jpidta jpjdta nozero  offset     z a 0      on initialise les ixmindta  iymindta  au besoin      if n_elements ixmindta  EQ 0 OR n_elements ixmaxdta  EQ 0 then BEGIN       ixmindta   0       ixmaxdta   jpidta 1    endif    if n_elements iymindta  EQ 0 OR n_elements iymaxdta  EQ 0 then BEGIN       iymindta   0       iymaxdta   jpjdta 1    endif    if n_elements izmin  EQ 0 OR n_elements izmax  EQ 0 then BEGIN       izmindta   0       izmaxdta   jpkdta 1    endif     on reduit z selon les valeurs de ixmindta  iymindta         if dim EQ  SO  then z   z ixminmesh ixmindta:ixmaxmesh ixmindta                                 iyminmesh iymindta:iymaxmesh iymindta       ELSE z   z ixminmesh ixmindta:ixmaxmesh ixmindta                   iyminmesh iymindta:iymaxmesh iymindta  izminmesh izmindta:izmaxmesh izmindta      on shift z si key_shift est defininit      if n_elements key_shift  NE 0 THEN BEGIN        if dim EQ  SO  then z   shift z key_shift  0          ELSE z   shift z key_shift  0  0     endif      si  TOUT n est pas active  on coupe z pour q il soit a la taille    du zoom: nx ny nz      if NOT keyword_set tout  then BEGIN      changement de domaine         if keyword_set boite  then BEGIN           Case 1 Of             N_Elements Boite  Eq 1:bte lon1  lon2  lat1  lat2  0 boite 0              N_Elements Boite  Eq 2:bte lon1  lon2  lat1  lat2  boite 0 boite 1              N_Elements Boite  Eq 4:bte Boite  prof1  prof2              N_Elements Boite  Eq 5:bte Boite 0:3  0  Boite 4              N_Elements Boite  Eq 6:bte Boite             Else: return  report Mauvaise Definition de Boite           endcase          oldboite    lon1  lon2  lat1  lat2  prof1  prof2           domdef  bte GRILLE vargrid       ENDIF          grille mask glam gphi gdep nx ny nz premierx premiery premierz dernierx derniery dernierz       if nx EQ 1 OR ny EQ 1 OR nz EQ 1 then mask   reform mask  nx  ny  nz   over        if dim EQ  SO  then z   z premierx:dernierx  premiery:derniery           ELSE z   z premierx:dernierx  premiery:derniery  premierz:dernierz     ENDIF ELSE BEGIN        case vargrid OF             on recupere le mask en entier ds le cas ou  TOUT           U :mask   umask        n est pas active et on le choisit en fontion           T :mask   tmask          de la valeur de vargrid           W :mask   tmask                  V :mask   vmask            F :mask   fmask        ENDCASE    ENDELSE      calcul d une anomalie si le keyword anom est active      if keyword_set anom  then begin       case anom of           EX  : adate   0           AN  : adate   floor date 10000 10000            SE  : adate   floor date   floor date 10000 10000 100   100           MO  : adate   floor date 100 100           DA  : adate   date   floor date 10000 10000              : adate   date   floor date 10000 10000          else : return  report Anom doit etre egal a EX AN SE MO DA         endcase       if keyword_set expanom  then nomexpa   expanom         else nomexpa   nomexp       if keyword_set bavard  THEN print  nomchamp     adate     nomexpa       z   z   lec nomchamp adate nomexpa  TOUT   tout     endif     on masque les terres par valmask      IF n_elements valmask  EQ 0 THEN valmask   1e20    if dim EQ  SO  then BEGIN        terre   where mask 0  EQ 0        if terre 0  NE  1 then z terre    valmask     ENDIF ELSE BEGIN        terre   where mask 0  EQ 0        if terre 0  NE  1 then z where mask EQ 0    valmask    ENDELSE       free_lun numlec    close  numlec      if n_elements oldboite  NE 0 then domdef   oldboite    IF keyword_set key_performance  EQ 1 THEN print   temps lec  systime 1 tempsun      return reform z   end ");
 a[61] = new Array("./Obsolete/lect.html", "lect.pro", "", "                file_comments         lit les fichiers Vairmer de date1 a date2 et en sort un tableau         1D  2D ou 3D qui peut etre reutilise pour une courbe   hov   animation  cette fonction modifie aussi les variables globales:  varname: huit lettres: nom Vairmer du champ a tracer  vargrid:1 lettre : nom de la grille  varexp: trois lettres :nom de l experience      obsolete      categories Graphics  lecture de fichier Vaimer      examples   IDL  resultat lec nom_Vairmer date1 date2 nomexp direc BOITE boite       param nomchamp  in required  nom de champ Vairmer  chaine de 8 caracteres commencant                      par VO ou SO            param date1  in required  date de depart de la serie temporelle a            param date2  in required  date de fin  date2  de la serie temporelle a               extraire          param nomexp  in required  nom de l  experience a lire  prefix pardefaut             param direc   in required   x   y   z   xy   xz   yz   xyz   xt   yt   zt   xyt   xzt           yzt   xyzt  directions selon lesquelles effectuer les moyennes          si rien n est donne on n effectue pas de moyenne                 keyword boite  in  boite sur laquelle integrer  par defaut tt le domaine           keyword  anom  in  type de fichiers  SE AN  a relire pour calc une   anomalie              keyword expanom  in  experience pour laquelle on veut calculer une anomalie    par defaut la meme que nomexp       uses common vraidate juldate      history Jerome Vialard  jv lodyc jussieu fr    2 7 98                            1      2      3    4      5        function lect  nomchamp date1 date2 nomexp direc BOITE boite                   ANOM anom EXPANOM expanom  REPEAT repeat  common    tempsun   systime 1            pour key_performance      nomchamp   strupcase nomchamp     date1 vraidate date1     date2 vraidate date2       dim string format a2 nomchamp        specification de la date et de l experience        if fictype date1  ne fictype date2  then       return  report Les deux dates doivent correspondre au meme type de fic vairmer     fictyp   fictype date1       creation du nom du fichier      if n_elements nomexp  EQ 0 then nomexp   prefix    ficname iodir nomchamp strcompress date1 remove_all     ficname ficname  fictyp strcompress date2 remove_all nomexp    if  keyword_set anom  then ficname ficname  anom    if  keyword_set expanom  then ficname ficname  expanom    case n_elements boite  of        4 : box   strcompress string format i4 _ i4 _ i4 _ i4 boite                                 remove_all        6 : box   strcompress string format i4 _ i4 _ i4 _ i4 _ i4 _ i4 boite remove_all        else: box  strcompress string format i4 _ i4 _ i4 _ i4 _ i4 _ i4 lon1 lon2 lat1 lat2 prof1 prof2 remove_all     ENDCASE    if n_elements direc  EQ 0 then direc        ficname ficname box direc hovdat      Est ce que le fichier de hovmoller existe         structure du fichier :   jpt  valeur de la dim temporelle  dimtableau  dimension du tableau     dimttab 0  dimttab 1     valeur des dim     time  axe des tps  ttab  tableau a lire    def du domaine  lon1 lon2    prof1 prof2       get_lun  numlec    openr  numlec  ficname   get_lun ERROR err   swap_if_little_endian    if  err eq 0  then begin       jpt   long 1        dimtableau   long 1        readu  numlec  jpt dimtableau       case dimtableau of           1 : begin             n1   long 1              readu  numlec n1             ttab   fltarr n1           end          2 : begin             n1   long 1              n2   long 1              readu  numlec n1 n2             ttab   fltarr n1 n2           end          3 : begin             n1   long 1              n2   long 1              n3   long 1              readu  numlec n1 n2 n3             ttab   fltarr n1 n2 n3           end       endcase       time   lonarr jpt    lecture axe des tps et du tableau       readu  numlec time  ttab       newboite   fltarr 6    lecture du domaine       readu  numlec newboite       domdef  newboite   lecture info complementaire : nom du champs  de l experience       varname aaaaaaaa        readu  numlec  varname       vargrid a        readu  numlec  vargrid       varexp aaa        readu  numlec  varexp         close  numlec       free_lun  numlec       return  ttab    ENDIF    close  numlec    free_lun  numlec     changement de domaine      if keyword_set boite  then BEGIN        Case 1 Of          N_Elements Boite  Eq 1:bte lon1  lon2  lat1  lat2  0 boite 0           N_Elements Boite  Eq 2:bte lon1  lon2  lat1  lat2  boite 0 boite 1           N_Elements Boite  Eq 4:bte Boite  prof1  prof2           N_Elements Boite  Eq 5:bte Boite 0:3  0  Boite 4           N_Elements Boite  Eq 6:bte Boite          Else: return  report Mauvaise Definition de Boite        endcase       oldboite    lon1  lon2  lat1  lat2  prof1  prof2        domdef  bte    ENDIF        Boucle de lecture des fichiers       case fictyp of        DA  : dec   0         MO  : dec   14         SE  : dec   14         AN  : dec   182     endcase  initialisation des variables associees au tps    time   lonarr jptmax     jpt   0    vdat   date1   debut de la boucle    while  vdat le date2  do begin     lecture du fichier a la date vdat  vairmer          tab   lec nomchamp vdat nomexp ANOM anom EXPANOM expanom      attribution du mask et des tableaux de longitude et latitude          if jpt EQ 0 THEN grille  mask  glam  gphi  gdep  nx  ny nz premierx premiery premierz dernierx  derniery  dernierz         if  n_elements tab  eq 1 and tab 0  eq  1  then begin          goto  incrdate       endif else begin          jpt   jpt   1          if  jpt gt jptmax  then return  report lect : augmenter jptmax        endelse     Moyenne du champs tab         IF n_params  EQ 5 THEN if direc NE   then BEGIN           if nx EQ 1 OR ny EQ 1 OR nz EQ 1 THEN BEGIN              if string format a2 nomchamp  EQ  SO  then tab   reform tab  nx  ny   over                ELSE tab   reform tab  nx  ny  nz   over           ENDIF           tab   moyenne tab direc        endif       if  jpt eq 1  then begin          ttab   tab       endif else BEGIN           ttab   colle ttab  tab   size tab 0 1         endelse       time jpt 1    juldate vdat dec     Incrementation de la date         incrdate :       case fictyp of           DA  : caldat juldate vdat 1 month day year           MO  : begin             caldat julday month 1 year jourdsmois month day year             day 0          end           SE  : month month 1           AN  : year year 1       endcase       Fin de boucle de lecture des fichiers          vdat long 10000 year long 100 month day    ENDWHILE    if ttab 0  EQ  1 then return  report Aucun fichier n a ete lu        Ecriture du fichier      get_lun  numlec    openw  numlec  ficname   get_lun   swap_if_little_endian    taille   size ttab     writeu  numlec  long jpt long taille 0     case taille 0  of        1 : writeu  numlec long taille 1        2 : writeu  numlec long taille 1 long taille 2        3 : writeu  numlec long taille 1 long taille 2 long taille 3     endcase    writeu  numlec long time 0:jpt 1  ttab    writeu  numlec float lon1  lon2  lat1  lat2  prof1  prof2    ecriture info complementaire : nom du champs  de l experience    writeu  numlec  strmid varname 0 8     writeu  numlec  strmid vargrid 0 1     writeu  numlec  strmid varexp 0 3       close  numlec    free_lun  numlec    if keyword_set repeat  then begin     jpt   jpt   repeat     if  jpt gt jptmax  then begin       print   lect : augmenter jptmax        goto  fini     endif     tabadd   ttab     ti  endif      if n_elements oldboite  NE 0 then domdef   oldboite      close   all      IF keyword_set key_performance  THEN print   temps lect  systime 1 tempsun       return  ttab  end    ");
@@ -65,5 +65,5 @@
 a[63] = new Array("./Obsolete/ncdf_meshlec.html", "ncdf_meshlec.pro", "", "           file_comments use ncdf_meshread instead     obsolete      history   Aug  2005  Sebastien Masson: switch to ncdf_meshread         PRO ncdf_meshlec  filename  _EXTRA   ex     CASE n_params  OF     0:ncdf_meshread  _EXTRA   ex     1:ncdf_meshread  filename  _EXTRA   ex   ENDCASE     return END");
 a[64] = new Array("./Obsolete/nlec.html", "nlec.pro", "", "           file_comments lit les fichiers Net Cdf de l experience TOTEM ECMWF qui sont sur   maia:  u rech eee reee217 TOTEM REF OUTPUTS    obsolete      param name  in required  nom du tableau contenant le champ que l on veut  le   trouver avec ncdflec fichier var      param debut  in  nombres de 6 ou 8 chiffres  anneemoisjour  par ex:19980507     param fin  in  nombres de 6 ou 8 chiffres  anneemoisjour  par ex:19980507     param nomexperience  in optional  trois lettres designant le nom de l experience              keyword BOITE boite sur laquelle integrer  par defaut tt le domaine             keyword DIREC:  x   y   z   xy   xz   yz   xyz  directions selon lesquelles               effectuer les moyennes  si rien n est donne on n effectue pas de moyenne       keyword GRILLE impose la grille a laquelle est rapporte le champ  rq permet   d aller plus vite ds la lecture       keyword  TOUT oblige a lire le tableau entier en non pas celui reduit a domdef      uses common pro vraidate juldate  nlec5j          nlecserie      history Sebastien Masson  smasson lodyc jussieu fr      14 8 98      REF 07 790101 grid T nc  REF 07 790101 grid U nc   REF 07 790101 grid V nc   REF 07 790101 grid W nc     function nlec name debut fin nomexperience BOITE boite DIREC direc GRILLE grille TOUT tout                   STRUCTURE   structure  SEUILMIN   seuilmin  SEUILMAX   seuilmax  NAN   nan                   _EXTRA   ex  common      tempsun   systime 1            pour key_performance    nom strlowcase name      specification de la date et de l experience      case n_params  of       1:BEGIN           year year 1900 year ne 0 and year ne  1 and year lt 100           date   day 100 month 10000 year       end       2:BEGIN           if size debut   tname  EQ  STRING  then begin             prefix   strupcase debut              year year 1900 year ne 0 and year ne  1 and year lt 100              date   day 100 month 10000 year          ENDIF ELSE BEGIN             date   debut             rien juldate date           ENDELSE       end       3:begin          date   debut          rien juldate date           if size fin   tname  EQ  STRING  then begin             prefix   strupcase fin           ENDIF ELSE BEGIN             date2 vraidate fin              year2 date2 10000             month2 date2 100   year2 100             day2 date2   year2 10000   month2 100          ENDELSE       end       4:BEGIN          date   debut          rien juldate date            if size nomexperience   tname  EQ  STRING  then begin             prefix   strupcase nomexperience              date2   fin          ENDIF ELSE BEGIN             prefix   strupcase fin              date2   nomexperience          ENDELSE          date2 vraidate date2           year2 date2 10000          month2 date2 100   year2 100          day2 date2   year2 10000   month2 100       end    endcase    date   long date     if n_elements date2  NE 0 then date2   long date2     if n_elements date2  NE 0 then if date2 eq date then tempvar   SIZE TEMPORARY date2      verification de la coherence des dates      if n_elements date2  ne 0 then begin       if  day    EQ 0 AND day2  NE 0  OR  month EQ 0 AND month2 NE 0  OR           year   EQ 0 AND year2 NE 0  or  day2  EQ 0 AND day    NE 0  OR           month2 EQ 0 AND month NE 0  OR  year2 EQ 0 AND year   NE 0  then          return   report verifier la coherence des dates        if date2 le date then return  report date2 doit etre posterieure a date     endif     case sur le type de fichiers que l on veut lire    determination ds chaque cas de numsortie et nbretps      if day NE 0 then begin         SORTIES A 5 JOURS     numsortie   testjour:       numsortie 1 julday month day year julday 1 1 year 5 0        if numsortie ne floor numsortie  then begin          if n_elements date2  ne 0 then begin             caldat julday month day 1 year month day year             goto  testjour          endif          return    1       ENDIF       numsortie   long numsortie      determination du nombre de pas de tps a extraire pour la serie temporelle   entiere: nbretps         if n_elements date2  ne 0 then begin          testjour2:          numsortie2 1 julday month2 day2 year2 julday 1 1 year2 5           if numsortie2 ne floor numsortie2  then begin             caldat julday month2 day2 1 year2 month2 day2 year2             goto  testjour2          endif          if year eq year2 then nbretps numsortie2 numsortie 1 else             nbretps 73 numsortie 1 year2 year 1 73 numsortie2          numsortie2   long numsortie2        endif else nbretps 1       nbretps   long nbretps      si on fait une serie temporelle on cherche a lire plutot un fichier   contenant deja une serie temporelle par contre pour une sortie   unique on cherche d abord a lire un fichier contenant toutes les variables          IF n_elements date2  ne 0 THEN BEGIN          serie:          IF n_elements dejaserie  eq 1 then return   1          datejul   5 numsortie 1 julday 1  1  year           if n_elements date2  ne 0 then date2jul   5 numsortie2 1 julday 1  1  year2             ELSE date2jul   datejul           res   nlecserie nom  datejul  date2jul BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           IF res 0  EQ  1 THEN BEGIN              dejaserie   1             GOTO   passerie          ENDIF        ENDIF ELSE BEGIN          passerie:          IF n_elements dejapasserie  eq 1 then return   1          res     nlec5j  nom  numsortie    nbretps BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           IF res 0  EQ  1 THEN BEGIN             dejapasserie   1             GOTO   serie          ENDIF        endelse    ENDIF ELSE BEGIN       CASE 1 of          month NE 0 AND year NE 0:BEGIN   SORTIES MENSUELLES             numsortie79    year 1979 12 month             if n_elements date2  ne 0 then nbretps   month2 month 1 12 year2 year                ELSE nbretps   1             res   nlecmois nom numsortie79 nbretps  BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           end          month EQ 0 AND year NE 0:BEGIN   SORTIES ANNUELLES             numsortie79    year 1978              if n_elements date2  ne 0 then nbretps   year2 year 1               ELSE nbretps   1             res   nlecan nom numsortie79 nbretps  BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           end          month NE 0 AND year EQ 0:BEGIN   SORTIES SAISONNIERES             numsortie79   month             if n_elements date2  ne 0 then nbretps   month2 month 1               ELSE nbretps   1             res   nlecsaison nom numsortie79 nbretps  BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           end          month EQ 0 AND year EQ 0:BEGIN   SORTIES CLIMATOLOGIQUE             numsortie79   13             nbretps   1             res   nlecsaison nom numsortie79 nbretps  BOITE boite GRILLE grille TOUT tout  _EXTRA   ex           end       endcase    endelse      seuil      if n_elements seuilmin  NE 0 then BEGIN       if n_elements valmask  EQ 0 then valmask   1e20       terre   where res GT valmask 10        res   seuilmin   res       if terre 0  NE  1 then res terre    valmask       undefine  terre    endif    if n_elements seuilmax  NE 0 then begin       if n_elements valmask  EQ 0 then valmask   1e20       terre   where res GT valmask 10        res   res   seuilmax       if terre 0  NE  1 then res terre    valmask       undefine  terre    endif     points a metre a nan      if n_elements nan  NE 0 then BEGIN       if n_elements valmask  EQ 0 then valmask   1e20       if abs valmask  LT 1e6 then terre   where abs res  GT abs valmask 10          ELSE terre   where res EQ valmask        if abs nan  LT 1e6 then notan   where res EQ nan          ELSE notan   where abs res  GT abs nan        if notan 0  NE  1 then res notan     values f_nan       notan   notan 0  NE  1       if terre 0  NE  1 then res terre    valmask       undefine  terre    endif     ajustement de niveau pour les tableau 2d simples      if jpt EQ 1 then begin       taille   size res        IF taille 0  EQ 2 THEN niveau   1    endif     moyenne eventuelle      IF keyword_set direc  THEN BEGIN        IF jpt EQ 1 THEN res   moyenne res direc BOITE boite  nan   notan          ELSE res   grossemoyenne res direc BOITE boite  nan   notan     ENDIF      mise en placer des parametres pour le trace        if keyword_set boite  then legende_pltt   boite ELSE legende_pltt    lon1  lon2  lat1  lat2        IF n_elements res  NE 1 THEN res   reform res over     IF NOT keyword_set direc  THEN domdef  lon1  lon2  lat1  lat2  prof1  prof2  _extra   ex  grille   vargrid      ELSE if direc eq  t  then domdef  lon1  lon2  lat1  lat2  prof1  prof2  _extra   ex  grille   vargrid      if keyword_set structure  then res    tab:res  grille:vargrid  unite:varunit  experience:varexp  nom:varname       if keyword_set key_performance  THEN print   temps nlec  systime 1 tempsun     time   time 2l    return res     end              ");
-a[65] = new Array("./Obsolete/nlec5j.html", "nlec5j.pro", "", "           file_comments lit les fichiers Net Cdf de l experience TOTEM ECMWF qui   contiennent les sorties a 5j regroupees par type de grille par   paquets de 6 mois    sur maia:  u rech eee reee217 TOTEM REF OUTPUTS     obsolete      categories lecture de NETCDF      examples   IDL  res nlec5j  nom  numsortie  nbretps       param nom  in required  nom du tableau contenant le champ que l on veut  le   trouver avec ncdflec fichier var     param numsortie  in required le numero du pas de temps que l on veut sortir du   fichier  compte a partir de 1  a partir de year    param nbretps  in required  nombre de pas de temps a extraire              keyword BOITE boite sur laquelle integrer  par defaut tt le domaine       keyword GRILLE impose la grille a laquelle est rapporte le champ  rq permet   d aller plus vite ds la lecture       keyword  TOUT oblige a lire le tableau entier en non pas celui reduit a domdef      returns tableau 2d  qd on ne demande pas de serie  ou 3d ou 4d ds le cas dune serie        uses common pro      restriction appele par nlec      history Sebastien Masson  smasson lodyc jussieu fr            function nlec5j  nom  numsortie  nbretps BOITE   boite  GRILLE grille TOUT tout  _EXTRA   ex  common      res 1    anneedepart 1979     gestion du nom du fichier      if numsortie le 36 then BEGIN        mmdd 0101        numsort numsortie    ENDIF  else BEGIN       if leapyr year  then mmdd 0629  else mmdd 0630        numsort numsortie 36    endelse    case 1 of       year lt 10:                 s_year  0 string format i1 year        year lt 100 and year ge 10 :s_year      string format i2 year        year ge 100:                s_year      string format i2 year 1900 year LT 2000     endcase    numfich year anneedepart 2 7 mmdd ne  0101     s_date s_year mmdd    if numfich lt 10 then numfich 0 string format i1 numfich       else numfich     string format i2 numfich      gestion du nom de la grille en testant les differentes possibilites   et ouverture du fichier      if keyword_set grille  then begin       vargrid grille       nomfich prefix numfich s_date grid vargrid nc        IF  version OS_FAMILY EQ  unix  THEN spawn   file  iodir nomfich     dev null        cdfid ncdf_open iodir nomfich        varcontient ncdf_varinq cdfid nom     endif else begin   liste des fichiers pouvant convenir       quelsfichiers   findfile iodir prefix numfich s_date grid        IF quelsfichiers 0  EQ   THEN BEGIN   liste vide          if keyword_set bavard  then             ras   report LES FICHIERS:  iodir prefix numfich s_date grid  n existe pas           return    1       ENDIF        for i 0 n_elements quelsfichiers 1 do begin          IF  version OS_FAMILY EQ  unix  THEN spawn   file  quelsfichiers i     dev null           cdfid ncdf_open quelsfichiers i           contient ncdf_inquire cdfid           for varid 0 contient nvars 1 do BEGIN   ds les fichiers existants on             varcontient ncdf_varinq cdfid varid    cherche le nom des variables             if varcontient name eq nom then BEGIN                vargrid strmid quelsfichiers i strpos quelsfichiers i grid 5 1   nom de grille                goto  grilletrouvee             ENDIF           endfor          ncdf_close cdfid       endfor       if keyword_set bavard  then          ras   report La variable  nom  n existe pas ds les fichiers iodir prefix numfich s_date grid        return    1    endelse grilletrouvee:     lecture de certains attributs      ncdf_attget cdfid nom title value    varname string value     ncdf_attget cdfid nom units value    varunit string value     if rstrpos varname  eq  1 then varname varname   varunit     if month lt 10 then s_month 0 string format i1 month       else s_month     string format i2 month     if day lt 10 then s_day 0 string format i1 day       else s_day     string format i2 day     vardate s_year s_month s_day    ncdf_attget cdfid file_name value global    varexp string value 0: where value EQ  byte 0 0 1        extraction du tableau qui nous interesse       determination du domaine geographique      if keyword_set tout  then begin       nx jpi       ny jpj       nz jpk       premierx   0       premiery   0       premierz   0    endif else BEGIN      redefinition eventuelle du domaine ajuste a boite  a 6 elements      on recupere la dim du no9uveau domaine         if keyword_set boite  then BEGIN           Case  N_Elements Boite  Of             1:Domdef  lon1  lon2  lat1  lat2  0 boite 0 GRILLE vargrid  _EXTRA   ex             2:Domdef  lon1  lon2  lat1  lat2  boite 0 boite 1 GRILLE vargrid  _EXTRA   ex             4:Domdef   Boite  prof1  prof2 GRILLE vargrid  _EXTRA   ex             5:Domdef   Boite 0:3  0  Boite 4 GRILLE vargrid  _EXTRA   ex             6:Domdef  Boite GRILLE vargrid  _EXTRA   ex             Else: return  report Mauvaise Definition de Boite           endcase       ENDIF       grille  mask  glam  gphi  gdep  nx  ny nz premierx premiery  premierz  dernierx  derniery  dernierz    ENDELSE      determination du nombre de pas de tps a extraire ds ce fichier      if nbretps gt 36 1 mmdd ne  0101 numsort 1 then nt 36 1 mmdd ne  0101 numsort 1      else nt nbretps        if varcontient ndims eq 3 then       ncdf_varget cdfid nom res offset premierx premiery numsort 1 count nx ny nt       else       ncdf_varget cdfid nom res offset premierx premiery  premierz numsort 1 count nx ny nz nt      rappel en boucle de nlec si il faut ouvrir de nouveaux fichiers   pour constituer la serie temporelle      if nbretps gt 36 1 mmdd ne  0101 numsort 1 then begin       if mmdd ne  0101  then year   year 1       if varcontient ndims eq 3 then          res    res                   nlec5j nom 1 36 mmdd eq  0101 nbretps nt tout tout GRILLE vargrid BOITE boite          ELSE BEGIN         res res                 nlec5j nom 1 36 mmdd eq  0101 nbretps nt tout tout GRILLE vargrid  BOITE boite         res reform res nx ny nz nbretps   over       ENDELSE        ncdf_varget cdfid time_counter temps  offset    numsort 1 count nt        time    long temps julday 1  5  1979  time        jpt nt jpt    endif else BEGIN       ncdf_varget cdfid time_counter temps  offset    numsort 1 count nt        time   long temps julday 1  5  1979        jpt nt    endelse      ncdf_close cdfid    return res     end");
+a[65] = new Array("./Obsolete/nlec5j.html", "nlec5j.pro", "", "           file_comments lit les fichiers Net Cdf de l experience TOTEM ECMWF qui   contiennent les sorties a 5j regroupees par type de grille par   paquets de 6 mois    sur maia:  u rech eee reee217 TOTEM REF OUTPUTS     obsolete      categories lecture de NETCDF      examples   IDL  res nlec5j  nom  numsortie  nbretps       param nom  in required  nom du tableau contenant le champ que l on veut  le   trouver avec ncdflec fichier var     param numsortie  in required le numero du pas de temps que l on veut sortir du   fichier  compte a partir de 1  a partir de year    param nbretps  in required  nombre de pas de temps a extraire              keyword BOITE boite sur laquelle integrer  par defaut tt le domaine       keyword GRILLE impose la grille a laquelle est rapporte le champ  rq permet   d aller plus vite ds la lecture       keyword  TOUT oblige a lire le tableau entier en non pas celui reduit a domdef      returns tableau 2d  qd on ne demande pas de serie  ou 3d ou 4d ds le cas dune serie        uses common pro      restrictions appele par nlec      history Sebastien Masson  smasson lodyc jussieu fr            function nlec5j  nom  numsortie  nbretps BOITE   boite  GRILLE grille TOUT tout  _EXTRA   ex  common      res 1    anneedepart 1979     gestion du nom du fichier      if numsortie le 36 then BEGIN        mmdd 0101        numsort numsortie    ENDIF  else BEGIN       if leapyr year  then mmdd 0629  else mmdd 0630        numsort numsortie 36    endelse    case 1 of       year lt 10:                 s_year  0 string format i1 year        year lt 100 and year ge 10 :s_year      string format i2 year        year ge 100:                s_year      string format i2 year 1900 year LT 2000     endcase    numfich year anneedepart 2 7 mmdd ne  0101     s_date s_year mmdd    if numfich lt 10 then numfich 0 string format i1 numfich       else numfich     string format i2 numfich      gestion du nom de la grille en testant les differentes possibilites   et ouverture du fichier      if keyword_set grille  then begin       vargrid grille       nomfich prefix numfich s_date grid vargrid nc        IF  version OS_FAMILY EQ  unix  THEN spawn   file  iodir nomfich     dev null        cdfid ncdf_open iodir nomfich        varcontient ncdf_varinq cdfid nom     endif else begin   liste des fichiers pouvant convenir       quelsfichiers   findfile iodir prefix numfich s_date grid        IF quelsfichiers 0  EQ   THEN BEGIN   liste vide          if keyword_set bavard  then             ras   report LES FICHIERS:  iodir prefix numfich s_date grid  n existe pas           return    1       ENDIF        for i 0 n_elements quelsfichiers 1 do begin          IF  version OS_FAMILY EQ  unix  THEN spawn   file  quelsfichiers i     dev null           cdfid ncdf_open quelsfichiers i           contient ncdf_inquire cdfid           for varid 0 contient nvars 1 do BEGIN   ds les fichiers existants on             varcontient ncdf_varinq cdfid varid    cherche le nom des variables             if varcontient name eq nom then BEGIN                vargrid strmid quelsfichiers i strpos quelsfichiers i grid 5 1   nom de grille                goto  grilletrouvee             ENDIF           endfor          ncdf_close cdfid       endfor       if keyword_set bavard  then          ras   report La variable  nom  n existe pas ds les fichiers iodir prefix numfich s_date grid        return    1    endelse grilletrouvee:     lecture de certains attributs      ncdf_attget cdfid nom title value    varname string value     ncdf_attget cdfid nom units value    varunit string value     if rstrpos varname  eq  1 then varname varname   varunit     if month lt 10 then s_month 0 string format i1 month       else s_month     string format i2 month     if day lt 10 then s_day 0 string format i1 day       else s_day     string format i2 day     vardate s_year s_month s_day    ncdf_attget cdfid file_name value global    varexp string value 0: where value EQ  byte 0 0 1        extraction du tableau qui nous interesse       determination du domaine geographique      if keyword_set tout  then begin       nx jpi       ny jpj       nz jpk       premierx   0       premiery   0       premierz   0    endif else BEGIN      redefinition eventuelle du domaine ajuste a boite  a 6 elements      on recupere la dim du no9uveau domaine         if keyword_set boite  then BEGIN           Case  N_Elements Boite  Of             1:Domdef  lon1  lon2  lat1  lat2  0 boite 0 GRILLE vargrid  _EXTRA   ex             2:Domdef  lon1  lon2  lat1  lat2  boite 0 boite 1 GRILLE vargrid  _EXTRA   ex             4:Domdef   Boite  prof1  prof2 GRILLE vargrid  _EXTRA   ex             5:Domdef   Boite 0:3  0  Boite 4 GRILLE vargrid  _EXTRA   ex             6:Domdef  Boite GRILLE vargrid  _EXTRA   ex             Else: return  report Mauvaise Definition de Boite           endcase       ENDIF       grille  mask  glam  gphi  gdep  nx  ny nz premierx premiery  premierz  dernierx  derniery  dernierz    ENDELSE      determination du nombre de pas de tps a extraire ds ce fichier      if nbretps gt 36 1 mmdd ne  0101 numsort 1 then nt 36 1 mmdd ne  0101 numsort 1      else nt nbretps        if varcontient ndims eq 3 then       ncdf_varget cdfid nom res offset premierx premiery numsort 1 count nx ny nt       else       ncdf_varget cdfid nom res offset premierx premiery  premierz numsort 1 count nx ny nz nt      rappel en boucle de nlec si il faut ouvrir de nouveaux fichiers   pour constituer la serie temporelle      if nbretps gt 36 1 mmdd ne  0101 numsort 1 then begin       if mmdd ne  0101  then year   year 1       if varcontient ndims eq 3 then          res    res                   nlec5j nom 1 36 mmdd eq  0101 nbretps nt tout tout GRILLE vargrid BOITE boite          ELSE BEGIN         res res                 nlec5j nom 1 36 mmdd eq  0101 nbretps nt tout tout GRILLE vargrid  BOITE boite         res reform res nx ny nz nbretps   over       ENDELSE        ncdf_varget cdfid time_counter temps  offset    numsort 1 count nt        time    long temps julday 1  5  1979  time        jpt nt jpt    endif else BEGIN       ncdf_varget cdfid time_counter temps  offset    numsort 1 count nt        time   long temps julday 1  5  1979        jpt nt    endelse      ncdf_close cdfid    return res     end");
 a[66] = new Array("./Obsolete/nlecan.html", "nlecan.pro", "", "           file_comments lit les moyennes annuelles   sur maia:  u rech eee reee217 TOTEM REF OUTPUTS       obsolete    categories lecture de NETCDF      examples    IDL  res nlecan nom  numsortie79  nbretps       param nom  in required  nom du tableau contenant le champ que l on veut  le   trouver avec ncdflec fichier var    param numsortie79   in required  le numero du pas de temps que l on veut sortir du   fichier  compte a partir de 1  a partir de 79    param nbretps   in required  nombre de pas de temps a extraire      keyword BOITE  boite sur laquelle integrer  par defaut tt le domaine       keyword GRILLE impose la grille a laquelle est rapporte le champ  rq permet   d aller plus vite ds la lecture       keyword  TOUT oblige a lire le tableau entier en non pas celui reduit a domdef      returns tableau 2d  qd la serie ne fait que 1 pas de temps  ou   3d  valable ds 1 premier tps que pour les tableaux 2d        uses common pro      restrictions appele par nlec      history Sebastien Masson  smasson lodyc jussieu fr           REF moyenne annuelle grid T nc   function nlecan  nom  numsortie79  nbretps BOITE   boite GRILLE grille TOUT tout  _EXTRA   ex  common        res 1    anneedepart 1979     gestion du nom de la grille en testant les differentes possibilites   et ouverture du fichier      if keyword_set grille  then begin       vargrid grille       nomfich prefix moyenne annuelle grid vargrid nc        IF  version OS_FAMILY EQ  unix  THEN spawn   file  iodir nomfich     dev null              cdfid ncdf_open iodir nomfich        varcontient ncdf_varinq cdfid nom     endif else begin   liste des fichiers pouvant convenir       quelsfichiers   findfile iodir prefix moyenne annuelle grid        IF quelsfichiers 0  EQ   THEN     liste vide          return   report LES FICHIERS:  iodir prefix moyenne annuelle grid  n existe pas        for i 0 n_elements quelsfichiers 1 do begin          IF  version OS_FAMILY EQ  unix  THEN spawn   file  quelsfichiers i     dev null           cdfid ncdf_open quelsfichiers i           contient ncdf_inquire cdfid           for varid 0 contient nvars 1 do BEGIN     ds les fichiers existants on             varcontient ncdf_varinq cdfid varid    cherche le nom des variables             if varcontient name eq nom then BEGIN                vargrid strmid quelsfichiers i strpos quelsfichiers i grid 5 1   nom de grille                goto  grilletrouvee             ENDIF           endfor          ncdf_close cdfid       endfor       return  report La variable  nom  n existe pas ds les fichiers iodir prefix moyenne annuelle grid     endelse grilletrouvee:     lecture de certains attributs et de l axe des temps      ncdf_attget cdfid nom title value    varname string value     ncdf_attget cdfid nom units value    varunit string value     if rstrpos varname  eq  1 then varname varname   varunit     varexp prefix     lecture de l axe des temps      ncdf_varget cdfid time_counter time  offset    numsortie79 1 count nbretps     time   long time julday 12  31  1978     jpt nbretps    IF jpt EQ 1 THEN BEGIN       caldat  time 0  month  day  year       case 1 of          year lt 10:                 s_year  0 string format i1 year           year lt 100 and year ge 10 :s_year      string format i2 year           year ge 100:                s_year      string format i2 year 1900        endcase       vardate annee:  s_year    endif       extraction du tableau qui nous interesse         determination du domaine geographique      if keyword_set tout  then begin       nx jpi       ny jpj       nz jpk       glam 1        gphi 1        gdep 1        premierx   0       premiery   0       premierz   0    endif else BEGIN      redefinition eventuelle du domaine ajuste a boite  a 6 elements      on recupere la dim du no9uveau domaine         if keyword_set boite  then BEGIN           Case N_Elements Boite  Of             1:Domdef  lon1  lon2  lat1  lat2  0 boite 0 GRILLE vargrid  _EXTRA   ex             2:Domdef  lon1  lon2  lat1  lat2  boite 0 boite 1 GRILLE vargrid  _EXTRA   ex             4:Domdef   Boite prof1  prof2 GRILLE vargrid  _EXTRA   ex             5:Domdef   Boite 0:3  0  Boite 4 GRILLE vargrid  _EXTRA   ex             6:Domdef  Boite GRILLE vargrid  _EXTRA   ex             Else:return  report Mauvaise Definition de Boite           endcase       ENDIF       grille  mask  glam  gphi  gdep  nx  ny nz premierx premiery  premierz    ENDELSE       if varcontient ndims eq 3 then       ncdf_varget cdfid nom res offset premierx premiery numsortie79 1         count nx ny nbretps  else       ncdf_varget cdfid nom res offset premierx premiery  premierz numsortie79 1         count nx ny nz nbretps       ncdf_close cdfid    return res     end");
 a[67] = new Array("./Obsolete/nlecmois.html", "nlecmois.pro", "", "             file_comments lit les fichiers Net Cdf  de moyenne mensuel  de   l experience TOTEM ECMWF qui sont sur   maia:  u rech eee reee217 TOTEM REF OUTPUTS    obsolete      keyword BOITE boite sur laquelle integrer  par defaut tt le domaine       keyword GRILLE impose la grille a laquelle est rapporte le champ  rq permet   d aller plus vite ds la lecture       keyword  TOUT oblige a lire le tableau entier en non pas celui reduit a domdef    uses common pro      history Sebastien Masson  smasson lodyc jussieu fr           REF moyenne mensuelle 79 81 grid T nc   function nlecmois nom numsortie79 nbretps  BOITE boite GRILLE grille TOUT tout  _EXTRA   ex  common      res  1     annee du nom du 1er fichier      annee   floor floor numsortie79 1 12 3 3 79     gestion du nom de la grille en testant les differentes possibilites   et ouverture du fichier      if keyword_set grille  then begin       vargrid grille       nomfich prefix moyenne mensuelle strtrim annee  1 strtrim annee 2  1 grid vargrid nc        IF  version OS_FAMILY EQ  unix  THEN spawn   file  iodir nomfich     dev null        cdfid ncdf_open iodir nomfich        varcontient ncdf_varinq cdfid nom     endif else begin   liste des fichiers pouvant convenir       quelsfichiers   findfile iodir prefix moyenne mensuelle strtrim annee  1 strtrim annee 2  1 grid        IF quelsfichiers 0  EQ   THEN     liste vide          return  report LES FICHIERS:  iodir prefix moyenne mensuelle strtrim annee  1 strtrim annee 2  1 grid  n existe pas        for i 0 n_elements quelsfichiers 1 do begin          IF  version OS_FAMILY EQ  unix  THEN spawn   file  quelsfichiers i     dev null           cdfid ncdf_open quelsfichiers i           contient ncdf_inquire cdfid           for varid 0 contient nvars 1 do BEGIN   ds les fichiers existants on             varcontient ncdf_varinq cdfid varid    cherche le nom des variables             if varcontient name eq nom then BEGIN                vargrid strmid quelsfichiers i strpos quelsfichiers i grid 5 1   nom de grille                goto  grilletrouvee             ENDIF           endfor          ncdf_close cdfid       endfor       return  report La variable  nom  n existe pas ds les fichiers iodir prefix moyenne mensuelle strtrim annee  1 strtrim annee 2  1 grid     endelse grilletrouvee:     lecture de certains attributs et de l axe des temps      ncdf_attget cdfid nom title value    varname string value     ncdf_attget cdfid nom units value    varunit string value     if rstrpos varname  eq  1 then varname varname   varunit     varexp prefix     determination du domaine geographique      if keyword_set tout  then begin       nx jpi       ny jpj       nz jpk       premierx 0       premiery 0       premierz 0    endif else BEGIN      redefinition eventuelle du domaine ajuste a boite  a 6 elements      on recupere la dim du no9uveau domaine         if keyword_set boite  then BEGIN           Case N_Elements Boite  Of             1:Domdef  lon1  lon2  lat1  lat2  0 boite 0 GRILLE vargrid  _EXTRA   ex             2:Domdef  lon1  lon2  lat1  lat2  boite 0 boite 1 GRILLE vargrid  _EXTRA   ex             4:Domdef   Boite  prof1  prof2 GRILLE vargrid  _EXTRA   ex             5:Domdef   Boite 0:3  0  Boite 4 GRILLE vargrid  _EXTRA   ex             6:Domdef  Boite GRILLE vargrid  _EXTRA   ex             Else:return   report Mauvaise Definition de Boite           endcase       ENDIF       grille  mask  glam  gphi  gdep  nx  ny nz premierx premiery  premierz    ENDELSE      determination du nombre de pas de tps a extraire ds ce fichier      numsortie   numsortie79 12 annee 79     if nbretps numsortie 1 gt 36 then nt 36 numsortie 1      else nt nbretps    numsortie   numsortie79 12 annee 79        if varcontient ndims eq 3 then       ncdf_varget cdfid nom res offset premierx premiery numsortie 1 count nx ny nt  else       ncdf_varget cdfid nom res offset premierx premiery premierz numsortie 1 count nx ny nz nt      rappel en boucle de nlec si il faut ouvrir de nouveaux fichiers   pour constituer la serie temporelle      if nbretps gt 36 numsortie 1 then begin       if varcontient ndims eq 3 then          res    res                   nlecmois nom numsortie79 nt nbretps nt tout tout GRILLE vargrid BOITE boite          else BEGIN           res res                   nlecmois nom numsortie79 nt nbretps nt tout tout GRILLE vargrid BOITE boite                      res reform res nx ny nz nbretps   over         ENDELSE        ncdf_varget cdfid time_counter temps  offset    numsortie 1 count nt        time    long temps julday 12  31  1978  time        jpt nt jpt    endif else BEGIN       ncdf_varget cdfid time_counter temps  offset    numsortie 1 count nt        time   long temps julday 12  31  1978        jpt nt    endelse      ncdf_close cdfid    IF n_elements time  EQ 1 THEN BEGIN       caldat  time  m  d  y       if m lt 10 then m 0 string format i1 m          else m     string format i2 m        if n_elements langage  EQ 0 then langage    non definit        if langage EQ  gb  then vardate   strtrim y  1   string format C CMoA 31 m 1          ELSE vardate   string format C CMoA 31 m 1   strtrim y  1     endif      return res     end");
@@ -243,5 +243,5 @@
 a[241] = new Array("./ToBeReviewed/MATRICE/union.html", "union.pro", "", "          NAME:union     PURPOSE:calcule l union de 2 matrices D ENTIERS POSITIFS     CATEGORY:calcule sur les matrices     CALLING SEQUENCE:res union a b      INPUTS:a et b:arrays of positive integers  which need                 not be sorted  Duplicate elements are ignored  as they have no                 effect on the result     KEYWORD PARAMETERS:     OUTPUTS:tableau     COMMON BLOCKS:     SIDE EFFECTS:     The empty set is denoted by an array with the first element equal to    1      RESTRICTIONS:     These functions will not be efficient on sparse sets with wide   ranges  as they trade memory for efficiency  The HISTOGRAM function   is used  which creates arrays of size equal to the range of the   resulting set      EXAMPLE:       a    2 4 6 8      b    6 1 3 2      union a b      1  2  3  4  6  8     Elements in either set     MODIFICATION HISTORY:      http: www dfanning com tips set_operations html         FUNCTION union  a  b IF a 0  LT 0 THEN RETURN  b     A union NULL   a IF b 0  LT 0 THEN RETURN  a     B union NULL   b RETURN  Where Histogram a b  OMin   omin    omin   Return combined set END");
 a[242] = new Array("./ToBeReviewed/MATRICE/zeroun.html", "zeroun.pro", "", "          NAME:zeroun     PURPOSE:renvoie un vecteur ou une matrice constitue de o et de 1 en   alternance     CATEGORY:function  matrices     CALLING SEQUENCE:resultat zeroun n1  n2      INPUTS:  n1 nombre d elements dans la premiere dimension  n2 nombre d elements dans la deuxieme dimension     KEYWORD PARAMETERS:     OUTPUTS:resultat     COMMON BLOCKS:     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY: Sebastien Masson  smasson lodyc jussieu fr                          1 12 98         function zeroun  n1 n2    CASE N_PARAMS  OF       1:return  findgen n1  mod 2       2:BEGIN           if fix n1 2  EQ n1 2  then BEGIN  nombre pair de colonnes             res   findgen n1 1 n2  mod 2             return  res 0:n1 1             ENDIF ELSE return  findgen n1 n2  mod 2  nombre impair de colonnes       END       else: return   report Mauvais nombre de parametre dans l appel de ZEROUN     endcase             end");
-a[243] = new Array("./ToBeReviewed/PLOTS/DESSINE/bar_plot.html", "bar_plot.pro", "", "   Id: bar_plot pro 35 2006 05 02 14:44:47Z pinsard       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 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[243] = new Array("./ToBeReviewed/PLOTS/DESSINE/bar_plot.html", "bar_plot.pro", "", "   Id: bar_plot pro 97 2006 06 09 15:18:59Z pinsard       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 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[244] = 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  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[245] = 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  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  ");
@@ -271,5 +271,5 @@
 a[269] = 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    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[270] = 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  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[271] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "   Id: label_date pro 39 2006 05 02 15:05:06Z pinsard       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 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[271] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "   Id: label_date pro 97 2006 06 09 15:18:59Z pinsard       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 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[272] = 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  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[273] = 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     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 ");
@@ -277,5 +277,5 @@
 a[275] = 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  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[276] = 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     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      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  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[277] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "   Id: velovect pro 41 2006 05 02 15:12:07Z pinsard       Copyright  c  1983 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited   PRO VELOVECT U V X Y  Missing   Missing  Length   length  Dots   dots             Color color  CLIP clip  NOCLIP noclip  OVERPLOT overplot  _EXTRA extra        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              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[277] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "   Id: velovect pro 97 2006 06 09 15:18:59Z pinsard       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         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[278] = 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  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[279] = 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  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");
Index: /trunk/SRC/Interpolation/angle.pro
===================================================================
--- /trunk/SRC/Interpolation/angle.pro	(revision 100)
+++ /trunk/SRC/Interpolation/angle.pro	(revision 101)
@@ -1,30 +1,14 @@
 ;---------
 ;+
-; NAME:angle.pro (fom angle.F,v 2.2 in OPA8.2)
+; @file_comments north stereographic polar projection
 ;
-; PURPOSE:Compute angles between grid lines and direction of the North
+; @keyword    /DOUBLE use double precision (default is float)
 ;
-; CALLING SEQUENCE: 
-;     angle, fileocemesh, gcosu, gsinu, gcosv, gsinv, gcost, gsint
-;
-; INPUTS:
-;     fileocemesh a netcdf file that contains (at least):
-;        glamu, gphiu: longitudes and latitudes at U-points
-;        glamv, gphiv: longitudes and latitudes at V-points
-;        glamf, gphif: longitudes and latitudes at F-points
-;
-; KEYWORD PARAMETERS:
-;
-;    IODIRECTORY: the directory path where is located fileocemesh
-;
-;    /DOUBLE: use double precision (default is float)
-;
-; OUTPUTS:
+; @returns
 ;       gsinu,gcosu : sinus and cosinus of the angle 
 ;       gsinv,gcosv   between north-south direction 
 ;       gsint,gcost   and the j-direction of the mesh
-;  	              
 ;
-; RESTRICTIONS: to compute the lateral boundary conditions, we assume
+; @restrictions to compute the lateral boundary conditions, we assume
 ; that: 
 ;     (1) the first line is similar to the second line
@@ -37,5 +21,5 @@
 ;
 ;
-; MODIFICATION HISTORY:
+; @history
 ;   --------------
 ;       Original :  96-07 (O. Marti)
@@ -45,5 +29,4 @@
 ;---------
 ;
-;  fsnspp: north stereographic polar projection
 FUNCTION fsnspp, plam, pphi, DOUBLE = double
   IF keyword_set(double) THEN BEGIN
@@ -59,4 +42,16 @@
 END
 ;---------
+;+
+; @file_comments Compute angles between grid lines and direction of the North
+;(fom angle.F,v 2.2 in OPA8.2)
+;
+; @param fileocemesh {in}{required} a netcdf file that contains (at least):
+;        glamu, gphiu: longitudes and latitudes at U-points
+;        glamv, gphiv: longitudes and latitudes at V-points
+;        glamf, gphif: longitudes and latitudes at F-points
+;
+; @keyword IODIRECTORY the directory path where is located fileocemesh
+; @keyword    /DOUBLE use double precision (default is float)
+;-
 ;---------
 ;
Index: /trunk/SRC/Interpolation/clickincell.pro
===================================================================
--- /trunk/SRC/Interpolation/clickincell.pro	(revision 100)
+++ /trunk/SRC/Interpolation/clickincell.pro	(revision 101)
@@ -1,10 +1,8 @@
 ;+
-; NAME:clickincell
+; @file_comments click on a map and find in which cell the click was
 ;
-; PURPOSE: click on a map and find in which cell the click was
+; @categories finding where is a point on a grid
 ;
-; CATEGORY:finding where is a point on a grid
-;
-; CALLING SEQUENCE:
+; @examples 
 ;
 ;     res = clickincell()
@@ -13,44 +11,36 @@
 ;     Click on the right button to quit.  
 ;
-; INPUTS:None
-;
-; KEYWORD PARAMETERS:
-;
-;     CELLTYPE = 'T', 'W', 'U', 'V' or 'F': This this the type of point
+; @keyword     CELLTYPE = 'T', 'W', 'U', 'V' or 'F' This this the type of point
 ;     that is located in the center of the cell which the click is
 ;     located. default is T type of cell (with corner defined by F
 ;     points).
 ;
-;     /DRAWCELL: to draw the cell in which we clicked
+; @keyword     /DRAWCELL to draw the cell in which we clicked
 ;
-;     COLOR = the color used to draw the cells (Clicking one more
+; @keyword     COLOR  the color used to draw the cells (Clicking one more
 ;     time in the same cell will draw the cell with the white color)
 ;
-;     /ORIGINAL: to get the position of the cell regarding the original
+; @keyword     /ORIGINAL to get the position of the cell regarding the original
 ;     grid (with no key_shift, ixminmesh, iyminmesh...)
 ;
-;     /IJ: see outpus
+; @keyword     /IJ see outpus
 ;
-;     _EXTRA: to pass extra keywords to inquad and plot (when /drawcell)
+; @keyword     _EXTRA to pass extra keywords to inquad and plot (when /drawcell)
 ;
-; OUTPUTS:
-;     the the index of the selected cells regarding to the grid which
+; @returns
+;     the index of the selected cells regarding to the grid which
 ;     is in memory in the variable of the common. If /ij keyword is
 ;     activated give 2D array (2, n) which are the i,j position of the
 ;     n selected cells. 
 ;
-; COMMON BLOCKS:common.pro
+; @uses common.pro
 ;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; EXAMPLE:
+; @examples 
 ;
 ;   IDL> plt, findgen(jpi,jpj),/nodata,map=[90,0,0],/ortho
 ;   IDL> print, clickincell(/draw,color=150,/xy)
 ;
-; MODIFICATION HISTORY:
-;      Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+;      Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;      August 2003
 ;
Index: /trunk/SRC/Interpolation/compute_fromreg_bilinear_weigaddr.pro
===================================================================
--- /trunk/SRC/Interpolation/compute_fromreg_bilinear_weigaddr.pro	(revision 100)
+++ /trunk/SRC/Interpolation/compute_fromreg_bilinear_weigaddr.pro	(revision 101)
@@ -1,24 +1,20 @@
 ;+
-; NAME: compute_fromreg_bilinear_weigaddr
-;
-; PURPOSE: compute the weight and address neede to interpolate data from a
+; @file_comments compute the weight and address neede to interpolate data from a
 ;          "regular grid" to any grid using the bilinear method
 ;   
-; CATEGORY:interpolation
-;
-; CALLING SEQUENCE: 
-;     compute_fromreg_bilinear_weigaddr, alon, alat, olon, olat, weig, addr
-;
-; INPUTS:
-;     lonin and latin: longitude/latitude of the input data. Must be 1D arrays
-;     lonout and latout: longitude/latitude of the output data. Must be 2D arrays
-;
-; KEYWORD PARAMETERS: 
-;
-;     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
-;          account the northen/southern line of the input data when perfoming the
+; @categories interpolation
+;
+;     @param alonin {in}{required} longitudeof the input data 
+;     @param alatin  {in}{required} latitude of the input data 
+;     @param olonin {in}{required} longitude of the output data 
+;     @param olat  {in}{required} latitude of the output data 
+;
+; @keyword     /NONORTHERNLINE activate if you don't whant to take into
+;          account the northen line of the input data when perfoming the
+; @keyword     /NOSOUTHERNLINE activate if you don't whant to take into
+;          account the southern line of the input data when perfoming the
 ;          interpolation.
 ;
-; OUTPUTS: 
+; @returns 
 ;     weig, addr: 2D arrays, weig and addr are the weight and addresses used to
 ;     perform the interpolation:
@@ -26,9 +22,5 @@
 ;          dataout = reform(dataout, jpio, jpjo, /over)
 ;
-; COMMON BLOCKS: none
-;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS:
+; @restrictions
 ;  -  the input grid must be a "regular grid", defined as a grid for which each
 ;     lontitudes lines have the same latitude and each latitudes columns have the
@@ -39,7 +31,5 @@
 ;     using a linear interpolation only along the longitudinal direction.
 ; 
-; EXAMPLE: 
-;
-; MODIFICATION HISTORY:
+; @history
 ;  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
 ; 
Index: /trunk/SRC/Interpolation/compute_fromreg_imoms3_weigaddr.pro
===================================================================
--- /trunk/SRC/Interpolation/compute_fromreg_imoms3_weigaddr.pro	(revision 100)
+++ /trunk/SRC/Interpolation/compute_fromreg_imoms3_weigaddr.pro	(revision 101)
@@ -1,24 +1,20 @@
 ;+
-; NAME: compute_fromreg_imoms3_weigaddr
-;
-; PURPOSE: compute the weight and address neede to interpolate data from a
+;
+; @file_comments compute the weight and address neede to interpolate data from a
 ;          "regular grid" to any grid using the imoms3 method
 ;   
-; CATEGORY:interpolation
-;
-; CALLING SEQUENCE: 
-;     compute_fromreg_imoms3_weigaddr, alon, alat, olon, olat, weig, addr
-;
-; INPUTS:
-;     lonin and latin: longitude/latitude of the input data 
-;     lonout and latout: longitude/latitude of the output data 
-;
-; KEYWORD PARAMETERS: 
-;
-;     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
+; @categories interpolation
+PRO compute_fromreg_imoms3_weigaddr, alonin, alatin, olonin, olat, weig, addr $
+;
+;     @param alonin {in}{required} longitude of the input data 
+;     @param alatin  {in}{required} latitude of the input data 
+;     @param olonin {in}{required} longitude of the output data 
+;     @param olat {in}{required} latitude of the output data 
+;
+; @keyword /NONORTHERNLINE and /NOSOUTHERNLINE activate if you don't whant to take into
 ;          account the northen/southern line of the input data when perfoming the
 ;          interpolation.
 ;
-; OUTPUTS: 
+; @returns 
 ;     weig, addr: 2D arrays, weig and addr are the weight and addresses used to
 ;     perform the interpolation:
@@ -26,9 +22,5 @@
 ;          dataout = reform(dataout, jpio, jpjo, /over)
 ;
-; COMMON BLOCKS: none
-;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS:
+; @restrictions
 ;  -  the input grid must be a "regular/rectangular grid", defined as a grid for
 ;     which each lontitudes lines have the same latitude and each latitudes columns
@@ -42,8 +34,6 @@
 ;     using a imoms3 interpolation only along the longitudinal direction.
 ; 
-; EXAMPLE: 
-;
-; MODIFICATION HISTORY:
-;  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
+; @history
+;  November 2005: Sebastien Masson (smasson\@lodyc.jussieu.fr) 
 ;  March 2006: works for rectangular grids
 ;-
Index: /trunk/SRC/Interpolation/cutpar.pro
===================================================================
--- /trunk/SRC/Interpolation/cutpar.pro	(revision 100)
+++ /trunk/SRC/Interpolation/cutpar.pro	(revision 101)
@@ -1,26 +1,23 @@
 ;+
-; NAME: cutpar
 ;
-; PURPOSE: cut p parallelogram(s) into p*n^2 parallelograms
+; @file_comments cut p parallelogram(s) into p*n^2 parallelograms
 ;
-; CATEGORY: basic work
+; @categories basic work
 ;
-; CALLING SEQUENCE:res = cutpar(x0, y0, x1, y1, x2, y2, x3, y3, n)
+; @examples 
+; res = cutpar(x0, y0, x1, y1, x2, y2, x3, y3, n)
 ;
-; INPUTS:
-;       x0,y0 1d arrays of p elements, giving the edge positions. The
+;       @param x0,y0  {in}{required} 1d arrays of p elements, giving the edge positions. The
 ;       edges must be given as in plot to traw the parallelogram. (see
 ;       example).
-;       n: each parallelogram will be cutted in n^2 pieces
+;       @param n {in}{required} each parallelogram will be cutted in n^2 pieces
 ;
-; KEYWORD PARAMETERS: 
+; @keyword         /endpoints see outputs
 ;
-;         /endpoints: see outputs
-;
-;         /onsphere: to specify that the points are located on a
+; @keyword         /onsphere to specify that the points are located on a
 ;         sphere. In this case, x and y corresponds to longitude and
 ;         latitude in degrees.
 ;
-; OUTPUTS:
+; @returns
 ;        -defaut: 3d array(2,n^2,p) giving the center position of each
 ;        piece of the parallelograms
@@ -28,11 +25,7 @@
 ;        of each piece of the parallelograms
 ;
-; COMMON BLOCKS: no
+; @uses cutsegment.pro
 ;
-; SIDE EFFECTS: need cutsegment.pro
-;
-; RESTRICTIONS: ?
-;
-; EXAMPLE:
+; @examples 
 ;
 ; x0 = [2,6,2]
@@ -50,6 +43,6 @@
 ; for i=0,2 do oplot, [res[0,*,i]], [res[1,*,i]], color = 20+10*i, psym = 1, thick = 3
 ;
-; MODIFICATION HISTORY:
-;           S. Masson (smasson@lodyc.jussieu.fr)
+; @history
+;           S. Masson (smasson\@lodyc.jussieu.fr)
 ;           July 5th, 2002
 ;-
Index: /trunk/SRC/Interpolation/cutsegment.pro
===================================================================
--- /trunk/SRC/Interpolation/cutsegment.pro	(revision 100)
+++ /trunk/SRC/Interpolation/cutsegment.pro	(revision 101)
@@ -1,25 +1,23 @@
 ;+
-; NAME: cutsegment
 ;
-; PURPOSE: cut p segments into p*n equal parts
+; @file_comments cut p segments into p*n equal parts
 ;
-; CATEGORY: basic work
+; @categories basic work
 ;
-; CALLING SEQUENCE: res = cutsegment(x0, y0, x1, y1, n)
+; @examples  
+; res = cutsegment(x0, y0, x1, y1, n)
 ;
-; INPUTS: 
-;         x0,y0 and x1,y1, 1d arrays of p elements, the coordinates of
+;         @param x0,y0 and x1,y1  {in}{required}  1d arrays of p elements, the coordinates of
 ;         the endpoints of the p segmements
-;         n: the number of pieces we want to cut each segment
+;         @param  n {in}{required}  the number of pieces we want to cut each segment
 ;
-; KEYWORD PARAMETERS:
 ;
-;         /endpoints: see ouputs
+; @keyword         /endpoints see ouputs
 ;
-;         /onsphere: to specify that the points are located on a
+; @keyword         /onsphere to specify that the points are located on a
 ;         sphere. In this case, x and y corresponds to longitude and
 ;         latitude in degrees.
 ;
-; OUTPUTS:
+; @returns
 ;        defaut: a 3d array (2,n,p) that gives the coordinates of the
 ;        middle of the cutted segments.
@@ -27,11 +25,5 @@
 ;        coordinates of the endpoints of the cutted segments.
 ;
-; COMMON BLOCKS: no
-;
-; SIDE EFFECTS: no
-;
-; RESTRICTIONS: ?
-;
-; EXAMPLE:
+; @examples 
 ;
 ;  IDL> x0=[2,5]
@@ -46,6 +38,6 @@
 ;  IDL> oplot, [res[0,*,1]], [res[1,*,1]], color = 40, psym = 1, thick = 3
 ;
-; MODIFICATION HISTORY:
-;           S. Masson (smasson@lodyc.jussieu.fr)
+; @history
+;           S. Masson (smasson\@lodyc.jussieu.fr)
 ;           July 5th, 2002
 ;-
Index: /trunk/SRC/Interpolation/extrapolate.pro
===================================================================
--- /trunk/SRC/Interpolation/extrapolate.pro	(revision 100)
+++ /trunk/SRC/Interpolation/extrapolate.pro	(revision 101)
@@ -1,8 +1,10 @@
+;+
+; @file_comments extrapolate data (zinput) where maskinput eq 0 by filling step by
+; step the coastline points with the mean value of the 8 neighbourgs.
+;
+;-
 FUNCTION extrapolate, zinput, maskinput, nb_iteration, x_periodic = x_periodic, MINVAL = minval, MAXVAL = maxval
 ;
   compile_opt strictarr, strictarrsubs 
-;
-; extrapolate data (zinput) where maskinput eq 0 by filling step by
-; step the coastline points with the mean value of the 8 neighbourgs.
 ;
 ; check the number of iteration used in the extrapolation.
Index: /trunk/SRC/Interpolation/fromreg.pro
===================================================================
--- /trunk/SRC/Interpolation/fromreg.pro	(revision 100)
+++ /trunk/SRC/Interpolation/fromreg.pro	(revision 101)
@@ -1,26 +1,23 @@
 ;+
-; NAME: fromreg
 ;
-; PURPOSE: interpolate data from a "regular/rectangular grid" to any grid.
+; @file_comments interpolate data from a "regular/rectangular grid" to any grid.
 ;   2 metods availables: bilinear and imoms3 
 ;   A "regular/rectangular grid" is defined as a grid for which each lontitudes lines have 
 ;   the same latitude and each latitudes columns have the same longitude.
 ;   
-; CATEGORY:interpolation
+; @categories interpolation
 ;
-; CALLING SEQUENCE: dataout = fromreg(method, datain [, lonin, latin, lonout, latout])
+; @examples  
+; dataout = fromreg(method, datain [, lonin, latin, lonout, latout])
 ;
-; INPUTS:
-;    method: a string defining the interpolation method. 
+;    @param method {in}{required}  a string defining the interpolation method. 
 ;            must be 'bilinear' or 'imoms3'
-;    datain: a 2D array the input data to interpolate
-;    lonin and latin: longitude/latitude of the input data. optionals if
+;    @param datain {in}{required}  a 2D array the input data to interpolate
+;    @param lonin latin {in}{required}  longitude/latitude of the input data. optionals if
 ;            WEIG and ADDR keywords used.
-;    lonout and latout: longitude/latitude of the output data. optionals if
+;    @param lonout latout {in}{required}  longitude/latitude of the output data. optionals if
 ;            WEIG and ADDR keywords used.
 ;
-; KEYWORD PARAMETERS: 
-;
-;     WEIG, ADDR: 2D arrays, weig and addr are the weight and addresses used to
+; @keyword     WEIG, ADDR 2D arrays, weig and addr are the weight and addresses used to
 ;     perform the interpolation:
 ;          dataout = total(weig*datain[addr], 1)
@@ -31,18 +28,14 @@
 ;     case, lonin, latin, lonout and latout are not necessary.
 ;
-;     /NONORTHERNLINE and /NOSOUTHERNLINE: activate if you don't whant to take into
+; @keyword     /NONORTHERNLINE and /NOSOUTHERNLINE activate if you don't whant to take into
 ;          account the northen/southern line of the input data when perfoming the
 ;          interpolation.
 ;
-; OUTPUTS: 2D array: the interpolated data
+; @returns 2D array: the interpolated data
 ;
-; COMMON BLOCKS: none
+; @restrictions We supposed the data are located on a sphere, with a 
+; periodicity along the longitude.
 ;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS:We supposed the data are located on a sphere, with a periodicity along
-;              the longitude.
-;
-; EXAMPLE: 
+; @examples  
 ;  
 ;  topa = fromreg('bilinear', tncep, xncep, yncep, glamt, gphit)
@@ -54,6 +47,6 @@
 ;  t2opa = fromreg('bilinear', t2ncep, xncep, WEIG = a, ADDR = b)
 ;
-; MODIFICATION HISTORY:
-;  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
+; @history
+;  November 2005: Sebastien Masson (smasson\@lodyc.jussieu.fr) 
 ; 
 ;-
Index: /trunk/SRC/Interpolation/get_gridparams.pro
===================================================================
--- /trunk/SRC/Interpolation/get_gridparams.pro	(revision 100)
+++ /trunk/SRC/Interpolation/get_gridparams.pro	(revision 101)
@@ -1,6 +1,5 @@
 ;+
-; NAME: get_gridparams
-;
-; PURPOSE: 
+;
+; @file_comments 
 ;   1) extract from a NetCDF file the longitude, latidude, and their dimensions
 ;      and make sure it is 1D or 2D arrays 
@@ -9,7 +8,7 @@
 ;      they are 1D or 2D arrays 
 ;
-; CATEGORY:for interpolations tools
-;
-; CALLING SEQUENCE:
+; @categories interpolation
+;
+; @examples 
 ; 
 ; 1) get_gridparams, file, lonname, latname, lon, lat, jpi, jpj, n_dimensions
@@ -19,35 +18,30 @@
 ; 2) get_gridparams, lon, lat, jpi, jpj, n_dimensions
 ;
-; INPUTS:
-;
 ; 1) 
-;  file: the name of the netcdf file
-;  loname: the name of the variable that contains the longitude in the NetCDF file
-;  latname: the name of the variable that contains the latitude in the NetCDF file
+; @param in1 {in}{required}  the name of the netcdf file
+;  @param in2 {in}{required}  the name of the variable that contains the longitude in the NetCDF file
+;  @param in3 {in}{required}  the name of the variable that contains the latitude in the NetCDF file
+;  @param in4  {out} the number of points in the longitudinal direction
+;  @param in5  {out} the number of points in the latitudinal direction
+; @param in6 {out} the variable that will contain the longitudes
+;  @param in7  {out} the variable that will contain the latitudes
+;  @param in8 {out} 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
 ;
 ; or 
 ;
-; 2) lon and lat: 1d or 2D arrays defining longitudes and latitudes. 
+; 2) 
+; @param lon lat {in}{required}  1d or 2D arrays defining longitudes and latitudes. 
 ;    Note that these arrays are also outputs and can therefore be modified. 
 
-; KEYWORD PARAMETERS: none
-;
-; OUTPUTS:
-;  lon the variable that will contain the longitudes
-;  lat the variable that will contain the latitudes
-;  jpi the number of points in the longitudinal direction
-;  jpj the number of points in the latitudinal direction
-;  n_dimensions: 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
+; @param in1 {out} the variable that will contain the longitudes
+;  @param in2  {out} the variable that will contain the latitudes
+;  @param in3  {out} the number of points in the longitudinal direction
+;  @param in4  {out} the number of points in the latitudinal direction
+;  @param in5 {out} 1 or 2 to specify if lon and lat should be 1D (jpi or jpj)
 ;    arrays or 2D arrays (jpi,jpj). Note that of  n_dimensions = 1, then the
 ;    grid must be regular (each longitudes must be the same for all latitudes
 ;    and each latitudes should be the sae for all longitudes). 
 ;
-; COMMON BLOCKS: none
-;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS: ?
-;
-; EXAMPLE: 
+; @examples  
 ; 
 ; 1) ncdf_get_gridparams, 'coordinates_ORCA_R05.nc', 'glamt', 'gphit' $
@@ -56,6 +50,6 @@
 ; 2) ncdf_get_gridparams, olon, olat, jpio, jpjo, 2
 ;
-; MODIFICATION HISTORY:
-;  November 2005: Sebastien Masson (smasson@lodyc.jussieu.fr) 
+; @history
+;  November 2005: Sebastien Masson (smasson\@lodyc.jussieu.fr) 
 ; 
 ;-
Index: /trunk/SRC/Interpolation/imoms3.pro
===================================================================
--- /trunk/SRC/Interpolation/imoms3.pro	(revision 100)
+++ /trunk/SRC/Interpolation/imoms3.pro	(revision 101)
@@ -1,2 +1,5 @@
+;+
+; 
+;-
 FUNCTION imoms3, xin
 
Index: /trunk/SRC/Interpolation/inquad.pro
===================================================================
--- /trunk/SRC/Interpolation/inquad.pro	(revision 100)
+++ /trunk/SRC/Interpolation/inquad.pro	(revision 101)
@@ -1,27 +1,22 @@
 ;+
-; NAME:inquad
-;
-; PURPOSE: to find if an (x,y) point is in a quadrilateral (x1,x2,x3,x4)
-;
-; CATEGORY:grid manipulation
-;
-; CALLING SEQUENCE:
+; @file_comments to find if an (x,y) point is in a quadrilateral (x1,x2,x3,x4)
+;
+; @categories grid manipulation
+;
+; @examples 
 ;
 ;     res = inquad(x, y, x1, y1, x2, y2, x3, y3, x4, y4)
 ;
-; INPUTS:
-;
-;     x,y: the coordinates of the point we want to know where it
+;     @param x y {in}{required}  the coordinates of the point we want to know where it
 ;     is. Must be a scalar if /onsphere activated else can be scalar
 ;     or array. 
 ;
-;     x1, y1, x2, y2, x3, y3, x4, y4: the coordinates of the
+;     @param x1 y1 x2 y2 x3 y3 x4 y4 {in}{required}  the coordinates of the
 ;     quadrilateral given in the CLOCKWISE order. Scalar or array.
 ;
-; KEYWORD PARAMETERS:
-;
-;    /DOUBLE: use double precision to perform the computation 
-;
-;    /ONSPHERE: to specify that the quadilateral are on a sphere and
+;
+; @keyword    /DOUBLE use double precision to perform the computation 
+;
+; @keyword    /ONSPHERE to specify that the quadilateral are on a sphere and
 ;    that teir coordinates are longitude-latitude coordinates. In this
 ;    case, est-west periodicity, poles singularity and other pbs
@@ -29,5 +24,5 @@
 ;    automatically. 
 ;
-;    ZOOMRADIUS:the zoom (circle centred on the (x,y) with a radius of
+; @keyword    ZOOMRADIUS :the zoom (circle centred on the (x,y) with a radius of
 ;    zoomradius degree where we look for the the quadrilateral which;    contains the (x,y) point) used for the satellite projection
 ;    when /onsphere is activated. Default is 4 and seems to be the
@@ -35,20 +30,15 @@
 ;    larger than 5 degrees.
 ;   
-;    /NOPRINT: to suppress the print messages.
-;
-; OUTPUTS:
-;
-;    res, a n element vector. Where n is the number of elements of
+; @keyword    /NOPRINT to suppress the print messages.
+;
+; @returns
+;    a n element vector. Where n is the number of elements of
 ;    x. res[i]=j means that the point number i is located in the
 ;    quadrilateral number j with (0 <= j <= n_elements(x0)-1)
 ;
-; COMMON BLOCKS:none
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
+; @restrictions I think degenerated quadrilateral (e.g. flat of
 ; twisted) is not work. This has to be tested.
 ;
-; EXAMPLE:
+; @examples 
 ;
 ;       x = 1.*[1, 2, 6, 7, 3]
@@ -69,6 +59,6 @@
 ;      On a sphere see clickincell.pro...
 ;
-; MODIFICATION HISTORY:
-;      Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+;      Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;      August 2003
 ;      Based on Convert_clic_ij.pro written by Gurvan Madec 
@@ -192,5 +182,5 @@
 ; the point is inside the quadilateral if test eq 1
 ; with test equal to:
-;     test = ((x-x1)*(y2-y1) GE (x2-x1)*(y-y1)) $	
+;     test = ((x-x1)*(y2-y1) GE (x2-x1)*(y-y1)) $
 ;       *((x-x2)*(y3-y2) GT (x3-x2)*(y-y2)) $
 ;       *((x-x3)*(y4-y3) GT (x4-x3)*(y-y3)) $
Index: /trunk/SRC/Interpolation/inrecgrid.pro
===================================================================
--- /trunk/SRC/Interpolation/inrecgrid.pro	(revision 100)
+++ /trunk/SRC/Interpolation/inrecgrid.pro	(revision 101)
@@ -1,48 +1,33 @@
 ;+
-; NAME: inrecgrid
 ;
-; PURPOSE: given - a list of points, (x,y) position  
+; @file_comments given - a list of points, (x,y) position  
 ;                - the x and y limits of a rectangular grid
 ;          find in which cell is located each given point.
 ;
-; CATEGORY: no DO loop, use the wonderfull value_locate function!
+; @categories no DO loop, use the wonderfull value_locate function!
 ;
-; CALLING SEQUENCE:res = inrecgrid(xin, yin, left, bottom)
+; @examples 
+; res = inrecgrid(xin, yin, left, bottom)
 ;
-; INPUTS: 
-;
-;    x1d: a 1d array, the x position on the points
-;    y1d: a 1d array, the y position on the points
-;    left: a 1d, monotonically increasing array, the position of the
+;    @param x1d {in}{required}  a 1d array, the x position on the points
+;    @param y1d {in}{required}  a 1d array, the y position on the points
+;    left {in}{required}  a 1d, monotonically increasing array, the position of the
 ;    "left" border of each cell.
-;    bottom: a 1d, monotonically increasing array, the position of the
+;    @param bottom {in}{required}  a 1d, monotonically increasing array, the position of the
 ;    "bottom" border of each cell.
 ;
-; OPTIONAL INPUTS:
 ;
-; KEYWORD PARAMETERS:;
-;
-;    /output2d: to get the output as a 2d array (2,n_elements(x1d)),
+; @keyword    /output2d to get the output as a 2d array (2,n_elements(x1d)),
 ;    with res[0,*] the x index accoring to the 1d array defined by
 ;    left and res[1,*] the y index accoring to the 1d array defined by
 ;    bottom.
 ;
-;    checkout=[rbgrid,ubgrid] specify the right and upper bondaries of
+; @keyword    checkout=[rbgrid,ubgrid] specify the right and upper bondaries of
 ;    the grid and check if some points are out.
 ;
-; OUTPUTS:the index on the cell accoring to the 2d array defined by
+; @returns the index on the cell accoring to the 2d array defined by
 ; left and bottom.
 ;
-; OPTIONAL OUTPUTS:
-;
-; COMMON BLOCKS: no
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS:
-;
-; PROCEDURE:
-;
-; EXAMPLE:
+; @examples 
 ;
 ;  IDL> a=indgen(5)
@@ -57,6 +42,6 @@
 ;        2.00000      1.00000
 ;  
-; MODIFICATION HISTORY:
-;            S. Masson (smasson@lodyc.jussieu.fr)
+; @history
+;            S. Masson (smasson\@lodyc.jussieu.fr)
 ;                      July 3rd, 2002
 ;                      October 3rd, 2003: use value_locate
Index: /trunk/SRC/Interpolation/ll_narcs_distances.pro
===================================================================
--- /trunk/SRC/Interpolation/ll_narcs_distances.pro	(revision 100)
+++ /trunk/SRC/Interpolation/ll_narcs_distances.pro	(revision 101)
@@ -1,75 +1,72 @@
 ;+
-; NAME:
-;	LL_NARCS_DISTANCES
 ;
-; PURPOSE:
-; 	This function returns the longitude and latitude [lon, lat] of
-;	a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az),
-;	from a specified location Lon0, lat0.
+; @file_comments
+; This function returns the longitude and latitude [lon, lat] of
+;a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az),
+;from a specified location Lon0, lat0.
 ;       Same as LL_ARC_DISTANCE but for n points without do loop.
 ;
-; CATEGORY:
-;	Mapping, geography.
+; @categories Mapping, geography
 ;
-; CALLING SEQUENCE:
-;	Result = LL_NARCS_DISTANCES(Lon, lat0, Arc_Dist, Az)
+; @examples 
+;Result = LL_NARCS_DISTANCES(Lon, lat0, Arc_Dist, Az)
 ;
-; INPUTS:
-;    	Lon0: An array containing the longitude of the starting point.
+;    @param Lon0 {in}{required}  An array containing the longitude of the starting point.
 ;             Values are assumed to be in radians unless the keyword
 ;             DEGREES is set.
-;    	Lat0: An array containing the latitude of the starting point.
+;    @param Lat0 {in}{required}  An array containing the latitude of the starting point.
 ;             Values are assumed to be in radians unless the keyword
 ;             DEGREES is set.
-;    	Arc_Dist: The arc distance from Lon_lat0. The value must be between
-;		  -!PI and +!PI. To express distances in arc units, divide
-;		  by the radius of the globe expressed in the original units.
-;		  For example, if the radius of the earth is 6371 km, divide
-;		  the distance in km by 6371 to obtain the arc distance.    
-;    	Az:	  The azimuth from Lon_lat0. The value is assumed to be in
-;		  radians unless the keyword DEGREES is set.
+;    @param Arc_Dist {in}{required}  The arc distance from Lon_lat0. The value must be between
+; -!PI and +!PI. To express distances in arc units, divide
+;  by the radius of the globe expressed in the original units.
+;  For example, if the radius of the earth is 6371 km, divide
+;  the distance in km by 6371 to obtain the arc distance.    
+;    @param Az {in}{required}   The azimuth from Lon_lat0. The value is assumed to be in
+;  radians unless the keyword DEGREES is set.
 ;
-; KEYWORD PARAMETERS:
-;    	DEGREES:  Set this keyword to express all measurements and
-;		  results in degrees.
+; @keyword    DEGREES  Set this keyword to express all measurements and
+;  results in degrees.
 ;
-; OUTPUTS:
-;	This function returns a (2, n) array containing the 
+; @returns
+; a (2, n) array containing the 
 ;       longitude / latitude of the resultings points. Values are in radians
 ;       unless the keyword DEGREES is set.
 ;
-; PROCEDURE:
-;	Formula from Map Projections - a working manual.  USGS paper
-;	1395.  Equations (5-5) and (5-6).
+; @file_comments
+;Formula from Map Projections - a working manual.  USGS paper
+;1395.  Equations (5-5) and (5-6).
 ;
-; EXAMPLE:
-;	Lon_lat0 = [1.0, 2.0]		; Initial point specified in radians	
-;	Arc_Dist = 2.0			; Arc distance in radians
-;	Az = 1.0			; Azimuth in radians
-;	Result = LL_ARC_DISTANCE(Lon_lat0, Arc_Dist, Az)
-;	PRINT, Result
-;     	  2.91415    -0.622234
+; @examples 
+;Lon_lat0 = [1.0, 2.0]; Initial point specified in radians
+;Arc_Dist = 2.0; Arc distance in radians
+;Az = 1.0; Azimuth in radians
+;Result = LL_ARC_DISTANCE(Lon_lat0, Arc_Dist, Az)
+;PRINT, Result
+;       2.91415    -0.622234
 ;
-;	IDL> lon0 = [-10, 20, 100]
-;	IDL> lat0 = [0, -10, 45]
-;	IDL> lon1 = [10, 60, 280]
-;	IDL> lat1 = [0, 10, 45]
-;	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
-;	IDL> earthradius = 6378206.4d0
-;	IDL> res = ll_narcs_distances(lon0, lat0, dist/earthradius, azi, /degrees)
-;	IDL> print, reform(res[0, *])
-;	       10.000000       60.000000       280.00000
-;	IDL> print, reform(res[1, *])
+;IDL> lon0 = [-10, 20, 100]
+;IDL> lat0 = [0, -10, 45]
+;IDL> lon1 = [10, 60, 280]
+;IDL> lat1 = [0, 10, 45]
+;IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
+;IDL> earthradius = 6378206.4d0
+;IDL> res = ll_narcs_distances(lon0, lat0, dist/earthradius, azi, /degrees)
+;IDL> print, reform(res[0, *])
+;       10.000000       60.000000       280.00000
+;IDL> print, reform(res[1, *])
 ;          1.1999280e-15       10.000000       45.000000
 ;
-; MODIFICATION HISTORY:
+; @history
 ;       Based on the IDL function ll_arc_distance.pro,v 1.11 2003/02/03
-; 	Sebastien Masson (smasson@lodyc.jussieu.fr)
+; Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;                  August 2005
 ;-
 
-; Return the [lon, lat] of the point a given arc distance 
-;	(-pi <= arc_dist <= pi),
+;+
+; @file_comments Return the [lon, lat] of the point a given arc distance 
+;(-pi <= arc_dist <= pi),
 ; and azimuth (az), from lon_lat0.
+;-
 ;
 FUNCTION LL_NARCS_DISTANCES, lon0, lat0, arc_dist, az, DEGREES = degs
Index: /trunk/SRC/Interpolation/map_npoints.pro
===================================================================
--- /trunk/SRC/Interpolation/map_npoints.pro	(revision 100)
+++ /trunk/SRC/Interpolation/map_npoints.pro	(revision 101)
@@ -1,8 +1,6 @@
 ;+
-; NAME:
-;	Map_nPoints
 ;
-; PURPOSE:
-;	Return the distance in meter between all np0 points P0 and all
+; @file_comments
+;Return the distance in meter between all np0 points P0 and all
 ;       np1 points P1 on a sphere. If keyword /TWO_BY_TWO is given then
 ;       returns the distances between number n of P0 points and number
@@ -11,31 +9,25 @@
 ;       without do loop.
 ;
-; CATEGORY:
-;	Maps.
+; @categories Maps
 ;
-; CALLING SEQUENCE:
-;	Result = Map_nPoints(lon0, lat0, lon1, lat1)
+; @examples 
+;Result = Map_nPoints(lon0, lat0, lon1, lat1)
 ;
-; INPUTS:
-;	Lon0, Lat0 = np0 elements vector. longitudes and latitudes of
-;	np0 points P0 
-;	Lon1, Lat1 = np1 elements vector. longitude and latitude of
-;	np1 points P1 
+;@param Lon0 Lat0  {in}{required} np0 elements vector. longitudes and latitudes of np0 points P0 
+;@param Lon1 Lat1  {in}{required}  np1 elements vector. longitude and latitude of np1 points P1 
 ;
-; KEYWORD PARAMETERS:
-;
-;   AZIMUTH: A named variable that will receive the azimuth of the great
+; @keyword   AZIMUTH A named variable that will receive the azimuth of the great
 ;       circle  connecting the two points, P0 to P1
-;   /MIDDLE: to get the longitude/latitude of the middle point betwen P0 and P1.
-;   RADIANS = if set, inputs and angular outputs are in radians, otherwise
-;	degrees.
-;   RADIUS: If given, return the distance between the two points
-;	calculated using the given radius.
+; @keyword   /MIDDLE to get the longitude/latitude of the middle point betwen P0 and P1.
+; @keyword   RADIANS = if set, inputs and angular outputs are in radians, otherwise
+;degrees.
+; @keyword   RADIUS If given, return the distance between the two points
+;calculated using the given radius.
 ;       Default value is the earth radius : 6378206.4d0
-;   TWO_BY_TWO:If given,then Map_nPoints returns the distances between
+; @keyword   TWO_BY_TWO:If given,then Map_nPoints returns the distances between
 ;       number n of P0 points and number n of P1 points (in that case,
 ;       np0 and np1 must be equal).
 ;
-; OUTPUTS:
+; @returns
 ;       An (np0,np1) array giving the distance in meter between np0
 ;       points P0 and np1 points P1. Element (i,j) of the ouput is the
@@ -46,53 +38,53 @@
 ;       if /MIDDLE see this keyword.
 ;
-; EXAMPLES:
-;	IDL> print, $
-;	map_npoints([-105.15,1],[40.02,1],[-0.07,100,50],[51.30,20,0])
-;	       7551369.3       5600334.8
-;	       12864354.       10921254.
-;	       14919237.       5455558.8
-;	
-;	IDL> lon0 = [-10, 20, 100]
-;	IDL> lat0 = [0, -10, 45]
-;	IDL> lon1 = [10, 60, 280]
-;	IDL> lat1 = [0, 10, 45]
-;	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi)
-;	IDL> help, dist, azi
-;	DIST            DOUBLE    = Array[3, 3]
-;	AZI             DOUBLE    = Array[3, 3]
-;	IDL> print, dist[4*lindgen(3)], azi[4*lindgen(3)]
-;	       2226414.0       4957944.5       10018863.
-;	       90.000000       64.494450   4.9615627e-15
-;	IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
-;	IDL> help, dist, azi
-;	DIST            DOUBLE    = Array[3]
-;	AZI             DOUBLE    = Array[3]
-;	IDL> print, dist, azi
-;	       2226414.0       4957944.5       10018863.
-;	       90.000000       64.494450   4.9615627e-15
-;	IDL> print, map_2points(lon0[0], lat0[0], lon1[0], lat1[0])
-;	       20.000000       90.000000
-;	IDL> print, map_npoints(lon0[0], lat0[0], lon1[0], lat1[0], azi=azi)/6378206.4d0 / !dtor, azi
-;	       20.000000
-;	       90.000000
+; @examples
+;IDL> print, $
+;map_npoints([-105.15,1],[40.02,1],[-0.07,100,50],[51.30,20,0])
+;       7551369.3       5600334.8
+;       12864354.       10921254.
+;       14919237.       5455558.8
 ;
-;	IDL> lon0 = [-10, 20, 100]
-;	IDL> lat0 = [0, -10, 45]
-;	IDL> lon1 = [10, 60, 280]
-;	IDL> lat1 = [0, 10, 45]
-;	IDL> mid = map_npoints(lon0, lat0, lon1, lat1, /middle, /two_by_two)
-;	IDL> print, reform(mid[0,*]), reform(mid[1,*])
-;	       0.0000000       40.000000       190.00000
-;	       0.0000000  -1.5902773e-15       90.000000
-;	IDL> print, (map_2points(lon0[0], lat0[0], lon1[0], lat1[0], npath = 3))[*, 1]
-;	       0.0000000       0.0000000
-;	IDL> print, (map_2points(lon0[1], lat0[1], lon1[1], lat1[1], npath = 3))[*, 1]
-;	       40.000000  -1.5902773e-15
-;	IDL> print, (map_2points(lon0[2], lat0[2], lon1[2], lat1[2], npath = 3))[*, 1]
-;	       190.00000       90.000000
-;	
-; MODIFICATION HISTORY:
+;IDL> lon0 = [-10, 20, 100]
+;IDL> lat0 = [0, -10, 45]
+;IDL> lon1 = [10, 60, 280]
+;IDL> lat1 = [0, 10, 45]
+;IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi)
+;IDL> help, dist, azi
+;DIST            DOUBLE    = Array[3, 3]
+;AZI             DOUBLE    = Array[3, 3]
+;IDL> print, dist[4*lindgen(3)], azi[4*lindgen(3)]
+;       2226414.0       4957944.5       10018863.
+;       90.000000       64.494450   4.9615627e-15
+;IDL> dist = map_npoints(lon0, lat0, lon1, lat1, azimuth = azi, /two_by_two)
+;IDL> help, dist, azi
+;DIST            DOUBLE    = Array[3]
+;AZI             DOUBLE    = Array[3]
+;IDL> print, dist, azi
+;       2226414.0       4957944.5       10018863.
+;       90.000000       64.494450   4.9615627e-15
+;IDL> print, map_2points(lon0[0], lat0[0], lon1[0], lat1[0])
+;       20.000000       90.000000
+;IDL> print, map_npoints(lon0[0], lat0[0], lon1[0], lat1[0], azi=azi)/6378206.4d0 / !dtor, azi
+;       20.000000
+;       90.000000
+;
+;IDL> lon0 = [-10, 20, 100]
+;IDL> lat0 = [0, -10, 45]
+;IDL> lon1 = [10, 60, 280]
+;IDL> lat1 = [0, 10, 45]
+;IDL> mid = map_npoints(lon0, lat0, lon1, lat1, /middle, /two_by_two)
+;IDL> print, reform(mid[0,*]), reform(mid[1,*])
+;       0.0000000       40.000000       190.00000
+;       0.0000000  -1.5902773e-15       90.000000
+;IDL> print, (map_2points(lon0[0], lat0[0], lon1[0], lat1[0], npath = 3))[*, 1]
+;       0.0000000       0.0000000
+;IDL> print, (map_2points(lon0[1], lat0[1], lon1[1], lat1[1], npath = 3))[*, 1]
+;       40.000000  -1.5902773e-15
+;IDL> print, (map_2points(lon0[2], lat0[2], lon1[2], lat1[2], npath = 3))[*, 1]
+;       190.00000       90.000000
+;
+; @history
 ;       Based on the IDL function map_2points.pro,v 1.6 2001/01/15
-; 	Sebastien Masson (smasson@lodyc.jussieu.fr)
+; Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;                  October 2003
 ;-
Index: /trunk/SRC/Interpolation/neighbor.pro
===================================================================
--- /trunk/SRC/Interpolation/neighbor.pro	(revision 100)
+++ /trunk/SRC/Interpolation/neighbor.pro	(revision 101)
@@ -1,33 +1,27 @@
 ;+
-; NAME:
-;	neighbor
 ;
-; PURPOSE:
-;	find the closetest point of (P0) within a list of np1 points
-;	P1 Which can be on a sphere 
+; @file_comments
+;find the closetest point of (P0) within a list of np1 points
+;P1 Which can be on a sphere 
 ;
-; CATEGORY:
-;	Maps.
+; @categories Maps
 ;
-; CALLING SEQUENCE:
-;	Result = neighbor(lon0, lat0, lon1, lat1)
+; @examples 
+; IDL> Result = neighbor(lon0, lat0, lon1, lat1)
 ;
-; INPUTS:
-;	Lon0, Lat0 = scalar. longitudes and latitudes of point P0. 
-;	Lon1, Lat1 = np1 elements vector. longitude and latitude of
-;	np1 points P1 
+;@param p0lon {in}{required}  scalar. longitudes of point P0. 
+;@param p0lat  {in}{required}  scalar. latitudes of point P0. 
 ;
-; KEYWORD PARAMETERS:
-;   RADIANS = if set, inputs and angular outputs are in radians, otherwise
-;	degrees.
-;   DISTANCE = dis, to get back the distances between P0 and the np1
+; @keyword   RADIANS if set, inputs and angular outputs are in radians, otherwise
+;degrees.
+; @keyword   DISTANCE dis, to get back the distances between P0 and the np1
 ;   points P1 in the variable dis.
-;   /SPHERE to activate if points are located on a sphere.
+; @keyword   /SPHERE to activate if points are located on a sphere.
 ;
-; OUTPUTS:
+; @returns
 ;       index giving the P1[index] point that is the closetest point
 ;       of (P0)
 ;
-; EXAMPLES:
+; @examples
 ;       IDL> print, neighbor(-105.15,40.02,[-0.07,100,50],[51.30,20,0], $
 ;            distance=dis)
@@ -36,6 +30,6 @@
 ;             105.684      206.125      160.228
 ;
-; MODIFICATION HISTORY:
-; 	Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+; Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;                  October 2003
 ;-
Index: /trunk/SRC/Interpolation/quadrilateral2square.pro
===================================================================
--- /trunk/SRC/Interpolation/quadrilateral2square.pro	(revision 100)
+++ /trunk/SRC/Interpolation/quadrilateral2square.pro	(revision 101)
@@ -1,6 +1,5 @@
 ;+
-; NAME:quadrilateral2square
 ;
-; PURPOSE:warm (or map) an arbitrary quadrilateral onto a unit square 
+; @file_comments warm (or map) an arbitrary quadrilateral onto a unit square 
 ; according to the 4-point correspondences:
 ;       (x0,y0) -> (0,0)
@@ -13,25 +12,28 @@
 ; mappings. see ref. bellow.
 ;
-; CATEGORY:image/grid manipulation
+; @categories image, grid manipulation
 ;
-; CALLING SEQUENCE:
+; @examples 
 ;
 ;     res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3,xin,yin)
 ; 
-; INPUTS:
-;
-;     x0,y0,x1,y1,x2,y2,x3,y3 the coordinates of the quadrilateral
+;     @param x0in {in}{required}  the coordinates of the quadrilateral
+;     @param y0in {in}{required}  the coordinates of the quadrilateral
+;     @param x1in {in}{required}  the coordinates of the quadrilateral
+;     @param y1in {in}{required}  the coordinates of the quadrilateral
+;     @param x2in {in}{required}  the coordinates of the quadrilateral
+;     @param y2in {in}{required}  the coordinates of the quadrilateral
+;     @param x3in {in}{required}  the coordinates of the quadrilateral
+;     @param y3in  {in}{required}  the coordinates of the quadrilateral
 ;     (see above for correspondance with the unit square). Can be
 ;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
 ;     given in the anticlockwise order.
 ;
-;     xin,yin:the coordinates of the point(s) for which we want to do the
+;     @param xxin {in}{required} the coordinates of the point(s) for which we want to do the
+;     mapping. Can be scalar or array.
+;     @param yyin {in}{required} the coordinates of the point(s) for which we want to do the
 ;     mapping. Can be scalar or array.
 ;
-; KEYWORD PARAMETERS:
-;
-;    /DOUBLE: use double precision to perform the computation 
-;
-; OUTPUTS:
+; @returns
 ;
 ;     (2,n) array: the new coodinates (xout, yout) of the (xin,yin)
@@ -41,12 +43,8 @@
 ;     elements of xin.
 ;
-; COMMON BLOCKS:none
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
+; @restrictions I think degenerated quadrilateral (e.g. flat of
 ; twisted) is not work. This has to be tested.
 ;
-; EXAMPLE:
+; @examples 
 ;
 ; IDL> splot,[0,5],[0,3],/nodata,xstyle=1,ystyle=1
@@ -60,6 +58,6 @@
 ; IDL> tracegrille, reform(inorg[0,*],11,11), reform(inorg[1,*],11,11),color=indgen(12)*20
 ;
-; MODIFICATION HISTORY:
-;      Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+;      Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;      August 2003
 ;      Based on "Digital Image Warping" by G. Wolberg
Index: /trunk/SRC/Interpolation/spl_fstdrv.pro
===================================================================
--- /trunk/SRC/Interpolation/spl_fstdrv.pro	(revision 100)
+++ /trunk/SRC/Interpolation/spl_fstdrv.pro	(revision 101)
@@ -3,7 +3,6 @@
 ;------------------------------------------------------------
 ;+
-; NAME:spl_fstdrv
 ;
-; PURPOSE: SPL_FSTDRV returns the values of the first derivative of
+; @file_comments SPL_FSTDRV returns the values of the first derivative of
 ; the interpolating function at the points X2i. it is a double
 ; precision array.
@@ -15,37 +14,24 @@
 ; in a way that interpolated value are also in ascending order
 ;
-; CATEGORY:
+; @examples  y2 =  spl_fstdrv(x, y, yscd, x2)
 ;
-; CALLING SEQUENCE: y2 =  spl_fstdrv(x, y, yscd, x2)
-;
-; INPUTS:
-;
-;    x: An n-element (at least 2) input vector that specifies the
+;    @param x {in}{required}  An n-element (at least 2) input vector that specifies the
 ;    tabulate points in ascending order.
 ;
-;    y: f(x) = y. An n-element input vector that specifies the values
+;    @param y {in}{required}  f(x) = y. An n-element input vector that specifies the values
 ;    of the tabulated function F(Xi) corresponding to Xi.
 ;
-;    yscd: The output from SPL_INIT for the specified X and Y.
+;    @param yscd {in}{required}  The output from SPL_INIT for the specified X and Y.
 ;
-;    x2: The input values for which the first derivative values are
+;    @param x2 {in}{required}  The input values for which the first derivative values are
 ;    desired. X can be scalar or an array of values.
 
-; KEYWORD PARAMETERS: none
-;
-; OUTPUTS: 
+; @returns 
 ;
 ;    y2: f'(x2) = y2. 
 ;
-; COMMON BLOCKS: none
 ;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS: ?
-;
-; EXAMPLE:
-;
-; MODIFICATION HISTORY:
-;  Sebastien Masson (smasson@lodyc.jussieu.fr): May 2005
+; @history
+;  Sebastien Masson (smasson\@lodyc.jussieu.fr): May 2005
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/Interpolation/spl_incr.pro
===================================================================
--- /trunk/SRC/Interpolation/spl_incr.pro	(revision 100)
+++ /trunk/SRC/Interpolation/spl_incr.pro	(revision 101)
@@ -3,7 +3,6 @@
 ;------------------------------------------------------------
 ;+
-; NAME:spl_incr
-;
-; PURPOSE:
+;
+; @file_comments
 ;
 ; Given the arrays X and Y, which tabulate a function (with the X[i]
@@ -13,44 +12,29 @@
 ; in a way that interpolated values are also monotonically increasing.
 ;
-; CATEGORY:
-;
-; CALLING SEQUENCE: y2 =  spl_incr(x, y, x2)
-;
-; INPUTS:
-;
-;    x: An n-element (at least 2) input vector that specifies the
+; @examples  y2 =  spl_incr(x, y, x2)
+;
+; @param x1 {in}{required}  An n-element (at least 2) input vector that specifies the
 ;    tabulate points in a strict ascending order.
 ;
-;    y: f(x) = y. An n-element input vector that specifies the values
+;    @param y1 {in}{required}  f(x) = y. An n-element input vector that specifies the values
 ;    of the tabulated function F(Xi) corresponding to Xi. As f is
 ;    supposed to be monotonically increasing, y values must be
 ;    monotonically increasing. y can have equal consecutive values.
 ;
-;    x2: The input values for which the interpolated values are
+;    @param x2 {in}{required}  The input values for which the interpolated values are
 ;    desired. Its values must be strictly monotonically increasing. 
 ;
-; KEYWORD PARAMETERS:
-;
-;    YP0: The first derivative of the interpolating function at the
-;    point X0. If YP0 is omitted, the second derivative at the
-;    boundary is set to zero, resulting in a "natural spline."
-;
-;    YPN_1: The first derivative of the interpolating function at the
-;    point Xn-1. If YPN_1 is omitted, the second derivative at the
-;    boundary is set to zero, resulting in a "natural spline." 
-;
-; OUTPUTS: 
+;
+;
+;
+; @returns 
 ;
 ;    y2: f(x2) = y2. Double precision array
 ;
-; COMMON BLOCKS: none
-;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS:
+; @restrictions
 ;   It might be possible that y2[i+1]-y2[i] has very small negative
 ;   values (amplitude smaller than 1.e-6)...
 ;
-; EXAMPLE:
+; @examples 
 ;
 ;     n = 100L
@@ -73,6 +57,6 @@
 ;     oplot,[0, n_elements(c)], [0, 0], linestyle = 1
 ;
-; MODIFICATION HISTORY:
-;  Sebastien Masson (smasson@lodyc.jussieu.fr): May-Dec 2005
+; @history
+;  Sebastien Masson (smasson\@lodyc.jussieu.fr): May-Dec 2005
 ;-
 ;------------------------------------------------------------
@@ -112,4 +96,12 @@
 END
 
+;+
+; @keyword    YP0 The first derivative of the interpolating function at the
+;    point X0. If YP0 is omitted, the second derivative at the
+;    boundary is set to zero, resulting in a "natural spline."
+; @keyword    YPN_1 The first derivative of the interpolating function at the
+;    point Xn-1. If YPN_1 is omitted, the second derivative at the
+;    boundary is set to zero, resulting in a "natural spline." 
+;-
 FUNCTION spl_incr, x, y, x2, YP0 = yp0, YPN_1 = ypn_1
 ;
Index: /trunk/SRC/Interpolation/spl_keep_mean.pro
===================================================================
--- /trunk/SRC/Interpolation/spl_keep_mean.pro	(revision 100)
+++ /trunk/SRC/Interpolation/spl_keep_mean.pro	(revision 101)
@@ -3,7 +3,5 @@
 ;------------------------------------------------------------
 ;+
-; NAME:spl_keep_mean
-;
-; PURPOSE:
+; @file_comments
 ;
 ; Given the arrays X and Y, which tabulate a function (with the X[i]
@@ -16,48 +14,39 @@
 ; data equa to the original values)
 ;
-; CATEGORY:
+; @examples  y2 =  spl_keep_mean(x, y, x2)
 ;
-; CALLING SEQUENCE: y2 =  spl_keep_mean(x, y, x2)
-;
-; INPUTS:
-;
-;    x: An n-element (at least 2) input vector that specifies the
+;    @param x {in}{required}  An n-element (at least 2) input vector that specifies the
 ;    tabulate points in a strict ascending order.
 ;
-;    y: an array with one element less than x. y[i] represents the
+;    @param yin {in}{required}  an array with one element less than x. y[i] represents the
 ;    mean value between x[i] and x[i+1]. if /GE0 is activated, y must
 ;    have positive values.
 ;
-;    x2: The input values for which the interpolated values are
+;    @param x2 {in}{required}  The input values for which the interpolated values are
 ;    desired. Its values must be strictly monotonically increasing. 
 ;
-; KEYWORD PARAMETERS:
 ;
-;    /GE0: to force that y2 is always GE than 0. In that case, y must
+; @keyword    /GE0 to force that y2 is always GE than 0. In that case, y must
 ;    also be GE than 0.
 ;
-;    YP0: The first derivative of the interpolating function at the
+; @keyword    YP0 The first derivative of the interpolating function at the
 ;    point X0. If YP0 is omitted, the second derivative at the
 ;    boundary is set to zero, resulting in a "natural spline."
 ;
-;    YPN_1: The first derivative of the interpolating function at the
+; @keyword    YPN_1 The first derivative of the interpolating function at the
 ;    point Xn-1. If YPN_1 is omitted, the second derivative at the
 ;    boundary is set to zero, resulting in a "natural spline." 
 ;
-; OUTPUTS: 
+; @returns 
 ;
 ;    y2: the meean value between two consecutive values of x2. This
 ;    array has one element less than y2. y2 has double precision.
 ;
-; COMMON BLOCKS: none
-;
-; SIDE EFFECTS: ?
-;
-; RESTRICTIONS:
+; @restrictions
 ;   It might be possible that y2 has very small negative values
 ;   (amplitude smaller than 1.e-6)... 
 ;
 ;
-; EXAMPLE:
+; @examples 
 ;
 ;    12 monthly values of precipitations into daily values:
@@ -81,6 +70,6 @@
 ;    print, total(y2*(x2[1:n2-1]-x2[0:n2-2]))
 ;
-; MODIFICATION HISTORY:
-;  Sebastien Masson (smasson@lodyc.jussieu.fr): May 2005
+; @history
+;  Sebastien Masson (smasson\@lodyc.jussieu.fr): May 2005
 ;-
 ;------------------------------------------------------------
Index: /trunk/SRC/Interpolation/square2quadrilateral.pro
===================================================================
--- /trunk/SRC/Interpolation/square2quadrilateral.pro	(revision 100)
+++ /trunk/SRC/Interpolation/square2quadrilateral.pro	(revision 101)
@@ -1,6 +1,5 @@
 ;+
-; NAME:square2quadrilateral
-;
-; PURPOSE:warm (or map) a unit square onto an arbitrary quadrilateral
+;
+; @file_comments warm (or map) a unit square onto an arbitrary quadrilateral
 ; according to the 4-point correspondences:
 ;       (0,0) -> (x0,y0)
@@ -12,25 +11,50 @@
 ; mappings. see ref. bellow.
 ;
-; CATEGORY:image/grid manipulation
-;
-; CALLING SEQUENCE:
+; @categories image, grid manipulation
+;
+; @examples 
 ;
 ;     res = square2quadrilateral(x0,y0,x1,y1,x2,y2,x3,y3[,xin,yin])
 ; 
-; INPUTS:
-;
-;     x0,y0,x1,y1,x2,y2,x3,y3 the coordinates of the quadrilateral
-;     (see above for correspondance with the unit square). Can be
-;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
-;     given in the anticlockwise order.
-;
-;     xin,yin:the coordinates of the point(s) for which we want to do the
+FUNCTION square2quadrilateral, x0in, y0in, x1in, y1in, x2in, y2in, x3in, y3in, xxin, yyin
+;     @param x0in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param y0in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param x1in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param y1in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param x2in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param y2in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param x3in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;     @param y3in {in}{required}  the coordinates of the quadrilateral
+;     (see above for correspondance with the unit square). Can be
+;     scalar or array. (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are
+;     given in the anticlockwise order.
+;
+;     @param xxin {in}{required} the coordinates of the point(s) for which we want to do the
 ;     mapping. Can be scalar or array.
-;
-; KEYWORD PARAMETERS:
-;
-;    /DOUBLE: use double precision to perform the computation 
-;
-; OUTPUTS:
+;     @param yyin {in}{required} the coordinates of the point(s) for which we want to do the
+;     mapping. Can be scalar or array.
+;
+; @returns
 ;
 ;     (2,n) array: the new coodinates (xout, yout) of the (xin,yin)
@@ -42,12 +66,9 @@
 ;     matrix A which is used for the inverse transformation. 
 ;
-; COMMON BLOCKS:none
-;
-; SIDE EFFECTS:
-;
-; RESTRICTIONS: I think degenerated quadrilateral (e.g. flat of
+;
+; @restrictions I think degenerated quadrilateral (e.g. flat of
 ; twisted) is not work. This has to be tested.
 ;
-; EXAMPLE:
+; @examples 
 ;
 ; IDL> splot,[0,5],[0,3],/nodata,xstyle=1,ystyle=1
@@ -58,6 +79,6 @@
 ; IDL> tracegrille, reform(out[0,*],11,11), reform(out[1,*],11,11),color=indgen(12)*20
 ;
-; MODIFICATION HISTORY:
-;      Sebastien Masson (smasson@lodyc.jussieu.fr)
+; @history
+;      Sebastien Masson (smasson\@lodyc.jussieu.fr)
 ;      August 2003
 ;      Based on "Digital Image Warping" by G. Wolberg
Index: /trunk/SRC/Interpolation/testinterp.pro
===================================================================
--- /trunk/SRC/Interpolation/testinterp.pro	(revision 100)
+++ /trunk/SRC/Interpolation/testinterp.pro	(revision 101)
@@ -1,2 +1,4 @@
+;+
+;-
 PRO testinterp
 
